Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@angular-extensions/elements

Package Overview
Dependencies
Maintainers
3
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular-extensions/elements - npm Package Compare versions

Comparing version 0.3.7 to 6.1.0

esm2015/lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive.js

6

angular-extensions-elements.d.ts

@@ -5,3 +5,5 @@ /**

export * from './public-api';
export { LazyElementDirective as ɵa } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { LazyElementsLoaderService as ɵb } from './lib/lazy-elements/lazy-elements-loader.service';
export { LazyElementDynamicDirective as ɵg } from './lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive';
export { LazyElementDirective as ɵd } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { ElementConfig as ɵe, LazyElementsLoaderService as ɵf } from './lib/lazy-elements/lazy-elements-loader.service';
export { LAZY_ELEMENT_CONFIGS as ɵa, LAZY_ELEMENT_ROOT_GUARD as ɵc, LAZY_ELEMENT_ROOT_OPTIONS as ɵb } from './lib/lazy-elements/lazy-elements.tokens';

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"LazyElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":12}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[axLazyElement]"}]}],"members":{"url":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["axLazyElement"]}]}],"loadingTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3},"arguments":["axLazyElementLoading"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":12,"character":17},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"loadElement":[{"__symbolic":"method"}],"addElement":[{"__symbolic":"method"}],"hasElement":[{"__symbolic":"method"}],"stripUrlProtocol":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"LazyElementsModule":"./lib/lazy-elements/lazy-elements.module","ɵa":"./lib/lazy-elements/lazy-element/lazy-element.directive","ɵb":"./lib/lazy-elements/lazy-elements-loader.service"},"importAs":"@angular-extensions/elements"}
{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":5,"character":40},"arguments":["LAZY_ELEMENT_CONFIGS"]},"ɵb":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":45},"arguments":["LAZY_ELEMENT_ROOT_OPTIONS"]},"ɵc":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":43},"arguments":["LAZY_ELEMENT_ROOT_GUARD"]},"LAZY_ELEMENTS_REGISTRY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":42},"arguments":["Lazu elements registry",{"__symbolic":"error","message":"Lambda not supported","line":21,"character":13,"module":"./lib/lazy-elements/lazy-elements.tokens"}]},"LazyElementsRegistry":{"__symbolic":"interface"},"createLazyElementRootGuard":{"__symbolic":"function"},"LazyElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":36,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":38,"character":12}],"exports":[{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵg"}],"providers":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":92,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":93,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵa"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":95,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":96,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵc"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵe"}]}]},{"__symbolic":"reference","name":"any"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵa"},"useValue":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"reference","name":"options"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"elementConfigs"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"elementConfigs"},"elseExpression":[]},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵb"},"useValue":{"__symbolic":"if","condition":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"rootOptions"},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"rootOptions"},"elseExpression":{}}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ANALYZE_FOR_ENTRY_COMPONENTS","line":58,"character":19},"useValue":{"__symbolic":"reference","name":"options"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵc"},"useFactory":{"__symbolic":"reference","name":"createLazyElementRootGuard"},"deps":[[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":65,"character":44}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":65,"character":60}}]]}]}},"forFeature":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"ɵa"},"useValue":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"reference","name":"options"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"elementConfigs"}},"thenExpression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"elementConfigs"},"elseExpression":[]},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ANALYZE_FOR_ENTRY_COMPONENTS","line":82,"character":19},"useValue":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"reference","name":"options"},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"elementConfigs"}},"multi":true}]}}}},"LazyElementModuleOptions":{"__symbolic":"interface"},"LazyElementModuleRootOptions":{"__symbolic":"interface"},"LazyElementRootOptions":{"__symbolic":"interface"},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1},"arguments":[{"selector":"[axLazyElement]"}]}],"members":{"url":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["axLazyElement"]}]}],"loadingTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["axLazyElementLoadingTemplate"]}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3},"arguments":["axLazyElementErrorTemplate"]}]}],"isModule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3},"arguments":["axLazyElementModule"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":27,"character":17},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":30,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":31,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"interface"},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENTS_REGISTRY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":28,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵb"}]}]],"parameters":[{"__symbolic":"reference","name":"LazyElementsRegistry"},{"__symbolic":"reference","name":"LazyElementRootOptions"}]}],"addConfigs":[{"__symbolic":"method"}],"getElementConfig":[{"__symbolic":"method"}],"preload":[{"__symbolic":"method"}],"loadElement":[{"__symbolic":"method"}],"addElement":[{"__symbolic":"method"}],"hasElement":[{"__symbolic":"method"}],"stripUrlProtocol":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":17,"character":1},"arguments":[{"selector":"[axLazyElementDynamic]"}]}],"members":{"tag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["axLazyElementDynamic"]}]}],"url":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["axLazyElementDynamicUrl"]}]}],"loadingTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3},"arguments":["axLazyElementDynamicLoadingTemplate"]}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3},"arguments":["axLazyElementDynamicErrorTemplate"]}]}],"isModule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3},"arguments":["axLazyElementDynamicModule"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":32,"character":17},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":35,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":36,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"ɵa":"./lib/lazy-elements/lazy-elements.tokens","ɵb":"./lib/lazy-elements/lazy-elements.tokens","ɵc":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENTS_REGISTRY":"./lib/lazy-elements/lazy-elements.tokens","LazyElementsRegistry":"./lib/lazy-elements/lazy-elements.tokens","createLazyElementRootGuard":"./lib/lazy-elements/lazy-elements.module","LazyElementsModule":"./lib/lazy-elements/lazy-elements.module","LazyElementModuleOptions":"./lib/lazy-elements/lazy-elements.module","LazyElementModuleRootOptions":"./lib/lazy-elements/lazy-elements.module","LazyElementRootOptions":"./lib/lazy-elements/lazy-elements.module","ɵd":"./lib/lazy-elements/lazy-element/lazy-element.directive","ɵe":"./lib/lazy-elements/lazy-elements-loader.service","ɵf":"./lib/lazy-elements/lazy-elements-loader.service","ɵg":"./lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive"},"importAs":"@angular-extensions/elements"}
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :
typeof define === 'function' && define.amd ? define('@angular-extensions/elements', ['exports', '@angular/core', '@angular/common'], factory) :
(global = global || self, factory((global['angular-extensions'] = global['angular-extensions'] || {}, global['angular-extensions'].elements = {}), global.ng.core, global.ng.common));
}(this, function (exports, core, common) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core')) :
typeof define === 'function' && define.amd ? define('@angular-extensions/elements', ['exports', '@angular/common', '@angular/core'], factory) :
(factory((global['angular-extensions'] = global['angular-extensions'] || {}, global['angular-extensions'].elements = {}),global.ng.common,global.ng.core));
}(this, (function (exports,common,i0) { 'use strict';

@@ -12,10 +12,104 @@ /**

/** @type {?} */
var LAZY_ELEMENT_CONFIGS = new i0.InjectionToken('LAZY_ELEMENT_CONFIGS');
/** @type {?} */
var LAZY_ELEMENT_ROOT_OPTIONS = new i0.InjectionToken('LAZY_ELEMENT_ROOT_OPTIONS');
/** @type {?} */
var LAZY_ELEMENT_ROOT_GUARD = new i0.InjectionToken('LAZY_ELEMENT_ROOT_GUARD');
/** @type {?} */
var LAZY_ELEMENTS_REGISTRY = new i0.InjectionToken('Lazu elements registry', {
providedIn: 'root',
factory: ( /**
* @return {?}
*/function () { return new Map(); })
});
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var LOG_PREFIX = '@angular-extensions/elements';
var LazyElementsLoaderService = /** @class */ (function () {
function LazyElementsLoaderService() {
this.registry = new Map();
function LazyElementsLoaderService(registry, options) {
this.registry = registry;
this.options = options;
this.configs = [];
if (!options) {
this.options = {};
}
}
/**
* @param {?} newConfigs
* @return {?}
*/
LazyElementsLoaderService.prototype.addConfigs = /**
* @param {?} newConfigs
* @return {?}
*/
function (newConfigs) {
var _this = this;
newConfigs.forEach(( /**
* @param {?} newConfig
* @return {?}
*/function (newConfig) {
/** @type {?} */
var existingConfig = _this.getElementConfig(newConfig.tag);
if (existingConfig) {
console.warn(LOG_PREFIX + " - ElementConfig for tag '" + newConfig.tag + "' was previously added, it will not be added multiple times, continue...");
}
else {
_this.configs.push(newConfig);
/** @type {?} */
var shouldPreload = newConfig.preload !== undefined
? newConfig.preload
: _this.options.preload;
if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
}
}
}));
};
/**
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.getElementConfig = /**
* @param {?} tag
* @return {?}
*/
function (tag) {
return this.configs.find(( /**
* @param {?} config
* @return {?}
*/function (config) { return config.tag === tag; }));
};
/**
* @param {?=} tags
* @return {?}
*/
LazyElementsLoaderService.prototype.preload = /**
* @param {?=} tags
* @return {?}
*/
function (tags) {
var _this = this;
/** @type {?} */
var configs = this.configs;
if (tags) {
configs = this.configs.filter(( /**
* @param {?} config
* @return {?}
*/function (config) { return tags.includes(config.tag); }));
}
configs.forEach(( /**
* @param {?} config
* @return {?}
*/function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
}));
};
/**
* @param {?} url
* @param {?} tag
* @param {?=} isModule
* @return {?}

@@ -26,22 +120,38 @@ */

* @param {?} tag
* @param {?=} isModule
* @return {?}
*/
function (url, tag) {
if (!url) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
}
if (!tag) {
throw new Error(LOG_PREFIX + " - tag for '" + url + "' not found, the *axLazyElement has to be used on HTML element");
}
if (!this.hasElement(url)) {
function (url, tag, isModule) {
/** @type {?} */
var notifier = this.addElement(url);
/** @type {?} */
var script = (/** @type {?} */ (document.createElement('script')));
script.src = url;
script.onload = notifier;
document.body.appendChild(script);
}
return this.registry.get(this.stripUrlProtocol(url));
};
var config = this.getElementConfig(tag);
if (!url) {
if (!config) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
}
url = config.url;
}
if (isModule === undefined) {
isModule =
config && config.isModule !== undefined
? config.isModule
: this.options.isModule;
}
if (!tag) {
throw new Error(LOG_PREFIX + " - tag for '" + url + "' not found, the *axLazyElement has to be used on HTML element");
}
if (!this.hasElement(url)) {
/** @type {?} */
var notifier = this.addElement(url);
/** @type {?} */
var script = ( /** @type {?} */(document.createElement('script')));
if (isModule) {
script.type = 'module';
}
script.src = url;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);
}
return this.registry.get(this.stripUrlProtocol(url));
};
/**

@@ -57,12 +167,12 @@ * @private

*/
function (url) {
/** @type {?} */
var notifier;
this.registry.set(this.stripUrlProtocol(url), new Promise((/**
* @param {?} resolve
* @return {?}
*/
function (resolve) { return (notifier = resolve); })));
return notifier;
};
function (url) {
/** @type {?} */
var notifier;
this.registry.set(this.stripUrlProtocol(url), new Promise(( /**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/function (resolve, reject) { return (notifier = { resolve: resolve, reject: reject }); })));
return notifier;
};
/**

@@ -78,5 +188,5 @@ * @private

*/
function (url) {
return this.registry.has(this.stripUrlProtocol(url));
};
function (url) {
return this.registry.has(this.stripUrlProtocol(url));
};
/**

@@ -92,13 +202,17 @@ * @private

*/
function (url) {
return url.replace(/https?:\/\//, '');
};
function (url) {
return url.replace(/https?:\/\//, '');
};
LazyElementsLoaderService.decorators = [
{ type: core.Injectable, args: [{
{ type: i0.Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
LazyElementsLoaderService.ctorParameters = function () { return []; };
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(); }, token: LazyElementsLoaderService, providedIn: "root" });
LazyElementsLoaderService.ctorParameters = function () {
return [
{ type: undefined, decorators: [{ type: i0.Inject, args: [LAZY_ELEMENTS_REGISTRY,] }] },
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LAZY_ELEMENT_ROOT_OPTIONS,] }] }
];
};
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = i0.defineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(i0.inject(LAZY_ELEMENTS_REGISTRY), i0.inject(LAZY_ELEMENT_ROOT_OPTIONS, 8)); }, token: LazyElementsLoaderService, providedIn: "root" });
return LazyElementsLoaderService;

@@ -111,7 +225,11 @@ }());

