@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 +107 -105
- package/{esm2020 → esm2022}/lib/lazy-component-loaded-event.mjs +2 -2
- package/esm2022/lib/ngx-element.component.mjs +98 -0
- package/{esm2020 → esm2022}/lib/ngx-element.module.mjs +34 -34
- package/esm2022/lib/ngx-element.service.mjs +135 -0
- package/{esm2020 → esm2022}/lib/tokens.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +5 -5
- package/{esm2020 → esm2022}/zdigambar-ngx-element.mjs +4 -4
- package/{fesm2020 → fesm2022}/zdigambar-ngx-element.mjs +255 -262
- package/fesm2022/zdigambar-ngx-element.mjs.map +1 -0
- package/index.d.ts +5 -6
- package/lib/lazy-component-loaded-event.d.ts +5 -6
- package/lib/ngx-element.component.d.ts +24 -31
- package/lib/ngx-element.module.d.ts +12 -13
- package/lib/ngx-element.service.d.ts +31 -32
- package/lib/tokens.d.ts +7 -8
- package/package.json +10 -14
- package/public-api.d.ts +1 -2
- package/esm2020/lib/ngx-element.component.mjs +0 -105
- package/esm2020/lib/ngx-element.service.mjs +0 -135
- package/fesm2015/zdigambar-ngx-element.mjs +0 -281
- package/fesm2015/zdigambar-ngx-element.mjs.map +0 -1
- package/fesm2020/zdigambar-ngx-element.mjs.map +0 -1
- package/lib/lazy-component-loaded-event.d.ts.map +0 -1
- package/lib/ngx-element.component.d.ts.map +0 -1
- package/lib/ngx-element.module.d.ts.map +0 -1
- package/lib/ngx-element.service.d.ts.map +0 -1
- package/lib/tokens.d.ts.map +0 -1
- package/public-api.d.ts.map +0 -1
- package/zdigambar-ngx-element.d.ts.map +0 -1
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
|
-
|
|
13
|
-
|
|
14
|
-
NgxElement
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
data-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
...
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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,
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
-
type: NgModule,
|
|
30
|
-
args: [{
|
|
31
|
-
declarations: [NgxElementComponent]
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters:
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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 { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgxElementModule, declarations: [NgxElementComponent] }); }
|
|
26
|
+
static { this.ɵinj = 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,
|
|
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,
|
|
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
|