I have a spring boot application using a web component [Google Sign in component]
(https://vaadin.com/directory/component/google-sign-in-component) and it is working in vaadin debug mode. To get it work also in es5 browsers I set vaadin.productionMode=true and then it works in es5 browsers but throws Uncaught TypeError in es6 browsers.
/**
* The main view.
*/
@HtmlImport("styles/shared-styles.html")
@Route
public class MainView extends VerticalLayout implements RouterLayout, AfterNavigationObserver, BeforeEnterObserver {
GoogleSignin signin;
public MainView(@Autowired UserRepository userRepository, @Autowired @Value("${google.client_id}") String googleClientId) {
signin = new GoogleSignin(googleClientId);
...
add(signin);
@Tag("google-signin")
@HtmlImport(
value = "bower_components/google-signin/google-signin.html",
loadMode = LoadMode.LAZY
)
public class GoogleSignin extends Component { ...
Uncaught TypeError: Cannot read property 'appendChild' of null at Object.init (vaadin-flow-bundle-873531d033603c9.cache.html:formatted:7512)
init: function() {
this._apiLoader = document.createElement('google-js-api');
this._apiLoader.addEventListener('js-api-load', this.loadAuth2.bind(this));
if (Polymer.Element) {
document.body.appendChild(this._apiLoader);
}
},
Where can I find the difference handling the htmlimports? Is the loadMode = LoadMode.LAZY the only way to control the processing?
Maybe here are some relevant infos: [How to support IE ?]
(https://vaadin.com/forum/thread/17151164/how-to-support-ie)