*/
/** @type {?} */
var LOG_PREFIX$1 = '@angular-extensions/elements';
var LazyElementDirective = /** @class */ (function () {
function LazyElementDirective(vcr, template, elementsLoaderService) {
function LazyElementDirective(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}

@@ -124,31 +242,74 @@ /**

*/
function () {
var _this = this;
/** @type {?} */
var elementTag = ((/** @type {?} */ (this.template)))._def.element.template.nodes[0].element.name;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
this.elementsLoaderService.loadElement(this.url, elementTag).then((/**
function () {
var _this = this;
/** @type {?} */
var tpl = ( /** @type {?} */(this.template));
/** @type {?} */
var elementTag = tpl._declarationTContainer
? tpl._declarationTContainer.tagName
: tpl._def.element.template.nodes[0].element.name;
/** @type {?} */
var elementConfig = this.elementsLoaderService.getElementConfig(elementTag) ||
(( /** @type {?} */({})));
/** @type {?} */
var options = this.elementsLoaderService.options;
/** @type {?} */
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
else if (loadingComponent) {
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.then(( /**
* @return {?}
*/
function () {
_this.vcr.clear();
_this.vcr.createEmbeddedView(_this.template);
}));
};
*/function () {
_this.vcr.clear();
_this.vcr.createEmbeddedView(_this.template);
_this.cdr.markForCheck();
}))
.catch(( /**
* @return {?}
*/function () {
_this.vcr.clear();
/** @type {?} */
var errorComponent = elementConfig.errorComponent || options.errorComponent;
if (_this.errorTemplateRef) {
_this.vcr.createEmbeddedView(_this.errorTemplateRef);
_this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
var factory = _this.cfr.resolveComponentFactory(errorComponent);
_this.vcr.createComponent(factory);
_this.cdr.markForCheck();
}
else {
console.error(LOG_PREFIX$1 + " - Loading of element <" + elementTag + "> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement=\"errorTemplate: error\" to display customized error message in place of element");
}
}));
};
LazyElementDirective.decorators = [
{ type: core.Directive, args: [{
{ type: i0.Directive, args: [{
selector: '[axLazyElement]'
},] }
];
/** @nocollapse */
LazyElementDirective.ctorParameters = function () { return [
{ type: core.ViewContainerRef },
{ type: core.TemplateRef },
{ type: LazyElementsLoaderService }
]; };
LazyElementDirective.ctorParameters = function () {
return [
{ type: i0.ViewContainerRef },
{ type: i0.TemplateRef },
{ type: LazyElementsLoaderService },
{ type: i0.ComponentFactoryResolver },
{ type: i0.ChangeDetectorRef }
];
};
LazyElementDirective.propDecorators = {
url: [{ type: core.Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: core.Input, args: ['axLazyElementLoading',] }]
url: [{ type: i0.Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: i0.Input, args: ['axLazyElementLoadingTemplate',] }],
errorTemplateRef: [{ type: i0.Input, args: ['axLazyElementErrorTemplate',] }],
isModule: [{ type: i0.Input, args: ['axLazyElementModule',] }]
};

@@ -162,22 +323,224 @@ return LazyElementDirective;

*/
/** @type {?} */
var LOG_PREFIX$2 = '@angular-extensions/elements';
var LazyElementDynamicDirective = /** @class */ (function () {
function LazyElementDynamicDirective(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}
/**
* @return {?}
*/
LazyElementDynamicDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {
throw new Error(LOG_PREFIX$2 + " - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic=\"'some-tag'\"), got: \"" + this.tag + "\"");
}
/** @type {?} */
var elementConfig = this.elementsLoaderService.getElementConfig(this.tag) ||
(( /** @type {?} */({})));
/** @type {?} */
var options = this.elementsLoaderService.options;
/** @type {?} */
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
else if (loadingComponent) {
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.then(( /**
* @return {?}
*/function () {
if ((( /** @type {?} */(_this.template)))._declarationTContainer) {
// (this.template as any)._declarationTContainer.tagName = this.tag;
throw new Error('The *axLazyElementDynamic directive is currently does NOT support Angular Ivy, please use standard *axLazyElement directive instead!');
}
else {
(( /** @type {?} */(_this
.template)))._def.element.template.nodes[0].element.name = _this.tag;
}
_this.vcr.clear();
_this.vcr.createEmbeddedView(_this.template);
_this.cdr.markForCheck();
}))
.catch(( /**
* @param {?} error
* @return {?}
*/function (error) {
/** @type {?} */
var errorComponent = elementConfig.errorComponent || options.errorComponent;
_this.vcr.clear();
if (_this.errorTemplateRef) {
_this.vcr.createEmbeddedView(_this.errorTemplateRef);
_this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
var factory = _this.cfr.resolveComponentFactory(errorComponent);
_this.vcr.createComponent(factory);
_this.cdr.markForCheck();
}
else {
console.error(LOG_PREFIX$2 + " - Loading of element <" + _this.tag + "> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElementDynamic=\"errorTemplate: error\" to display customized error message in place of element\n\n", error);
}
}));
};
LazyElementDynamicDirective.decorators = [
{ type: i0.Directive, args: [{
selector: '[axLazyElementDynamic]'
},] }
];
LazyElementDynamicDirective.ctorParameters = function () {
return [
{ type: i0.ViewContainerRef },
{ type: i0.TemplateRef },
{ type: LazyElementsLoaderService },
{ type: i0.ComponentFactoryResolver },
{ type: i0.ChangeDetectorRef }
];
};
LazyElementDynamicDirective.propDecorators = {
tag: [{ type: i0.Input, args: ['axLazyElementDynamic',] }],
url: [{ type: i0.Input, args: ['axLazyElementDynamicUrl',] }],
loadingTemplateRef: [{ type: i0.Input, args: ['axLazyElementDynamicLoadingTemplate',] }],
errorTemplateRef: [{ type: i0.Input, args: ['axLazyElementDynamicErrorTemplate',] }],
isModule: [{ type: i0.Input, args: ['axLazyElementDynamicModule',] }]
};
return LazyElementDynamicDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} options
* @return {?}
*/
function createLazyElementRootGuard(options) {
if (options) {
throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");
}
return 'guarded';
}
var LazyElementsModule = /** @class */ (function () {
function LazyElementsModule() {
function LazyElementsModule(lazyElementsLoaderService, elementConfigsMultiProvider, guard) {
if (elementConfigsMultiProvider && elementConfigsMultiProvider.length) {
/** @type {?} */
var lastAddedConfigs = elementConfigsMultiProvider[elementConfigsMultiProvider.length - 1];
lazyElementsLoaderService.addConfigs(lastAddedConfigs);
}
}
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forRoot = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_OPTIONS,
useValue: options.rootOptions ? options.rootOptions : {}
},
{
provide: i0.ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options,
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_GUARD,
useFactory: createLazyElementRootGuard,
deps: [[LAZY_ELEMENT_CONFIGS, new i0.Optional(), new i0.SkipSelf()]]
}
]
};
};
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forFeature = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: i0.ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options && options.elementConfigs,
multi: true
}
]
};
};
LazyElementsModule.decorators = [
{ type: core.NgModule, args: [{
declarations: [LazyElementDirective],
{ type: i0.NgModule, args: [{
declarations: [LazyElementDirective, LazyElementDynamicDirective],
imports: [common.CommonModule],
exports: [LazyElementDirective]
exports: [LazyElementDirective, LazyElementDynamicDirective],
providers: []
},] }
];
LazyElementsModule.ctorParameters = function () {
return [
{ type: LazyElementsLoaderService },
{ type: Array, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LAZY_ELEMENT_CONFIGS,] }] },
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [LAZY_ELEMENT_ROOT_GUARD,] }] }
];
};
return LazyElementsModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
exports.LAZY_ELEMENTS_REGISTRY = LAZY_ELEMENTS_REGISTRY;
exports.createLazyElementRootGuard = createLazyElementRootGuard;
exports.LazyElementsModule = LazyElementsModule;
exports.ɵa = LazyElementDirective;
exports.ɵb = LazyElementsLoaderService;
exports.ɵg = LazyElementDynamicDirective;
exports.ɵd = LazyElementDirective;
exports.ɵf = LazyElementsLoaderService;
exports.ɵa = LAZY_ELEMENT_CONFIGS;
exports.ɵc = LAZY_ELEMENT_ROOT_GUARD;
exports.ɵb = LAZY_ELEMENT_ROOT_OPTIONS;
Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=angular-extensions-elements.umd.js.map
})));
//# sourceMappingURL=angular-extensions-elements.umd.js.map

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("@angular-extensions/elements",["exports","@angular/core","@angular/common"],t):t(((e=e||self)["angular-extensions"]=e["angular-extensions"]||{},e["angular-extensions"].elements={}),e.ng.core,e.ng.common)}(this,function(e,t,n){"use strict";var r=function(){function e(){this.registry=new Map}return e.prototype.loadElement=function(e,t){if(!e)throw new Error("@angular-extensions/elements - url for <"+t+"> not found");if(!t)throw new Error("@angular-extensions/elements - tag for '"+e+"' not found, the *axLazyElement has to be used on HTML element");if(!this.hasElement(e)){var n=this.addElement(e),r=document.createElement("script");r.src=e,r.onload=n,document.body.appendChild(r)}return this.registry.get(this.stripUrlProtocol(e))},e.prototype.addElement=function(e){var t;return this.registry.set(this.stripUrlProtocol(e),new Promise(function(e){return t=e})),t},e.prototype.hasElement=function(e){return this.registry.has(this.stripUrlProtocol(e))},e.prototype.stripUrlProtocol=function(e){return e.replace(/https?:\/\//,"")},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),o=function(){function e(e,t,n){this.vcr=e,this.template=t,this.elementsLoaderService=n}return e.prototype.ngOnInit=function(){var e=this,t=this.template._def.element.template.nodes[0].element.name;this.loadingTemplateRef&&this.vcr.createEmbeddedView(this.loadingTemplateRef),this.elementsLoaderService.loadElement(this.url,t).then(function(){e.vcr.clear(),e.vcr.createEmbeddedView(e.template)})},e.decorators=[{type:t.Directive,args:[{selector:"[axLazyElement]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:r}]},e.propDecorators={url:[{type:t.Input,args:["axLazyElement"]}],loadingTemplateRef:[{type:t.Input,args:["axLazyElementLoading"]}]},e}(),a=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{declarations:[o],imports:[n.CommonModule],exports:[o]}]}],e}();e.LazyElementsModule=a,e.ɵa=o,e.ɵb=r,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core")):"function"==typeof define&&define.amd?define("@angular-extensions/elements",["exports","@angular/common","@angular/core"],t):t((e["angular-extensions"]=e["angular-extensions"]||{},e["angular-extensions"].elements={}),e.ng.common,e.ng.core)}(this,function(e,t,r){"use strict";var n=new r.InjectionToken("LAZY_ELEMENT_CONFIGS"),o=new r.InjectionToken("LAZY_ELEMENT_ROOT_OPTIONS"),a=new r.InjectionToken("LAZY_ELEMENT_ROOT_GUARD"),i=new r.InjectionToken("Lazu elements registry",{providedIn:"root",factory:function(){return new Map}}),l="@angular-extensions/elements",s=(c.prototype.addConfigs=function(e){var t=this;e.forEach(function(e){t.getElementConfig(e.tag)?console.warn(l+" - ElementConfig for tag '"+e.tag+"' was previously added, it will not be added multiple times, continue..."):(t.configs.push(e),(e.preload!==undefined?e.preload:t.options.preload)&&t.loadElement(e.url,e.tag,e.isModule))})},c.prototype.getElementConfig=function(t){return this.configs.find(function(e){return e.tag===t})},c.prototype.preload=function(t){var r=this,e=this.configs;t&&(e=this.configs.filter(function(e){return t.includes(e.tag)})),e.forEach(function(e){return r.loadElement(e.url,e.tag,e.isModule)})},c.prototype.loadElement=function(e,t,r){var n=this.getElementConfig(t);if(!e){if(!n)throw new Error(l+" - url for <"+t+"> not found");e=n.url}if(r===undefined&&(r=n&&n.isModule!==undefined?n.isModule:this.options.isModule),!t)throw new Error(l+" - tag for '"+e+"' not found, the *axLazyElement has to be used on HTML element");if(!this.hasElement(e)){var o=this.addElement(e),a=document.createElement("script");r&&(a.type="module"),a.src=e,a.onload=o.resolve,a.onerror=o.reject,document.body.appendChild(a)}return this.registry.get(this.stripUrlProtocol(e))},c.prototype.addElement=function(e){var r;return this.registry.set(this.stripUrlProtocol(e),new Promise(function(e,t){return r={resolve:e,reject:t}})),r},c.prototype.hasElement=function(e){return this.registry.has(this.stripUrlProtocol(e))},c.prototype.stripUrlProtocol=function(e){return e.replace(/https?:\/\//,"")},c.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],c.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Inject,args:[i]}]},{type:undefined,decorators:[{type:r.Optional},{type:r.Inject,args:[o]}]}]},c.ngInjectableDef=r.defineInjectable({factory:function(){return new c(r.inject(i),r.inject(o,8))},token:c,providedIn:"root"}),c);function c(e,t){this.registry=e,this.options=t,this.configs=[],t||(this.options={})}var d=(p.prototype.ngOnInit=function(){var r=this,e=this.template,n=e._declarationTContainer?e._declarationTContainer.tagName:e._def.element.template.nodes[0].element.name,o=this.elementsLoaderService.getElementConfig(n)||{},a=this.elementsLoaderService.options,t=o.loadingComponent||a.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(t){var i=this.cfr.resolveComponentFactory(t);this.vcr.createComponent(i)}this.elementsLoaderService.loadElement(this.url,n,this.isModule).then(function(){r.vcr.clear(),r.vcr.createEmbeddedView(r.template),r.cdr.markForCheck()})["catch"](function(){r.vcr.clear();var e=o.errorComponent||a.errorComponent;if(r.errorTemplateRef)r.vcr.createEmbeddedView(r.errorTemplateRef),r.cdr.markForCheck();else if(e){var t=r.cfr.resolveComponentFactory(e);r.vcr.createComponent(t),r.cdr.markForCheck()}else console.error("@angular-extensions/elements - Loading of element <"+n+'> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement="errorTemplate: error" to display customized error message in place of element')})},p.decorators=[{type:r.Directive,args:[{selector:"[axLazyElement]"}]}],p.ctorParameters=function(){return[{type:r.ViewContainerRef},{type:r.TemplateRef},{type:s},{type:r.ComponentFactoryResolver},{type:r.ChangeDetectorRef}]},p.propDecorators={url:[{type:r.Input,args:["axLazyElement"]}],loadingTemplateRef:[{type:r.Input,args:["axLazyElementLoadingTemplate"]}],errorTemplateRef:[{type:r.Input,args:["axLazyElementErrorTemplate"]}],isModule:[{type:r.Input,args:["axLazyElementModule"]}]},p);function p(e,t,r,n,o){this.vcr=e,this.template=t,this.elementsLoaderService=r,this.cfr=n,this.cdr=o}var m="@angular-extensions/elements",u=(f.prototype.ngOnInit=function(){var n=this;if(!this.tag||0===this.tag.length||!this.tag.includes("-"))throw new Error(m+' - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="\'some-tag\'"), got: "'+this.tag+'"');var o=this.elementsLoaderService.getElementConfig(this.tag)||{},a=this.elementsLoaderService.options,e=o.loadingComponent||a.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(e){var t=this.cfr.resolveComponentFactory(e);this.vcr.createComponent(t)}this.elementsLoaderService.loadElement(this.url,this.tag,this.isModule).then(function(){if(n.template._declarationTContainer)throw new Error("The *axLazyElementDynamic directive is currently does NOT support Angular Ivy, please use standard *axLazyElement directive instead!");n.template._def.element.template.nodes[0].element.name=n.tag,n.vcr.clear(),n.vcr.createEmbeddedView(n.template),n.cdr.markForCheck()})["catch"](function(e){var t=o.errorComponent||a.errorComponent;if(n.vcr.clear(),n.errorTemplateRef)n.vcr.createEmbeddedView(n.errorTemplateRef),n.cdr.markForCheck();else if(t){var r=n.cfr.resolveComponentFactory(t);n.vcr.createComponent(r),n.cdr.markForCheck()}else console.error(m+" - Loading of element <"+n.tag+'> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElementDynamic="errorTemplate: error" to display customized error message in place of element\n\n',e)})},f.decorators=[{type:r.Directive,args:[{selector:"[axLazyElementDynamic]"}]}],f.ctorParameters=function(){return[{type:r.ViewContainerRef},{type:r.TemplateRef},{type:s},{type:r.ComponentFactoryResolver},{type:r.ChangeDetectorRef}]},f.propDecorators={tag:[{type:r.Input,args:["axLazyElementDynamic"]}],url:[{type:r.Input,args:["axLazyElementDynamicUrl"]}],loadingTemplateRef:[{type:r.Input,args:["axLazyElementDynamicLoadingTemplate"]}],errorTemplateRef:[{type:r.Input,args:["axLazyElementDynamicErrorTemplate"]}],isModule:[{type:r.Input,args:["axLazyElementDynamicModule"]}]},f);function f(e,t,r,n,o){this.vcr=e,this.template=t,this.elementsLoaderService=r,this.cfr=n,this.cdr=o}function g(e){if(e)throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");return"guarded"}var y=(h.forRoot=function(e){return{ngModule:h,providers:[{provide:n,useValue:e&&e.elementConfigs?e.elementConfigs:[],multi:!0},{provide:o,useValue:e.rootOptions?e.rootOptions:{}},{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:e,multi:!0},{provide:a,useFactory:g,deps:[[n,new r.Optional,new r.SkipSelf]]}]}},h.forFeature=function(e){return{ngModule:h,providers:[{provide:n,useValue:e&&e.elementConfigs?e.elementConfigs:[],multi:!0},{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:e&&e.elementConfigs,multi:!0}]}},h.decorators=[{type:r.NgModule,args:[{declarations:[d,u],imports:[t.CommonModule],exports:[d,u],providers:[]}]}],h.ctorParameters=function(){return[{type:s},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[n]}]},{type:undefined,decorators:[{type:r.Optional},{type:r.Inject,args:[a]}]}]},h);function h(e,t,r){if(t&&t.length){var n=t[t.length-1];e.addConfigs(n)}}e.LAZY_ELEMENTS_REGISTRY=i,e.createLazyElementRootGuard=g,e.LazyElementsModule=y,e.ɵg=u,e.ɵd=d,e.ɵf=s,e.ɵa=n,e.ɵc=a,e.ɵb=o,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-extensions-elements.umd.min.js.map

@@ -8,5 +8,7 @@ /**

*/
export { LazyElementsModule } from './public-api';
export { LazyElementDirective as ɵa } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { LazyElementsLoaderService as ɵb } from './lib/lazy-elements/lazy-elements-loader.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1leHRlbnNpb25zLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImFuZ3VsYXItZXh0ZW5zaW9ucy1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsbUNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TGF6eUVsZW1lbnREaXJlY3RpdmUgYXMgybVhfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCB7TGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7Il19
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule } from './public-api';
export { LazyElementDynamicDirective as ɵg } from './lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive';
export { LazyElementDirective as ɵd } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { LazyElementsLoaderService as ɵf } from './lib/lazy-elements/lazy-elements-loader.service';
export { LAZY_ELEMENT_CONFIGS as ɵa, LAZY_ELEMENT_ROOT_GUARD as ɵc, LAZY_ELEMENT_ROOT_OPTIONS as ɵb } from './lib/lazy-elements/lazy-elements.tokens';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1leHRlbnNpb25zLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImFuZ3VsYXItZXh0ZW5zaW9ucy1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdUZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFxQix5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNySCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgYXMgybVnfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZSc7XG5leHBvcnQge0xhenlFbGVtZW50RGlyZWN0aXZlIGFzIMm1ZH0gZnJvbSAnLi9saWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZW1lbnRDb25maWcgYXMgybVlLExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UgYXMgybVmfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtMQVpZX0VMRU1FTlRfQ09ORklHUyBhcyDJtWEsTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQgYXMgybVjLExBWllfRUxFTUVOVF9ST09UX09QVElPTlMgYXMgybVifSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMudG9rZW5zJzsiXX0=

@@ -5,4 +5,6 @@ /**

*/
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
import { LazyElementsLoaderService } from '../lazy-elements-loader.service';
/** @type {?} */
const LOG_PREFIX = '@angular-extensions/elements';
export class LazyElementDirective {

@@ -14,7 +16,11 @@ // tslint:disable-line:no-input-rename

* @param {?} elementsLoaderService
* @param {?} cfr
* @param {?} cdr
*/
constructor(vcr, template, elementsLoaderService) {
constructor(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}

@@ -26,7 +32,25 @@ /**

/** @type {?} */
const elementTag = ((/** @type {?} */ (this.template)))._def.element.template.nodes[0].element.name;
const tpl = (/** @type {?} */ (this.template));
/** @type {?} */
const elementTag = tpl._declarationTContainer
? tpl._declarationTContainer.tagName
: tpl._def.element.template.nodes[0].element.name;
/** @type {?} */
const elementConfig = this.elementsLoaderService.getElementConfig(elementTag) ||
((/** @type {?} */ ({})));
/** @type {?} */
const options = this.elementsLoaderService.options;
/** @type {?} */
const loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
this.elementsLoaderService.loadElement(this.url, elementTag).then((/**
else if (loadingComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.then((/**
* @return {?}

@@ -37,2 +61,24 @@ */

this.vcr.createEmbeddedView(this.template);
this.cdr.markForCheck();
}))
.catch((/**
* @return {?}
*/
() => {
this.vcr.clear();
/** @type {?} */
const errorComponent = elementConfig.errorComponent || options.errorComponent;
if (this.errorTemplateRef) {
this.vcr.createEmbeddedView(this.errorTemplateRef);
this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(errorComponent);
this.vcr.createComponent(factory);
this.cdr.markForCheck();
}
else {
console.error(`${LOG_PREFIX} - Loading of element <${elementTag}> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement="errorTemplate: error" to display customized error message in place of element`);
}
}));

@@ -46,11 +92,14 @@ }

];
/** @nocollapse */
LazyElementDirective.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService }
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
];
LazyElementDirective.propDecorators = {
url: [{ type: Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoading',] }]
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementModule',] }]
};

@@ -62,2 +111,6 @@ if (false) {

LazyElementDirective.prototype.loadingTemplateRef;
/** @type {?} */
LazyElementDirective.prototype.errorTemplateRef;
/** @type {?} */
LazyElementDirective.prototype.isModule;
/**

@@ -78,3 +131,13 @@ * @type {?}

LazyElementDirective.prototype.elementsLoaderService;
/**
* @type {?}
* @private
*/
LazyElementDirective.prototype.cfr;
/**
* @type {?}
* @private
*/
LazyElementDirective.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSzVFLE1BQU0sT0FBTyxvQkFBb0I7Ozs7Ozs7SUFJL0IsWUFDVSxHQUFxQixFQUNyQixRQUEwQixFQUMxQixxQkFBZ0Q7UUFGaEQsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtJQUN2RCxDQUFDOzs7O0lBRUosUUFBUTs7Y0FDQSxVQUFVLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLENBQUMsUUFBUSxFQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7UUFFckYsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJOzs7UUFBQyxHQUFHLEVBQUU7WUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7OztZQXhCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7OztZQU4rQyxnQkFBZ0I7WUFBN0IsV0FBVztZQUVyQyx5QkFBeUI7OztrQkFNL0IsS0FBSyxTQUFDLGVBQWU7aUNBQ3JCLEtBQUssU0FBQyxzQkFBc0I7Ozs7SUFEN0IsbUNBQW9DOztJQUNwQyxrREFBb0U7Ozs7O0lBR2xFLG1DQUE2Qjs7Ozs7SUFDN0Isd0NBQWtDOzs7OztJQUNsQyxxREFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGF6eUVsZW1lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudCcpIHVybDogc3RyaW5nO1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRMb2FkaW5nJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBlbGVtZW50c0xvYWRlclNlcnZpY2U6IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnRUYWcgPSAodGhpcy50ZW1wbGF0ZSBhcyBhbnkpLl9kZWYuZWxlbWVudC50ZW1wbGF0ZS5ub2Rlc1swXS5lbGVtZW50Lm5hbWU7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UubG9hZEVsZW1lbnQodGhpcy51cmwsIGVsZW1lbnRUYWcpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7TUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUtqRCxNQUFNOzs7Ozs7Ozs7SUFNSixZQUNVLEdBQXFCLEVBQ3JCLFFBQTBCLEVBQzFCLHFCQUFnRCxFQUNoRCxHQUE2QixFQUM3QixHQUFzQjtRQUp0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7Ozs7SUFFSixRQUFROztjQUNBLEdBQUcsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxFQUFPOztjQUMxQixVQUFVLEdBQUcsR0FBRyxDQUFDLHNCQUFzQjtZQUMzQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLE9BQU87WUFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7O2NBRTdDLGFBQWEsR0FDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUN2RCxDQUFDLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQzs7Y0FDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPOztjQUM1QyxnQkFBZ0IsR0FDcEIsYUFBYSxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0I7UUFFNUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksZ0JBQWdCLEVBQUU7O2tCQUNyQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxxQkFBcUI7YUFDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEQsSUFBSTs7O1FBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBQzthQUNELEtBQUs7OztRQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7O2tCQUNYLGNBQWMsR0FDbEIsYUFBYSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYztZQUN4RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN6QjtpQkFBTSxJQUFJLGNBQWMsRUFBRTs7c0JBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FDWCxHQUFHLFVBQVUsMEJBQTBCLFVBQVUsZ01BQWdNLENBQ2xQLENBQUM7YUFDSDtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7WUFkQyxnQkFBZ0I7WUFEaEIsV0FBVztZQU9YLHlCQUF5QjtZQUx6Qix3QkFBd0I7WUFDeEIsaUJBQWlCOzs7a0JBY2hCLEtBQUssU0FBQyxlQUFlO2lDQUNyQixLQUFLLFNBQUMsOEJBQThCOytCQUNwQyxLQUFLLFNBQUMsNEJBQTRCO3VCQUNsQyxLQUFLLFNBQUMscUJBQXFCOzs7O0lBSDVCLG1DQUFvQzs7SUFDcEMsa0RBQTRFOztJQUM1RSxnREFBd0U7O0lBQ3hFLHdDQUE0RDs7Ozs7SUFHMUQsbUNBQTZCOzs7OztJQUM3Qix3Q0FBa0M7Ozs7O0lBQ2xDLHFEQUF3RDs7Ozs7SUFDeEQsbUNBQXFDOzs7OztJQUNyQyxtQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcclxuICBFbGVtZW50Q29uZmlnXHJcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XHJcblxyXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCdheExhenlFbGVtZW50JykgdXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdheExhenlFbGVtZW50TG9hZGluZ1RlbXBsYXRlJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudEVycm9yVGVtcGxhdGUnKSBlcnJvclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudE1vZHVsZScpIGlzTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgZWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCB0cGwgPSB0aGlzLnRlbXBsYXRlIGFzIGFueTtcclxuICAgIGNvbnN0IGVsZW1lbnRUYWcgPSB0cGwuX2RlY2xhcmF0aW9uVENvbnRhaW5lclxyXG4gICAgICA/IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRhZ05hbWVcclxuICAgICAgOiB0cGwuX2RlZi5lbGVtZW50LnRlbXBsYXRlLm5vZGVzWzBdLmVsZW1lbnQubmFtZTtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cclxuICAgICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UuZ2V0RWxlbWVudENvbmZpZyhlbGVtZW50VGFnKSB8fFxyXG4gICAgICAoe30gYXMgRWxlbWVudENvbmZpZyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcclxuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxyXG4gICAgICBlbGVtZW50Q29uZmlnLmxvYWRpbmdDb21wb25lbnQgfHwgb3B0aW9ucy5sb2FkaW5nQ29tcG9uZW50O1xyXG5cclxuICAgIGlmICh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZikge1xyXG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpO1xyXG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsb2FkaW5nQ29tcG9uZW50KTtcclxuICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2VcclxuICAgICAgLmxvYWRFbGVtZW50KHRoaXMudXJsLCBlbGVtZW50VGFnLCB0aGlzLmlzTW9kdWxlKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XHJcbiAgICAgICAgICBlbGVtZW50Q29uZmlnLmVycm9yQ29tcG9uZW50IHx8IG9wdGlvbnMuZXJyb3JDb21wb25lbnQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JUZW1wbGF0ZVJlZikge1xyXG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xyXG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gTG9hZGluZyBvZiBlbGVtZW50IDwke2VsZW1lbnRUYWd9PiBmYWlsZWQsIHBsZWFzZSBwcm92aWRlIDxuZy10ZW1wbGF0ZSAjZXJyb3I+TG9hZGluZyBmYWlsZWQuLi48L25nLXRlbXBsYXRlPiBhbmQgcmVmZXJlbmNlIGl0IGluICpheExhenlFbGVtZW50PVwiZXJyb3JUZW1wbGF0ZTogZXJyb3JcIiB0byBkaXNwbGF5IGN1c3RvbWl6ZWQgZXJyb3IgbWVzc2FnZSBpbiBwbGFjZSBvZiBlbGVtZW50YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=

@@ -5,19 +5,118 @@ /**

*/
import { Injectable } from '@angular/core';
import { Injectable, Optional, Inject } from '@angular/core';
import { LAZY_ELEMENT_ROOT_OPTIONS, LAZY_ELEMENTS_REGISTRY } from './lazy-elements.tokens';
import * as i0 from "@angular/core";
import * as i1 from "./lazy-elements.tokens";
/** @type {?} */
const LOG_PREFIX = '@angular-extensions/elements';
/**
* @record
*/
export function ElementConfig() { }
if (false) {
/** @type {?} */
ElementConfig.prototype.tag;
/** @type {?} */
ElementConfig.prototype.url;
/** @type {?|undefined} */
ElementConfig.prototype.isModule;
/** @type {?|undefined} */
ElementConfig.prototype.loadingComponent;
/** @type {?|undefined} */
ElementConfig.prototype.errorComponent;
/** @type {?|undefined} */
ElementConfig.prototype.preload;
}
export class LazyElementsLoaderService {
constructor() {
this.registry = new Map();
/**
* @param {?} registry
* @param {?} options
*/
constructor(registry, options) {
this.registry = registry;
this.options = options;
this.configs = [];
if (!options) {
this.options = {};
}
}
/**
* @param {?} newConfigs
* @return {?}
*/
addConfigs(newConfigs) {
newConfigs.forEach((/**
* @param {?} newConfig
* @return {?}
*/
newConfig => {
/** @type {?} */
const existingConfig = this.getElementConfig(newConfig.tag);
if (existingConfig) {
console.warn(`${LOG_PREFIX} - ElementConfig for tag '${newConfig.tag}' was previously added, it will not be added multiple times, continue...`);
}
else {
this.configs.push(newConfig);
/** @type {?} */
const shouldPreload = newConfig.preload !== undefined
? newConfig.preload
: this.options.preload;
if (shouldPreload) {
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
}
}
}));
}
/**
* @param {?} tag
* @return {?}
*/
getElementConfig(tag) {
return this.configs.find((/**
* @param {?} config
* @return {?}
*/
config => config.tag === tag));
}
/**
* @param {?=} tags
* @return {?}
*/
preload(tags) {
/** @type {?} */
let configs = this.configs;
if (tags) {
configs = this.configs.filter((/**
* @param {?} config
* @return {?}
*/
config => tags.includes(config.tag)));
}
configs.forEach((/**
* @param {?} config
* @return {?}
*/
config => this.loadElement(config.url, config.tag, config.isModule)));
}
/**
* @param {?} url
* @param {?} tag
* @param {?=} isModule
* @return {?}
*/
loadElement(url, tag) {
loadElement(url, tag, isModule) {
/** @type {?} */
const config = this.getElementConfig(tag);
if (!url) {
throw new Error(`${LOG_PREFIX} - url for <${tag}> not found`);
if (!config) {
throw new Error(`${LOG_PREFIX} - url for <${tag}> not found`);
}
url = config.url;
}
if (isModule === undefined) {
isModule =
config && config.isModule !== undefined
? config.isModule
: this.options.isModule;
}
if (!tag) {

@@ -31,4 +130,8 @@ throw new Error(`${LOG_PREFIX} - tag for '${url}' not found, the *axLazyElement has to be used on HTML element`);

const script = (/** @type {?} */ (document.createElement('script')));
if (isModule) {
script.type = 'module';
}
script.src = url;
script.onload = notifier;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);

@@ -48,5 +151,6 @@ }

* @param {?} resolve
* @param {?} reject
* @return {?}
*/
resolve => (notifier = resolve))));
(resolve, reject) => (notifier = { resolve, reject }))));
return notifier;

@@ -76,9 +180,28 @@ }

];
/** @nocollapse */
LazyElementsLoaderService.ctorParameters = () => [];
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(); }, token: LazyElementsLoaderService, providedIn: "root" });
LazyElementsLoaderService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [LAZY_ELEMENTS_REGISTRY,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_OPTIONS,] }] }
];
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = i0.defineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(i0.inject(i1.LAZY_ELEMENTS_REGISTRY), i0.inject(i1.LAZY_ELEMENT_ROOT_OPTIONS, 8)); }, token: LazyElementsLoaderService, providedIn: "root" });
if (false) {
/** @type {?} */
LazyElementsLoaderService.prototype.configs;
/**
* @type {?}
* @private
*/
LazyElementsLoaderService.prototype.registry;
/** @type {?} */
LazyElementsLoaderService.prototype.options;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7TUFFckMsVUFBVSxHQUFHLDhCQUE4QjtBQUtqRCxNQUFNLE9BQU8seUJBQXlCO0lBR3BDO1FBRkEsYUFBUSxHQUErQixJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUV6RCxDQUFDOzs7Ozs7SUFFaEIsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxlQUFlLEdBQUcsYUFBYSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFVBQVUsZUFBZSxHQUFHLGdFQUFnRSxDQUFDLENBQUM7U0FDbEg7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTs7a0JBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQzs7a0JBQy9CLE1BQU0sR0FBRyxtQkFBQSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFxQjtZQUNwRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRU8sVUFBVSxDQUFDLEdBQVc7O1lBQ3hCLFFBQVE7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxPQUFPOzs7O1FBQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDbEcsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU8sVUFBVSxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBeENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7OztJQUVDLDZDQUF3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSB7XG4gIHJlZ2lzdHJ5OiBNYXA8c3RyaW5nLCBQcm9taXNlPHZvaWQ+PiA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPHZvaWQ+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBsb2FkRWxlbWVudCh1cmw6IHN0cmluZywgdGFnOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0xPR19QUkVGSVh9IC0gdXJsIGZvciA8JHt0YWd9PiBub3QgZm91bmRgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRhZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0xPR19QUkVGSVh9IC0gdGFnIGZvciAnJHt1cmx9JyBub3QgZm91bmQsIHRoZSAqYXhMYXp5RWxlbWVudCBoYXMgdG8gYmUgdXNlZCBvbiBIVE1MIGVsZW1lbnRgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGFzRWxlbWVudCh1cmwpKSB7XG4gICAgICBjb25zdCBub3RpZmllciA9IHRoaXMuYWRkRWxlbWVudCh1cmwpO1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9IG5vdGlmaWVyO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldCh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVsZW1lbnQodXJsOiBzdHJpbmcpOiAoKSA9PiB2b2lkIHtcbiAgICBsZXQgbm90aWZpZXI7XG4gICAgdGhpcy5yZWdpc3RyeS5zZXQodGhpcy5zdHJpcFVybFByb3RvY29sKHVybCksIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gKG5vdGlmaWVyID0gcmVzb2x2ZSkpKTtcbiAgICByZXR1cm4gbm90aWZpZXI7XG4gIH1cblxuICBwcml2YXRlIGhhc0VsZW1lbnQodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5oYXModGhpcy5zdHJpcFVybFByb3RvY29sKHVybCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcFVybFByb3RvY29sKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL2h0dHBzPzpcXC9cXC8vLCAnJyk7XG4gIH1cbn1cbiJdfQ==
/**
* @record
*/
function Notifier() { }
if (false) {
/** @type {?} */
Notifier.prototype.resolve;
/** @type {?} */
Notifier.prototype.reject;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztNQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBRWpELG1DQU9DOzs7SUFOQyw0QkFBWTs7SUFDWiw0QkFBWTs7SUFDWixpQ0FBbUI7O0lBQ25CLHlDQUE2Qjs7SUFDN0IsdUNBQTJCOztJQUMzQixnQ0FBa0I7O0FBTXBCLE1BQU07Ozs7O0lBR0osWUFDMEMsUUFBOEIsRUFHL0QsT0FBK0I7UUFIRSxhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUcvRCxZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQU54QyxZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQVE1QixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxVQUEyQjtRQUNwQyxVQUFVLENBQUMsT0FBTzs7OztRQUFDLFNBQVMsQ0FBQyxFQUFFOztrQkFDdkIsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzNELElBQUksY0FBYyxFQUFFO2dCQUNsQixPQUFPLENBQUMsSUFBSSxDQUNWLEdBQUcsVUFBVSw2QkFBNkIsU0FBUyxDQUFDLEdBQUcsMEVBQTBFLENBQ2xJLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7c0JBQ3ZCLGFBQWEsR0FDakIsU0FBUyxDQUFDLE9BQU8sS0FBSyxTQUFTO29CQUM3QixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU87b0JBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Z0JBQzFCLElBQUksYUFBYSxFQUFFO29CQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3BFO2FBQ0Y7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTs7OztRQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUMsQ0FBQztJQUN6RCxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxJQUFlOztZQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU87UUFDMUIsSUFBSSxJQUFJLEVBQUU7WUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNOzs7O1lBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxDQUFDLE9BQU87Ozs7UUFBQyxNQUFNLENBQUMsRUFBRSxDQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQzFELENBQUM7SUFDSixDQUFDOzs7Ozs7O0lBRUQsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsUUFBa0I7O2NBQ2hELE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1FBRXpDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxVQUFVLGVBQWUsR0FBRyxhQUFhLENBQUMsQ0FBQzthQUMvRDtZQUNELEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLFFBQVE7Z0JBQ04sTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUztvQkFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRO29CQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLFVBQVUsZUFBZSxHQUFHLGdFQUFnRSxDQUNoRyxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTs7a0JBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQzs7a0JBQy9CLE1BQU0sR0FBRyxtQkFBQSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFxQjtZQUNwRSxJQUFJLFFBQVEsRUFBRTtnQkFDWixNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQzthQUN4QjtZQUNELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7OztJQUVPLFVBQVUsQ0FBQyxHQUFXOztZQUN4QixRQUFrQjtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLElBQUksT0FBTzs7Ozs7UUFBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUMsQ0FDekUsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7OztJQUVPLFVBQVUsQ0FBQyxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRU8sZ0JBQWdCLENBQUMsR0FBVztRQUNsQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OztZQXhHRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FLSSxNQUFNLFNBQUMsc0JBQXNCOzRDQUM3QixRQUFRLFlBQ1IsTUFBTSxTQUFDLHlCQUF5Qjs7Ozs7SUFMbkMsNENBQThCOzs7OztJQUc1Qiw2Q0FBc0U7O0lBQ3RFLDRDQUVzQzs7Ozs7QUFpRzFDLHVCQUdDOzs7SUFGQywyQkFBb0I7O0lBQ3BCLDBCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUsIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IExhenlFbGVtZW50Um9vdE9wdGlvbnMgfSBmcm9tICcuL2xhenktZWxlbWVudHMubW9kdWxlJztcclxuaW1wb3J0IHtcclxuICBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxyXG4gIExBWllfRUxFTUVOVFNfUkVHSVNUUlksXHJcbiAgTGF6eUVsZW1lbnRzUmVnaXN0cnlcclxufSBmcm9tICcuL2xhenktZWxlbWVudHMudG9rZW5zJztcclxuXHJcbmNvbnN0IExPR19QUkVGSVggPSAnQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRDb25maWcge1xyXG4gIHRhZzogc3RyaW5nO1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcclxuICBsb2FkaW5nQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIHByZWxvYWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlIHtcclxuICBjb25maWdzOiBFbGVtZW50Q29uZmlnW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KExBWllfRUxFTUVOVFNfUkVHSVNUUlkpIHByaXZhdGUgcmVnaXN0cnk6IExhenlFbGVtZW50c1JlZ2lzdHJ5LFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUylcclxuICAgIHB1YmxpYyBvcHRpb25zOiBMYXp5RWxlbWVudFJvb3RPcHRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0ge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRDb25maWdzKG5ld0NvbmZpZ3M6IEVsZW1lbnRDb25maWdbXSkge1xyXG4gICAgbmV3Q29uZmlncy5mb3JFYWNoKG5ld0NvbmZpZyA9PiB7XHJcbiAgICAgIGNvbnN0IGV4aXN0aW5nQ29uZmlnID0gdGhpcy5nZXRFbGVtZW50Q29uZmlnKG5ld0NvbmZpZy50YWcpO1xyXG4gICAgICBpZiAoZXhpc3RpbmdDb25maWcpIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgJHtMT0dfUFJFRklYfSAtIEVsZW1lbnRDb25maWcgZm9yIHRhZyAnJHtuZXdDb25maWcudGFnfScgd2FzIHByZXZpb3VzbHkgYWRkZWQsIGl0IHdpbGwgbm90IGJlIGFkZGVkIG11bHRpcGxlIHRpbWVzLCBjb250aW51ZS4uLmBcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uZmlncy5wdXNoKG5ld0NvbmZpZyk7XHJcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlbG9hZCA9XHJcbiAgICAgICAgICBuZXdDb25maWcucHJlbG9hZCAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gbmV3Q29uZmlnLnByZWxvYWRcclxuICAgICAgICAgICAgOiB0aGlzLm9wdGlvbnMucHJlbG9hZDtcclxuICAgICAgICBpZiAoc2hvdWxkUHJlbG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5sb2FkRWxlbWVudChuZXdDb25maWcudXJsLCBuZXdDb25maWcudGFnLCBuZXdDb25maWcuaXNNb2R1bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbGVtZW50Q29uZmlnKHRhZzogc3RyaW5nKTogRWxlbWVudENvbmZpZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdzLmZpbmQoY29uZmlnID0+IGNvbmZpZy50YWcgPT09IHRhZyk7XHJcbiAgfVxyXG5cclxuICBwcmVsb2FkKHRhZ3M/OiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IGNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3M7XHJcbiAgICBpZiAodGFncykge1xyXG4gICAgICBjb25maWdzID0gdGhpcy5jb25maWdzLmZpbHRlcihjb25maWcgPT4gdGFncy5pbmNsdWRlcyhjb25maWcudGFnKSk7XHJcbiAgICB9XHJcbiAgICBjb25maWdzLmZvckVhY2goY29uZmlnID0+XHJcbiAgICAgIHRoaXMubG9hZEVsZW1lbnQoY29uZmlnLnVybCwgY29uZmlnLnRhZywgY29uZmlnLmlzTW9kdWxlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvYWRFbGVtZW50KHVybDogc3RyaW5nLCB0YWc6IHN0cmluZywgaXNNb2R1bGU/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldEVsZW1lbnRDb25maWcodGFnKTtcclxuXHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtMT0dfUFJFRklYfSAtIHVybCBmb3IgPCR7dGFnfT4gbm90IGZvdW5kYCk7XHJcbiAgICAgIH1cclxuICAgICAgdXJsID0gY29uZmlnLnVybDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNNb2R1bGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpc01vZHVsZSA9XHJcbiAgICAgICAgY29uZmlnICYmIGNvbmZpZy5pc01vZHVsZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/IGNvbmZpZy5pc01vZHVsZVxyXG4gICAgICAgICAgOiB0aGlzLm9wdGlvbnMuaXNNb2R1bGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0YWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGAke0xPR19QUkVGSVh9IC0gdGFnIGZvciAnJHt1cmx9JyBub3QgZm91bmQsIHRoZSAqYXhMYXp5RWxlbWVudCBoYXMgdG8gYmUgdXNlZCBvbiBIVE1MIGVsZW1lbnRgXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmhhc0VsZW1lbnQodXJsKSkge1xyXG4gICAgICBjb25zdCBub3RpZmllciA9IHRoaXMuYWRkRWxlbWVudCh1cmwpO1xyXG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcclxuICAgICAgaWYgKGlzTW9kdWxlKSB7XHJcbiAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJztcclxuICAgICAgfVxyXG4gICAgICBzY3JpcHQuc3JjID0gdXJsO1xyXG4gICAgICBzY3JpcHQub25sb2FkID0gbm90aWZpZXIucmVzb2x2ZTtcclxuICAgICAgc2NyaXB0Lm9uZXJyb3IgPSBub3RpZmllci5yZWplY3Q7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5nZXQodGhpcy5zdHJpcFVybFByb3RvY29sKHVybCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRFbGVtZW50KHVybDogc3RyaW5nKTogTm90aWZpZXIge1xyXG4gICAgbGV0IG5vdGlmaWVyOiBOb3RpZmllcjtcclxuICAgIHRoaXMucmVnaXN0cnkuc2V0KFxyXG4gICAgICB0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSxcclxuICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4gKG5vdGlmaWVyID0geyByZXNvbHZlLCByZWplY3QgfSkpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG5vdGlmaWVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNFbGVtZW50KHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5oYXModGhpcy5zdHJpcFVybFByb3RvY29sKHVybCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdHJpcFVybFByb3RvY29sKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmwucmVwbGFjZSgvaHR0cHM/OlxcL1xcLy8sICcnKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBOb3RpZmllciB7XHJcbiAgcmVzb2x2ZTogKCkgPT4gdm9pZDtcclxuICByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkO1xyXG59XHJcbiJdfQ==

@@ -5,14 +5,129 @@ /**

*/
import { NgModule } from '@angular/core';
import { NgModule, Optional, Inject, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LazyElementDirective } from './lazy-element/lazy-element.directive';
import { LazyElementDynamicDirective } from './lazy-element-dynamic/lazy-element-dynamic.directive';
import { LazyElementsLoaderService } from './lazy-elements-loader.service';
import { LAZY_ELEMENT_ROOT_OPTIONS, LAZY_ELEMENT_CONFIGS, LAZY_ELEMENT_ROOT_GUARD, LAZY_ELEMENTS_REGISTRY } from './lazy-elements.tokens';
export { LAZY_ELEMENTS_REGISTRY };
/**
* @param {?} options
* @return {?}
*/
export function createLazyElementRootGuard(options) {
if (options) {
throw new TypeError(`LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.`);
}
return 'guarded';
}
export class LazyElementsModule {
/**
* @param {?} lazyElementsLoaderService
* @param {?} elementConfigsMultiProvider
* @param {?} guard
*/
constructor(lazyElementsLoaderService, elementConfigsMultiProvider, guard) {
if (elementConfigsMultiProvider && elementConfigsMultiProvider.length) {
/** @type {?} */
const lastAddedConfigs = elementConfigsMultiProvider[elementConfigsMultiProvider.length - 1];
lazyElementsLoaderService.addConfigs(lastAddedConfigs);
}
}
/**
* @param {?} options
* @return {?}
*/
static forRoot(options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_OPTIONS,
useValue: options.rootOptions ? options.rootOptions : {}
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options,
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_GUARD,
useFactory: createLazyElementRootGuard,
deps: [[LAZY_ELEMENT_CONFIGS, new Optional(), new SkipSelf()]]
}
]
};
}
/**
* @param {?} options
* @return {?}
*/
static forFeature(options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options && options.elementConfigs,
multi: true
}
]
};
}
}
LazyElementsModule.decorators = [
{ type: NgModule, args: [{
declarations: [LazyElementDirective],
declarations: [LazyElementDirective, LazyElementDynamicDirective],
imports: [CommonModule],
exports: [LazyElementDirective]
exports: [LazyElementDirective, LazyElementDynamicDirective],
providers: []
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTzdFLE1BQU0sT0FBTyxrQkFBa0I7OztZQUw5QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTGF6eUVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGF6eUVsZW1lbnREaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0xhenlFbGVtZW50RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNNb2R1bGUge31cbiJdfQ==
LazyElementsModule.ctorParameters = () => [
{ type: LazyElementsLoaderService },
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_CONFIGS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_GUARD,] }] }
];
/**
* @record
*/
export function LazyElementModuleOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementModuleOptions.prototype.elementConfigs;
}
/**
* @record
*/
export function LazyElementModuleRootOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementModuleRootOptions.prototype.elementConfigs;
/** @type {?|undefined} */
LazyElementModuleRootOptions.prototype.rootOptions;
}
/**
* @record
*/
export function LazyElementRootOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementRootOptions.prototype.loadingComponent;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.errorComponent;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.isModule;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.preload;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFFTiw0QkFBNEIsRUFFNUIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBRUwseUJBQXlCLEVBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUV2QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxzQkFBc0IsRUFBd0IsQ0FBQzs7Ozs7QUFFeEQsTUFBTSxxQ0FBcUMsT0FBaUM7SUFDMUUsSUFBSSxPQUFPLEVBQUU7UUFDWCxNQUFNLElBQUksU0FBUyxDQUNqQixnSEFBZ0gsQ0FDakgsQ0FBQztLQUNIO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQVFELE1BQU07Ozs7OztJQWdESixZQUNFLHlCQUFvRCxFQUdwRCwyQkFBOEMsRUFHOUMsS0FBVTtRQUVWLElBQUksMkJBQTJCLElBQUksMkJBQTJCLENBQUMsTUFBTSxFQUFFOztrQkFDL0QsZ0JBQWdCLEdBQ3BCLDJCQUEyQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDckUseUJBQXlCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDOzs7OztJQTdERCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQXFDO1FBQ2xELE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN6RDtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsNEJBQTRCO29CQUNyQyxRQUFRLEVBQUUsT0FBTztvQkFDakIsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtvQkFDaEMsVUFBVSxFQUFFLDBCQUEwQjtvQkFDdEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDL0Q7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBaUM7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFDTixPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakUsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLDRCQUE0QjtvQkFDckMsUUFBUSxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYztvQkFDM0MsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFwREYsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDO2dCQUNqRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDO2dCQUM1RCxTQUFTLEVBQUUsRUFBRTthQUNkOzs7WUExQkMseUJBQXlCO3dDQTZFdEIsUUFBUSxZQUNSLE1BQU0sU0FBQyxvQkFBb0I7NENBRTNCLFFBQVEsWUFDUixNQUFNLFNBQUMsdUJBQXVCOzs7OztBQVduQyw4Q0FFQzs7O0lBREMsa0RBQWlDOzs7OztBQUduQyxrREFHQzs7O0lBRkMsc0RBQWlDOztJQUNqQyxtREFBcUM7Ozs7O0FBR3ZDLDRDQUtDOzs7SUFKQyxrREFBNkI7O0lBQzdCLGdEQUEyQjs7SUFDM0IsMENBQW1COztJQUNuQix5Q0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIE5nTW9kdWxlLFxyXG4gIE9wdGlvbmFsLFxyXG4gIEluamVjdCxcclxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gIEFOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsXHJcbiAgVHlwZSxcclxuICBTa2lwU2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgTGF6eUVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQtZHluYW1pYy9sYXp5LWVsZW1lbnQtZHluYW1pYy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIEVsZW1lbnRDb25maWcsXHJcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZVxyXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcclxuICBMQVpZX0VMRU1FTlRfQ09ORklHUyxcclxuICBMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRCxcclxuICBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLFxyXG4gIExhenlFbGVtZW50c1JlZ2lzdHJ5XHJcbn0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLnRva2Vucyc7XHJcblxyXG5leHBvcnQgeyBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLCBMYXp5RWxlbWVudHNSZWdpc3RyeSB9O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkKG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlT3B0aW9ucykge1xyXG4gIGlmIChvcHRpb25zKSB7XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICBgTGF6eUVsZW1lbnRzTW9kdWxlLmZvclJvb3QoKSBjYWxsZWQgdHdpY2UuIEZlYXR1cmUgbW9kdWxlcyBzaG91bGQgdXNlIExhenlFbGVtZW50c01vZHVsZS5mb3JGZWF0dXJlKCkgaW5zdGVhZC5gXHJcbiAgICApO1xyXG4gIH1cclxuICByZXR1cm4gJ2d1YXJkZWQnO1xyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtMYXp5RWxlbWVudERpcmVjdGl2ZSwgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucm9vdE9wdGlvbnMgPyBvcHRpb25zLnJvb3RPcHRpb25zIDoge31cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRCxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkLFxyXG4gICAgICAgICAgZGVwczogW1tMQVpZX0VMRU1FTlRfQ09ORklHUywgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9yRmVhdHVyZShvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX0NPTkZJR1MpXHJcbiAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXI6IEVsZW1lbnRDb25maWdbXVtdLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQpXHJcbiAgICBndWFyZDogYW55XHJcbiAgKSB7XHJcbiAgICBpZiAoZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyICYmIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbGFzdEFkZGVkQ29uZmlncyA9XHJcbiAgICAgICAgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyW2VsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGggLSAxXTtcclxuICAgICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZS5hZGRDb25maWdzKGxhc3RBZGRlZENvbmZpZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMge1xyXG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMge1xyXG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xyXG4gIHJvb3RPcHRpb25zPzogTGF6eUVsZW1lbnRSb290T3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXp5RWxlbWVudFJvb3RPcHRpb25zIHtcclxuICBsb2FkaW5nQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcclxuICBwcmVsb2FkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=

