@zdigambar/ngx-element 6.0.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,105 +1,107 @@
1
- # Supported Version
2
- | ngx-element | Angular |
3
- | ------------ | ------- |
4
- | 1.x.x | ^10.x.x |
5
- | 2.x.x | ^11.x.x |
6
- | 3.x.x | ^12.x.x |
7
- | 4.x.x | ^13.x.x |
8
- | 5.x.x | ^14.x.x |
9
- | 6.x.x | ^15.x.x |
10
- | 7.x.x | ^16.x.x |
11
-
12
- # NgxElement
13
-
14
- NgxElement enables to lazy load Angular components in non-angular applications.
15
- The library will register a custom element to which you can pass an attribute to specify what component you want to load.
16
-
17
- It's a great way to use Angular in your CMS platform in an efficient manner.
18
-
19
- ## Install Angular Elements
20
- This library depends on Angular Elements. You can install it by running:
21
- ```
22
- $ ng add @angular/elements
23
- ```
24
-
25
- ## Installing the library
26
- ```
27
- $ npm install @zdigambar/ngx-element
28
- ```
29
-
30
- ## Usage
31
- ### 1) Configure the Module containing the lazy loaded component
32
-
33
- First of all, expose the Angular Component that should be loaded via a customElementComponent property.
34
-
35
- ```
36
- ...
37
- @NgModule({
38
- declarations: [TalkComponent],
39
- ...
40
- exports: [TalkComponent],
41
- entryComponents: [TalkComponent]
42
- })
43
- export class TalkModule {
44
- customElementComponent: Type<any> = TalkComponent;
45
- ...
46
- }
47
- ```
48
-
49
- ### 2) Define the lazy component map in your AppModule
50
- Just like with the Angular Router, define the map of component selector and lazy module.
51
-
52
- ```
53
- const lazyConfig = [
54
- {
55
- selector: 'talk',
56
- loadChildren: () => import('./talk/talk.module').then(m => m.TalkModule)
57
- }
58
- ];
59
-
60
- @NgModule({
61
- ...,
62
- imports: [
63
- ...,
64
- NgxElementModule.forRoot(lazyConfig)
65
- ],
66
- ...
67
- })
68
- export class AppModule {
69
- ...
70
- ngDoBootstrap() {}
71
- }
72
- ```
73
-
74
- ### 3) Use the lazy loaded component
75
- You can load your Angular component by adding an `<ngx-element>` tag to the DOM in your non-angular application like follows:
76
-
77
- ```
78
- <ngx-element
79
- selector="talk"
80
- data-title="Angular Elements"
81
- data-description="How to write Angular and get Web Components"
82
- data-speaker="Digambar">
83
- </ngx-element>
84
- ```
85
-
86
- ### 4) Listen to events
87
- You can listen to events emitted by Angular components.
88
-
89
- Add an `@Output` event to your component:
90
-
91
- ```
92
- ...
93
- @Output() tagClick: EventEmitter<string> = new EventEmitter();
94
- ...
95
- ```
96
-
97
- Then add an event listener to the `tagClick` event on the appropiate `<ngx-element>` element:
98
-
99
- ```
100
- const talks = document.querySelector('ngx-element[selector="talk"]');
101
- talks.addEventListener('tagClick', event => {
102
- const emittedValue = event.detail;
103
- ...
104
- });
105
- ```
1
+ # Supported Version
2
+ | ngx-element | Angular |
3
+ | ------------ | ------- |
4
+ | 1.x.x | ^10.x.x |
5
+ | 2.x.x | ^11.x.x |
6
+ | 3.x.x | ^12.x.x |
7
+ | 4.x.x | ^13.x.x |
8
+ | 5.x.x | ^14.x.x |
9
+ | 6.x.x | ^15.x.x |
10
+ | 7.x.x | ^16.x.x |
11
+ | 8.x.x | ^17.x.x |
12
+ | 9.x.x | ^18.x.x |
13
+
14
+ # NgxElement
15
+
16
+ NgxElement enables to lazy load Angular components in non-angular applications.
17
+ The library will register a custom element to which you can pass an attribute to specify what component you want to load.
18
+
19
+ It's a great way to use Angular in your CMS platform in an efficient manner.
20
+
21
+ ## Install Angular Elements
22
+ This library depends on Angular Elements. You can install it by running:
23
+ ```
24
+ $ ng add @angular/elements
25
+ ```
26
+
27
+ ## Installing the library
28
+ ```
29
+ $ npm install @zdigambar/ngx-element
30
+ ```
31
+
32
+ ## Usage
33
+ ### 1) Configure the Module containing the lazy loaded component
34
+
35
+ First of all, expose the Angular Component that should be loaded via a customElementComponent property.
36
+
37
+ ```
38
+ ...
39
+ @NgModule({
40
+ declarations: [TalkComponent],
41
+ ...
42
+ exports: [TalkComponent],
43
+ entryComponents: [TalkComponent]
44
+ })
45
+ export class TalkModule {
46
+ customElementComponent: Type<any> = TalkComponent;
47
+ ...
48
+ }
49
+ ```
50
+
51
+ ### 2) Define the lazy component map in your AppModule
52
+ Just like with the Angular Router, define the map of component selector and lazy module.
53
+
54
+ ```
55
+ const lazyConfig = [
56
+ {
57
+ selector: 'talk',
58
+ loadChildren: () => import('./talk/talk.module').then(m => m.TalkModule)
59
+ }
60
+ ];
61
+
62
+ @NgModule({
63
+ ...,
64
+ imports: [
65
+ ...,
66
+ NgxElementModule.forRoot(lazyConfig)
67
+ ],
68
+ ...
69
+ })
70
+ export class AppModule {
71
+ ...
72
+ ngDoBootstrap() {}
73
+ }
74
+ ```
75
+
76
+ ### 3) Use the lazy loaded component
77
+ You can load your Angular component by adding an `<ngx-element>` tag to the DOM in your non-angular application like follows:
78
+
79
+ ```
80
+ <ngx-element
81
+ selector="talk"
82
+ data-title="Angular Elements"
83
+ data-description="How to write Angular and get Web Components"
84
+ data-speaker="Digambar">
85
+ </ngx-element>
86
+ ```
87
+
88
+ ### 4) Listen to events
89
+ You can listen to events emitted by Angular components.
90
+
91
+ Add an `@Output` event to your component:
92
+
93
+ ```
94
+ ...
95
+ @Output() tagClick: EventEmitter<string> = new EventEmitter();
96
+ ...
97
+ ```
98
+
99
+ Then add an event listener to the `tagClick` event on the appropiate `<ngx-element>` element:
100
+
101
+ ```
102
+ const talks = document.querySelector('ngx-element[selector="talk"]');
103
+ talks.addEventListener('tagClick', event => {
104
+ const emittedValue = event.detail;
105
+ ...
106
+ });
107
+ ```
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1jb21wb25lbnQtbG9hZGVkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi9sYXp5LWNvbXBvbmVudC1sb2FkZWQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXp5Q21wTG9hZGVkRXZlbnQge1xuICAgIHNlbGVjdG9yOiBzdHJpbmc7XG4gICAgY29tcG9uZW50Q2xhc3M6IFR5cGU8YW55Pjtcbn1cbiJdfQ==
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1jb21wb25lbnQtbG9hZGVkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi9sYXp5LWNvbXBvbmVudC1sb2FkZWQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUNtcExvYWRlZEV2ZW50IHtcclxuICAgIHNlbGVjdG9yOiBzdHJpbmc7XHJcbiAgICBjb21wb25lbnRDbGFzczogVHlwZTxhbnk+O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,98 @@
1
+ import { Component, Input, ViewChild, ViewContainerRef, Injector, } from '@angular/core';
2
+ import { merge } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./ngx-element.service";
6
+ export class NgxElementComponent {
7
+ constructor(ngxElementService, elementRef) {
8
+ this.ngxElementService = ngxElementService;
9
+ this.elementRef = elementRef;
10
+ }
11
+ setProxiedOutputs(factory) {
12
+ const eventEmitters = factory.outputs.map(({ propName, templateName }) => {
13
+ const emitter = this.componentRef.instance[propName];
14
+ return emitter.pipe(map((value) => ({ name: templateName, value })));
15
+ });
16
+ const outputEvents = merge(...eventEmitters);
17
+ this.ngElementEventsSubscription = outputEvents.subscribe((subscription) => {
18
+ const customEvent = document.createEvent('CustomEvent');
19
+ customEvent.initCustomEvent(subscription.name, false, false, subscription.value);
20
+ this.elementRef.nativeElement.dispatchEvent(customEvent);
21
+ });
22
+ }
23
+ ngOnInit() {
24
+ this.ngxElementService.getComponentToLoad(this.selector).subscribe((event) => {
25
+ this.componentToLoad = event.componentClass;
26
+ const attributes = this.getElementAttributes();
27
+ this.createComponent(attributes);
28
+ });
29
+ }
30
+ createComponent(attributes) {
31
+ this.container.clear();
32
+ const factory = this.ngxElementService.getComponentFactoryResolver(this.componentToLoad).resolveComponentFactory(this.componentToLoad);
33
+ this.injector = Injector.create({
34
+ providers: [{ provide: this.componentToLoad, useValue: this.componentToLoad }],
35
+ parent: this.ngxElementService.getInjector(this.componentToLoad),
36
+ });
37
+ this.componentRef = this.container.createComponent(factory, 0, this.injector);
38
+ this.setAttributes(attributes);
39
+ this.listenToAttributeChanges();
40
+ this.setProxiedOutputs(factory);
41
+ }
42
+ setAttributes(attributes) {
43
+ attributes.forEach((attr) => {
44
+ this.componentRef.instance[attr.name] = attr.value;
45
+ });
46
+ }
47
+ getElementAttributes() {
48
+ const attrs = this.elementRef.nativeElement.attributes;
49
+ const attributes = [];
50
+ for (let attr, i = 0; i < attrs.length; i++) {
51
+ attr = attrs[i];
52
+ if (attr.nodeName.match('^data-')) {
53
+ attributes.push({
54
+ name: this.camelCaseAttribute(attr.nodeName),
55
+ value: attr.nodeValue,
56
+ });
57
+ }
58
+ }
59
+ return attributes;
60
+ }
61
+ camelCaseAttribute(attribute) {
62
+ const attr = attribute.replace('data-', '');
63
+ const chunks = attr.split('-');
64
+ if (chunks.length > 1) {
65
+ return chunks[0] + chunks.slice(1).map((chunk) => chunk.replace(/^\w/, (c) => c.toUpperCase())).join('');
66
+ }
67
+ return attr;
68
+ }
69
+ listenToAttributeChanges() {
70
+ const observer = new MutationObserver((mutations) => {
71
+ mutations.forEach((mutation) => {
72
+ if (mutation.type === 'attributes') {
73
+ const attributes = this.getElementAttributes();
74
+ this.setAttributes(attributes);
75
+ }
76
+ });
77
+ });
78
+ observer.observe(this.elementRef.nativeElement, {
79
+ attributes: true,
80
+ });
81
+ }
82
+ ngOnDestroy() {
83
+ this.componentRef.destroy();
84
+ this.ngElementEventsSubscription.unsubscribe();
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementComponent, deps: [{ token: i1.NgxElementService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgxElementComponent, selector: "lib-ngx-element", inputs: { selector: "selector" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `<ng-template #container></ng-template>`, isInline: true }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementComponent, decorators: [{
90
+ type: Component,
91
+ args: [{ selector: 'lib-ngx-element', template: `<ng-template #container></ng-template>` }]
92
+ }], ctorParameters: () => [{ type: i1.NgxElementService }, { type: i0.ElementRef }], propDecorators: { selector: [{
93
+ type: Input
94
+ }], container: [{
95
+ type: ViewChild,
96
+ args: ['container', { read: ViewContainerRef }]
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi9uZ3gtZWxlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxLQUFLLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUloQixRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPckMsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixZQUNVLGlCQUFvQyxFQUNwQyxVQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDN0IsQ0FBQztJQUVJLGlCQUFpQixDQUFDLE9BQThCO1FBQ3RELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQWdCLENBQUMsUUFBUSxDQUFzQixDQUFDO1lBQ25GLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUs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QyxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQzsrR0E5RlUsbUJBQW1CO21HQUFuQixtQkFBbUIsNEtBR0UsZ0JBQWdCLDZCQU50Qyx3Q0FBd0M7OzRGQUd2QyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCLFlBQ2pCLHdDQUF3QzsrR0FLekMsUUFBUTtzQkFBaEIsS0FBSztnQkFDOEMsU0FBUztzQkFBNUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5LFxyXG4gIENvbXBvbmVudFJlZixcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIFR5cGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5neEVsZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtZWxlbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1uZ3gtZWxlbWVudCcsXHJcbiAgdGVtcGxhdGU6IGA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPmAsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBuZ0VsZW1lbnRFdmVudHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBASW5wdXQoKSBzZWxlY3Rvcjogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBjb250YWluZXI7XHJcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBjb21wb25lbnRUb0xvYWQ6IFR5cGU8YW55PjtcclxuICBpbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ3hFbGVtZW50U2VydmljZTogTmd4RWxlbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgc2V0UHJveGllZE91dHB1dHMoZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxhbnk+KTogdm9pZCB7XHJcbiAgICBjb25zdCBldmVudEVtaXR0ZXJzID0gZmFjdG9yeS5vdXRwdXRzLm1hcCgoeyBwcm9wTmFtZSwgdGVtcGxhdGVOYW1lIH0pID0+IHtcclxuICAgICAgY29uc3QgZW1pdHRlciA9ICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpW3Byb3BOYW1lXSBhcyBFdmVudEVtaXR0ZXI8YW55PjtcclxuICAgICAgcmV0dXJuIGVtaXR0ZXIucGlwZShtYXAoKHZhbHVlOiBhbnkpID0+ICh7IG5hbWU6IHRlbXBsYXRlTmFtZSwgdmFsdWUgfSkpKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb3V0cHV0RXZlbnRzID0gbWVyZ2UoLi4uZXZlbnRFbWl0dGVycyk7XHJcbiAgICB0aGlzLm5nRWxlbWVudEV2ZW50c1N1YnNjcmlwdGlvbiA9IG91dHB1dEV2ZW50cy5zdWJzY3JpYmUoKHN1YnNjcmlwdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBjdXN0b21FdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xyXG4gICAgICBjdXN0b21FdmVudC5pbml0Q3VzdG9tRXZlbnQoc3Vic2NyaXB0aW9uLm5hbWUsIGZhbHNlLCBmYWxzZSwgc3Vic2NyaXB0aW9uLnZhbHVlKTtcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5uZ3hFbGVtZW50U2VydmljZS5nZXRDb21wb25lbnRUb0xvYWQodGhpcy5zZWxlY3Rvcikuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFRvTG9hZCA9IGV2ZW50LmNvbXBvbmVudENsYXNzO1xyXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5nZXRFbGVtZW50QXR0cmlidXRlcygpO1xyXG4gICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChhdHRyaWJ1dGVzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29tcG9uZW50KGF0dHJpYnV0ZXMpIHtcclxuICAgIHRoaXMuY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5uZ3hFbGVtZW50U2VydmljZS5nZXRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIodGhpcy5jb21wb25lbnRUb0xvYWQpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29tcG9uZW50VG9Mb2FkKTtcclxuICAgIHRoaXMuaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IHRoaXMuY29tcG9uZW50VG9Mb2FkLCB1c2VWYWx1ZTogdGhpcy5jb21wb25lbnRUb0xvYWQgfV0sXHJcbiAgICAgIHBhcmVudDogdGhpcy5uZ3hFbGVtZW50U2VydmljZS5nZXRJbmplY3Rvcih0aGlzLmNvbXBvbmVudFRvTG9hZCksXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDAsIHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpO1xyXG4gICAgdGhpcy5saXN0ZW5Ub0F0dHJpYnV0ZUNoYW5nZXMoKTtcclxuICAgIHRoaXMuc2V0UHJveGllZE91dHB1dHMoZmFjdG9yeSk7XHJcbiAgfVxyXG5cclxuICBzZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpIHtcclxuICAgIGF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVthdHRyLm5hbWVdID0gYXR0ci52YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudEF0dHJpYnV0ZXMoKSB7XHJcbiAgICBjb25zdCBhdHRycyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXM7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gW107XHJcbiAgICBmb3IgKGxldCBhdHRyLCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGF0dHIgPSBhdHRyc1tpXTtcclxuICAgICAgaWYgKGF0dHIubm9kZU5hbWUubWF0Y2goJ15kYXRhLScpKSB7XHJcbiAgICAgICAgYXR0cmlidXRlcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMuY2FtZWxDYXNlQXR0cmlidXRlKGF0dHIubm9kZU5hbWUpLFxyXG4gICAgICAgICAgdmFsdWU6IGF0dHIubm9kZVZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXR0cmlidXRlcztcclxuICB9XHJcblxyXG4gIGNhbWVsQ2FzZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZS5yZXBsYWNlKCdkYXRhLScsICcnKTtcclxuICAgIGNvbnN0IGNodW5rcyA9IGF0dHIuc3BsaXQoJy0nKTtcclxuICAgIGlmIChjaHVua3MubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gY2h1bmtzWzBdICsgY2h1bmtzLnNsaWNlKDEpLm1hcCgoY2h1bmspID0+IGNodW5rLnJlcGxhY2UoL15cXHcvLCAoYykgPT4gYy50b1VwcGVyQ2FzZSgpKSkuam9pbignJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXR0cjtcclxuICB9XHJcblxyXG4gIGxpc3RlblRvQXR0cmlidXRlQ2hhbmdlcygpIHtcclxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xyXG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb24pID0+IHtcclxuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5nZXRFbGVtZW50QXR0cmlidXRlcygpO1xyXG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcclxuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB0aGlzLm5nRWxlbWVudEV2ZW50c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,34 +1,34 @@
1
- import { NgModule } from '@angular/core';
2
- import { createCustomElement } from '@angular/elements';
3
- import { NgxElementComponent } from './ngx-element.component';
4
- import { LAZY_CMPS_PATH_TOKEN } from './tokens';
5
- import * as i0 from "@angular/core";
6
- export class NgxElementModule {
7
- constructor(injector) {
8
- this.injector = injector;
9
- const ngxElement = createCustomElement(NgxElementComponent, { injector });
10
- customElements.define('ngx-element', ngxElement);
11
- }
12
- static forRoot(modulePaths) {
13
- return {
14
- ngModule: NgxElementModule,
15
- providers: [
16
- {
17
- provide: LAZY_CMPS_PATH_TOKEN,
18
- useValue: modulePaths
19
- }
20
- ]
21
- };
22
- }
23
- ngDoBootstrap() { }
24
- }
25
- NgxElementModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxElementModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
26
- NgxElementModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: NgxElementModule, declarations: [NgxElementComponent] });
27
- NgxElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxElementModule });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxElementModule, decorators: [{
29
- type: NgModule,
30
- args: [{
31
- declarations: [NgxElementComponent]
32
- }]
33
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi9uZ3gtZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUtoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQWtCO1FBQy9CLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQUUsV0FBVztpQkFDdEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxLQUFJLENBQUM7OzhHQW5CUCxnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFGVixtQkFBbUI7K0dBRXpCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUg1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2VsZW1lbnRzJztcbmltcG9ydCB7IE5neEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL25neC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMQVpZX0NNUFNfUEFUSF9UT0tFTiB9IGZyb20gJy4vdG9rZW5zJztcblxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW05neEVsZW1lbnRDb21wb25lbnRdXHJcbn0pXG5leHBvcnQgY2xhc3MgTmd4RWxlbWVudE1vZHVsZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBuZ3hFbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChOZ3hFbGVtZW50Q29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xuICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnbmd4LWVsZW1lbnQnLCBuZ3hFbGVtZW50KTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KG1vZHVsZVBhdGhzOiBhbnlbXSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4RWxlbWVudE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4RWxlbWVudE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9DTVBTX1BBVEhfVE9LRU4sXG4gICAgICAgICAgdXNlVmFsdWU6IG1vZHVsZVBhdGhzXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgbmdEb0Jvb3RzdHJhcCgpIHt9XG59XG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { createCustomElement } from '@angular/elements';
3
+ import { NgxElementComponent } from './ngx-element.component';
4
+ import { LAZY_CMPS_PATH_TOKEN } from './tokens';
5
+ import * as i0 from "@angular/core";
6
+ export class NgxElementModule {
7
+ constructor(injector) {
8
+ this.injector = injector;
9
+ const ngxElement = createCustomElement(NgxElementComponent, { injector });
10
+ customElements.define('ngx-element', ngxElement);
11
+ }
12
+ static forRoot(modulePaths) {
13
+ return {
14
+ ngModule: NgxElementModule,
15
+ providers: [
16
+ {
17
+ provide: LAZY_CMPS_PATH_TOKEN,
18
+ useValue: modulePaths
19
+ }
20
+ ]
21
+ };
22
+ }
23
+ ngDoBootstrap() { }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
25
+ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgxElementModule, declarations: [NgxElementComponent] }); }
26
+ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementModule }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [NgxElementComponent]
32
+ }]
33
+ }], ctorParameters: () => [{ type: i0.Injector }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi9uZ3gtZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUtoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQWtCO1FBQy9CLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQUUsV0FBVztpQkFDdEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxLQUFJLENBQUM7K0dBbkJQLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQUZWLG1CQUFtQjtnSEFFekIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVDdXN0b21FbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZWxlbWVudHMnO1xyXG5pbXBvcnQgeyBOZ3hFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMQVpZX0NNUFNfUEFUSF9UT0tFTiB9IGZyb20gJy4vdG9rZW5zJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3hFbGVtZW50Q29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RWxlbWVudE1vZHVsZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBjb25zdCBuZ3hFbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChOZ3hFbGVtZW50Q29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xyXG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCduZ3gtZWxlbWVudCcsIG5neEVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvclJvb3QobW9kdWxlUGF0aHM6IGFueVtdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hFbGVtZW50TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTmd4RWxlbWVudE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9DTVBTX1BBVEhfVE9LRU4sXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbW9kdWxlUGF0aHNcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ0RvQm9vdHN0cmFwKCkge31cclxufVxyXG4iXX0=
@@ -0,0 +1,135 @@
1
+ import { Injectable, Inject, NgModuleFactory, ComponentFactoryResolver } from '@angular/core';
2
+ import { LAZY_CMPS_PATH_TOKEN } from './tokens';
3
+ import { from } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class NgxElementService {
6
+ constructor(modulePaths, compiler, injector) {
7
+ this.compiler = compiler;
8
+ this.injector = injector;
9
+ this.loadedComponents = new Map();
10
+ this.elementsLoading = new Map();
11
+ this.injectors = new Map();
12
+ this.componentFactoryResolvers = new Map();
13
+ const ELEMENT_MODULE_PATHS = new Map();
14
+ modulePaths.forEach(route => {
15
+ ELEMENT_MODULE_PATHS.set(route.selector, route);
16
+ });
17
+ this.componentsToLoad = ELEMENT_MODULE_PATHS;
18
+ }
19
+ receiveContext(component, injector) {
20
+ this.injectors.set(component, injector);
21
+ this.componentFactoryResolvers.set(component, injector.get(ComponentFactoryResolver));
22
+ }
23
+ getInjector(component) {
24
+ return this.injectors.get(component);
25
+ }
26
+ getComponentFactoryResolver(component) {
27
+ return this.componentFactoryResolvers.get(component);
28
+ }
29
+ getComponentsToLoad() {
30
+ return this.componentsToLoad;
31
+ }
32
+ getComponentToLoad(selector) {
33
+ // Returns observable that completes when the lazy module has been loaded.
34
+ const registered = this.loadComponent(selector);
35
+ return from(registered);
36
+ }
37
+ /**
38
+ * Allows to lazy load a component given its selector.
39
+ * If the component selector has been registered, it's according module
40
+ * will be fetched lazily
41
+ * @param componentTag selector of the component to load
42
+ */
43
+ loadComponent(componentSelector) {
44
+ if (this.elementsLoading.has(componentSelector)) {
45
+ return this.elementsLoading.get(componentSelector);
46
+ }
47
+ if (this.componentsToLoad.has(componentSelector)) {
48
+ const cmpRegistryEntry = this.componentsToLoad.get(componentSelector);
49
+ const path = cmpRegistryEntry.loadChildren;
50
+ const loadPromise = new Promise((resolve, reject) => {
51
+ path()
52
+ .then(elementModuleOrFactory => {
53
+ /**
54
+ * With View Engine, the NgModule factory is created and provided when loaded.
55
+ * With Ivy, only the NgModule class is provided loaded and must be compiled.
56
+ * This uses the same mechanism as the deprecated `SystemJsNgModuleLoader` in
57
+ * in `packages/core/src/linker/system_js_ng_module_factory_loader.ts`
58
+ * to pass on the NgModuleFactory, or compile the NgModule and return its NgModuleFactory.
59
+ */
60
+ if (elementModuleOrFactory instanceof NgModuleFactory) {
61
+ return elementModuleOrFactory;
62
+ }
63
+ else {
64
+ try {
65
+ return this.compiler.compileModuleAsync(elementModuleOrFactory);
66
+ }
67
+ catch (err) {
68
+ // return the error
69
+ reject(err);
70
+ // break the promise chain
71
+ throw err;
72
+ }
73
+ }
74
+ })
75
+ .then(moduleFactory => {
76
+ const elementModuleRef = moduleFactory.create(this.injector);
77
+ let componentClass;
78
+ if (typeof elementModuleRef.instance.customElementComponent === 'object') {
79
+ componentClass = elementModuleRef.instance.customElementComponent[componentSelector];
80
+ if (!componentClass) {
81
+ // tslint:disable-next-line: no-string-throw
82
+ throw `You specified multiple component elements in module ${elementModuleRef} but there was no match for tag
83
+ ${componentSelector} in ${JSON.stringify(elementModuleRef.instance.customElementComponent)}.
84
+ Make sure the selector in the module is aligned with the one specified in the lazy module definition.`;
85
+ }
86
+ }
87
+ else {
88
+ componentClass = elementModuleRef.instance.customElementComponent;
89
+ }
90
+ // Register injector of the lazy module.
91
+ // This is needed to share the entryComponents between the lazy module and the application
92
+ const moduleInjector = elementModuleRef.injector;
93
+ this.receiveContext(componentClass, moduleInjector);
94
+ this.loadedComponents.set(componentSelector, componentClass);
95
+ this.elementsLoading.delete(componentSelector);
96
+ this.componentsToLoad.delete(componentSelector);
97
+ resolve({
98
+ selector: componentSelector,
99
+ componentClass
100
+ });
101
+ })
102
+ .catch(err => {
103
+ this.elementsLoading.delete(componentSelector);
104
+ return Promise.reject(err);
105
+ });
106
+ });
107
+ this.elementsLoading.set(componentSelector, loadPromise);
108
+ return loadPromise;
109
+ }
110
+ else if (this.loadedComponents.has(componentSelector)) {
111
+ // component already loaded
112
+ return new Promise(resolve => {
113
+ resolve({
114
+ selector: componentSelector,
115
+ componentClass: this.loadedComponents.get(componentSelector)
116
+ });
117
+ });
118
+ }
119
+ else {
120
+ throw new Error(`Unrecognized component "${componentSelector}". Make sure it is registered in the component registry`);
121
+ }
122
+ }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementService, deps: [{ token: LAZY_CMPS_PATH_TOKEN }, { token: i0.Compiler }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementService, providedIn: 'root' }); }
125
+ }
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgxElementService, decorators: [{
127
+ type: Injectable,
128
+ args: [{
129
+ providedIn: 'root'
130
+ }]
131
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
132
+ type: Inject,
133
+ args: [LAZY_CMPS_PATH_TOKEN]
134
+ }] }, { type: i0.Compiler }, { type: i0.Injector }] });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1lbGVtZW50L3NyYy9saWIvbmd4LWVsZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQTRCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxvQkFBb0IsRUFBb0IsTUFBTSxVQUFVLENBQUM7QUFFbEUsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLGlCQUFpQjtJQVE1QixZQUVFLFdBRUcsRUFDSyxRQUFrQixFQUNsQixRQUFrQjtRQURsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFacEIscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7UUFDaEQsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztRQUV6RSxjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFDM0MsOEJBQXlCLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFVekUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBQ3BELFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFvQixFQUFFLFFBQWtCO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQW9CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQjtRQUNqQywwRUFBMEU7UUFDMUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsaUJBQXlCO1FBQ3JDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN0RSxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFFM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQXFCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyRSxJQUFJLEVBQWdEO3FCQUNsRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRTtvQkFDN0I7Ozs7Ozt1QkFNRztvQkFDSCxJQUFJLHNCQUFzQixZQUFZLGVBQWUsRUFBRSxDQUFDO3dCQUN0RCxPQUFPLHNCQUFzQixDQUFDO29CQUNoQyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDOzRCQUNILE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO3dCQUNsRSxDQUFDO3dCQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7NEJBQ2IsbUJBQW1COzRCQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBRVosMEJBQTBCOzRCQUMxQixNQUFNLEdBQUcsQ0FBQzt3QkFDWixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxjQUFjLENBQUM7b0JBRW5CLElBQUksT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ3pFLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFFckYsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOzRCQUNwQiw0Q0FBNEM7NEJBQzVDLE1BQU0sdURBQXVELGdCQUFnQjswQkFDckUsaUJBQWlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUM7K0hBQ2EsQ0FBQzt3QkFDaEgsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sY0FBYyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDcEUsQ0FBQztvQkFFRCx3Q0FBd0M7b0JBQ3hDLDBGQUEwRjtvQkFDMUYsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO29CQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFFcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUVoRCxPQUFPLENBQUM7d0JBQ04sUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsY0FBYztxQkFDZixDQUFDLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUMvQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN6RCxPQUFPLFdBQVcsQ0FBQztRQUVyQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN4RCwyQkFBMkI7WUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxDQUFDO29CQUNOLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDO2lCQUM3RCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYiwyQkFBMkIsaUJBQWlCLHlEQUF5RCxDQUN0RyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBM0lVLGlCQUFpQixrQkFTbEIsb0JBQW9CO21IQVRuQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE5nTW9kdWxlRmFjdG9yeSwgVHlwZSwgQ29tcGlsZXIsIEluamVjdG9yLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTEFaWV9DTVBTX1BBVEhfVE9LRU4sIExhenlDb21wb25lbnREZWYgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IExhenlDbXBMb2FkZWRFdmVudCB9IGZyb20gJy4vbGF6eS1jb21wb25lbnQtbG9hZGVkLWV2ZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4RWxlbWVudFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29tcG9uZW50c1RvTG9hZDogTWFwPHN0cmluZywgTGF6eUNvbXBvbmVudERlZj47XHJcbiAgcHJpdmF0ZSBsb2FkZWRDb21wb25lbnRzID0gbmV3IE1hcDxzdHJpbmcsIFR5cGU8YW55Pj4oKTtcclxuICBwcml2YXRlIGVsZW1lbnRzTG9hZGluZyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPExhenlDbXBMb2FkZWRFdmVudD4+KCk7XHJcblxyXG4gIGluamVjdG9ycyA9IG5ldyBNYXA8VHlwZTxhbnk+LCBJbmplY3Rvcj4oKTtcclxuICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJzID0gbmV3IE1hcDxUeXBlPGFueT4sIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KExBWllfQ01QU19QQVRIX1RPS0VOKVxyXG4gICAgbW9kdWxlUGF0aHM6IHtcclxuICAgICAgc2VsZWN0b3I6IHN0cmluZ1xyXG4gICAgfVtdLFxyXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgY29uc3QgRUxFTUVOVF9NT0RVTEVfUEFUSFMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICAgbW9kdWxlUGF0aHMuZm9yRWFjaChyb3V0ZSA9PiB7XHJcbiAgICAgIEVMRU1FTlRfTU9EVUxFX1BBVEhTLnNldChyb3V0ZS5zZWxlY3Rvciwgcm91dGUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb21wb25lbnRzVG9Mb2FkID0gRUxFTUVOVF9NT0RVTEVfUEFUSFM7XHJcbiAgfVxyXG5cclxuICByZWNlaXZlQ29udGV4dChjb21wb25lbnQ6IFR5cGU8YW55PiwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmluamVjdG9ycy5zZXQoY29tcG9uZW50LCBpbmplY3Rvcik7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnMuc2V0KGNvbXBvbmVudCwgaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5qZWN0b3IoY29tcG9uZW50OiBUeXBlPGFueT4pOiBJbmplY3RvciB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3RvcnMuZ2V0KGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIoY29tcG9uZW50OiBUeXBlPGFueT4pOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVycy5nZXQoY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudHNUb0xvYWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRzVG9Mb2FkO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50VG9Mb2FkKHNlbGVjdG9yOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExhenlDbXBMb2FkZWRFdmVudD4ge1xyXG4gICAgLy8gUmV0dXJucyBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gdGhlIGxhenkgbW9kdWxlIGhhcyBiZWVuIGxvYWRlZC5cclxuICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSB0aGlzLmxvYWRDb21wb25lbnQoc2VsZWN0b3IpO1xyXG4gICAgcmV0dXJuIGZyb20ocmVnaXN0ZXJlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdG8gbGF6eSBsb2FkIGEgY29tcG9uZW50IGdpdmVuIGl0cyBzZWxlY3Rvci5cclxuICAgKiBJZiB0aGUgY29tcG9uZW50IHNlbGVjdG9yIGhhcyBiZWVuIHJlZ2lzdGVyZWQsIGl0J3MgYWNjb3JkaW5nIG1vZHVsZVxyXG4gICAqIHdpbGwgYmUgZmV0Y2hlZCBsYXppbHlcclxuICAgKiBAcGFyYW0gY29tcG9uZW50VGFnIHNlbGVjdG9yIG9mIHRoZSBjb21wb25lbnQgdG8gbG9hZFxyXG4gICAqL1xyXG4gIGxvYWRDb21wb25lbnQoY29tcG9uZW50U2VsZWN0b3I6IHN0cmluZyk6IFByb21pc2U8TGF6eUNtcExvYWRlZEV2ZW50PiB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50c0xvYWRpbmcuaGFzKGNvbXBvbmVudFNlbGVjdG9yKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50c0xvYWRpbmcuZ2V0KGNvbXBvbmVudFNlbGVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRzVG9Mb2FkLmhhcyhjb21wb25lbnRTZWxlY3RvcikpIHtcclxuICAgICAgY29uc3QgY21wUmVnaXN0cnlFbnRyeSA9IHRoaXMuY29tcG9uZW50c1RvTG9hZC5nZXQoY29tcG9uZW50U2VsZWN0b3IpO1xyXG4gICAgICBjb25zdCBwYXRoID0gY21wUmVnaXN0cnlFbnRyeS5sb2FkQ2hpbGRyZW47XHJcblxyXG4gICAgICBjb25zdCBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPExhenlDbXBMb2FkZWRFdmVudD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIChwYXRoKCkgYXMgUHJvbWlzZTxOZ01vZHVsZUZhY3Rvcnk8YW55PiB8IFR5cGU8YW55Pj4pXHJcbiAgICAgICAgICAudGhlbihlbGVtZW50TW9kdWxlT3JGYWN0b3J5ID0+IHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIFdpdGggVmlldyBFbmdpbmUsIHRoZSBOZ01vZHVsZSBmYWN0b3J5IGlzIGNyZWF0ZWQgYW5kIHByb3ZpZGVkIHdoZW4gbG9hZGVkLlxyXG4gICAgICAgICAgICAgKiBXaXRoIEl2eSwgb25seSB0aGUgTmdNb2R1bGUgY2xhc3MgaXMgcHJvdmlkZWQgbG9hZGVkIGFuZCBtdXN0IGJlIGNvbXBpbGVkLlxyXG4gICAgICAgICAgICAgKiBUaGlzIHVzZXMgdGhlIHNhbWUgbWVjaGFuaXNtIGFzIHRoZSBkZXByZWNhdGVkIGBTeXN0ZW1Kc05nTW9kdWxlTG9hZGVyYCBpblxyXG4gICAgICAgICAgICAgKiBpbiBgcGFja2FnZXMvY29yZS9zcmMvbGlua2VyL3N5c3RlbV9qc19uZ19tb2R1bGVfZmFjdG9yeV9sb2FkZXIudHNgXHJcbiAgICAgICAgICAgICAqIHRvIHBhc3Mgb24gdGhlIE5nTW9kdWxlRmFjdG9yeSwgb3IgY29tcGlsZSB0aGUgTmdNb2R1bGUgYW5kIHJldHVybiBpdHMgTmdNb2R1bGVGYWN0b3J5LlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnRNb2R1bGVPckZhY3RvcnkgaW5zdGFuY2VvZiBOZ01vZHVsZUZhY3RvcnkpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudE1vZHVsZU9yRmFjdG9yeTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKGVsZW1lbnRNb2R1bGVPckZhY3RvcnkpO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBlcnJvclxyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gYnJlYWsgdGhlIHByb21pc2UgY2hhaW5cclxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihtb2R1bGVGYWN0b3J5ID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50TW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudENsYXNzO1xyXG5cclxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnRNb2R1bGVSZWYuaW5zdGFuY2UuY3VzdG9tRWxlbWVudENvbXBvbmVudCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudENsYXNzID0gZWxlbWVudE1vZHVsZVJlZi5pbnN0YW5jZS5jdXN0b21FbGVtZW50Q29tcG9uZW50W2NvbXBvbmVudFNlbGVjdG9yXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBvbmVudENsYXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLXRocm93XHJcbiAgICAgICAgICAgICAgICAgIHRocm93IGBZb3Ugc3BlY2lmaWVkIG11bHRpcGxlIGNvbXBvbmVudCBlbGVtZW50cyBpbiBtb2R1bGUgJHtlbGVtZW50TW9kdWxlUmVmfSBidXQgdGhlcmUgd2FzIG5vIG1hdGNoIGZvciB0YWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgJHtjb21wb25lbnRTZWxlY3Rvcn0gaW4gJHtKU09OLnN0cmluZ2lmeShlbGVtZW50TW9kdWxlUmVmLmluc3RhbmNlLmN1c3RvbUVsZW1lbnRDb21wb25lbnQpfS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgc2VsZWN0b3IgaW4gdGhlIG1vZHVsZSBpcyBhbGlnbmVkIHdpdGggdGhlIG9uZSBzcGVjaWZpZWQgaW4gdGhlIGxhenkgbW9kdWxlIGRlZmluaXRpb24uYDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50Q2xhc3MgPSBlbGVtZW50TW9kdWxlUmVmLmluc3RhbmNlLmN1c3RvbUVsZW1lbnRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyBSZWdpc3RlciBpbmplY3RvciBvZiB0aGUgbGF6eSBtb2R1bGUuXHJcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gc2hhcmUgdGhlIGVudHJ5Q29tcG9uZW50cyBiZXR3ZWVuIHRoZSBsYXp5IG1vZHVsZSBhbmQgdGhlIGFwcGxpY2F0aW9uXHJcbiAgICAgICAgICAgICAgY29uc3QgbW9kdWxlSW5qZWN0b3IgPSBlbGVtZW50TW9kdWxlUmVmLmluamVjdG9yO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVjZWl2ZUNvbnRleHQoY29tcG9uZW50Q2xhc3MsIG1vZHVsZUluamVjdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkZWRDb21wb25lbnRzLnNldChjb21wb25lbnRTZWxlY3RvciwgY29tcG9uZW50Q2xhc3MpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNMb2FkaW5nLmRlbGV0ZShjb21wb25lbnRTZWxlY3Rvcik7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRzVG9Mb2FkLmRlbGV0ZShjb21wb25lbnRTZWxlY3Rvcik7XHJcblxyXG4gICAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0b3I6IGNvbXBvbmVudFNlbGVjdG9yLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50Q2xhc3NcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50c0xvYWRpbmcuZGVsZXRlKGNvbXBvbmVudFNlbGVjdG9yKTtcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmVsZW1lbnRzTG9hZGluZy5zZXQoY29tcG9uZW50U2VsZWN0b3IsIGxvYWRQcm9taXNlKTtcclxuICAgICAgcmV0dXJuIGxvYWRQcm9taXNlO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5sb2FkZWRDb21wb25lbnRzLmhhcyhjb21wb25lbnRTZWxlY3RvcikpIHtcclxuICAgICAgLy8gY29tcG9uZW50IGFscmVhZHkgbG9hZGVkXHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICByZXNvbHZlKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiBjb21wb25lbnRTZWxlY3RvcixcclxuICAgICAgICAgIGNvbXBvbmVudENsYXNzOiB0aGlzLmxvYWRlZENvbXBvbmVudHMuZ2V0KGNvbXBvbmVudFNlbGVjdG9yKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgVW5yZWNvZ25pemVkIGNvbXBvbmVudCBcIiR7Y29tcG9uZW50U2VsZWN0b3J9XCIuIE1ha2Ugc3VyZSBpdCBpcyByZWdpc3RlcmVkIGluIHRoZSBjb21wb25lbnQgcmVnaXN0cnlgXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
@@ -1,4 +1,4 @@
1
- import { InjectionToken } from '@angular/core';
2
- /* Injection token to provide the element path modules. */
3
- export const LAZY_CMPS_PATH_TOKEN = new InjectionToken('ngx-lazy-cmp-registry');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQywwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkQ2hpbGRyZW5DYWxsYmFjayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8qIEluamVjdGlvbiB0b2tlbiB0byBwcm92aWRlIHRoZSBlbGVtZW50IHBhdGggbW9kdWxlcy4gKi9cbmV4cG9ydCBjb25zdCBMQVpZX0NNUFNfUEFUSF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignbmd4LWxhenktY21wLXJlZ2lzdHJ5Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUNvbXBvbmVudERlZiB7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGxvYWRDaGlsZHJlbjogTG9hZENoaWxkcmVuQ2FsbGJhY2s7IC8vIHByb3AgbmVlZHMgdG8gYmUgbmFtZWQgbGlrZSB0aGlzXG59XG4iXX0=
1
+ import { InjectionToken } from '@angular/core';
2
+ /* Injection token to provide the element path modules. */
3
+ export const LAZY_CMPS_PATH_TOKEN = new InjectionToken('ngx-lazy-cmp-registry');
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQywwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvYWRDaGlsZHJlbkNhbGxiYWNrIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbi8qIEluamVjdGlvbiB0b2tlbiB0byBwcm92aWRlIHRoZSBlbGVtZW50IHBhdGggbW9kdWxlcy4gKi9cclxuZXhwb3J0IGNvbnN0IExBWllfQ01QU19QQVRIX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuKCduZ3gtbGF6eS1jbXAtcmVnaXN0cnknKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUNvbXBvbmVudERlZiB7XHJcbiAgc2VsZWN0b3I6IHN0cmluZztcclxuICBsb2FkQ2hpbGRyZW46IExvYWRDaGlsZHJlbkNhbGxiYWNrOyAvLyBwcm9wIG5lZWRzIHRvIGJlIG5hbWVkIGxpa2UgdGhpc1xyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- /*
2
- * Public API Surface of ngx-element
3
- */
4
- export * from './lib/ngx-element.module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1lbGVtZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWVsZW1lbnRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZWxlbWVudC5tb2R1bGUnO1xuIl19
1
+ /*
2
+ * Public API Surface of ngx-element
3
+ */
4
+ export * from './lib/ngx-element.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1lbGVtZW50L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtZWxlbWVudFxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1lbGVtZW50Lm1vZHVsZSc7XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemRpZ2FtYmFyLW5neC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVsZW1lbnQvc3JjL3pkaWdhbWJhci1uZ3gtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19