diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js index 654ad8b2f1ed56905a46740d83ea91138391c142..2a8d6974433981f3f74ad718b6935479d7d8a317 100644 --- a/packages/app-shell/src/app-shell.js +++ b/packages/app-shell/src/app-shell.js @@ -729,7 +729,19 @@ export class AppShell extends ScopedElementsMixin(AdapterLitElement) { this.track('renderActivity', activity.element); - const elm = document.createElement(activity.element); + // After it is loaded and registered globally, we get it and register it locally + customElements.whenDefined(activity.element).then(() => { + this.defineScopedElement(activity.element, customElements.get(activity.element)); + }); + + // In case of "Scoped Custom Element Registries" polyfill we create a scoped element + let elm; + if (this.shadowRoot.createElement !== undefined) { + elm = this.shadowRoot.createElement(activity.element); + } else { + elm = document.createElement(activity.element); + } + this._onActivityAdded(elm); this._lastElm = elm; return elm;