@@ -8,3 +8,3 @@ /**

*/
export { LazyElementsModule } from './lib/lazy-elements/lazy-elements.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZWxlbWVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMubW9kdWxlJztcbiJdfQ==
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule } from './lib/lazy-elements/lazy-elements.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx1RkFBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlbGVtZW50c1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUnO1xyXG4iXX0=

@@ -8,5 +8,7 @@ /**

*/
export { LazyElementsModule } from './public-api';
export { LazyElementDirective as ɵa } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { LazyElementsLoaderService as ɵb } from './lib/lazy-elements/lazy-elements-loader.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1leHRlbnNpb25zLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImFuZ3VsYXItZXh0ZW5zaW9ucy1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsbUNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNuRyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TGF6eUVsZW1lbnREaXJlY3RpdmUgYXMgybVhfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCB7TGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSBhcyDJtWJ9IGZyb20gJy4vbGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7Il19
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule } from './public-api';
export { LazyElementDynamicDirective as ɵg } from './lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive';
export { LazyElementDirective as ɵd } from './lib/lazy-elements/lazy-element/lazy-element.directive';
export { LazyElementsLoaderService as ɵf } from './lib/lazy-elements/lazy-elements-loader.service';
export { LAZY_ELEMENT_CONFIGS as ɵa, LAZY_ELEMENT_ROOT_GUARD as ɵc, LAZY_ELEMENT_ROOT_OPTIONS as ɵb } from './lib/lazy-elements/lazy-elements.tokens';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1leHRlbnNpb25zLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImFuZ3VsYXItZXh0ZW5zaW9ucy1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsdUZBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUFxQix5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNySCxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgYXMgybVnfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZSc7XG5leHBvcnQge0xhenlFbGVtZW50RGlyZWN0aXZlIGFzIMm1ZH0gZnJvbSAnLi9saWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZW1lbnRDb25maWcgYXMgybVlLExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UgYXMgybVmfSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtMQVpZX0VMRU1FTlRfQ09ORklHUyBhcyDJtWEsTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQgYXMgybVjLExBWllfRUxFTUVOVF9ST09UX09QVElPTlMgYXMgybVifSBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMudG9rZW5zJzsiXX0=

