@zdigambar/ngx-element 7.0.1 → 9.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/esm2022/lib/lazy-component-loaded-event.mjs +2 -2
- package/esm2022/lib/ngx-element.component.mjs +98 -98
- package/esm2022/lib/ngx-element.module.mjs +34 -34
- package/esm2022/lib/ngx-element.service.mjs +135 -135
- package/esm2022/lib/tokens.mjs +4 -4
- package/esm2022/public-api.mjs +5 -5
- package/esm2022/zdigambar-ngx-element.mjs +4 -4
- package/fesm2022/zdigambar-ngx-element.mjs +254 -254
- package/fesm2022/zdigambar-ngx-element.mjs.map +1 -1
- package/index.d.ts +5 -6
- package/lib/lazy-component-loaded-event.d.ts +5 -6
- package/lib/ngx-element.component.d.ts +24 -25
- 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 +7 -5
- package/public-api.d.ts +1 -2
- 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==
|
|
@@ -1,98 +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: "
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
88
|
-
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{ selector: 'lib-ngx-element', template: `<ng-template #container></ng-template>` }]
|
|
92
|
-
}], ctorParameters:
|
|
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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Q0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqRCxDQUFDOytHQTlGVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw0S0FHRSxnQkFBZ0IsNkJBTnRDLHdDQUF3Qzs7NEZBR3ZDLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUIsWUFDakIsd0NBQXdDO2lJQUt6QyxRQUFRO3NCQUFoQixLQUFLO2dCQUM4QyxTQUFTO3NCQUE1RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmLFxuICBPbkluaXQsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uRGVzdHJveSxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hFbGVtZW50U2VydmljZSB9IGZyb20gJy4vbmd4LWVsZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uZ3gtZWxlbWVudCcsXG4gIHRlbXBsYXRlOiBgPG5nLXRlbXBsYXRlICNjb250YWluZXI+PC9uZy10ZW1wbGF0ZT5gLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG5nRWxlbWVudEV2ZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoKSBzZWxlY3Rvcjogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyO1xuICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICBjb21wb25lbnRUb0xvYWQ6IFR5cGU8YW55PjtcbiAgaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmd4RWxlbWVudFNlcnZpY2U6IE5neEVsZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgcHJpdmF0ZSBzZXRQcm94aWVkT3V0cHV0cyhmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudEVtaXR0ZXJzID0gZmFjdG9yeS5vdXRwdXRzLm1hcCgoeyBwcm9wTmFtZSwgdGVtcGxhdGVOYW1lIH0pID0+IHtcbiAgICAgIGNvbnN0IGVtaXR0ZXIgPSAodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgYW55KVtwcm9wTmFtZV0gYXMgRXZlbnRFbWl0dGVyPGFueT47XG4gICAgICByZXR1cm4gZW1pdHRlci5waXBlKG1hcCgodmFsdWU6IGFueSkgPT4gKHsgbmFtZTogdGVtcGxhdGVOYW1lLCB2YWx1ZSB9KSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IG91dHB1dEV2ZW50cyA9IG1lcmdlKC4uLmV2ZW50RW1pdHRlcnMpO1xuICAgIHRoaXMubmdFbGVtZW50RXZlbnRzU3Vic2NyaXB0aW9uID0gb3V0cHV0RXZlbnRzLnN1YnNjcmliZSgoc3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21FdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgICAgY3VzdG9tRXZlbnQuaW5pdEN1c3RvbUV2ZW50KHN1YnNjcmlwdGlvbi5uYW1lLCBmYWxzZSwgZmFsc2UsIHN1YnNjcmlwdGlvbi52YWx1ZSk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmd4RWxlbWVudFNlcnZpY2UuZ2V0Q29tcG9uZW50VG9Mb2FkKHRoaXMuc2VsZWN0b3IpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50VG9Mb2FkID0gZXZlbnQuY29tcG9uZW50Q2xhc3M7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5nZXRFbGVtZW50QXR0cmlidXRlcygpO1xuICAgICAgdGhpcy5jcmVhdGVDb21wb25lbnQoYXR0cmlidXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVDb21wb25lbnQoYXR0cmlidXRlcykge1xuICAgIHRoaXMuY29udGFpbmVyLmNsZWFyKCk7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMubmd4RWxlbWVudFNlcnZpY2UuZ2V0Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyKHRoaXMuY29tcG9uZW50VG9Mb2FkKS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNvbXBvbmVudFRvTG9hZCk7XG4gICAgdGhpcy5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IHRoaXMuY29tcG9uZW50VG9Mb2FkLCB1c2VWYWx1ZTogdGhpcy5jb21wb25lbnRUb0xvYWQgfV0sXG4gICAgICBwYXJlbnQ6IHRoaXMubmd4RWxlbWVudFNlcnZpY2UuZ2V0SW5qZWN0b3IodGhpcy5jb21wb25lbnRUb0xvYWQpLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDAsIHRoaXMuaW5qZWN0b3IpO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTtcbiAgICB0aGlzLmxpc3RlblRvQXR0cmlidXRlQ2hhbmdlcygpO1xuICAgIHRoaXMuc2V0UHJveGllZE91dHB1dHMoZmFjdG9yeSk7XG4gIH1cblxuICBzZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpIHtcbiAgICBhdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RWxlbWVudEF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgYXR0cnMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hdHRyaWJ1dGVzO1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbXTtcbiAgICBmb3IgKGxldCBhdHRyLCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhdHRyID0gYXR0cnNbaV07XG4gICAgICBpZiAoYXR0ci5ub2RlTmFtZS5tYXRjaCgnXmRhdGEtJykpIHtcbiAgICAgICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmNhbWVsQ2FzZUF0dHJpYnV0ZShhdHRyLm5vZGVOYW1lKSxcbiAgICAgICAgICB2YWx1ZTogYXR0ci5ub2RlVmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgfVxuXG4gIGNhbWVsQ2FzZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGUucmVwbGFjZSgnZGF0YS0nLCAnJyk7XG4gICAgY29uc3QgY2h1bmtzID0gYXR0ci5zcGxpdCgnLScpO1xuICAgIGlmIChjaHVua3MubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIGNodW5rc1swXSArIGNodW5rcy5zbGljZSgxKS5tYXAoKGNodW5rKSA9PiBjaHVuay5yZXBsYWNlKC9eXFx3LywgKGMpID0+IGMudG9VcHBlckNhc2UoKSkpLmpvaW4oJycpO1xuICAgIH1cbiAgICByZXR1cm4gYXR0cjtcbiAgfVxuXG4gIGxpc3RlblRvQXR0cmlidXRlQ2hhbmdlcygpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHRoaXMuZ2V0RWxlbWVudEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgdGhpcy5uZ0VsZW1lbnRFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
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: "18.2.13", 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: "18.2.13", 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: "18.2.13", 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
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
26
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
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: "18.2.13", ngImport: i0, type: NgxElementModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxElementModule, declarations: [NgxElementComponent] }); }
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxElementModule }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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=
|