@zdigambar/ngx-element 1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zdigambar-ngx-element.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../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":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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({\n declarations: [NgxElementComponent],\n entryComponents: [NgxElementComponent]\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\nexport {NgxElementComponent as ɵa} from './lib/ngx-element.component';\nexport {NgxElementService as ɵb} from './lib/ngx-element.service';\nexport {LAZY_CMPS_PATH_TOKEN as ɵc} from './lib/tokens';"],"names":["InjectionToken","ComponentFactoryResolver","from","NgModuleFactory","Injectable","Inject","Compiler","Injector","map","merge","ReflectiveInjector","Component","ElementRef","Input","ViewChild","ViewContainerRef","createCustomElement","NgModule"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/elements"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@zdigambar/ngx-element",["exports","@angular/core","@angular/elements","rxjs","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).zdigambar=e.zdigambar||{},e.zdigambar["ngx-element"]={}),e.ng.core,e.ng.elements,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n,o,r){"use strict";
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation. All rights reserved.
4
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
5
+ this file except in compliance with the License. You may obtain a copy of the
6
+ License at http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
9
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
10
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
11
+ MERCHANTABLITY OR NON-INFRINGEMENT.
12
+
13
+ See the Apache Version 2.0 License for specific language governing permissions
14
+ and limitations under the License.
15
+ ***************************************************************************** */function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}var s=new t.InjectionToken("ngx-lazy-cmp-registry"),a=function(){function e(e,t,n){this.compiler=t,this.injector=n,this.loadedComponents=new Map,this.elementsLoading=new Map,this.injectors=new Map,this.componentFactoryResolvers=new Map;var o=new Map;e.forEach((function(e){o.set(e.selector,e)})),this.componentsToLoad=o}return e.prototype.receiveContext=function(e,n){this.injectors.set(e,n),this.componentFactoryResolvers.set(e,n.get(t.ComponentFactoryResolver))},e.prototype.getInjector=function(e){return this.injectors.get(e)},e.prototype.getComponentFactoryResolver=function(e){return this.componentFactoryResolvers.get(e)},e.prototype.getComponentsToLoad=function(){return this.componentsToLoad},e.prototype.getComponentToLoad=function(e){var t=this.loadComponent(e);return o.from(t)},e.prototype.loadComponent=function(e){var n=this;if(this.elementsLoading.has(e))return this.elementsLoading.get(e);if(this.componentsToLoad.has(e)){var o=this.componentsToLoad.get(e).loadChildren,r=new Promise((function(r,i){o().then((function(e){if(e instanceof t.NgModuleFactory)return e;try{return n.compiler.compileModuleAsync(e)}catch(e){throw i(e),e}})).then((function(t){var o,i=t.create(n.injector);if("object"==typeof i.instance.customElementComponent){if(!(o=i.instance.customElementComponent[e]))throw"You specified multiple component elements in module "+i+" but there was no match for tag\n "+e+" in "+JSON.stringify(i.instance.customElementComponent)+".\n Make sure the selector in the module is aligned with the one specified in the lazy module definition."}else o=i.instance.customElementComponent;var s=i.injector;n.receiveContext(o,s),n.loadedComponents.set(e,o),n.elementsLoading.delete(e),n.componentsToLoad.delete(e),r({selector:e,componentClass:o})})).catch((function(t){return n.elementsLoading.delete(e),Promise.reject(t)}))}));return this.elementsLoading.set(e,r),r}if(this.loadedComponents.has(e))return new Promise((function(t){t({selector:e,componentClass:n.loadedComponents.get(e)})}));throw new Error('Unrecognized component "'+e+'". Make sure it is registered in the component registry')},e}();a.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new a(t.ɵɵinject(s),t.ɵɵinject(t.Compiler),t.ɵɵinject(t.INJECTOR))},token:a,providedIn:"root"}),a.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],a.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Inject,args:[s]}]},{type:t.Compiler},{type:t.Injector}]};var c=function(){function e(e,t){this.ngxElementService=e,this.elementRef=t}return e.prototype.setProxiedOutputs=function(e){var t=this,n=e.outputs.map((function(e){var n=e.propName,o=e.templateName;return t.componentRef.instance[n].pipe(r.map((function(e){return{name:o,value:e}})))})),s=o.merge.apply(void 0,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e}(n));this.ngElementEventsSubscription=s.subscribe((function(e){var n=document.createEvent("CustomEvent");n.initCustomEvent(e.name,!1,!1,e.value),t.elementRef.nativeElement.dispatchEvent(n)}))},e.prototype.ngOnInit=function(){var e=this;this.ngxElementService.getComponentToLoad(this.selector).subscribe((function(t){e.componentToLoad=t.componentClass,e.componentFactoryResolver=e.ngxElementService.getComponentFactoryResolver(e.componentToLoad),e.injector=e.ngxElementService.getInjector(e.componentToLoad);var n=e.getElementAttributes();e.createComponent(n)}))},e.prototype.createComponent=function(e){this.container.clear();var n=this.componentFactoryResolver.resolveComponentFactory(this.componentToLoad);this.refInjector=t.ReflectiveInjector.resolveAndCreate([{provide:this.componentToLoad,useValue:this.componentToLoad}],this.injector),this.componentRef=this.container.createComponent(n,0,this.refInjector),this.setAttributes(e),this.listenToAttributeChanges(),this.setProxiedOutputs(n)},e.prototype.setAttributes=function(e){var t=this;e.forEach((function(e){t.componentRef.instance[e.name]=e.value}))},e.prototype.getElementAttributes=function(){for(var e=this.elementRef.nativeElement.attributes,t=[],n=void 0,o=0;o<e.length;o++)(n=e[o]).nodeName.match("^data-")&&t.push({name:this.camelCaseAttribute(n.nodeName),value:n.nodeValue});return t},e.prototype.camelCaseAttribute=function(e){var t=e.replace("data-",""),n=t.split("-");return n.length>1?n[0]+n.slice(1).map((function(e){return e.replace(/^\w/,(function(e){return e.toUpperCase()}))})).join(""):t},e.prototype.listenToAttributeChanges=function(){var e=this;new MutationObserver((function(t){t.forEach((function(t){if("attributes"===t.type){var n=e.getElementAttributes();e.setAttributes(n)}}))})).observe(this.elementRef.nativeElement,{attributes:!0})},e.prototype.ngOnDestroy=function(){this.componentRef.destroy(),this.ngElementEventsSubscription.unsubscribe()},e}();c.decorators=[{type:t.Component,args:[{selector:"lib-ngx-element",template:"\n <ng-template #container></ng-template>\n "}]}],c.ctorParameters=function(){return[{type:a},{type:t.ElementRef}]},c.propDecorators={selector:[{type:t.Input}],container:[{type:t.ViewChild,args:["container",{read:t.ViewContainerRef}]}]};var p=function(){function e(e){this.injector=e;var t=n.createCustomElement(c,{injector:e});customElements.define("ngx-element",t)}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:s,useValue:t}]}},e.prototype.ngDoBootstrap=function(){},e}();p.decorators=[{type:t.NgModule,args:[{declarations:[c],entryComponents:[c]}]}],p.ctorParameters=function(){return[{type:t.Injector}]},e.NgxElementModule=p,e.ɵa=c,e.ɵb=a,e.ɵc=s,Object.defineProperty(e,"__esModule",{value:!0})}));
16
+ //# sourceMappingURL=zdigambar-ngx-element.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../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"],"names":["__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","value","error","LAZY_CMPS_PATH_TOKEN","InjectionToken","NgxElementService","modulePaths","compiler","injector","this","loadedComponents","Map","elementsLoading","injectors","componentFactoryResolvers","ELEMENT_MODULE_PATHS","forEach","route","set","selector","componentsToLoad","prototype","receiveContext","component","get","ComponentFactoryResolver","getInjector","getComponentFactoryResolver","getComponentsToLoad","getComponentToLoad","registered","loadComponent","from","componentSelector","_this","has","path_1","loadChildren","loadPromise","Promise","resolve","reject","then","elementModuleOrFactory","NgModuleFactory","compileModuleAsync","err","moduleFactory","componentClass","elementModuleRef","create","instance","customElementComponent","JSON","stringify","moduleInjector","delete","catch","Error","Injectable","args","providedIn","Inject","Compiler","Injector","NgxElementComponent","ngxElementService","elementRef","setProxiedOutputs","factory","eventEmitters","outputs","map","_a","propName","templateName","componentRef","pipe","name","outputEvents","merge","apply","arguments","length","concat","__spread","ngElementEventsSubscription","subscribe","subscription","customEvent","document","createEvent","initCustomEvent","nativeElement","dispatchEvent","ngOnInit","event","componentToLoad","componentFactoryResolver","attributes","getElementAttributes","createComponent","container","clear","resolveComponentFactory","refInjector","ReflectiveInjector","resolveAndCreate","provide","useValue","setAttributes","listenToAttributeChanges","attr","attrs","nodeName","match","camelCaseAttribute","nodeValue","attribute","replace","chunks","split","slice","chunk","c","toUpperCase","join","MutationObserver","mutations","mutation","type","observe","ngOnDestroy","destroy","unsubscribe","Component","template","ElementRef","Input","ViewChild","read","ViewContainerRef","NgxElementModule","ngxElement","createCustomElement","customElements","define","forRoot","ngModule","providers","ngDoBootstrap","NgModule","declarations","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","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({\n declarations: [NgxElementComponent],\n entryComponents: [NgxElementComponent]\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"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1jb21wb25lbnQtbG9hZGVkLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L2FuZ3VsYXIgMTYvbmd4LWVsZW1lbnQtbWFzdGVyLWR6L3Byb2plY3RzL25neC1lbGVtZW50L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9sYXp5LWNvbXBvbmVudC1sb2FkZWQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXp5Q21wTG9hZGVkRXZlbnQge1xuICAgIHNlbGVjdG9yOiBzdHJpbmc7XG4gICAgY29tcG9uZW50Q2xhc3M6IFR5cGU8YW55Pjtcbn1cbiJdfQ==
@@ -0,0 +1,105 @@
1
+ import { Component, Input, ViewChild, ViewContainerRef, ElementRef, ReflectiveInjector } from '@angular/core';
2
+ import { NgxElementService } from './ngx-element.service';
3
+ import { merge } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
5
+ export class NgxElementComponent {
6
+ constructor(ngxElementService, elementRef) {
7
+ this.ngxElementService = ngxElementService;
8
+ this.elementRef = elementRef;
9
+ }
10
+ /**
11
+ * Subscribe to event emitters of a lazy loaded and dynamically instantiated Angular component
12
+ * and dispatch them as Custom Events on the NgxElementComponent that is used in a template.
13
+ */
14
+ setProxiedOutputs(factory) {
15
+ const eventEmitters = factory.outputs.map(({ propName, templateName }) => {
16
+ const emitter = this.componentRef.instance[propName];
17
+ return emitter.pipe(map((value) => ({ name: templateName, value })));
18
+ });
19
+ const outputEvents = merge(...eventEmitters);
20
+ this.ngElementEventsSubscription = outputEvents.subscribe(subscription => {
21
+ const customEvent = document.createEvent('CustomEvent');
22
+ customEvent.initCustomEvent(subscription.name, false, false, subscription.value);
23
+ this.elementRef.nativeElement.dispatchEvent(customEvent);
24
+ });
25
+ }
26
+ ngOnInit() {
27
+ this.ngxElementService.getComponentToLoad(this.selector).subscribe(event => {
28
+ this.componentToLoad = event.componentClass;
29
+ this.componentFactoryResolver = this.ngxElementService.getComponentFactoryResolver(this.componentToLoad);
30
+ this.injector = this.ngxElementService.getInjector(this.componentToLoad);
31
+ const attributes = this.getElementAttributes();
32
+ this.createComponent(attributes);
33
+ });
34
+ }
35
+ createComponent(attributes) {
36
+ this.container.clear();
37
+ const factory = this.componentFactoryResolver.resolveComponentFactory(this.componentToLoad);
38
+ this.refInjector = ReflectiveInjector.resolveAndCreate([{ provide: this.componentToLoad, useValue: this.componentToLoad }], this.injector);
39
+ this.componentRef = this.container.createComponent(factory, 0, this.refInjector);
40
+ this.setAttributes(attributes);
41
+ this.listenToAttributeChanges();
42
+ this.setProxiedOutputs(factory);
43
+ }
44
+ setAttributes(attributes) {
45
+ attributes.forEach(attr => {
46
+ this.componentRef.instance[attr.name] = attr.value;
47
+ });
48
+ }
49
+ getElementAttributes() {
50
+ const attrs = this.elementRef.nativeElement.attributes;
51
+ const attributes = [];
52
+ for (let attr, i = 0; i < attrs.length; i++) {
53
+ attr = attrs[i];
54
+ if (attr.nodeName.match('^data-')) {
55
+ attributes.push({
56
+ name: this.camelCaseAttribute(attr.nodeName),
57
+ value: attr.nodeValue
58
+ });
59
+ }
60
+ }
61
+ return attributes;
62
+ }
63
+ camelCaseAttribute(attribute) {
64
+ const attr = attribute.replace('data-', '');
65
+ const chunks = attr.split('-');
66
+ if (chunks.length > 1) {
67
+ return chunks[0] + chunks.slice(1).map(chunk => chunk.replace(/^\w/, c => c.toUpperCase())).join('');
68
+ }
69
+ return attr;
70
+ }
71
+ listenToAttributeChanges() {
72
+ const observer = new MutationObserver(mutations => {
73
+ mutations.forEach(mutation => {
74
+ if (mutation.type === 'attributes') {
75
+ const attributes = this.getElementAttributes();
76
+ this.setAttributes(attributes);
77
+ }
78
+ });
79
+ });
80
+ observer.observe(this.elementRef.nativeElement, {
81
+ attributes: true
82
+ });
83
+ }
84
+ ngOnDestroy() {
85
+ this.componentRef.destroy();
86
+ this.ngElementEventsSubscription.unsubscribe();
87
+ }
88
+ }
89
+ NgxElementComponent.decorators = [
90
+ { type: Component, args: [{
91
+ selector: 'lib-ngx-element',
92
+ template: `
93
+ <ng-template #container></ng-template>
94
+ `
95
+ },] }
96
+ ];
97
+ NgxElementComponent.ctorParameters = () => [
98
+ { type: NgxElementService },
99
+ { type: ElementRef }
100
+ ];
101
+ NgxElementComponent.propDecorators = {
102
+ selector: [{ type: Input }],
103
+ container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef },] }]
104
+ };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L2FuZ3VsYXIgMTYvbmd4LWVsZW1lbnQtbWFzdGVyLWR6L3Byb2plY3RzL25neC1lbGVtZW50L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZWxlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxLQUFLLEVBR0wsU0FBUyxFQUNULGdCQUFnQixFQUloQixVQUFVLEVBRVYsa0JBQWtCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxLQUFLLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBU25DLE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsWUFDVSxpQkFBb0MsRUFDcEMsVUFBc0I7UUFEdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQzdCLENBQUM7SUFFSjs7O09BR0c7SUFDSyxpQkFBaUIsQ0FBQyxPQUE4QjtRQUN0RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUU7WUFDckUsTUFBTSxPQUFPLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFnQixDQUFDLFFBQVEsQ0FBc0IsQ0FBQztZQUNuRixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLEtB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RUFBRTtZQUM5QyxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7OztZQXZIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsUUFBUSxFQUFFOztHQUVUO2FBRUY7OztZQVZPLGlCQUFpQjtZQUp2QixVQUFVOzs7dUJBa0JULEtBQUs7d0JBQ0wsU0FBUyxTQUFDLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmLFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBPbkRlc3Ryb3ksXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsXG4gIFJlZmxlY3RpdmVJbmplY3RvclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tmd4RWxlbWVudFNlcnZpY2V9IGZyb20gJy4vbmd4LWVsZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge21lcmdlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5neC1lbGVtZW50JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5neEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBuZ0VsZW1lbnRFdmVudHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgQElucHV0KCkgc2VsZWN0b3I6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBjb250YWluZXI7XG5cbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgY29tcG9uZW50VG9Mb2FkOiBUeXBlPGFueT47XG4gIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xuICBpbmplY3RvcjogSW5qZWN0b3I7XG4gIHJlZkluamVjdG9yOiBSZWZsZWN0aXZlSW5qZWN0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ3hFbGVtZW50U2VydmljZTogTmd4RWxlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGV2ZW50IGVtaXR0ZXJzIG9mIGEgbGF6eSBsb2FkZWQgYW5kIGR5bmFtaWNhbGx5IGluc3RhbnRpYXRlZCBBbmd1bGFyIGNvbXBvbmVudFxuICAgKiBhbmQgZGlzcGF0Y2ggdGhlbSBhcyBDdXN0b20gRXZlbnRzIG9uIHRoZSBOZ3hFbGVtZW50Q29tcG9uZW50IHRoYXQgaXMgdXNlZCBpbiBhIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRQcm94aWVkT3V0cHV0cyhmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudEVtaXR0ZXJzID0gZmFjdG9yeS5vdXRwdXRzLm1hcCgoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSA9PiB7XG4gICAgICBjb25zdCBlbWl0dGVyID0gKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSlbcHJvcE5hbWVdIGFzIEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgICAgcmV0dXJuIGVtaXR0ZXIucGlwZShtYXAoKHZhbHVlOiBhbnkpID0+ICh7bmFtZTogdGVtcGxhdGVOYW1lLCB2YWx1ZX0pKSk7XG4gICAgfSk7XG4gICAgY29uc3Qgb3V0cHV0RXZlbnRzID0gbWVyZ2UoLi4uZXZlbnRFbWl0dGVycyk7XG4gICAgdGhpcy5uZ0VsZW1lbnRFdmVudHNTdWJzY3JpcHRpb24gPSBvdXRwdXRFdmVudHMuc3Vic2NyaWJlKHN1YnNjcmlwdGlvbiA9PiB7XG4gICAgICBjb25zdCBjdXN0b21FdmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgICAgY3VzdG9tRXZlbnQuaW5pdEN1c3RvbUV2ZW50KHN1YnNjcmlwdGlvbi5uYW1lLCBmYWxzZSwgZmFsc2UsIHN1YnNjcmlwdGlvbi52YWx1ZSk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmd4RWxlbWVudFNlcnZpY2UuZ2V0Q29tcG9uZW50VG9Mb2FkKHRoaXMuc2VsZWN0b3IpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudFRvTG9hZCA9IGV2ZW50LmNvbXBvbmVudENsYXNzO1xuICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSB0aGlzLm5neEVsZW1lbnRTZXJ2aWNlLmdldENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcih0aGlzLmNvbXBvbmVudFRvTG9hZCk7XG4gICAgICB0aGlzLmluamVjdG9yID0gdGhpcy5uZ3hFbGVtZW50U2VydmljZS5nZXRJbmplY3Rvcih0aGlzLmNvbXBvbmVudFRvTG9hZCk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmdldEVsZW1lbnRBdHRyaWJ1dGVzKCk7XG4gICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChhdHRyaWJ1dGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUNvbXBvbmVudChhdHRyaWJ1dGVzKSB7XG4gICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRUb0xvYWQpO1xuXG4gICAgdGhpcy5yZWZJbmplY3RvciA9IFJlZmxlY3RpdmVJbmplY3Rvci5yZXNvbHZlQW5kQ3JlYXRlKFxuICAgICAgW3twcm92aWRlOiB0aGlzLmNvbXBvbmVudFRvTG9hZCwgdXNlVmFsdWU6IHRoaXMuY29tcG9uZW50VG9Mb2FkfV0sIHRoaXMuaW5qZWN0b3JcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDAsIHRoaXMucmVmSW5qZWN0b3IpO1xuXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpO1xuICAgIHRoaXMubGlzdGVuVG9BdHRyaWJ1dGVDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZXRQcm94aWVkT3V0cHV0cyhmYWN0b3J5KTtcbiAgfVxuXG4gIHNldEF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuICAgIGF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RWxlbWVudEF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgYXR0cnMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hdHRyaWJ1dGVzO1xuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIGZvciAobGV0IGF0dHIsIGkgPSAwOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGF0dHIgPSBhdHRyc1tpXTtcblxuICAgICAgaWYgKGF0dHIubm9kZU5hbWUubWF0Y2goJ15kYXRhLScpKSB7XG4gICAgICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICAgICAgbmFtZTogdGhpcy5jYW1lbENhc2VBdHRyaWJ1dGUoYXR0ci5ub2RlTmFtZSksXG4gICAgICAgICAgdmFsdWU6IGF0dHIubm9kZVZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICB9XG5cbiAgY2FtZWxDYXNlQXR0cmlidXRlKGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZS5yZXBsYWNlKCdkYXRhLScsICcnKTtcbiAgICBjb25zdCBjaHVua3MgPSBhdHRyLnNwbGl0KCctJyk7XG5cbiAgICBpZiAoY2h1bmtzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBjaHVua3NbMF0gKyBjaHVua3Muc2xpY2UoMSkubWFwKGNodW5rID0+IGNodW5rLnJlcGxhY2UoL15cXHcvLCBjID0+IGMudG9VcHBlckNhc2UoKSkpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIHJldHVybiBhdHRyO1xuICB9XG5cbiAgbGlzdGVuVG9BdHRyaWJ1dGVDaGFuZ2VzKCkge1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAgICAgIG11dGF0aW9ucy5mb3JFYWNoKG11dGF0aW9uID0+IHtcbiAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdhdHRyaWJ1dGVzJykge1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB0aGlzLmdldEVsZW1lbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLm5nRWxlbWVudEV2ZW50c1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59Il19
@@ -0,0 +1,33 @@
1
+ import { NgModule, Injector } 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
+ export class NgxElementModule {
6
+ constructor(injector) {
7
+ this.injector = injector;
8
+ const ngxElement = createCustomElement(NgxElementComponent, { injector });
9
+ customElements.define('ngx-element', ngxElement);
10
+ }
11
+ static forRoot(modulePaths) {
12
+ return {
13
+ ngModule: NgxElementModule,
14
+ providers: [
15
+ {
16
+ provide: LAZY_CMPS_PATH_TOKEN,
17
+ useValue: modulePaths
18
+ }
19
+ ]
20
+ };
21
+ }
22
+ ngDoBootstrap() { }
23
+ }
24
+ NgxElementModule.decorators = [
25
+ { type: NgModule, args: [{
26
+ declarations: [NgxElementComponent],
27
+ entryComponents: [NgxElementComponent]
28
+ },] }
29
+ ];
30
+ NgxElementModule.ctorParameters = () => [
31
+ { type: Injector }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L2FuZ3VsYXIgMTYvbmd4LWVsZW1lbnQtbWFzdGVyLWR6L3Byb2plY3RzL25neC1lbGVtZW50L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZWxlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU1oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQWtCO1FBQy9CLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQUUsV0FBVztpQkFDdEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxLQUFJLENBQUM7OztZQXZCbkIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNuQyxlQUFlLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUN2Qzs7O1lBUmtCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBOZ3hFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3gtZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTEFaWV9DTVBTX1BBVEhfVE9LRU4gfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW05neEVsZW1lbnRDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOZ3hFbGVtZW50Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hFbGVtZW50TW9kdWxlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGNvbnN0IG5neEVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KE5neEVsZW1lbnRDb21wb25lbnQsIHsgaW5qZWN0b3IgfSk7XG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCduZ3gtZWxlbWVudCcsIG5neEVsZW1lbnQpO1xuICB9XG5cbiAgc3RhdGljIGZvclJvb3QobW9kdWxlUGF0aHM6IGFueVtdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hFbGVtZW50TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hFbGVtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0NNUFNfUEFUSF9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogbW9kdWxlUGF0aHNcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBuZ0RvQm9vdHN0cmFwKCkge31cbn1cbiJdfQ==
@@ -0,0 +1,136 @@
1
+ import { Injectable, Inject, NgModuleFactory, Compiler, Injector, 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
+ import * as i1 from "./tokens";
6
+ export class NgxElementService {
7
+ constructor(modulePaths, compiler, injector) {
8
+ this.compiler = compiler;
9
+ this.injector = injector;
10
+ this.loadedComponents = new Map();
11
+ this.elementsLoading = new Map();
12
+ this.injectors = new Map();
13
+ this.componentFactoryResolvers = new Map();
14
+ const ELEMENT_MODULE_PATHS = new Map();
15
+ modulePaths.forEach(route => {
16
+ ELEMENT_MODULE_PATHS.set(route.selector, route);
17
+ });
18
+ this.componentsToLoad = ELEMENT_MODULE_PATHS;
19
+ }
20
+ receiveContext(component, injector) {
21
+ this.injectors.set(component, injector);
22
+ this.componentFactoryResolvers.set(component, injector.get(ComponentFactoryResolver));
23
+ }
24
+ getInjector(component) {
25
+ return this.injectors.get(component);
26
+ }
27
+ getComponentFactoryResolver(component) {
28
+ return this.componentFactoryResolvers.get(component);
29
+ }
30
+ getComponentsToLoad() {
31
+ return this.componentsToLoad;
32
+ }
33
+ getComponentToLoad(selector) {
34
+ // Returns observable that completes when the lazy module has been loaded.
35
+ const registered = this.loadComponent(selector);
36
+ return from(registered);
37
+ }
38
+ /**
39
+ * Allows to lazy load a component given its selector.
40
+ * If the component selector has been registered, it's according module
41
+ * will be fetched lazily
42
+ * @param componentTag selector of the component to load
43
+ */
44
+ loadComponent(componentSelector) {
45
+ if (this.elementsLoading.has(componentSelector)) {
46
+ return this.elementsLoading.get(componentSelector);
47
+ }
48
+ if (this.componentsToLoad.has(componentSelector)) {
49
+ const cmpRegistryEntry = this.componentsToLoad.get(componentSelector);
50
+ const path = cmpRegistryEntry.loadChildren;
51
+ const loadPromise = new Promise((resolve, reject) => {
52
+ path()
53
+ .then(elementModuleOrFactory => {
54
+ /**
55
+ * With View Engine, the NgModule factory is created and provided when loaded.
56
+ * With Ivy, only the NgModule class is provided loaded and must be compiled.
57
+ * This uses the same mechanism as the deprecated `SystemJsNgModuleLoader` in
58
+ * in `packages/core/src/linker/system_js_ng_module_factory_loader.ts`
59
+ * to pass on the NgModuleFactory, or compile the NgModule and return its NgModuleFactory.
60
+ */
61
+ if (elementModuleOrFactory instanceof NgModuleFactory) {
62
+ return elementModuleOrFactory;
63
+ }
64
+ else {
65
+ try {
66
+ return this.compiler.compileModuleAsync(elementModuleOrFactory);
67
+ }
68
+ catch (err) {
69
+ // return the error
70
+ reject(err);
71
+ // break the promise chain
72
+ throw err;
73
+ }
74
+ }
75
+ })
76
+ .then(moduleFactory => {
77
+ const elementModuleRef = moduleFactory.create(this.injector);
78
+ let componentClass;
79
+ if (typeof elementModuleRef.instance.customElementComponent === 'object') {
80
+ componentClass = elementModuleRef.instance.customElementComponent[componentSelector];
81
+ if (!componentClass) {
82
+ // tslint:disable-next-line: no-string-throw
83
+ throw `You specified multiple component elements in module ${elementModuleRef} but there was no match for tag
84
+ ${componentSelector} in ${JSON.stringify(elementModuleRef.instance.customElementComponent)}.
85
+ Make sure the selector in the module is aligned with the one specified in the lazy module definition.`;
86
+ }
87
+ }
88
+ else {
89
+ componentClass = elementModuleRef.instance.customElementComponent;
90
+ }
91
+ // Register injector of the lazy module.
92
+ // This is needed to share the entryComponents between the lazy module and the application
93
+ const moduleInjector = elementModuleRef.injector;
94
+ this.receiveContext(componentClass, moduleInjector);
95
+ this.loadedComponents.set(componentSelector, componentClass);
96
+ this.elementsLoading.delete(componentSelector);
97
+ this.componentsToLoad.delete(componentSelector);
98
+ resolve({
99
+ selector: componentSelector,
100
+ componentClass
101
+ });
102
+ })
103
+ .catch(err => {
104
+ this.elementsLoading.delete(componentSelector);
105
+ return Promise.reject(err);
106
+ });
107
+ });
108
+ this.elementsLoading.set(componentSelector, loadPromise);
109
+ return loadPromise;
110
+ }
111
+ else if (this.loadedComponents.has(componentSelector)) {
112
+ // component already loaded
113
+ return new Promise(resolve => {
114
+ resolve({
115
+ selector: componentSelector,
116
+ componentClass: this.loadedComponents.get(componentSelector)
117
+ });
118
+ });
119
+ }
120
+ else {
121
+ throw new Error(`Unrecognized component "${componentSelector}". Make sure it is registered in the component registry`);
122
+ }
123
+ }
124
+ }
125
+ NgxElementService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxElementService_Factory() { return new NgxElementService(i0.ɵɵinject(i1.LAZY_CMPS_PATH_TOKEN), i0.ɵɵinject(i0.Compiler), i0.ɵɵinject(i0.INJECTOR)); }, token: NgxElementService, providedIn: "root" });
126
+ NgxElementService.decorators = [
127
+ { type: Injectable, args: [{
128
+ providedIn: 'root'
129
+ },] }
130
+ ];
131
+ NgxElementService.ctorParameters = () => [
132
+ { type: Array, decorators: [{ type: Inject, args: [LAZY_CMPS_PATH_TOKEN,] }] },
133
+ { type: Compiler },
134
+ { type: Injector }
135
+ ];
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVsZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9hbmd1bGFyIDE2L25neC1lbGVtZW50LW1hc3Rlci1kei9wcm9qZWN0cy9uZ3gtZWxlbWVudC9zcmMvIiwic291cmNlcyI6WyJsaWIvbmd4LWVsZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQVEsUUFBUSxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsb0JBQW9CLEVBQW9CLE1BQU0sVUFBVSxDQUFDO0FBRWxFLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt4QyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLFlBRUUsV0FFRyxFQUNLLFFBQWtCLEVBQ2xCLFFBQWtCO1FBRGxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVpwQixxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFDO1FBRXpFLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUMzQyw4QkFBeUIsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztRQVV6RSxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDcEQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQW9CLEVBQUUsUUFBa0I7UUFDckQsSUFBSSxDQUFDLFNB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LENBQUM7U0FDSDtJQUNILENBQUM7Ozs7WUE5SUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7d0NBVUksTUFBTSxTQUFDLG9CQUFvQjtZQWpCb0IsUUFBUTtZQUFFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE5nTW9kdWxlRmFjdG9yeSwgVHlwZSwgQ29tcGlsZXIsIEluamVjdG9yLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExBWllfQ01QU19QQVRIX1RPS0VOLCBMYXp5Q29tcG9uZW50RGVmIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHsgTGF6eUNtcExvYWRlZEV2ZW50IH0gZnJvbSAnLi9sYXp5LWNvbXBvbmVudC1sb2FkZWQtZXZlbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hFbGVtZW50U2VydmljZSB7XG4gIHByaXZhdGUgY29tcG9uZW50c1RvTG9hZDogTWFwPHN0cmluZywgTGF6eUNvbXBvbmVudERlZj47XG4gIHByaXZhdGUgbG9hZGVkQ29tcG9uZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlPGFueT4+KCk7XG4gIHByaXZhdGUgZWxlbWVudHNMb2FkaW5nID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8TGF6eUNtcExvYWRlZEV2ZW50Pj4oKTtcblxuICBpbmplY3RvcnMgPSBuZXcgTWFwPFR5cGU8YW55PiwgSW5qZWN0b3I+KCk7XG4gIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcnMgPSBuZXcgTWFwPFR5cGU8YW55PiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTEFaWV9DTVBTX1BBVEhfVE9LRU4pXG4gICAgbW9kdWxlUGF0aHM6IHtcbiAgICAgIHNlbGVjdG9yOiBzdHJpbmdcbiAgICB9W10sXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgY29uc3QgRUxFTUVOVF9NT0RVTEVfUEFUSFMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICAgIG1vZHVsZVBhdGhzLmZvckVhY2gocm91dGUgPT4ge1xuICAgICAgRUxFTUVOVF9NT0RVTEVfUEFUSFMuc2V0KHJvdXRlLnNlbGVjdG9yLCByb3V0ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbXBvbmVudHNUb0xvYWQgPSBFTEVNRU5UX01PRFVMRV9QQVRIUztcbiAgfVxuXG4gIHJlY2VpdmVDb250ZXh0KGNvbXBvbmVudDogVHlwZTxhbnk+LCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmluamVjdG9ycy5zZXQoY29tcG9uZW50LCBpbmplY3Rvcik7XG4gICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJzLnNldChjb21wb25lbnQsIGluamVjdG9yLmdldChDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpKTtcbiAgfVxuXG4gIGdldEluamVjdG9yKGNvbXBvbmVudDogVHlwZTxhbnk+KTogSW5qZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLmluamVjdG9ycy5nZXQoY29tcG9uZW50KTtcbiAgfVxuXG4gIGdldENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcihjb21wb25lbnQ6IFR5cGU8YW55Pik6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVycy5nZXQoY29tcG9uZW50KTtcbiAgfVxuXG4gIGdldENvbXBvbmVudHNUb0xvYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50c1RvTG9hZDtcbiAgfVxuXG4gIGdldENvbXBvbmVudFRvTG9hZChzZWxlY3Rvcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxMYXp5Q21wTG9hZGVkRXZlbnQ+IHtcbiAgICAvLyBSZXR1cm5zIG9ic2VydmFibGUgdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgbGF6eSBtb2R1bGUgaGFzIGJlZW4gbG9hZGVkLlxuICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSB0aGlzLmxvYWRDb21wb25lbnQoc2VsZWN0b3IpO1xuICAgIHJldHVybiBmcm9tKHJlZ2lzdGVyZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBsYXp5IGxvYWQgYSBjb21wb25lbnQgZ2l2ZW4gaXRzIHNlbGVjdG9yLlxuICAgKiBJZiB0aGUgY29tcG9uZW50IHNlbGVjdG9yIGhhcyBiZWVuIHJlZ2lzdGVyZWQsIGl0J3MgYWNjb3JkaW5nIG1vZHVsZVxuICAgKiB3aWxsIGJlIGZldGNoZWQgbGF6aWx5XG4gICAqIEBwYXJhbSBjb21wb25lbnRUYWcgc2VsZWN0b3Igb2YgdGhlIGNvbXBvbmVudCB0byBsb2FkXG4gICAqL1xuICBsb2FkQ29tcG9uZW50KGNvbXBvbmVudFNlbGVjdG9yOiBzdHJpbmcpOiBQcm9taXNlPExhenlDbXBMb2FkZWRFdmVudD4ge1xuICAgIGlmICh0aGlzLmVsZW1lbnRzTG9hZGluZy5oYXMoY29tcG9uZW50U2VsZWN0b3IpKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50c0xvYWRpbmcuZ2V0KGNvbXBvbmVudFNlbGVjdG9yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb21wb25lbnRzVG9Mb2FkLmhhcyhjb21wb25lbnRTZWxlY3RvcikpIHtcbiAgICAgIGNvbnN0IGNtcFJlZ2lzdHJ5RW50cnkgPSB0aGlzLmNvbXBvbmVudHNUb0xvYWQuZ2V0KGNvbXBvbmVudFNlbGVjdG9yKTtcbiAgICAgIGNvbnN0IHBhdGggPSBjbXBSZWdpc3RyeUVudHJ5LmxvYWRDaGlsZHJlbjtcblxuICAgICAgY29uc3QgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTxMYXp5Q21wTG9hZGVkRXZlbnQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgKHBhdGgoKSBhcyBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTxhbnk+IHwgVHlwZTxhbnk+PilcbiAgICAgICAgICAudGhlbihlbGVtZW50TW9kdWxlT3JGYWN0b3J5ID0+IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2l0aCBWaWV3IEVuZ2luZSwgdGhlIE5nTW9kdWxlIGZhY3RvcnkgaXMgY3JlYXRlZCBhbmQgcHJvdmlkZWQgd2hlbiBsb2FkZWQuXG4gICAgICAgICAgICAgKiBXaXRoIEl2eSwgb25seSB0aGUgTmdNb2R1bGUgY2xhc3MgaXMgcHJvdmlkZWQgbG9hZGVkIGFuZCBtdXN0IGJlIGNvbXBpbGVkLlxuICAgICAgICAgICAgICogVGhpcyB1c2VzIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0aGUgZGVwcmVjYXRlZCBgU3lzdGVtSnNOZ01vZHVsZUxvYWRlcmAgaW5cbiAgICAgICAgICAgICAqIGluIGBwYWNrYWdlcy9jb3JlL3NyYy9saW5rZXIvc3lzdGVtX2pzX25nX21vZHVsZV9mYWN0b3J5X2xvYWRlci50c2BcbiAgICAgICAgICAgICAqIHRvIHBhc3Mgb24gdGhlIE5nTW9kdWxlRmFjdG9yeSwgb3IgY29tcGlsZSB0aGUgTmdNb2R1bGUgYW5kIHJldHVybiBpdHMgTmdNb2R1bGVGYWN0b3J5LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZWxlbWVudE1vZHVsZU9yRmFjdG9yeSBpbnN0YW5jZW9mIE5nTW9kdWxlRmFjdG9yeSkge1xuICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudE1vZHVsZU9yRmFjdG9yeTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKGVsZW1lbnRNb2R1bGVPckZhY3RvcnkpO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIGVycm9yXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgICAgICAvLyBicmVhayB0aGUgcHJvbWlzZSBjaGFpblxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4obW9kdWxlRmFjdG9yeSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRNb2R1bGVSZWYgPSBtb2R1bGVGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudENsYXNzO1xuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgZWxlbWVudE1vZHVsZVJlZi5pbnN0YW5jZS5jdXN0b21FbGVtZW50Q29tcG9uZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudENsYXNzID0gZWxlbWVudE1vZHVsZVJlZi5pbnN0YW5jZS5jdXN0b21FbGVtZW50Q29tcG9uZW50W2NvbXBvbmVudFNlbGVjdG9yXTtcblxuICAgICAgICAgICAgICAgIGlmICghY29tcG9uZW50Q2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tc3RyaW5nLXRocm93XG4gICAgICAgICAgICAgICAgICB0aHJvdyBgWW91IHNwZWNpZmllZCBtdWx0aXBsZSBjb21wb25lbnQgZWxlbWVudHMgaW4gbW9kdWxlICR7ZWxlbWVudE1vZHVsZVJlZn0gYnV0IHRoZXJlIHdhcyBubyBtYXRjaCBmb3IgdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICAke2NvbXBvbmVudFNlbGVjdG9yfSBpbiAke0pTT04uc3RyaW5naWZ5KGVsZW1lbnRNb2R1bGVSZWYuaW5zdGFuY2UuY3VzdG9tRWxlbWVudENvbXBvbmVudCl9LlxuICAgICAgICAgICAgICAgICAgICAgICAgIE1ha2Ugc3VyZSB0aGUgc2VsZWN0b3IgaW4gdGhlIG1vZHVsZSBpcyBhbGlnbmVkIHdpdGggdGhlIG9uZSBzcGVjaWZpZWQgaW4gdGhlIGxhenkgbW9kdWxlIGRlZmluaXRpb24uYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Q2xhc3MgPSBlbGVtZW50TW9kdWxlUmVmLmluc3RhbmNlLmN1c3RvbUVsZW1lbnRDb21wb25lbnQ7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBSZWdpc3RlciBpbmplY3RvciBvZiB0aGUgbGF6eSBtb2R1bGUuXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIHNoYXJlIHRoZSBlbnRyeUNvbXBvbmVudHMgYmV0d2VlbiB0aGUgbGF6eSBtb2R1bGUgYW5kIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICBjb25zdCBtb2R1bGVJbmplY3RvciA9IGVsZW1lbnRNb2R1bGVSZWYuaW5qZWN0b3I7XG4gICAgICAgICAgICAgIHRoaXMucmVjZWl2ZUNvbnRleHQoY29tcG9uZW50Q2xhc3MsIG1vZHVsZUluamVjdG9yKTtcblxuICAgICAgICAgICAgICB0aGlzLmxvYWRlZENvbXBvbmVudHMuc2V0KGNvbXBvbmVudFNlbGVjdG9yLCBjb21wb25lbnRDbGFzcyk7XG4gICAgICAgICAgICAgIHRoaXMuZWxlbWVudHNMb2FkaW5nLmRlbGV0ZShjb21wb25lbnRTZWxlY3Rvcik7XG4gICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50c1RvTG9hZC5kZWxldGUoY29tcG9uZW50U2VsZWN0b3IpO1xuXG4gICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiBjb21wb25lbnRTZWxlY3RvcixcbiAgICAgICAgICAgICAgICBjb21wb25lbnRDbGFzc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50c0xvYWRpbmcuZGVsZXRlKGNvbXBvbmVudFNlbGVjdG9yKTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkaW5nLnNldChjb21wb25lbnRTZWxlY3RvciwgbG9hZFByb21pc2UpO1xuICAgICAgcmV0dXJuIGxvYWRQcm9taXNlO1xuXG4gICAgfSBlbHNlIGlmICh0aGlzLmxvYWRlZENvbXBvbmVudHMuaGFzKGNvbXBvbmVudFNlbGVjdG9yKSkge1xuICAgICAgLy8gY29tcG9uZW50IGFscmVhZHkgbG9hZGVkXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIHNlbGVjdG9yOiBjb21wb25lbnRTZWxlY3RvcixcbiAgICAgICAgICBjb21wb25lbnRDbGFzczogdGhpcy5sb2FkZWRDb21wb25lbnRzLmdldChjb21wb25lbnRTZWxlY3RvcilcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5yZWNvZ25pemVkIGNvbXBvbmVudCBcIiR7Y29tcG9uZW50U2VsZWN0b3J9XCIuIE1ha2Ugc3VyZSBpdCBpcyByZWdpc3RlcmVkIGluIHRoZSBjb21wb25lbnQgcmVnaXN0cnlgXG4gICAgICApO1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IkQ6L2FuZ3VsYXIgMTYvbmd4LWVsZW1lbnQtbWFzdGVyLWR6L3Byb2plY3RzL25neC1lbGVtZW50L3NyYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQywwREFBMEQ7QUFDMUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkQ2hpbGRyZW5DYWxsYmFjayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8qIEluamVjdGlvbiB0b2tlbiB0byBwcm92aWRlIHRoZSBlbGVtZW50IHBhdGggbW9kdWxlcy4gKi9cbmV4cG9ydCBjb25zdCBMQVpZX0NNUFNfUEFUSF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignbmd4LWxhenktY21wLXJlZ2lzdHJ5Jyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUNvbXBvbmVudERlZiB7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGxvYWRDaGlsZHJlbjogTG9hZENoaWxkcmVuQ2FsbGJhY2s7IC8vIHByb3AgbmVlZHMgdG8gYmUgbmFtZWQgbGlrZSB0aGlzXG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of ngx-element
3
+ */
4
+ export * from './lib/ngx-element.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJEOi9hbmd1bGFyIDE2L25neC1lbGVtZW50LW1hc3Rlci1kei9wcm9qZWN0cy9uZ3gtZWxlbWVudC9zcmMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWVsZW1lbnRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtZWxlbWVudC5tb2R1bGUnO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ export { NgxElementComponent as ɵa } from './lib/ngx-element.component';
6
+ export { NgxElementService as ɵb } from './lib/ngx-element.service';
7
+ export { LAZY_CMPS_PATH_TOKEN as ɵc } from './lib/tokens';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemRpZ2FtYmFyLW5neC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L2FuZ3VsYXIgMTYvbmd4LWVsZW1lbnQtbWFzdGVyLWR6L3Byb2plY3RzL25neC1lbGVtZW50L3NyYy8iLCJzb3VyY2VzIjpbInpkaWdhbWJhci1uZ3gtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtOZ3hFbGVtZW50Q29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvbmd4LWVsZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCB7Tmd4RWxlbWVudFNlcnZpY2UgYXMgybVifSBmcm9tICcuL2xpYi9uZ3gtZWxlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7TEFaWV9DTVBTX1BBVEhfVE9LRU4gYXMgybVjfSBmcm9tICcuL2xpYi90b2tlbnMnOyJdfQ==