@@ -5,9 +5,13 @@ /**

*/
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
import { LazyElementsLoaderService } from '../lazy-elements-loader.service';
/** @type {?} */
var LOG_PREFIX = '@angular-extensions/elements';
var LazyElementDirective = /** @class */ (function () {
function LazyElementDirective(vcr, template, elementsLoaderService) {
function LazyElementDirective(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}

@@ -23,7 +27,25 @@ /**

/** @type {?} */
var elementTag = ((/** @type {?} */ (this.template)))._def.element.template.nodes[0].element.name;
var tpl = (/** @type {?} */ (this.template));
/** @type {?} */
var elementTag = tpl._declarationTContainer
? tpl._declarationTContainer.tagName
: tpl._def.element.template.nodes[0].element.name;
/** @type {?} */
var elementConfig = this.elementsLoaderService.getElementConfig(elementTag) ||
((/** @type {?} */ ({})));
/** @type {?} */
var options = this.elementsLoaderService.options;
/** @type {?} */
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
this.elementsLoaderService.loadElement(this.url, elementTag).then((/**
else if (loadingComponent) {
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.then((/**
* @return {?}

@@ -34,2 +56,24 @@ */

_this.vcr.createEmbeddedView(_this.template);
_this.cdr.markForCheck();
}))
.catch((/**
* @return {?}
*/
function () {
_this.vcr.clear();
/** @type {?} */
var errorComponent = elementConfig.errorComponent || options.errorComponent;
if (_this.errorTemplateRef) {
_this.vcr.createEmbeddedView(_this.errorTemplateRef);
_this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
var factory = _this.cfr.resolveComponentFactory(errorComponent);
_this.vcr.createComponent(factory);
_this.cdr.markForCheck();
}
else {
console.error(LOG_PREFIX + " - Loading of element <" + elementTag + "> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement=\"errorTemplate: error\" to display customized error message in place of element");
}
}));

@@ -42,11 +86,14 @@ };

];
/** @nocollapse */
LazyElementDirective.ctorParameters = function () { return [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService }
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
]; };
LazyElementDirective.propDecorators = {
url: [{ type: Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoading',] }]
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementModule',] }]
};

@@ -61,2 +108,6 @@ return LazyElementDirective;

LazyElementDirective.prototype.loadingTemplateRef;
/** @type {?} */
LazyElementDirective.prototype.errorTemplateRef;
/** @type {?} */
LazyElementDirective.prototype.isModule;
/**

@@ -77,3 +128,13 @@ * @type {?}

LazyElementDirective.prototype.elementsLoaderService;
/**
* @type {?}
* @private
*/
LazyElementDirective.prototype.cfr;
/**
* @type {?}
* @private
*/
LazyElementDirective.prototype.cdr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFO0lBT0UsOEJBQ1UsR0FBcUIsRUFDckIsUUFBMEIsRUFDMUIscUJBQWdEO1FBRmhELFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7SUFDdkQsQ0FBQzs7OztJQUVKLHVDQUFROzs7SUFBUjtRQUFBLGlCQVdDOztZQVZPLFVBQVUsR0FBRyxDQUFDLG1CQUFBLElBQUksQ0FBQyxRQUFRLEVBQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtRQUVyRixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUk7OztRQUFDO1lBQ2hFLEtBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsS0FBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkF4QkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7O2dCQU4rQyxnQkFBZ0I7Z0JBQTdCLFdBQVc7Z0JBRXJDLHlCQUF5Qjs7O3NCQU0vQixLQUFLLFNBQUMsZUFBZTtxQ0FDckIsS0FBSyxTQUFDLHNCQUFzQjs7SUFvQi9CLDJCQUFDO0NBQUEsQUF6QkQsSUF5QkM7U0F0Qlksb0JBQW9COzs7SUFDL0IsbUNBQW9DOztJQUNwQyxrREFBb0U7Ozs7O0lBR2xFLG1DQUE2Qjs7Ozs7SUFDN0Isd0NBQWtDOzs7OztJQUNsQyxxREFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGF6eUVsZW1lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudCcpIHVybDogc3RyaW5nO1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRMb2FkaW5nJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBlbGVtZW50c0xvYWRlclNlcnZpY2U6IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnRUYWcgPSAodGhpcy50ZW1wbGF0ZSBhcyBhbnkpLl9kZWYuZWxlbWVudC50ZW1wbGF0ZS5ub2Rlc1swXS5lbGVtZW50Lm5hbWU7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UubG9hZEVsZW1lbnQodGhpcy51cmwsIGVsZW1lbnRUYWcpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7SUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUVqRDtJQVNFLDhCQUNVLEdBQXFCLEVBQ3JCLFFBQTBCLEVBQzFCLHFCQUFnRCxFQUNoRCxHQUE2QixFQUM3QixHQUFzQjtRQUp0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7Ozs7SUFFSix1Q0FBUTs7O0lBQVI7UUFBQSxpQkEyQ0M7O1lBMUNPLEdBQUcsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxFQUFPOztZQUMxQixVQUFVLEdBQUcsR0FBRyxDQUFDLHNCQUFzQjtZQUMzQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLE9BQU87WUFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7O1lBRTdDLGFBQWEsR0FDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUN2RCxDQUFDLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQzs7WUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPOztZQUM1QyxnQkFBZ0IsR0FDcEIsYUFBYSxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0I7UUFFNUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksZ0JBQWdCLEVBQUU7O2dCQUNyQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxxQkFBcUI7YUFDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEQsSUFBSTs7O1FBQUM7WUFDSixLQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLEtBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLEtBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFDO2FBQ0QsS0FBSzs7O1FBQUM7WUFDTCxLQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDOztnQkFDWCxjQUFjLEdBQ2xCLGFBQWEsQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWM7WUFDeEQsSUFBSSxLQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLEtBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ25ELEtBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekI7aUJBQU0sSUFBSSxjQUFjLEVBQUU7O29CQUNuQixPQUFPLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQ2hFLEtBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQ1IsVUFBVSwrQkFBMEIsVUFBVSxxTUFBZ00sQ0FDbFAsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOztnQkE1REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7Z0JBZEMsZ0JBQWdCO2dCQURoQixXQUFXO2dCQU9YLHlCQUF5QjtnQkFMekIsd0JBQXdCO2dCQUN4QixpQkFBaUI7OztzQkFjaEIsS0FBSyxTQUFDLGVBQWU7cUNBQ3JCLEtBQUssU0FBQyw4QkFBOEI7bUNBQ3BDLEtBQUssU0FBQyw0QkFBNEI7MkJBQ2xDLEtBQUssU0FBQyxxQkFBcUI7O0lBc0Q5QiwyQkFBQztDQUFBLEFBN0RELElBNkRDO1NBMURZLG9CQUFvQjs7O0lBQy9CLG1DQUFvQzs7SUFDcEMsa0RBQTRFOztJQUM1RSxnREFBd0U7O0lBQ3hFLHdDQUE0RDs7Ozs7SUFHMUQsbUNBQTZCOzs7OztJQUM3Qix3Q0FBa0M7Ozs7O0lBQ2xDLHFEQUF3RDs7Ozs7SUFDeEQsbUNBQXFDOzs7OztJQUNyQyxtQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcclxuICBFbGVtZW50Q29uZmlnXHJcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XHJcblxyXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCdheExhenlFbGVtZW50JykgdXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdheExhenlFbGVtZW50TG9hZGluZ1RlbXBsYXRlJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudEVycm9yVGVtcGxhdGUnKSBlcnJvclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudE1vZHVsZScpIGlzTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgZWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCB0cGwgPSB0aGlzLnRlbXBsYXRlIGFzIGFueTtcclxuICAgIGNvbnN0IGVsZW1lbnRUYWcgPSB0cGwuX2RlY2xhcmF0aW9uVENvbnRhaW5lclxyXG4gICAgICA/IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRhZ05hbWVcclxuICAgICAgOiB0cGwuX2RlZi5lbGVtZW50LnRlbXBsYXRlLm5vZGVzWzBdLmVsZW1lbnQubmFtZTtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cclxuICAgICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UuZ2V0RWxlbWVudENvbmZpZyhlbGVtZW50VGFnKSB8fFxyXG4gICAgICAoe30gYXMgRWxlbWVudENvbmZpZyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcclxuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxyXG4gICAgICBlbGVtZW50Q29uZmlnLmxvYWRpbmdDb21wb25lbnQgfHwgb3B0aW9ucy5sb2FkaW5nQ29tcG9uZW50O1xyXG5cclxuICAgIGlmICh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZikge1xyXG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpO1xyXG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsb2FkaW5nQ29tcG9uZW50KTtcclxuICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2VcclxuICAgICAgLmxvYWRFbGVtZW50KHRoaXMudXJsLCBlbGVtZW50VGFnLCB0aGlzLmlzTW9kdWxlKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XHJcbiAgICAgICAgICBlbGVtZW50Q29uZmlnLmVycm9yQ29tcG9uZW50IHx8IG9wdGlvbnMuZXJyb3JDb21wb25lbnQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JUZW1wbGF0ZVJlZikge1xyXG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XHJcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGVycm9yQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xyXG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gTG9hZGluZyBvZiBlbGVtZW50IDwke2VsZW1lbnRUYWd9PiBmYWlsZWQsIHBsZWFzZSBwcm92aWRlIDxuZy10ZW1wbGF0ZSAjZXJyb3I+TG9hZGluZyBmYWlsZWQuLi48L25nLXRlbXBsYXRlPiBhbmQgcmVmZXJlbmNlIGl0IGluICpheExhenlFbGVtZW50PVwiZXJyb3JUZW1wbGF0ZTogZXJyb3JcIiB0byBkaXNwbGF5IGN1c3RvbWl6ZWQgZXJyb3IgbWVzc2FnZSBpbiBwbGFjZSBvZiBlbGVtZW50YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=

@@ -5,13 +5,113 @@ /**

*/
import { Injectable } from '@angular/core';
import { Injectable, Optional, Inject } from '@angular/core';
import { LAZY_ELEMENT_ROOT_OPTIONS, LAZY_ELEMENTS_REGISTRY } from './lazy-elements.tokens';
import * as i0 from "@angular/core";
import * as i1 from "./lazy-elements.tokens";
/** @type {?} */
var LOG_PREFIX = '@angular-extensions/elements';
/**
* @record
*/
export function ElementConfig() { }
if (false) {
/** @type {?} */
ElementConfig.prototype.tag;
/** @type {?} */
ElementConfig.prototype.url;
/** @type {?|undefined} */
ElementConfig.prototype.isModule;
/** @type {?|undefined} */
ElementConfig.prototype.loadingComponent;
/** @type {?|undefined} */
ElementConfig.prototype.errorComponent;
/** @type {?|undefined} */
ElementConfig.prototype.preload;
}
var LazyElementsLoaderService = /** @class */ (function () {
function LazyElementsLoaderService() {
this.registry = new Map();
function LazyElementsLoaderService(registry, options) {
this.registry = registry;
this.options = options;
this.configs = [];
if (!options) {
this.options = {};
}
}
/**
* @param {?} newConfigs
* @return {?}
*/
LazyElementsLoaderService.prototype.addConfigs = /**
* @param {?} newConfigs
* @return {?}
*/
function (newConfigs) {
var _this = this;
newConfigs.forEach((/**
* @param {?} newConfig
* @return {?}
*/
function (newConfig) {
/** @type {?} */
var existingConfig = _this.getElementConfig(newConfig.tag);
if (existingConfig) {
console.warn(LOG_PREFIX + " - ElementConfig for tag '" + newConfig.tag + "' was previously added, it will not be added multiple times, continue...");
}
else {
_this.configs.push(newConfig);
/** @type {?} */
var shouldPreload = newConfig.preload !== undefined
? newConfig.preload
: _this.options.preload;
if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
}
}
}));
};
/**
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.getElementConfig = /**
* @param {?} tag
* @return {?}
*/
function (tag) {
return this.configs.find((/**
* @param {?} config
* @return {?}
*/
function (config) { return config.tag === tag; }));
};
/**
* @param {?=} tags
* @return {?}
*/
LazyElementsLoaderService.prototype.preload = /**
* @param {?=} tags
* @return {?}
*/
function (tags) {
var _this = this;
/** @type {?} */
var configs = this.configs;
if (tags) {
configs = this.configs.filter((/**
* @param {?} config
* @return {?}
*/
function (config) { return tags.includes(config.tag); }));
}
configs.forEach((/**
* @param {?} config
* @return {?}
*/
function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
}));
};
/**
* @param {?} url
* @param {?} tag
* @param {?=} isModule
* @return {?}

@@ -22,8 +122,20 @@ */

* @param {?} tag
* @param {?=} isModule
* @return {?}
*/
function (url, tag) {
function (url, tag, isModule) {
/** @type {?} */
var config = this.getElementConfig(tag);
if (!url) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
if (!config) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
}
url = config.url;
}
if (isModule === undefined) {
isModule =
config && config.isModule !== undefined
? config.isModule
: this.options.isModule;
}
if (!tag) {

@@ -37,4 +149,8 @@ throw new Error(LOG_PREFIX + " - tag for '" + url + "' not found, the *axLazyElement has to be used on HTML element");

var script = (/** @type {?} */ (document.createElement('script')));
if (isModule) {
script.type = 'module';
}
script.src = url;
script.onload = notifier;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);

@@ -59,5 +175,6 @@ }

* @param {?} resolve
* @param {?} reject
* @return {?}
*/
function (resolve) { return (notifier = resolve); })));
function (resolve, reject) { return (notifier = { resolve: resolve, reject: reject }); })));
return notifier;

