@zdigambar/ngx-element 3.0.0 → 5.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 +1 -1
- package/esm2020/lib/ngx-element.component.mjs +105 -0
- package/esm2020/lib/ngx-element.module.mjs +34 -0
- package/esm2020/lib/ngx-element.service.mjs +135 -0
- package/esm2020/zdigambar-ngx-element.mjs +5 -0
- package/fesm2015/zdigambar-ngx-element.mjs +281 -0
- package/fesm2015/zdigambar-ngx-element.mjs.map +1 -0
- package/{fesm2015/zdigambar-ngx-element.js → fesm2020/zdigambar-ngx-element.mjs} +37 -38
- package/fesm2020/zdigambar-ngx-element.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/lazy-component-loaded-event.d.ts +1 -0
- package/lib/lazy-component-loaded-event.d.ts.map +1 -0
- package/lib/ngx-element.component.d.ts +4 -0
- package/lib/ngx-element.component.d.ts.map +1 -0
- package/lib/ngx-element.module.d.ts +6 -0
- package/lib/ngx-element.module.d.ts.map +1 -0
- package/lib/ngx-element.service.d.ts +4 -0
- package/lib/ngx-element.service.d.ts.map +1 -0
- package/lib/tokens.d.ts +1 -0
- package/lib/tokens.d.ts.map +1 -0
- package/package.json +24 -12
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -0
- package/zdigambar-ngx-element.d.ts.map +1 -0
- package/bundles/zdigambar-ngx-element.umd.js +0 -810
- package/bundles/zdigambar-ngx-element.umd.js.map +0 -1
- package/esm2015/lib/ngx-element.component.js +0 -105
- package/esm2015/lib/ngx-element.module.js +0 -33
- package/esm2015/lib/ngx-element.service.js +0 -136
- package/esm2015/zdigambar-ngx-element.js +0 -8
- package/fesm2015/zdigambar-ngx-element.js.map +0 -1
- package/zdigambar-ngx-element.d.ts +0 -7
- package/zdigambar-ngx-element.metadata.json +0 -1
- /package/{esm2015/lib/lazy-component-loaded-event.js → esm2020/lib/lazy-component-loaded-event.mjs} +0 -0
- /package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zdigambar-ngx-element.mjs","sources":["../../../projects/ngx-element/src/lib/tokens.ts","../../../projects/ngx-element/src/lib/ngx-element.service.ts","../../../projects/ngx-element/src/lib/ngx-element.component.ts","../../../projects/ngx-element/src/lib/ngx-element.module.ts","../../../projects/ngx-element/src/public-api.ts","../../../projects/ngx-element/src/zdigambar-ngx-element.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LoadChildrenCallback } from '@angular/router';\n\n/* Injection token to provide the element path modules. */\nexport const LAZY_CMPS_PATH_TOKEN = new InjectionToken('ngx-lazy-cmp-registry');\n\nexport interface LazyComponentDef {\n selector: string;\n loadChildren: LoadChildrenCallback; // prop needs to be named like this\n}\n","import { Injectable, Inject, NgModuleFactory, Type, Compiler, Injector, ComponentFactoryResolver } from '@angular/core';\nimport { LAZY_CMPS_PATH_TOKEN, LazyComponentDef } from './tokens';\nimport { LazyCmpLoadedEvent } from './lazy-component-loaded-event';\nimport { Observable, from } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxElementService {\n private componentsToLoad: Map<string, LazyComponentDef>;\n private loadedComponents = new Map<string, Type<any>>();\n private elementsLoading = new Map<string, Promise<LazyCmpLoadedEvent>>();\n\n injectors = new Map<Type<any>, Injector>();\n componentFactoryResolvers = new Map<Type<any>, ComponentFactoryResolver>();\n\n constructor(\n @Inject(LAZY_CMPS_PATH_TOKEN)\n modulePaths: {\n selector: string\n }[],\n private compiler: Compiler,\n private injector: Injector\n ) {\n const ELEMENT_MODULE_PATHS = new Map<string, any>();\n modulePaths.forEach(route => {\n ELEMENT_MODULE_PATHS.set(route.selector, route);\n });\n\n this.componentsToLoad = ELEMENT_MODULE_PATHS;\n }\n\n receiveContext(component: Type<any>, injector: Injector) {\n this.injectors.set(component, injector);\n this.componentFactoryResolvers.set(component, injector.get(ComponentFactoryResolver));\n }\n\n getInjector(component: Type<any>): Injector {\n return this.injectors.get(component);\n }\n\n getComponentFactoryResolver(component: Type<any>): ComponentFactoryResolver {\n return this.componentFactoryResolvers.get(component);\n }\n\n getComponentsToLoad() {\n return this.componentsToLoad;\n }\n\n getComponentToLoad(selector: string): Observable<LazyCmpLoadedEvent> {\n // Returns observable that completes when the lazy module has been loaded.\n const registered = this.loadComponent(selector);\n return from(registered);\n }\n\n /**\n * Allows to lazy load a component given its selector.\n * If the component selector has been registered, it's according module\n * will be fetched lazily\n * @param componentTag selector of the component to load\n */\n loadComponent(componentSelector: string): Promise<LazyCmpLoadedEvent> {\n if (this.elementsLoading.has(componentSelector)) {\n return this.elementsLoading.get(componentSelector);\n }\n\n if (this.componentsToLoad.has(componentSelector)) {\n const cmpRegistryEntry = this.componentsToLoad.get(componentSelector);\n const path = cmpRegistryEntry.loadChildren;\n\n const loadPromise = new Promise<LazyCmpLoadedEvent>((resolve, reject) => {\n (path() as Promise<NgModuleFactory<any> | Type<any>>)\n .then(elementModuleOrFactory => {\n /**\n * With View Engine, the NgModule factory is created and provided when loaded.\n * With Ivy, only the NgModule class is provided loaded and must be compiled.\n * This uses the same mechanism as the deprecated `SystemJsNgModuleLoader` in\n * in `packages/core/src/linker/system_js_ng_module_factory_loader.ts`\n * to pass on the NgModuleFactory, or compile the NgModule and return its NgModuleFactory.\n */\n if (elementModuleOrFactory instanceof NgModuleFactory) {\n return elementModuleOrFactory;\n } else {\n try {\n return this.compiler.compileModuleAsync(elementModuleOrFactory);\n } catch (err) {\n // return the error\n reject(err);\n\n // break the promise chain\n throw err;\n }\n }\n })\n .then(moduleFactory => {\n const elementModuleRef = moduleFactory.create(this.injector);\n let componentClass;\n\n if (typeof elementModuleRef.instance.customElementComponent === 'object') {\n componentClass = elementModuleRef.instance.customElementComponent[componentSelector];\n\n if (!componentClass) {\n // tslint:disable-next-line: no-string-throw\n throw `You specified multiple component elements in module ${elementModuleRef} but there was no match for tag\n ${componentSelector} in ${JSON.stringify(elementModuleRef.instance.customElementComponent)}.\n Make sure the selector in the module is aligned with the one specified in the lazy module definition.`;\n }\n } else {\n componentClass = elementModuleRef.instance.customElementComponent;\n }\n\n // Register injector of the lazy module.\n // This is needed to share the entryComponents between the lazy module and the application\n const moduleInjector = elementModuleRef.injector;\n this.receiveContext(componentClass, moduleInjector);\n\n this.loadedComponents.set(componentSelector, componentClass);\n this.elementsLoading.delete(componentSelector);\n this.componentsToLoad.delete(componentSelector);\n\n resolve({\n selector: componentSelector,\n componentClass\n });\n })\n .catch(err => {\n this.elementsLoading.delete(componentSelector);\n return Promise.reject(err);\n });\n });\n\n this.elementsLoading.set(componentSelector, loadPromise);\n return loadPromise;\n\n } else if (this.loadedComponents.has(componentSelector)) {\n // component already loaded\n return new Promise(resolve => {\n resolve({\n selector: componentSelector,\n componentClass: this.loadedComponents.get(componentSelector)\n });\n });\n } else {\n throw new Error(\n `Unrecognized component \"${componentSelector}\". Make sure it is registered in the component registry`\n );\n }\n }\n}","import {\n Component,\n ComponentFactory,\n ComponentRef,\n OnInit,\n Input,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n ComponentFactoryResolver,\n OnDestroy,\n EventEmitter,\n ElementRef,\n Injector,\n ReflectiveInjector\n} from '@angular/core';\nimport {NgxElementService} from './ngx-element.service';\nimport {merge, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'lib-ngx-element',\n template: `\n <ng-template #container></ng-template>\n `,\n styles: []\n})\nexport class NgxElementComponent implements OnInit, OnDestroy {\n\n private ngElementEventsSubscription: Subscription;\n @Input() selector: string;\n @ViewChild('container', {read: ViewContainerRef}) container;\n\n componentRef: ComponentRef<any>;\n componentToLoad: Type<any>;\n componentFactoryResolver: ComponentFactoryResolver;\n injector: Injector;\n refInjector: ReflectiveInjector;\n\n constructor(\n private ngxElementService: NgxElementService,\n private elementRef: ElementRef\n ) {}\n\n /**\n * Subscribe to event emitters of a lazy loaded and dynamically instantiated Angular component\n * and dispatch them as Custom Events on the NgxElementComponent that is used in a template.\n */\n private setProxiedOutputs(factory: ComponentFactory<any>): void {\n const eventEmitters = factory.outputs.map(({propName, templateName}) => {\n const emitter = (this.componentRef.instance as any)[propName] as EventEmitter<any>;\n return emitter.pipe(map((value: any) => ({name: templateName, value})));\n });\n const outputEvents = merge(...eventEmitters);\n this.ngElementEventsSubscription = outputEvents.subscribe(subscription => {\n const customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(subscription.name, false, false, subscription.value);\n this.elementRef.nativeElement.dispatchEvent(customEvent);\n });\n }\n\n ngOnInit(): void {\n this.ngxElementService.getComponentToLoad(this.selector).subscribe(event => {\n this.componentToLoad = event.componentClass;\n this.componentFactoryResolver = this.ngxElementService.getComponentFactoryResolver(this.componentToLoad);\n this.injector = this.ngxElementService.getInjector(this.componentToLoad);\n\n const attributes = this.getElementAttributes();\n this.createComponent(attributes);\n });\n }\n\n createComponent(attributes) {\n this.container.clear();\n const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentToLoad);\n\n this.refInjector = ReflectiveInjector.resolveAndCreate(\n [{provide: this.componentToLoad, useValue: this.componentToLoad}], this.injector\n );\n this.componentRef = this.container.createComponent(factory, 0, this.refInjector);\n\n this.setAttributes(attributes);\n this.listenToAttributeChanges();\n this.setProxiedOutputs(factory);\n }\n\n setAttributes(attributes) {\n attributes.forEach(attr => {\n this.componentRef.instance[attr.name] = attr.value;\n });\n }\n\n getElementAttributes() {\n const attrs = this.elementRef.nativeElement.attributes;\n const attributes = [];\n\n for (let attr, i = 0; i < attrs.length; i++) {\n attr = attrs[i];\n\n if (attr.nodeName.match('^data-')) {\n attributes.push({\n name: this.camelCaseAttribute(attr.nodeName),\n value: attr.nodeValue\n });\n }\n }\n\n return attributes;\n }\n\n camelCaseAttribute(attribute: string) {\n const attr = attribute.replace('data-', '');\n const chunks = attr.split('-');\n\n if (chunks.length > 1) {\n return chunks[0] + chunks.slice(1).map(chunk => chunk.replace(/^\\w/, c => c.toUpperCase())).join('');\n }\n\n return attr;\n }\n\n listenToAttributeChanges() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === 'attributes') {\n const attributes = this.getElementAttributes();\n this.setAttributes(attributes);\n }\n });\n });\n\n observer.observe(this.elementRef.nativeElement, {\n attributes: true\n });\n }\n\n ngOnDestroy() {\n this.componentRef.destroy();\n this.ngElementEventsSubscription.unsubscribe();\n }\n}","import { NgModule, Injector, ModuleWithProviders } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { NgxElementComponent } from './ngx-element.component';\nimport { LAZY_CMPS_PATH_TOKEN } from './tokens';\n\n@NgModule({\r\n declarations: [NgxElementComponent]\r\n})\nexport class NgxElementModule {\n\n constructor(private injector: Injector) {\n const ngxElement = createCustomElement(NgxElementComponent, { injector });\n customElements.define('ngx-element', ngxElement);\n }\n\n static forRoot(modulePaths: any[]): ModuleWithProviders<NgxElementModule> {\n return {\n ngModule: NgxElementModule,\n providers: [\n {\n provide: LAZY_CMPS_PATH_TOKEN,\n useValue: modulePaths\n }\n ]\n };\n }\n\n ngDoBootstrap() {}\n}\n","/*\n * Public API Surface of ngx-element\n */\n\nexport * from './lib/ngx-element.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxElementService"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, ComponentFactoryResolver, NgModuleFactory, Injectable, Inject,
|
|
2
|
+
import { InjectionToken, ComponentFactoryResolver, NgModuleFactory, Injectable, Inject, ReflectiveInjector, ViewContainerRef, Component, Input, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import { createCustomElement } from '@angular/elements';
|
|
4
4
|
import { from, merge } from 'rxjs';
|
|
5
5
|
import { map } from 'rxjs/operators';
|
|
@@ -126,17 +126,17 @@ class NgxElementService {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
NgxElementService.ɵ
|
|
130
|
-
NgxElementService
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
];
|
|
129
|
+
NgxElementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementService, deps: [{ token: LAZY_CMPS_PATH_TOKEN }, { token: i0.Compiler }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
130
|
+
NgxElementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementService, providedIn: 'root' });
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementService, decorators: [{
|
|
132
|
+
type: Injectable,
|
|
133
|
+
args: [{
|
|
134
|
+
providedIn: 'root'
|
|
135
|
+
}]
|
|
136
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
137
|
+
type: Inject,
|
|
138
|
+
args: [LAZY_CMPS_PATH_TOKEN]
|
|
139
|
+
}] }, { type: i0.Compiler }, { type: i0.Injector }]; } });
|
|
140
140
|
|
|
141
141
|
class NgxElementComponent {
|
|
142
142
|
constructor(ngxElementService, elementRef) {
|
|
@@ -222,22 +222,21 @@ class NgxElementComponent {
|
|
|
222
222
|
this.ngElementEventsSubscription.unsubscribe();
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
NgxElementComponent
|
|
226
|
-
|
|
227
|
-
selector: 'lib-ngx-element',
|
|
228
|
-
template: `
|
|
225
|
+
NgxElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementComponent, deps: [{ token: NgxElementService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
+
NgxElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgxElementComponent, selector: "lib-ngx-element", inputs: { selector: "selector" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
|
|
229
227
|
<ng-template #container></ng-template>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
];
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
}
|
|
228
|
+
`, isInline: true });
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementComponent, decorators: [{
|
|
230
|
+
type: Component,
|
|
231
|
+
args: [{ selector: 'lib-ngx-element', template: `
|
|
232
|
+
<ng-template #container></ng-template>
|
|
233
|
+
` }]
|
|
234
|
+
}], ctorParameters: function () { return [{ type: NgxElementService }, { type: i0.ElementRef }]; }, propDecorators: { selector: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], container: [{
|
|
237
|
+
type: ViewChild,
|
|
238
|
+
args: ['container', { read: ViewContainerRef }]
|
|
239
|
+
}] } });
|
|
241
240
|
|
|
242
241
|
class NgxElementModule {
|
|
243
242
|
constructor(injector) {
|
|
@@ -258,15 +257,15 @@ class NgxElementModule {
|
|
|
258
257
|
}
|
|
259
258
|
ngDoBootstrap() { }
|
|
260
259
|
}
|
|
261
|
-
NgxElementModule
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
];
|
|
260
|
+
NgxElementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
261
|
+
NgxElementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NgxElementModule, declarations: [NgxElementComponent] });
|
|
262
|
+
NgxElementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementModule });
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgxElementModule, decorators: [{
|
|
264
|
+
type: NgModule,
|
|
265
|
+
args: [{
|
|
266
|
+
declarations: [NgxElementComponent]
|
|
267
|
+
}]
|
|
268
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
270
269
|
|
|
271
270
|
/*
|
|
272
271
|
* Public API Surface of ngx-element
|
|
@@ -276,5 +275,5 @@ NgxElementModule.ctorParameters = () => [
|
|
|
276
275
|
* Generated bundle index. Do not edit.
|
|
277
276
|
*/
|
|
278
277
|
|
|
279
|
-
export { NgxElementModule
|
|
280
|
-
//# sourceMappingURL=zdigambar-ngx-element.
|
|
278
|
+
export { NgxElementModule };
|
|
279
|
+
//# sourceMappingURL=zdigambar-ngx-element.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zdigambar-ngx-element.mjs","sources":["../../../projects/ngx-element/src/lib/tokens.ts","../../../projects/ngx-element/src/lib/ngx-element.service.ts","../../../projects/ngx-element/src/lib/ngx-element.component.ts","../../../projects/ngx-element/src/lib/ngx-element.module.ts","../../../projects/ngx-element/src/public-api.ts","../../../projects/ngx-element/src/zdigambar-ngx-element.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { LoadChildrenCallback } from '@angular/router';\n\n/* Injection token to provide the element path modules. */\nexport const LAZY_CMPS_PATH_TOKEN = new InjectionToken('ngx-lazy-cmp-registry');\n\nexport interface LazyComponentDef {\n selector: string;\n loadChildren: LoadChildrenCallback; // prop needs to be named like this\n}\n","import { Injectable, Inject, NgModuleFactory, Type, Compiler, Injector, ComponentFactoryResolver } from '@angular/core';\nimport { LAZY_CMPS_PATH_TOKEN, LazyComponentDef } from './tokens';\nimport { LazyCmpLoadedEvent } from './lazy-component-loaded-event';\nimport { Observable, from } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxElementService {\n private componentsToLoad: Map<string, LazyComponentDef>;\n private loadedComponents = new Map<string, Type<any>>();\n private elementsLoading = new Map<string, Promise<LazyCmpLoadedEvent>>();\n\n injectors = new Map<Type<any>, Injector>();\n componentFactoryResolvers = new Map<Type<any>, ComponentFactoryResolver>();\n\n constructor(\n @Inject(LAZY_CMPS_PATH_TOKEN)\n modulePaths: {\n selector: string\n }[],\n private compiler: Compiler,\n private injector: Injector\n ) {\n const ELEMENT_MODULE_PATHS = new Map<string, any>();\n modulePaths.forEach(route => {\n ELEMENT_MODULE_PATHS.set(route.selector, route);\n });\n\n this.componentsToLoad = ELEMENT_MODULE_PATHS;\n }\n\n receiveContext(component: Type<any>, injector: Injector) {\n this.injectors.set(component, injector);\n this.componentFactoryResolvers.set(component, injector.get(ComponentFactoryResolver));\n }\n\n getInjector(component: Type<any>): Injector {\n return this.injectors.get(component);\n }\n\n getComponentFactoryResolver(component: Type<any>): ComponentFactoryResolver {\n return this.componentFactoryResolvers.get(component);\n }\n\n getComponentsToLoad() {\n return this.componentsToLoad;\n }\n\n getComponentToLoad(selector: string): Observable<LazyCmpLoadedEvent> {\n // Returns observable that completes when the lazy module has been loaded.\n const registered = this.loadComponent(selector);\n return from(registered);\n }\n\n /**\n * Allows to lazy load a component given its selector.\n * If the component selector has been registered, it's according module\n * will be fetched lazily\n * @param componentTag selector of the component to load\n */\n loadComponent(componentSelector: string): Promise<LazyCmpLoadedEvent> {\n if (this.elementsLoading.has(componentSelector)) {\n return this.elementsLoading.get(componentSelector);\n }\n\n if (this.componentsToLoad.has(componentSelector)) {\n const cmpRegistryEntry = this.componentsToLoad.get(componentSelector);\n const path = cmpRegistryEntry.loadChildren;\n\n const loadPromise = new Promise<LazyCmpLoadedEvent>((resolve, reject) => {\n (path() as Promise<NgModuleFactory<any> | Type<any>>)\n .then(elementModuleOrFactory => {\n /**\n * With View Engine, the NgModule factory is created and provided when loaded.\n * With Ivy, only the NgModule class is provided loaded and must be compiled.\n * This uses the same mechanism as the deprecated `SystemJsNgModuleLoader` in\n * in `packages/core/src/linker/system_js_ng_module_factory_loader.ts`\n * to pass on the NgModuleFactory, or compile the NgModule and return its NgModuleFactory.\n */\n if (elementModuleOrFactory instanceof NgModuleFactory) {\n return elementModuleOrFactory;\n } else {\n try {\n return this.compiler.compileModuleAsync(elementModuleOrFactory);\n } catch (err) {\n // return the error\n reject(err);\n\n // break the promise chain\n throw err;\n }\n }\n })\n .then(moduleFactory => {\n const elementModuleRef = moduleFactory.create(this.injector);\n let componentClass;\n\n if (typeof elementModuleRef.instance.customElementComponent === 'object') {\n componentClass = elementModuleRef.instance.customElementComponent[componentSelector];\n\n if (!componentClass) {\n // tslint:disable-next-line: no-string-throw\n throw `You specified multiple component elements in module ${elementModuleRef} but there was no match for tag\n ${componentSelector} in ${JSON.stringify(elementModuleRef.instance.customElementComponent)}.\n Make sure the selector in the module is aligned with the one specified in the lazy module definition.`;\n }\n } else {\n componentClass = elementModuleRef.instance.customElementComponent;\n }\n\n // Register injector of the lazy module.\n // This is needed to share the entryComponents between the lazy module and the application\n const moduleInjector = elementModuleRef.injector;\n this.receiveContext(componentClass, moduleInjector);\n\n this.loadedComponents.set(componentSelector, componentClass);\n this.elementsLoading.delete(componentSelector);\n this.componentsToLoad.delete(componentSelector);\n\n resolve({\n selector: componentSelector,\n componentClass\n });\n })\n .catch(err => {\n this.elementsLoading.delete(componentSelector);\n return Promise.reject(err);\n });\n });\n\n this.elementsLoading.set(componentSelector, loadPromise);\n return loadPromise;\n\n } else if (this.loadedComponents.has(componentSelector)) {\n // component already loaded\n return new Promise(resolve => {\n resolve({\n selector: componentSelector,\n componentClass: this.loadedComponents.get(componentSelector)\n });\n });\n } else {\n throw new Error(\n `Unrecognized component \"${componentSelector}\". Make sure it is registered in the component registry`\n );\n }\n }\n}","import {\n Component,\n ComponentFactory,\n ComponentRef,\n OnInit,\n Input,\n Output,\n Type,\n ViewChild,\n ViewContainerRef,\n ComponentFactoryResolver,\n OnDestroy,\n EventEmitter,\n ElementRef,\n Injector,\n ReflectiveInjector\n} from '@angular/core';\nimport {NgxElementService} from './ngx-element.service';\nimport {merge, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'lib-ngx-element',\n template: `\n <ng-template #container></ng-template>\n `,\n styles: []\n})\nexport class NgxElementComponent implements OnInit, OnDestroy {\n\n private ngElementEventsSubscription: Subscription;\n @Input() selector: string;\n @ViewChild('container', {read: ViewContainerRef}) container;\n\n componentRef: ComponentRef<any>;\n componentToLoad: Type<any>;\n componentFactoryResolver: ComponentFactoryResolver;\n injector: Injector;\n refInjector: ReflectiveInjector;\n\n constructor(\n private ngxElementService: NgxElementService,\n private elementRef: ElementRef\n ) {}\n\n /**\n * Subscribe to event emitters of a lazy loaded and dynamically instantiated Angular component\n * and dispatch them as Custom Events on the NgxElementComponent that is used in a template.\n */\n private setProxiedOutputs(factory: ComponentFactory<any>): void {\n const eventEmitters = factory.outputs.map(({propName, templateName}) => {\n const emitter = (this.componentRef.instance as any)[propName] as EventEmitter<any>;\n return emitter.pipe(map((value: any) => ({name: templateName, value})));\n });\n const outputEvents = merge(...eventEmitters);\n this.ngElementEventsSubscription = outputEvents.subscribe(subscription => {\n const customEvent = document.createEvent('CustomEvent');\n customEvent.initCustomEvent(subscription.name, false, false, subscription.value);\n this.elementRef.nativeElement.dispatchEvent(customEvent);\n });\n }\n\n ngOnInit(): void {\n this.ngxElementService.getComponentToLoad(this.selector).subscribe(event => {\n this.componentToLoad = event.componentClass;\n this.componentFactoryResolver = this.ngxElementService.getComponentFactoryResolver(this.componentToLoad);\n this.injector = this.ngxElementService.getInjector(this.componentToLoad);\n\n const attributes = this.getElementAttributes();\n this.createComponent(attributes);\n });\n }\n\n createComponent(attributes) {\n this.container.clear();\n const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentToLoad);\n\n this.refInjector = ReflectiveInjector.resolveAndCreate(\n [{provide: this.componentToLoad, useValue: this.componentToLoad}], this.injector\n );\n this.componentRef = this.container.createComponent(factory, 0, this.refInjector);\n\n this.setAttributes(attributes);\n this.listenToAttributeChanges();\n this.setProxiedOutputs(factory);\n }\n\n setAttributes(attributes) {\n attributes.forEach(attr => {\n this.componentRef.instance[attr.name] = attr.value;\n });\n }\n\n getElementAttributes() {\n const attrs = this.elementRef.nativeElement.attributes;\n const attributes = [];\n\n for (let attr, i = 0; i < attrs.length; i++) {\n attr = attrs[i];\n\n if (attr.nodeName.match('^data-')) {\n attributes.push({\n name: this.camelCaseAttribute(attr.nodeName),\n value: attr.nodeValue\n });\n }\n }\n\n return attributes;\n }\n\n camelCaseAttribute(attribute: string) {\n const attr = attribute.replace('data-', '');\n const chunks = attr.split('-');\n\n if (chunks.length > 1) {\n return chunks[0] + chunks.slice(1).map(chunk => chunk.replace(/^\\w/, c => c.toUpperCase())).join('');\n }\n\n return attr;\n }\n\n listenToAttributeChanges() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === 'attributes') {\n const attributes = this.getElementAttributes();\n this.setAttributes(attributes);\n }\n });\n });\n\n observer.observe(this.elementRef.nativeElement, {\n attributes: true\n });\n }\n\n ngOnDestroy() {\n this.componentRef.destroy();\n this.ngElementEventsSubscription.unsubscribe();\n }\n}","import { NgModule, Injector, ModuleWithProviders } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { NgxElementComponent } from './ngx-element.component';\nimport { LAZY_CMPS_PATH_TOKEN } from './tokens';\n\n@NgModule({\r\n declarations: [NgxElementComponent]\r\n})\nexport class NgxElementModule {\n\n constructor(private injector: Injector) {\n const ngxElement = createCustomElement(NgxElementComponent, { injector });\n customElements.define('ngx-element', ngxElement);\n }\n\n static forRoot(modulePaths: any[]): ModuleWithProviders<NgxElementModule> {\n return {\n ngModule: NgxElementModule,\n providers: [\n {\n provide: LAZY_CMPS_PATH_TOKEN,\n useValue: modulePaths\n }\n ]\n };\n }\n\n ngDoBootstrap() {}\n}\n","/*\n * Public API Surface of ngx-element\n */\n\nexport * from './lib/ngx-element.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxElementService"],"mappings":";;;;;;AAGA;AACO,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC,uBAAuB,CAAC;;MCIlE,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,CAEE,WAEG,EACK,QAAkB,EAClB,QAAkB,EAAA;QADlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAZpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;AAChD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,GAAG,EAAuC,CAAC;AAEzE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC3C,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,GAAG,EAAuC,CAAC;AAUzE,QAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAe,CAAC;AACpD,QAAA,WAAW,CAAC,OAAO,CAAC,KAAK,IAAG;YAC1B,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;KAC9C;IAED,cAAc,CAAC,SAAoB,EAAE,QAAkB,EAAA;QACrD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,WAAW,CAAC,SAAoB,EAAA;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACtC;AAED,IAAA,2BAA2B,CAAC,SAAoB,EAAA;QAC9C,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;KACtD;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,kBAAkB,CAAC,QAAgB,EAAA;;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;KACzB;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAC,iBAAyB,EAAA;QACrC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC/C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACpD,SAAA;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACtE,YAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC;YAE3C,MAAM,WAAW,GAAG,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,KAAI;AACrE,gBAAA,IAAI,EAAgD;qBAClD,IAAI,CAAC,sBAAsB,IAAG;AAC7B;;;;;;AAMG;oBACH,IAAI,sBAAsB,YAAY,eAAe,EAAE;AACrD,wBAAA,OAAO,sBAAsB,CAAC;AAC/B,qBAAA;AAAM,yBAAA;wBACL,IAAI;4BACF,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;AACjE,yBAAA;AAAC,wBAAA,OAAO,GAAG,EAAE;;4BAEZ,MAAM,CAAC,GAAG,CAAC,CAAC;;AAGZ,4BAAA,MAAM,GAAG,CAAC;AACX,yBAAA;AACF,qBAAA;AACH,iBAAC,CAAC;qBACD,IAAI,CAAC,aAAa,IAAG;oBAClB,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7D,oBAAA,IAAI,cAAc,CAAC;oBAEnB,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,KAAK,QAAQ,EAAE;wBACxE,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;wBAErF,IAAI,CAAC,cAAc,EAAE;;AAEnB,4BAAA,MAAM,uDAAuD,gBAAgB,CAAA;0BACrE,iBAAiB,CAAA,IAAA,EAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;+HACa,CAAC;AAC/G,yBAAA;AACF,qBAAA;AAAM,yBAAA;AACL,wBAAA,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AACnE,qBAAA;;;AAID,oBAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC;AACjD,oBAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;oBAEpD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAC7D,oBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEhD,oBAAA,OAAO,CAAC;AACN,wBAAA,QAAQ,EAAE,iBAAiB;wBAC3B,cAAc;AACf,qBAAA,CAAC,CAAC;AACP,iBAAC,CAAC;qBACD,KAAK,CAAC,GAAG,IAAG;AACX,oBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC/C,oBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AACzD,YAAA,OAAO,WAAW,CAAC;AAEpB,SAAA;aAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;;AAEvD,YAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,gBAAA,OAAO,CAAC;AACN,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC7D,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,CAAA,uDAAA,CAAyD,CACtG,CAAC;AACH,SAAA;KACF;;AA3IU,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBASlB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AATnB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAUI,MAAM;2BAAC,oBAAoB,CAAA;;;MCWnB,mBAAmB,CAAA;IAY9B,WACU,CAAA,iBAAoC,EACpC,UAAsB,EAAA;QADtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC5B;AAEJ;;;AAGG;AACK,IAAA,iBAAiB,CAAC,OAA8B,EAAA;AACtD,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAC,KAAI;YACrE,MAAM,OAAO,GAAI,IAAI,CAAC,YAAY,CAAC,QAAgB,CAAC,QAAQ,CAAsB,CAAC;YACnF,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAU,MAAM,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,2BAA2B,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,IAAG;YACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACxD,YAAA,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACzE,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC;AAC5C,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACzG,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEzE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,UAAU,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5F,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CACpD,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CACjF,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAEjF,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACjC;AAED,IAAA,aAAa,CAAC,UAAU,EAAA;AACtB,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,IAAG;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;IAED,oBAAoB,GAAA;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;QACvD,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,QAAA,KAAK,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACjC,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC5C,KAAK,EAAE,IAAI,CAAC,SAAS;AACtB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,kBAAkB,CAAC,SAAiB,EAAA;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtG,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAED,wBAAwB,GAAA;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAG;AAChD,YAAA,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC3B,gBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAClC,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/C,oBAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAChC,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC9C,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;KAChD;;gHAhHU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAIC,gBAAgB,EATrC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAGU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,CAAA;;AAET,EAAA,CAAA,EAAA,CAAA;8HAMQ,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAC4C,SAAS,EAAA,CAAA;sBAA1D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;MCxBrC,gBAAgB,CAAA;AAE3B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACpC,MAAM,UAAU,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1E,QAAA,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAClD;IAED,OAAO,OAAO,CAAC,WAAkB,EAAA;QAC/B,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;AAED,IAAA,aAAa,MAAK;;6GAnBP,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAFV,mBAAmB,CAAA,EAAA,CAAA,CAAA;8GAEzB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACtC,iBAAA,CAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-component-loaded-event.d.ts","sourceRoot":"","sources":["../../../projects/ngx-element/src/lib/lazy-component-loaded-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CAC7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComponentRef, OnInit, Type, ComponentFactoryResolver, OnDestroy, ElementRef, Injector, ReflectiveInjector } from '@angular/core';
|
|
2
2
|
import { NgxElementService } from './ngx-element.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class NgxElementComponent implements OnInit, OnDestroy {
|
|
4
5
|
private ngxElementService;
|
|
5
6
|
private elementRef;
|
|
@@ -24,4 +25,7 @@ export declare class NgxElementComponent implements OnInit, OnDestroy {
|
|
|
24
25
|
camelCaseAttribute(attribute: string): string;
|
|
25
26
|
listenToAttributeChanges(): void;
|
|
26
27
|
ngOnDestroy(): void;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxElementComponent, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxElementComponent, "lib-ngx-element", never, { "selector": "selector"; }, {}, never, never, false>;
|
|
27
30
|
}
|
|
31
|
+
//# sourceMappingURL=ngx-element.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-element.component.d.ts","sourceRoot":"","sources":["../../../projects/ngx-element/src/lib/ngx-element.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,MAAM,EAGN,IAAI,EAGJ,wBAAwB,EACxB,SAAS,EAET,UAAU,EACV,QAAQ,EACR,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;;AAIxD,qBAOa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAazD,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,UAAU;IAZpB,OAAO,CAAC,2BAA2B,CAAe;IACzC,QAAQ,EAAE,MAAM,CAAC;IACwB,SAAS,MAAC;IAE5D,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,kBAAkB,CAAC;gBAGtB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU;IAGhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB,QAAQ,IAAI,IAAI;IAWhB,eAAe,CAAC,UAAU,KAAA;IAc1B,aAAa,CAAC,UAAU,KAAA;IAMxB,oBAAoB;IAkBpB,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAWpC,wBAAwB;IAexB,WAAW;yCA7GA,mBAAmB;2CAAnB,mBAAmB;CAiH/B"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Injector, ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./ngx-element.component";
|
|
2
4
|
export declare class NgxElementModule {
|
|
3
5
|
private injector;
|
|
4
6
|
constructor(injector: Injector);
|
|
5
7
|
static forRoot(modulePaths: any[]): ModuleWithProviders<NgxElementModule>;
|
|
6
8
|
ngDoBootstrap(): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxElementModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxElementModule, [typeof i1.NgxElementComponent], never, never>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxElementModule>;
|
|
7
12
|
}
|
|
13
|
+
//# sourceMappingURL=ngx-element.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-element.module.d.ts","sourceRoot":"","sources":["../../../projects/ngx-element/src/lib/ngx-element.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;;;AAKxE,qBAGa,gBAAgB;IAEf,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAKtC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;IAYzE,aAAa;yCAnBF,gBAAgB;0CAAhB,gBAAgB;0CAAhB,gBAAgB;CAoB5B"}
|
|
@@ -2,6 +2,7 @@ import { Type, Compiler, Injector, ComponentFactoryResolver } from '@angular/cor
|
|
|
2
2
|
import { LazyComponentDef } from './tokens';
|
|
3
3
|
import { LazyCmpLoadedEvent } from './lazy-component-loaded-event';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class NgxElementService {
|
|
6
7
|
private compiler;
|
|
7
8
|
private injector;
|
|
@@ -25,4 +26,7 @@ export declare class NgxElementService {
|
|
|
25
26
|
* @param componentTag selector of the component to load
|
|
26
27
|
*/
|
|
27
28
|
loadComponent(componentSelector: string): Promise<LazyCmpLoadedEvent>;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxElementService, never>;
|
|
30
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NgxElementService>;
|
|
28
31
|
}
|
|
32
|
+
//# sourceMappingURL=ngx-element.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-element.service.d.ts","sourceRoot":"","sources":["../../../projects/ngx-element/src/lib/ngx-element.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAwB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAQ,MAAM,MAAM,CAAC;;AAExC,qBAGa,iBAAiB;IAa1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAblB,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,eAAe,CAAkD;IAEzE,SAAS,2BAAkC;IAC3C,yBAAyB,2CAAkD;gBAIzE,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAA;KACjB,EAAE,EACK,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ;IAU5B,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ;IAKvD,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ;IAI3C,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,wBAAwB;IAI3E,mBAAmB;IAInB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAMpE;;;;;OAKG;IACH,aAAa,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;yCArD1D,iBAAiB;6CAAjB,iBAAiB;CA4I7B"}
|
package/lib/tokens.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../projects/ngx-element/src/lib/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,eAAO,MAAM,oBAAoB,yBAA8C,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,oBAAoB,CAAC;CACpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zdigambar/ngx-element",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "A simple way to lazy load Angular components in non-angular projects",
|
|
5
5
|
"author": "Digambar Zurkale",
|
|
6
6
|
"repository": {
|
|
@@ -22,19 +22,31 @@
|
|
|
22
22
|
],
|
|
23
23
|
"licence": "MIT",
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@angular/common": "~
|
|
26
|
-
"@angular/core": "~
|
|
27
|
-
"@angular/elements": "~
|
|
25
|
+
"@angular/common": "~14.3.0",
|
|
26
|
+
"@angular/core": "~14.3.0",
|
|
27
|
+
"@angular/elements": "~14.3.0"
|
|
28
|
+
},
|
|
29
|
+
"module": "fesm2015/zdigambar-ngx-element.mjs",
|
|
30
|
+
"es2020": "fesm2020/zdigambar-ngx-element.mjs",
|
|
31
|
+
"esm2020": "esm2020/zdigambar-ngx-element.mjs",
|
|
32
|
+
"fesm2020": "fesm2020/zdigambar-ngx-element.mjs",
|
|
33
|
+
"fesm2015": "fesm2015/zdigambar-ngx-element.mjs",
|
|
34
|
+
"typings": "index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
"./package.json": {
|
|
37
|
+
"default": "./package.json"
|
|
38
|
+
},
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./index.d.ts",
|
|
41
|
+
"esm2020": "./esm2020/zdigambar-ngx-element.mjs",
|
|
42
|
+
"es2020": "./fesm2020/zdigambar-ngx-element.mjs",
|
|
43
|
+
"es2015": "./fesm2015/zdigambar-ngx-element.mjs",
|
|
44
|
+
"node": "./fesm2015/zdigambar-ngx-element.mjs",
|
|
45
|
+
"default": "./fesm2020/zdigambar-ngx-element.mjs"
|
|
46
|
+
}
|
|
28
47
|
},
|
|
29
|
-
"main": "bundles/zdigambar-ngx-element.umd.js",
|
|
30
|
-
"module": "fesm2015/zdigambar-ngx-element.js",
|
|
31
|
-
"es2015": "fesm2015/zdigambar-ngx-element.js",
|
|
32
|
-
"esm2015": "esm2015/zdigambar-ngx-element.js",
|
|
33
|
-
"fesm2015": "fesm2015/zdigambar-ngx-element.js",
|
|
34
|
-
"typings": "zdigambar-ngx-element.d.ts",
|
|
35
|
-
"metadata": "zdigambar-ngx-element.metadata.json",
|
|
36
48
|
"sideEffects": false,
|
|
37
49
|
"dependencies": {
|
|
38
|
-
"tslib": "^2.
|
|
50
|
+
"tslib": "^2.3.0"
|
|
39
51
|
}
|
|
40
52
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/ngx-element/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zdigambar-ngx-element.d.ts","sourceRoot":"","sources":["../../projects/ngx-element/src/zdigambar-ngx-element.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
|