@@ -96,5 +213,7 @@ };

];
/** @nocollapse */
LazyElementsLoaderService.ctorParameters = function () { return []; };
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(); }, token: LazyElementsLoaderService, providedIn: "root" });
LazyElementsLoaderService.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [LAZY_ELEMENTS_REGISTRY,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_OPTIONS,] }] }
]; };
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = i0.defineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(i0.inject(i1.LAZY_ELEMENTS_REGISTRY), i0.inject(i1.LAZY_ELEMENT_ROOT_OPTIONS, 8)); }, token: LazyElementsLoaderService, providedIn: "root" });
return LazyElementsLoaderService;

@@ -105,4 +224,21 @@ }());

/** @type {?} */
LazyElementsLoaderService.prototype.configs;
/**
* @type {?}
* @private
*/
LazyElementsLoaderService.prototype.registry;
/** @type {?} */
LazyElementsLoaderService.prototype.options;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFFckMsVUFBVSxHQUFHLDhCQUE4QjtBQUVqRDtJQU1FO1FBRkEsYUFBUSxHQUErQixJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUV6RCxDQUFDOzs7Ozs7SUFFaEIsK0NBQVc7Ozs7O0lBQVgsVUFBWSxHQUFXLEVBQUUsR0FBVztRQUNsQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBSSxVQUFVLG9CQUFlLEdBQUcsZ0JBQWEsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUksVUFBVSxvQkFBZSxHQUFHLG1FQUFnRSxDQUFDLENBQUM7U0FDbEg7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTs7Z0JBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQzs7Z0JBQy9CLE1BQU0sR0FBRyxtQkFBQSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFxQjtZQUNwRSxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNqQixNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRU8sOENBQVU7Ozs7O0lBQWxCLFVBQW1CLEdBQVc7O1lBQ3hCLFFBQVE7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxPQUFPOzs7O1FBQU8sVUFBQSxPQUFPLElBQUksT0FBQSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBcEIsQ0FBb0IsRUFBQyxDQUFDLENBQUM7UUFDbEcsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU8sOENBQVU7Ozs7O0lBQWxCLFVBQW1CLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7SUFFTyxvREFBZ0I7Ozs7O0lBQXhCLFVBQXlCLEdBQVc7UUFDbEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnQkF4Q0YsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7b0NBTkQ7Q0E2Q0MsQUF6Q0QsSUF5Q0M7U0F0Q1kseUJBQXlCOzs7SUFDcEMsNkNBQXdFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlIHtcbiAgcmVnaXN0cnk6IE1hcDxzdHJpbmcsIFByb21pc2U8dm9pZD4+ID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8dm9pZD4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGxvYWRFbGVtZW50KHVybDogc3RyaW5nLCB0YWc6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TE9HX1BSRUZJWH0gLSB1cmwgZm9yIDwke3RhZ30+IG5vdCBmb3VuZGApO1xuICAgIH1cblxuICAgIGlmICghdGFnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TE9HX1BSRUZJWH0gLSB0YWcgZm9yICcke3VybH0nIG5vdCBmb3VuZCwgdGhlICpheExhenlFbGVtZW50IGhhcyB0byBiZSB1c2VkIG9uIEhUTUwgZWxlbWVudGApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNFbGVtZW50KHVybCkpIHtcbiAgICAgIGNvbnN0IG5vdGlmaWVyID0gdGhpcy5hZGRFbGVtZW50KHVybCk7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcbiAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgICBzY3JpcHQub25sb2FkID0gbm90aWZpZXI7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRWxlbWVudCh1cmw6IHN0cmluZyk6ICgpID0+IHZvaWQge1xuICAgIGxldCBub3RpZmllcjtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldCh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSwgbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiAobm90aWZpZXIgPSByZXNvbHZlKSkpO1xuICAgIHJldHVybiBub3RpZmllcjtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRWxlbWVudCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lmhhcyh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIHN0cmlwVXJsUHJvdG9jb2wodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgvaHR0cHM/OlxcL1xcLy8sICcnKTtcbiAgfVxufVxuIl19
/**
* @record
*/
function Notifier() { }
if (false) {
/** @type {?} */
Notifier.prototype.resolve;
/** @type {?} */
Notifier.prototype.reject;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztJQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBRWpELG1DQU9DOzs7SUFOQyw0QkFBWTs7SUFDWiw0QkFBWTs7SUFDWixpQ0FBbUI7O0lBQ25CLHlDQUE2Qjs7SUFDN0IsdUNBQTJCOztJQUMzQixnQ0FBa0I7O0FBR3BCO0lBTUUsbUNBQzBDLFFBQThCLEVBRy9ELE9BQStCO1FBSEUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFHL0QsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFOeEMsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFRNUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw4Q0FBVTs7OztJQUFWLFVBQVcsVUFBMkI7UUFBdEMsaUJBa0JDO1FBakJDLFVBQVUsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxTQUFTOztnQkFDcEIsY0FBYyxHQUFHLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzNELElBQUksY0FBYyxFQUFFO2dCQUNsQixPQUFPLENBQUMsSUFBSSxDQUNQLFVBQVUsa0NBQTZCLFNBQVMsQ0FBQyxHQUFHLDZFQUEwRSxDQUNsSSxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7O29CQUN2QixhQUFhLEdBQ2pCLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztvQkFDN0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPO29CQUNuQixDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUMxQixJQUFJLGFBQWEsRUFBRTtvQkFDakIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNwRTthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELG9EQUFnQjs7OztJQUFoQixVQUFpQixHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBbEIsQ0FBa0IsRUFBQyxDQUFDO0lBQ3pELENBQUM7Ozs7O0lBRUQsMkNBQU87Ozs7SUFBUCxVQUFRLElBQWU7UUFBdkIsaUJBUUM7O1lBUEssT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPO1FBQzFCLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTs7OztZQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQXpCLENBQXlCLEVBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxNQUFNO1lBQ3BCLE9BQUEsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUF6RCxDQUF5RCxFQUMxRCxDQUFDO0lBQ0osQ0FBQzs7Ozs7OztJQUVELCtDQUFXOzs7Ozs7SUFBWCxVQUFZLEdBQVcsRUFBRSxHQUFXLEVBQUUsUUFBa0I7O1lBQ2hELE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1FBRXpDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUksVUFBVSxvQkFBZSxHQUFHLGdCQUFhLENBQUMsQ0FBQzthQUMvRDtZQUNELEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLFFBQVE7Z0JBQ04sTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUztvQkFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRO29CQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDVixVQUFVLG9CQUFlLEdBQUcsbUVBQWdFLENBQ2hHLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDbkIsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDOztnQkFDL0IsTUFBTSxHQUFHLG1CQUFBLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQXFCO1lBQ3BFLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2FBQ3hCO1lBQ0QsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRU8sOENBQVU7Ozs7O0lBQWxCLFVBQW1CLEdBQVc7O1lBQ3hCLFFBQWtCO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFDMUIsSUFBSSxPQUFPOzs7OztRQUFPLFVBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSyxPQUFBLENBQUMsUUFBUSxHQUFHLEVBQUUsT0FBTyxTQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUUsQ0FBQyxFQUFoQyxDQUFnQyxFQUFDLENBQ3pFLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs7Ozs7SUFFTyw4Q0FBVTs7Ozs7SUFBbEIsVUFBbUIsR0FBVztRQUM1QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7OztJQUVPLG9EQUFnQjs7Ozs7SUFBeEIsVUFBeUIsR0FBVztRQUNsQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O2dCQXhHRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Z0RBS0ksTUFBTSxTQUFDLHNCQUFzQjtnREFDN0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx5QkFBeUI7OztvQ0E3QnJDO0NBNkhDLEFBekdELElBeUdDO1NBdEdZLHlCQUF5Qjs7O0lBQ3BDLDRDQUE4Qjs7Ozs7SUFHNUIsNkNBQXNFOztJQUN0RSw0Q0FFc0M7Ozs7O0FBaUcxQyx1QkFHQzs7O0lBRkMsMkJBQW9COztJQUNwQiwwQkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYXp5RWxlbWVudFJvb3RPcHRpb25zIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLm1vZHVsZSc7XHJcbmltcG9ydCB7XHJcbiAgTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcclxuICBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLFxyXG4gIExhenlFbGVtZW50c1JlZ2lzdHJ5XHJcbn0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLnRva2Vucyc7XHJcblxyXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50Q29uZmlnIHtcclxuICB0YWc6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBpc01vZHVsZT86IGJvb2xlYW47XHJcbiAgbG9hZGluZ0NvbXBvbmVudD86IFR5cGU8YW55PjtcclxuICBlcnJvckNvbXBvbmVudD86IFR5cGU8YW55PjtcclxuICBwcmVsb2FkPzogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSB7XHJcbiAgY29uZmlnczogRWxlbWVudENvbmZpZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRTX1JFR0lTVFJZKSBwcml2YXRlIHJlZ2lzdHJ5OiBMYXp5RWxlbWVudHNSZWdpc3RyeSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KExBWllfRUxFTUVOVF9ST09UX09QVElPTlMpXHJcbiAgICBwdWJsaWMgb3B0aW9uczogTGF6eUVsZW1lbnRSb290T3B0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKCFvcHRpb25zKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ29uZmlncyhuZXdDb25maWdzOiBFbGVtZW50Q29uZmlnW10pIHtcclxuICAgIG5ld0NvbmZpZ3MuZm9yRWFjaChuZXdDb25maWcgPT4ge1xyXG4gICAgICBjb25zdCBleGlzdGluZ0NvbmZpZyA9IHRoaXMuZ2V0RWxlbWVudENvbmZpZyhuZXdDb25maWcudGFnKTtcclxuICAgICAgaWYgKGV4aXN0aW5nQ29uZmlnKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBFbGVtZW50Q29uZmlnIGZvciB0YWcgJyR7bmV3Q29uZmlnLnRhZ30nIHdhcyBwcmV2aW91c2x5IGFkZGVkLCBpdCB3aWxsIG5vdCBiZSBhZGRlZCBtdWx0aXBsZSB0aW1lcywgY29udGludWUuLi5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbmZpZ3MucHVzaChuZXdDb25maWcpO1xyXG4gICAgICAgIGNvbnN0IHNob3VsZFByZWxvYWQgPVxyXG4gICAgICAgICAgbmV3Q29uZmlnLnByZWxvYWQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IG5ld0NvbmZpZy5wcmVsb2FkXHJcbiAgICAgICAgICAgIDogdGhpcy5vcHRpb25zLnByZWxvYWQ7XHJcbiAgICAgICAgaWYgKHNob3VsZFByZWxvYWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZEVsZW1lbnQobmV3Q29uZmlnLnVybCwgbmV3Q29uZmlnLnRhZywgbmV3Q29uZmlnLmlzTW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudENvbmZpZyh0YWc6IHN0cmluZyk6IEVsZW1lbnRDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlncy5maW5kKGNvbmZpZyA9PiBjb25maWcudGFnID09PSB0YWcpO1xyXG4gIH1cclxuXHJcbiAgcHJlbG9hZCh0YWdzPzogc3RyaW5nW10pIHtcclxuICAgIGxldCBjb25maWdzID0gdGhpcy5jb25maWdzO1xyXG4gICAgaWYgKHRhZ3MpIHtcclxuICAgICAgY29uZmlncyA9IHRoaXMuY29uZmlncy5maWx0ZXIoY29uZmlnID0+IHRhZ3MuaW5jbHVkZXMoY29uZmlnLnRhZykpO1xyXG4gICAgfVxyXG4gICAgY29uZmlncy5mb3JFYWNoKGNvbmZpZyA9PlxyXG4gICAgICB0aGlzLmxvYWRFbGVtZW50KGNvbmZpZy51cmwsIGNvbmZpZy50YWcsIGNvbmZpZy5pc01vZHVsZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkRWxlbWVudCh1cmw6IHN0cmluZywgdGFnOiBzdHJpbmcsIGlzTW9kdWxlPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRFbGVtZW50Q29uZmlnKHRhZyk7XHJcblxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TE9HX1BSRUZJWH0gLSB1cmwgZm9yIDwke3RhZ30+IG5vdCBmb3VuZGApO1xyXG4gICAgICB9XHJcbiAgICAgIHVybCA9IGNvbmZpZy51cmw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzTW9kdWxlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgaXNNb2R1bGUgPVxyXG4gICAgICAgIGNvbmZpZyAmJiBjb25maWcuaXNNb2R1bGUgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgPyBjb25maWcuaXNNb2R1bGVcclxuICAgICAgICAgIDogdGhpcy5vcHRpb25zLmlzTW9kdWxlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGFnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgJHtMT0dfUFJFRklYfSAtIHRhZyBmb3IgJyR7dXJsfScgbm90IGZvdW5kLCB0aGUgKmF4TGF6eUVsZW1lbnQgaGFzIHRvIGJlIHVzZWQgb24gSFRNTCBlbGVtZW50YFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5oYXNFbGVtZW50KHVybCkpIHtcclxuICAgICAgY29uc3Qgbm90aWZpZXIgPSB0aGlzLmFkZEVsZW1lbnQodXJsKTtcclxuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgICAgIGlmIChpc01vZHVsZSkge1xyXG4gICAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7XHJcbiAgICAgIH1cclxuICAgICAgc2NyaXB0LnNyYyA9IHVybDtcclxuICAgICAgc2NyaXB0Lm9ubG9hZCA9IG5vdGlmaWVyLnJlc29sdmU7XHJcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gbm90aWZpZXIucmVqZWN0O1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRWxlbWVudCh1cmw6IHN0cmluZyk6IE5vdGlmaWVyIHtcclxuICAgIGxldCBub3RpZmllcjogTm90aWZpZXI7XHJcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChcclxuICAgICAgdGhpcy5zdHJpcFVybFByb3RvY29sKHVybCksXHJcbiAgICAgIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IChub3RpZmllciA9IHsgcmVzb2x2ZSwgcmVqZWN0IH0pKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBub3RpZmllcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRWxlbWVudCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuaGFzKHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RyaXBVcmxQcm90b2NvbCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL2h0dHBzPzpcXC9cXC8vLCAnJyk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgTm90aWZpZXIge1xyXG4gIHJlc29sdmU6ICgpID0+IHZvaWQ7XHJcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZDtcclxufVxyXG4iXX0=

@@ -5,18 +5,134 @@ /**

*/
import { NgModule } from '@angular/core';
import { NgModule, Optional, Inject, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LazyElementDirective } from './lazy-element/lazy-element.directive';
import { LazyElementDynamicDirective } from './lazy-element-dynamic/lazy-element-dynamic.directive';
import { LazyElementsLoaderService } from './lazy-elements-loader.service';
import { LAZY_ELEMENT_ROOT_OPTIONS, LAZY_ELEMENT_CONFIGS, LAZY_ELEMENT_ROOT_GUARD, LAZY_ELEMENTS_REGISTRY } from './lazy-elements.tokens';
export { LAZY_ELEMENTS_REGISTRY };
/**
* @param {?} options
* @return {?}
*/
export function createLazyElementRootGuard(options) {
if (options) {
throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");
}
return 'guarded';
}
var LazyElementsModule = /** @class */ (function () {
function LazyElementsModule() {
function LazyElementsModule(lazyElementsLoaderService, elementConfigsMultiProvider, guard) {
if (elementConfigsMultiProvider && elementConfigsMultiProvider.length) {
/** @type {?} */
var lastAddedConfigs = elementConfigsMultiProvider[elementConfigsMultiProvider.length - 1];
lazyElementsLoaderService.addConfigs(lastAddedConfigs);
}
}
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forRoot = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_OPTIONS,
useValue: options.rootOptions ? options.rootOptions : {}
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options,
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_GUARD,
useFactory: createLazyElementRootGuard,
deps: [[LAZY_ELEMENT_CONFIGS, new Optional(), new SkipSelf()]]
}
]
};
};
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forFeature = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options && options.elementConfigs,
multi: true
}
]
};
};
LazyElementsModule.decorators = [
{ type: NgModule, args: [{
declarations: [LazyElementDirective],
declarations: [LazyElementDirective, LazyElementDynamicDirective],
imports: [CommonModule],
exports: [LazyElementDirective]
exports: [LazyElementDirective, LazyElementDynamicDirective],
providers: []
},] }
];
LazyElementsModule.ctorParameters = function () { return [
{ type: LazyElementsLoaderService },
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_CONFIGS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_GUARD,] }] }
]; };
return LazyElementsModule;
}());
export { LazyElementsModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFO0lBQUE7SUFLaUMsQ0FBQzs7Z0JBTGpDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEM7O0lBQ2dDLHlCQUFDO0NBQUEsQUFMbEMsSUFLa0M7U0FBckIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IExhenlFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xhenlFbGVtZW50RGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtMYXp5RWxlbWVudERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTW9kdWxlIHt9XG4iXX0=
/**
* @record
*/
export function LazyElementModuleOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementModuleOptions.prototype.elementConfigs;
}
/**
* @record
*/
export function LazyElementModuleRootOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementModuleRootOptions.prototype.elementConfigs;
/** @type {?|undefined} */
LazyElementModuleRootOptions.prototype.rootOptions;
}
/**
* @record
*/
export function LazyElementRootOptions() { }
if (false) {
/** @type {?|undefined} */
LazyElementRootOptions.prototype.loadingComponent;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.errorComponent;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.isModule;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.preload;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFFTiw0QkFBNEIsRUFFNUIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBRUwseUJBQXlCLEVBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUV2QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxzQkFBc0IsRUFBd0IsQ0FBQzs7Ozs7QUFFeEQsTUFBTSxxQ0FBcUMsT0FBaUM7SUFDMUUsSUFBSSxPQUFPLEVBQUU7UUFDWCxNQUFNLElBQUksU0FBUyxDQUNqQixnSEFBZ0gsQ0FDakgsQ0FBQztLQUNIO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEO0lBc0RFLDRCQUNFLHlCQUFvRCxFQUdwRCwyQkFBOEMsRUFHOUMsS0FBVTtRQUVWLElBQUksMkJBQTJCLElBQUksMkJBQTJCLENBQUMsTUFBTSxFQUFFOztnQkFDL0QsZ0JBQWdCLEdBQ3BCLDJCQUEyQixDQUFDLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDckUseUJBQXlCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDOzs7OztJQTdETSwwQkFBTzs7OztJQUFkLFVBQWUsT0FBcUM7UUFDbEQsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFDTixPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakUsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtvQkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQ3pEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSw0QkFBNEI7b0JBQ3JDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxVQUFVLEVBQUUsMEJBQTBCO29CQUN0QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRU0sNkJBQVU7Ozs7SUFBakIsVUFBa0IsT0FBaUM7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFDTixPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakUsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLDRCQUE0QjtvQkFDckMsUUFBUSxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYztvQkFDM0MsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztnQkFwREYsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDO29CQUNqRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDO29CQUM1RCxTQUFTLEVBQUUsRUFBRTtpQkFDZDs7O2dCQTFCQyx5QkFBeUI7NENBNkV0QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG9CQUFvQjtnREFFM0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx1QkFBdUI7O0lBU25DLHlCQUFDO0NBQUEsQUFyRUQsSUFxRUM7U0EvRFksa0JBQWtCOzs7O0FBaUUvQiw4Q0FFQzs7O0lBREMsa0RBQWlDOzs7OztBQUduQyxrREFHQzs7O0lBRkMsc0RBQWlDOztJQUNqQyxtREFBcUM7Ozs7O0FBR3ZDLDRDQUtDOzs7SUFKQyxrREFBNkI7O0lBQzdCLGdEQUEyQjs7SUFDM0IsMENBQW1COztJQUNuQix5Q0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIE5nTW9kdWxlLFxyXG4gIE9wdGlvbmFsLFxyXG4gIEluamVjdCxcclxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gIEFOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsXHJcbiAgVHlwZSxcclxuICBTa2lwU2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgTGF6eUVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQtZHluYW1pYy9sYXp5LWVsZW1lbnQtZHluYW1pYy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIEVsZW1lbnRDb25maWcsXHJcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZVxyXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcclxuICBMQVpZX0VMRU1FTlRfQ09ORklHUyxcclxuICBMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRCxcclxuICBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLFxyXG4gIExhenlFbGVtZW50c1JlZ2lzdHJ5XHJcbn0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLnRva2Vucyc7XHJcblxyXG5leHBvcnQgeyBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLCBMYXp5RWxlbWVudHNSZWdpc3RyeSB9O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkKG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlT3B0aW9ucykge1xyXG4gIGlmIChvcHRpb25zKSB7XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxyXG4gICAgICBgTGF6eUVsZW1lbnRzTW9kdWxlLmZvclJvb3QoKSBjYWxsZWQgdHdpY2UuIEZlYXR1cmUgbW9kdWxlcyBzaG91bGQgdXNlIExhenlFbGVtZW50c01vZHVsZS5mb3JGZWF0dXJlKCkgaW5zdGVhZC5gXHJcbiAgICApO1xyXG4gIH1cclxuICByZXR1cm4gJ2d1YXJkZWQnO1xyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtMYXp5RWxlbWVudERpcmVjdGl2ZSwgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucm9vdE9wdGlvbnMgPyBvcHRpb25zLnJvb3RPcHRpb25zIDoge31cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFOQUxZWkVfRk9SX0VOVFJZX0NPTVBPTkVOVFMsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRCxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkLFxyXG4gICAgICAgICAgZGVwczogW1tMQVpZX0VMRU1FTlRfQ09ORklHUywgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9yRmVhdHVyZShvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyxcclxuICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX0NPTkZJR1MpXHJcbiAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXI6IEVsZW1lbnRDb25maWdbXVtdLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQpXHJcbiAgICBndWFyZDogYW55XHJcbiAgKSB7XHJcbiAgICBpZiAoZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyICYmIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbGFzdEFkZGVkQ29uZmlncyA9XHJcbiAgICAgICAgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyW2VsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGggLSAxXTtcclxuICAgICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZS5hZGRDb25maWdzKGxhc3RBZGRlZENvbmZpZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMge1xyXG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMge1xyXG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xyXG4gIHJvb3RPcHRpb25zPzogTGF6eUVsZW1lbnRSb290T3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXp5RWxlbWVudFJvb3RPcHRpb25zIHtcclxuICBsb2FkaW5nQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcclxuICBwcmVsb2FkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=

@@ -8,3 +8,3 @@ /**

*/
export { LazyElementsModule } from './lib/lazy-elements/lazy-elements.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxtQ0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZWxlbWVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudHMubW9kdWxlJztcbiJdfQ==
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule } from './lib/lazy-elements/lazy-elements.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx1RkFBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBlbGVtZW50c1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUnO1xyXG4iXX0=

@@ -1,3 +0,3 @@

import { Injectable, ɵɵdefineInjectable, Directive, ViewContainerRef, TemplateRef, Input, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { InjectionToken, Injectable, Optional, Inject, Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, NgModule, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf, defineInjectable, inject } from '@angular/core';

@@ -9,16 +9,114 @@ /**

/** @type {?} */
const LAZY_ELEMENT_CONFIGS = new InjectionToken('LAZY_ELEMENT_CONFIGS');
/** @type {?} */
const LAZY_ELEMENT_ROOT_OPTIONS = new InjectionToken('LAZY_ELEMENT_ROOT_OPTIONS');
/** @type {?} */
const LAZY_ELEMENT_ROOT_GUARD = new InjectionToken('LAZY_ELEMENT_ROOT_GUARD');
/** @type {?} */
const LAZY_ELEMENTS_REGISTRY = new InjectionToken('Lazu elements registry', {
providedIn: 'root',
factory: (/**
* @return {?}
*/
() => new Map())
});
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
const LOG_PREFIX = '@angular-extensions/elements';
class LazyElementsLoaderService {
constructor() {
this.registry = new Map();
/**
* @param {?} registry
* @param {?} options
*/
constructor(registry, options) {
this.registry = registry;
this.options = options;
this.configs = [];
if (!options) {
this.options = {};
}
}
/**
* @param {?} newConfigs
* @return {?}
*/
addConfigs(newConfigs) {
newConfigs.forEach((/**
* @param {?} newConfig
* @return {?}
*/
newConfig => {
/** @type {?} */
const existingConfig = this.getElementConfig(newConfig.tag);
if (existingConfig) {
console.warn(`${LOG_PREFIX} - ElementConfig for tag '${newConfig.tag}' was previously added, it will not be added multiple times, continue...`);
}
else {
this.configs.push(newConfig);
/** @type {?} */
const shouldPreload = newConfig.preload !== undefined
? newConfig.preload
: this.options.preload;
if (shouldPreload) {
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
}
}
}));
}
/**
* @param {?} tag
* @return {?}
*/
getElementConfig(tag) {
return this.configs.find((/**
* @param {?} config
* @return {?}
*/
config => config.tag === tag));
}
/**
* @param {?=} tags
* @return {?}
*/
preload(tags) {
/** @type {?} */
let configs = this.configs;
if (tags) {
configs = this.configs.filter((/**
* @param {?} config
* @return {?}
*/
config => tags.includes(config.tag)));
}
configs.forEach((/**
* @param {?} config
* @return {?}
*/
config => this.loadElement(config.url, config.tag, config.isModule)));
}
/**
* @param {?} url
* @param {?} tag
* @param {?=} isModule
* @return {?}
*/
loadElement(url, tag) {
loadElement(url, tag, isModule) {
/** @type {?} */
const config = this.getElementConfig(tag);
if (!url) {
throw new Error(`${LOG_PREFIX} - url for <${tag}> not found`);
if (!config) {
throw new Error(`${LOG_PREFIX} - url for <${tag}> not found`);
}
url = config.url;
}
if (isModule === undefined) {
isModule =
config && config.isModule !== undefined
? config.isModule
: this.options.isModule;
}
if (!tag) {

@@ -32,4 +130,8 @@ throw new Error(`${LOG_PREFIX} - tag for '${url}' not found, the *axLazyElement has to be used on HTML element`);

const script = (/** @type {?} */ (document.createElement('script')));
if (isModule) {
script.type = 'module';
}
script.src = url;
script.onload = notifier;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);

@@ -49,5 +151,6 @@ }

* @param {?} resolve
* @param {?} reject
* @return {?}
*/
resolve => (notifier = resolve))));
(resolve, reject) => (notifier = { resolve, reject }))));
return notifier;

@@ -77,5 +180,7 @@ }

];
/** @nocollapse */
LazyElementsLoaderService.ctorParameters = () => [];
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(); }, token: LazyElementsLoaderService, providedIn: "root" });
LazyElementsLoaderService.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [LAZY_ELEMENTS_REGISTRY,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_OPTIONS,] }] }
];
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = defineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(inject(LAZY_ELEMENTS_REGISTRY), inject(LAZY_ELEMENT_ROOT_OPTIONS, 8)); }, token: LazyElementsLoaderService, providedIn: "root" });

@@ -86,2 +191,4 @@ /**

*/
/** @type {?} */
const LOG_PREFIX$1 = '@angular-extensions/elements';
class LazyElementDirective {

@@ -93,7 +200,11 @@ // tslint:disable-line:no-input-rename

* @param {?} elementsLoaderService
* @param {?} cfr
* @param {?} cdr
*/
constructor(vcr, template, elementsLoaderService) {
constructor(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}

@@ -105,7 +216,25 @@ /**

/** @type {?} */
const elementTag = ((/** @type {?} */ (this.template)))._def.element.template.nodes[0].element.name;
const tpl = (/** @type {?} */ (this.template));
/** @type {?} */
const elementTag = tpl._declarationTContainer
? tpl._declarationTContainer.tagName
: tpl._def.element.template.nodes[0].element.name;
/** @type {?} */
const elementConfig = this.elementsLoaderService.getElementConfig(elementTag) ||
((/** @type {?} */ ({})));
/** @type {?} */
const options = this.elementsLoaderService.options;
/** @type {?} */
const loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
this.elementsLoaderService.loadElement(this.url, elementTag).then((/**
else if (loadingComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.then((/**
* @return {?}

@@ -116,2 +245,24 @@ */

this.vcr.createEmbeddedView(this.template);
this.cdr.markForCheck();
}))
.catch((/**
* @return {?}
*/
() => {
this.vcr.clear();
/** @type {?} */
const errorComponent = elementConfig.errorComponent || options.errorComponent;
if (this.errorTemplateRef) {
this.vcr.createEmbeddedView(this.errorTemplateRef);
this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(errorComponent);
this.vcr.createComponent(factory);
this.cdr.markForCheck();
}
else {
console.error(`${LOG_PREFIX$1} - Loading of element <${elementTag}> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement="errorTemplate: error" to display customized error message in place of element`);
}
}));

@@ -125,11 +276,14 @@ }

];
/** @nocollapse */
LazyElementDirective.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService }
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
];
LazyElementDirective.propDecorators = {
url: [{ type: Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoading',] }]
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementModule',] }]
};

@@ -141,13 +295,209 @@

*/
/** @type {?} */
const LOG_PREFIX$2 = '@angular-extensions/elements';
class LazyElementDynamicDirective {
// tslint:disable-line:no-input-rename
/**
* @param {?} vcr
* @param {?} template
* @param {?} elementsLoaderService
* @param {?} cfr
* @param {?} cdr
*/
constructor(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}
/**
* @return {?}
*/
ngOnInit() {
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {
throw new Error(`${LOG_PREFIX$2} - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="'some-tag'"), got: "${this.tag}"`);
}
/** @type {?} */
const elementConfig = this.elementsLoaderService.getElementConfig(this.tag) ||
((/** @type {?} */ ({})));
/** @type {?} */
const options = this.elementsLoaderService.options;
/** @type {?} */
const loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
else if (loadingComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.then((/**
* @return {?}
*/
() => {
if (((/** @type {?} */ (this.template)))._declarationTContainer) {
// (this.template as any)._declarationTContainer.tagName = this.tag;
throw new Error('The *axLazyElementDynamic directive is currently does NOT support Angular Ivy, please use standard *axLazyElement directive instead!');
}
else {
((/** @type {?} */ (this
.template)))._def.element.template.nodes[0].element.name = this.tag;
}
this.vcr.clear();
this.vcr.createEmbeddedView(this.template);
this.cdr.markForCheck();
}))
.catch((/**
* @param {?} error
* @return {?}
*/
error => {
/** @type {?} */
const errorComponent = elementConfig.errorComponent || options.errorComponent;
this.vcr.clear();
if (this.errorTemplateRef) {
this.vcr.createEmbeddedView(this.errorTemplateRef);
this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
const factory = this.cfr.resolveComponentFactory(errorComponent);
this.vcr.createComponent(factory);
this.cdr.markForCheck();
}
else {
console.error(`${LOG_PREFIX$2} - Loading of element <${this.tag}> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElementDynamic="errorTemplate: error" to display customized error message in place of element\n\n`, error);
}
}));
}
}
LazyElementDynamicDirective.decorators = [
{ type: Directive, args: [{
selector: '[axLazyElementDynamic]'
},] }
];
LazyElementDynamicDirective.ctorParameters = () => [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
];
LazyElementDynamicDirective.propDecorators = {
tag: [{ type: Input, args: ['axLazyElementDynamic',] }],
url: [{ type: Input, args: ['axLazyElementDynamicUrl',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementDynamicLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementDynamicErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementDynamicModule',] }]
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} options
* @return {?}
*/
function createLazyElementRootGuard(options) {
if (options) {
throw new TypeError(`LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.`);
}
return 'guarded';
}
class LazyElementsModule {
/**
* @param {?} lazyElementsLoaderService
* @param {?} elementConfigsMultiProvider
* @param {?} guard
*/
constructor(lazyElementsLoaderService, elementConfigsMultiProvider, guard) {
if (elementConfigsMultiProvider && elementConfigsMultiProvider.length) {
/** @type {?} */
const lastAddedConfigs = elementConfigsMultiProvider[elementConfigsMultiProvider.length - 1];
lazyElementsLoaderService.addConfigs(lastAddedConfigs);
}
}
/**
* @param {?} options
* @return {?}
*/
static forRoot(options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_OPTIONS,
useValue: options.rootOptions ? options.rootOptions : {}
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options,
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_GUARD,
useFactory: createLazyElementRootGuard,
deps: [[LAZY_ELEMENT_CONFIGS, new Optional(), new SkipSelf()]]
}
]
};
}
/**
* @param {?} options
* @return {?}
*/
static forFeature(options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options && options.elementConfigs,
multi: true
}
]
};
}
}
LazyElementsModule.decorators = [
{ type: NgModule, args: [{
declarations: [LazyElementDirective],
declarations: [LazyElementDirective, LazyElementDynamicDirective],
imports: [CommonModule],
exports: [LazyElementDirective]
exports: [LazyElementDirective, LazyElementDynamicDirective],
providers: []
},] }
];
LazyElementsModule.ctorParameters = () => [
{ type: LazyElementsLoaderService },
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_CONFIGS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_GUARD,] }] }
];
export { LazyElementsModule, LazyElementDirective as ɵa, LazyElementsLoaderService as ɵb };
//# sourceMappingURL=angular-extensions-elements.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule, LazyElementDynamicDirective as ɵg, LazyElementDirective as ɵd, LazyElementsLoaderService as ɵf, LAZY_ELEMENT_CONFIGS as ɵa, LAZY_ELEMENT_ROOT_GUARD as ɵc, LAZY_ELEMENT_ROOT_OPTIONS as ɵb };
//# sourceMappingURL=angular-extensions-elements.js.map

@@ -1,3 +0,3 @@

import { Injectable, ɵɵdefineInjectable, Directive, ViewContainerRef, TemplateRef, Input, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { InjectionToken, Injectable, Optional, Inject, Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, NgModule, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf, defineInjectable, inject } from '@angular/core';

@@ -9,10 +9,109 @@ /**

/** @type {?} */
var LAZY_ELEMENT_CONFIGS = new InjectionToken('LAZY_ELEMENT_CONFIGS');
/** @type {?} */
var LAZY_ELEMENT_ROOT_OPTIONS = new InjectionToken('LAZY_ELEMENT_ROOT_OPTIONS');
/** @type {?} */
var LAZY_ELEMENT_ROOT_GUARD = new InjectionToken('LAZY_ELEMENT_ROOT_GUARD');
/** @type {?} */
var LAZY_ELEMENTS_REGISTRY = new InjectionToken('Lazu elements registry', {
providedIn: 'root',
factory: (/**
* @return {?}
*/
function () { return new Map(); })
});
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var LOG_PREFIX = '@angular-extensions/elements';
var LazyElementsLoaderService = /** @class */ (function () {
function LazyElementsLoaderService() {
this.registry = new Map();
function LazyElementsLoaderService(registry, options) {
this.registry = registry;
this.options = options;
this.configs = [];
if (!options) {
this.options = {};
}
}
/**
* @param {?} newConfigs
* @return {?}
*/
LazyElementsLoaderService.prototype.addConfigs = /**
* @param {?} newConfigs
* @return {?}
*/
function (newConfigs) {
var _this = this;
newConfigs.forEach((/**
* @param {?} newConfig
* @return {?}
*/
function (newConfig) {
/** @type {?} */
var existingConfig = _this.getElementConfig(newConfig.tag);
if (existingConfig) {
console.warn(LOG_PREFIX + " - ElementConfig for tag '" + newConfig.tag + "' was previously added, it will not be added multiple times, continue...");
}
else {
_this.configs.push(newConfig);
/** @type {?} */
var shouldPreload = newConfig.preload !== undefined
? newConfig.preload
: _this.options.preload;
if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
}
}
}));
};
/**
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.getElementConfig = /**
* @param {?} tag
* @return {?}
*/
function (tag) {
return this.configs.find((/**
* @param {?} config
* @return {?}
*/
function (config) { return config.tag === tag; }));
};
/**
* @param {?=} tags
* @return {?}
*/
LazyElementsLoaderService.prototype.preload = /**
* @param {?=} tags
* @return {?}
*/
function (tags) {
var _this = this;
/** @type {?} */
var configs = this.configs;
if (tags) {
configs = this.configs.filter((/**
* @param {?} config
* @return {?}
*/
function (config) { return tags.includes(config.tag); }));
}
configs.forEach((/**
* @param {?} config
* @return {?}
*/
function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
}));
};
/**
* @param {?} url
* @param {?} tag
* @param {?=} isModule
* @return {?}

@@ -23,8 +122,20 @@ */

* @param {?} tag
* @param {?=} isModule
* @return {?}
*/
function (url, tag) {
function (url, tag, isModule) {
/** @type {?} */
var config = this.getElementConfig(tag);
if (!url) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
if (!config) {
throw new Error(LOG_PREFIX + " - url for <" + tag + "> not found");
}
url = config.url;
}
if (isModule === undefined) {
isModule =
config && config.isModule !== undefined
? config.isModule
: this.options.isModule;
}
if (!tag) {

@@ -38,4 +149,8 @@ throw new Error(LOG_PREFIX + " - tag for '" + url + "' not found, the *axLazyElement has to be used on HTML element");

var script = (/** @type {?} */ (document.createElement('script')));
if (isModule) {
script.type = 'module';
}
script.src = url;
script.onload = notifier;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);

@@ -60,5 +175,6 @@ }

* @param {?} resolve
* @param {?} reject
* @return {?}
*/
function (resolve) { return (notifier = resolve); })));
function (resolve, reject) { return (notifier = { resolve: resolve, reject: reject }); })));
return notifier;

@@ -97,5 +213,7 @@ };

];
/** @nocollapse */
LazyElementsLoaderService.ctorParameters = function () { return []; };
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = ɵɵdefineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(); }, token: LazyElementsLoaderService, providedIn: "root" });
LazyElementsLoaderService.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Inject, args: [LAZY_ELEMENTS_REGISTRY,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_OPTIONS,] }] }
]; };
/** @nocollapse */ LazyElementsLoaderService.ngInjectableDef = defineInjectable({ factory: function LazyElementsLoaderService_Factory() { return new LazyElementsLoaderService(inject(LAZY_ELEMENTS_REGISTRY), inject(LAZY_ELEMENT_ROOT_OPTIONS, 8)); }, token: LazyElementsLoaderService, providedIn: "root" });
return LazyElementsLoaderService;

@@ -108,7 +226,11 @@ }());

*/
/** @type {?} */
var LOG_PREFIX$1 = '@angular-extensions/elements';
var LazyElementDirective = /** @class */ (function () {
function LazyElementDirective(vcr, template, elementsLoaderService) {
function LazyElementDirective(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}

@@ -124,7 +246,25 @@ /**

/** @type {?} */
var elementTag = ((/** @type {?} */ (this.template)))._def.element.template.nodes[0].element.name;
var tpl = (/** @type {?} */ (this.template));
/** @type {?} */
var elementTag = tpl._declarationTContainer
? tpl._declarationTContainer.tagName
: tpl._def.element.template.nodes[0].element.name;
/** @type {?} */
var elementConfig = this.elementsLoaderService.getElementConfig(elementTag) ||
((/** @type {?} */ ({})));
/** @type {?} */
var options = this.elementsLoaderService.options;
/** @type {?} */
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
this.elementsLoaderService.loadElement(this.url, elementTag).then((/**
else if (loadingComponent) {
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.then((/**
* @return {?}

@@ -135,2 +275,24 @@ */

_this.vcr.createEmbeddedView(_this.template);
_this.cdr.markForCheck();
}))
.catch((/**
* @return {?}
*/
function () {
_this.vcr.clear();
/** @type {?} */
var errorComponent = elementConfig.errorComponent || options.errorComponent;
if (_this.errorTemplateRef) {
_this.vcr.createEmbeddedView(_this.errorTemplateRef);
_this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
var factory = _this.cfr.resolveComponentFactory(errorComponent);
_this.vcr.createComponent(factory);
_this.cdr.markForCheck();
}
else {
console.error(LOG_PREFIX$1 + " - Loading of element <" + elementTag + "> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElement=\"errorTemplate: error\" to display customized error message in place of element");
}
}));

@@ -143,11 +305,14 @@ };

];
/** @nocollapse */
LazyElementDirective.ctorParameters = function () { return [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService }
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
]; };
LazyElementDirective.propDecorators = {
url: [{ type: Input, args: ['axLazyElement',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoading',] }]
loadingTemplateRef: [{ type: Input, args: ['axLazyElementLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementModule',] }]
};

@@ -161,16 +326,210 @@ return LazyElementDirective;

*/
/** @type {?} */
var LOG_PREFIX$2 = '@angular-extensions/elements';
var LazyElementDynamicDirective = /** @class */ (function () {
function LazyElementDynamicDirective(vcr, template, elementsLoaderService, cfr, cdr) {
this.vcr = vcr;
this.template = template;
this.elementsLoaderService = elementsLoaderService;
this.cfr = cfr;
this.cdr = cdr;
}
/**
* @return {?}
*/
LazyElementDynamicDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {
throw new Error(LOG_PREFIX$2 + " - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic=\"'some-tag'\"), got: \"" + this.tag + "\"");
}
/** @type {?} */
var elementConfig = this.elementsLoaderService.getElementConfig(this.tag) ||
((/** @type {?} */ ({})));
/** @type {?} */
var options = this.elementsLoaderService.options;
/** @type {?} */
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent;
if (this.loadingTemplateRef) {
this.vcr.createEmbeddedView(this.loadingTemplateRef);
}
else if (loadingComponent) {
/** @type {?} */
var factory = this.cfr.resolveComponentFactory(loadingComponent);
this.vcr.createComponent(factory);
}
this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.then((/**
* @return {?}
*/
function () {
if (((/** @type {?} */ (_this.template)))._declarationTContainer) {
// (this.template as any)._declarationTContainer.tagName = this.tag;
throw new Error('The *axLazyElementDynamic directive is currently does NOT support Angular Ivy, please use standard *axLazyElement directive instead!');
}
else {
((/** @type {?} */ (_this
.template)))._def.element.template.nodes[0].element.name = _this.tag;
}
_this.vcr.clear();
_this.vcr.createEmbeddedView(_this.template);
_this.cdr.markForCheck();
}))
.catch((/**
* @param {?} error
* @return {?}
*/
function (error) {
/** @type {?} */
var errorComponent = elementConfig.errorComponent || options.errorComponent;
_this.vcr.clear();
if (_this.errorTemplateRef) {
_this.vcr.createEmbeddedView(_this.errorTemplateRef);
_this.cdr.markForCheck();
}
else if (errorComponent) {
/** @type {?} */
var factory = _this.cfr.resolveComponentFactory(errorComponent);
_this.vcr.createComponent(factory);
_this.cdr.markForCheck();
}
else {
console.error(LOG_PREFIX$2 + " - Loading of element <" + _this.tag + "> failed, please provide <ng-template #error>Loading failed...</ng-template> and reference it in *axLazyElementDynamic=\"errorTemplate: error\" to display customized error message in place of element\n\n", error);
}
}));
};
LazyElementDynamicDirective.decorators = [
{ type: Directive, args: [{
selector: '[axLazyElementDynamic]'
},] }
];
LazyElementDynamicDirective.ctorParameters = function () { return [
{ type: ViewContainerRef },
{ type: TemplateRef },
{ type: LazyElementsLoaderService },
{ type: ComponentFactoryResolver },
{ type: ChangeDetectorRef }
]; };
LazyElementDynamicDirective.propDecorators = {
tag: [{ type: Input, args: ['axLazyElementDynamic',] }],
url: [{ type: Input, args: ['axLazyElementDynamicUrl',] }],
loadingTemplateRef: [{ type: Input, args: ['axLazyElementDynamicLoadingTemplate',] }],
errorTemplateRef: [{ type: Input, args: ['axLazyElementDynamicErrorTemplate',] }],
isModule: [{ type: Input, args: ['axLazyElementDynamicModule',] }]
};
return LazyElementDynamicDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} options
* @return {?}
*/
function createLazyElementRootGuard(options) {
if (options) {
throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");
}
return 'guarded';
}
var LazyElementsModule = /** @class */ (function () {
function LazyElementsModule() {
function LazyElementsModule(lazyElementsLoaderService, elementConfigsMultiProvider, guard) {
if (elementConfigsMultiProvider && elementConfigsMultiProvider.length) {
/** @type {?} */
var lastAddedConfigs = elementConfigsMultiProvider[elementConfigsMultiProvider.length - 1];
lazyElementsLoaderService.addConfigs(lastAddedConfigs);
}
}
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forRoot = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_OPTIONS,
useValue: options.rootOptions ? options.rootOptions : {}
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options,
multi: true
},
{
provide: LAZY_ELEMENT_ROOT_GUARD,
useFactory: createLazyElementRootGuard,
deps: [[LAZY_ELEMENT_CONFIGS, new Optional(), new SkipSelf()]]
}
]
};
};
/**
* @param {?} options
* @return {?}
*/
LazyElementsModule.forFeature = /**
* @param {?} options
* @return {?}
*/
function (options) {
return {
ngModule: LazyElementsModule,
providers: [
{
provide: LAZY_ELEMENT_CONFIGS,
useValue: options && options.elementConfigs ? options.elementConfigs : [],
multi: true
},
{
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
useValue: options && options.elementConfigs,
multi: true
}
]
};
};
LazyElementsModule.decorators = [
{ type: NgModule, args: [{
declarations: [LazyElementDirective],
declarations: [LazyElementDirective, LazyElementDynamicDirective],
imports: [CommonModule],
exports: [LazyElementDirective]
exports: [LazyElementDirective, LazyElementDynamicDirective],
providers: []
},] }
];
LazyElementsModule.ctorParameters = function () { return [
{ type: LazyElementsLoaderService },
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_CONFIGS,] }] },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LAZY_ELEMENT_ROOT_GUARD,] }] }
]; };
return LazyElementsModule;
}());
export { LazyElementsModule, LazyElementDirective as ɵa, LazyElementsLoaderService as ɵb };
//# sourceMappingURL=angular-extensions-elements.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { LAZY_ELEMENTS_REGISTRY, createLazyElementRootGuard, LazyElementsModule, LazyElementDynamicDirective as ɵg, LazyElementDirective as ɵd, LazyElementsLoaderService as ɵf, LAZY_ELEMENT_CONFIGS as ɵa, LAZY_ELEMENT_ROOT_GUARD as ɵc, LAZY_ELEMENT_ROOT_OPTIONS as ɵb };
//# sourceMappingURL=angular-extensions-elements.js.map

@@ -1,2 +0,2 @@

import { OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { OnInit, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
import { LazyElementsLoaderService } from '../lazy-elements-loader.service';

@@ -7,6 +7,10 @@ export declare class LazyElementDirective implements OnInit {

private elementsLoaderService;
private cfr;
private cdr;
url: string;
loadingTemplateRef: TemplateRef<any>;
constructor(vcr: ViewContainerRef, template: TemplateRef<any>, elementsLoaderService: LazyElementsLoaderService);
errorTemplateRef: TemplateRef<any>;
isModule: boolean | undefined;
constructor(vcr: ViewContainerRef, template: TemplateRef<any>, elementsLoaderService: LazyElementsLoaderService, cfr: ComponentFactoryResolver, cdr: ChangeDetectorRef);
ngOnInit(): void;
}

@@ -0,8 +1,24 @@

import { Type } from '@angular/core';
import { LazyElementRootOptions } from './lazy-elements.module';
import { LazyElementsRegistry } from './lazy-elements.tokens';
export interface ElementConfig {
tag: string;
url: string;
isModule?: boolean;
loadingComponent?: Type<any>;
errorComponent?: Type<any>;
preload?: boolean;
}
export declare class LazyElementsLoaderService {
registry: Map<string, Promise<void>>;
constructor();
loadElement(url: string, tag: string): Promise<void>;
private addElement;
private hasElement;
private stripUrlProtocol;
private registry;
options: LazyElementRootOptions;
configs: ElementConfig[];
constructor(registry: LazyElementsRegistry, options: LazyElementRootOptions);
addConfigs(newConfigs: ElementConfig[]): void;
getElementConfig(tag: string): ElementConfig;
preload(tags?: string[]): void;
loadElement(url: string, tag: string, isModule?: boolean): Promise<void>;
private addElement(url);
private hasElement(url);
private stripUrlProtocol(url);
}

@@ -0,2 +1,23 @@

import { ModuleWithProviders, Type } from '@angular/core';
import { ElementConfig, LazyElementsLoaderService } from './lazy-elements-loader.service';
import { LAZY_ELEMENTS_REGISTRY, LazyElementsRegistry } from './lazy-elements.tokens';
export { LAZY_ELEMENTS_REGISTRY, LazyElementsRegistry };
export declare function createLazyElementRootGuard(options: LazyElementModuleOptions): string;
export declare class LazyElementsModule {
static forRoot(options: LazyElementModuleRootOptions): ModuleWithProviders;
static forFeature(options: LazyElementModuleOptions): ModuleWithProviders;
constructor(lazyElementsLoaderService: LazyElementsLoaderService, elementConfigsMultiProvider: ElementConfig[][], guard: any);
}
export interface LazyElementModuleOptions {
elementConfigs?: ElementConfig[];
}
export interface LazyElementModuleRootOptions {
elementConfigs?: ElementConfig[];
rootOptions?: LazyElementRootOptions;
}
export interface LazyElementRootOptions {
loadingComponent?: Type<any>;
errorComponent?: Type<any>;
isModule?: boolean;
preload?: boolean;
}
{
"name": "@angular-extensions/elements",
"version": "0.3.7",
"version": "6.1.0",
"peerDependencies": {
"@angular/common": ">6.0.0",
"@angular/core": ">6.0.0"
"@angular/common": "^8.0.0",
"@angular/core": "^8.0.0"
},

@@ -11,2 +11,22 @@ "publishConfig": {

},
"keywords": [
"angular",
"elements",
"web componentst",
"custom elements",
"lazy loading",
"microfrontends",
"components",
"web component"
],
"author": "Tomas Trajan <@tomastrajan>",
"license": "MIT",
"homepage": "https://github.com/angular-extensions/elements#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/angular-extensions/elements.git"
},
"bugs": {
"url": "https://github.com/angular-extensions/elements/issues"
},
"main": "bundles/angular-extensions-elements.umd.js",

@@ -13,0 +33,0 @@ "module": "fesm5/angular-extensions-elements.js",

export * from './lib/lazy-elements/lazy-elements.module';

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc