Socket
Socket
Sign inDemoInstall

@angular-extensions/elements

Package Overview
Dependencies
5
Maintainers
4
Versions
63
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 9.1.3 to 9.2.0

2

angular-extensions-elements.metadata.json

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

{"__symbolic":"module","version":4,"metadata":{"createLazyElementRootGuard":{"__symbolic":"function"},"LazyElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":31,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LazyElementDirective"},{"__symbolic":"reference","name":"LazyElementDynamicDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":33,"character":12}],"exports":[{"__symbolic":"reference","name":"LazyElementDirective"},{"__symbolic":"reference","name":"LazyElementDynamicDirective"}],"providers":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":81,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":82,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":84,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":85,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENT_ROOT_GUARD"}]}]],"parameters":[{"__symbolic":"reference","name":"LazyElementsLoaderService"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ElementConfig"}]}]},{"__symbolic":"reference","name":"any"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},"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":"LAZY_ELEMENT_ROOT_OPTIONS"},"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","name":"LAZY_ELEMENT_ROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"createLazyElementRootGuard"},"deps":[[{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":57,"character":44}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":57,"character":60}}]]}]}},"forFeature":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},"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}]}}}},"LazyElementModuleOptions":{"__symbolic":"interface"},"LazyElementModuleRootOptions":{"__symbolic":"interface"},"LazyElementRootOptions":{"__symbolic":"interface"},"LAZY_ELEMENT_CONFIGS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":5,"character":40},"arguments":["LAZY_ELEMENT_CONFIGS"]},"LAZY_ELEMENT_ROOT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":45},"arguments":["LAZY_ELEMENT_ROOT_OPTIONS"]},"LAZY_ELEMENT_ROOT_GUARD":{"__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":["LAZY_ELEMENTS_REGISTRY",{"__symbolic":"error","message":"Lambda not supported","line":21,"character":13,"module":"./lib/lazy-elements/lazy-elements.tokens"}]},"LazyElementsRegistry":{"__symbolic":"interface"},"ElementConfig":{"__symbolic":"interface"},"LazyElementsLoaderService":{"__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":"LAZY_ELEMENT_ROOT_OPTIONS"}]}]],"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":{"ɵprov":{}}},"LazyElementDirective":{"__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":"LazyElementsLoaderService"},{"__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"}]}},"LazyElementDynamicDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[axLazyElementDynamic]"}]}],"members":{"tag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["axLazyElementDynamic"]}]}],"url":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3},"arguments":["axLazyElementDynamicUrl"]}]}],"loadingTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3},"arguments":["axLazyElementDynamicLoadingTemplate"]}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["axLazyElementDynamicErrorTemplate"]}]}],"isModule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3},"arguments":["axLazyElementDynamicModule"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":36,"character":12}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":36,"character":40,"context":{"typeName":"Document"},"module":"./lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":38,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":39,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":40,"character":17},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"LazyElementsLoaderService"}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"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","LAZY_ELEMENT_CONFIGS":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENT_ROOT_OPTIONS":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENT_ROOT_GUARD":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENTS_REGISTRY":"./lib/lazy-elements/lazy-elements.tokens","LazyElementsRegistry":"./lib/lazy-elements/lazy-elements.tokens","ElementConfig":"./lib/lazy-elements/lazy-elements-loader.service","LazyElementsLoaderService":"./lib/lazy-elements/lazy-elements-loader.service","LazyElementDirective":"./lib/lazy-elements/lazy-element/lazy-element.directive","LazyElementDynamicDirective":"./lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive"},"importAs":"@angular-extensions/elements"}
{"__symbolic":"module","version":4,"metadata":{"createLazyElementRootGuard":{"__symbolic":"function"},"LazyElementsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LazyElementDirective"},{"__symbolic":"reference","name":"LazyElementDynamicDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":34,"character":12}],"exports":[{"__symbolic":"reference","name":"LazyElementDirective"},{"__symbolic":"reference","name":"LazyElementDynamicDirective"}],"providers":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":82,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":83,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":85,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":86,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENT_ROOT_GUARD"}]}]],"parameters":[{"__symbolic":"reference","name":"LazyElementsLoaderService"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ElementConfig"}]}]},{"__symbolic":"reference","name":"any"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},"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":"LAZY_ELEMENT_ROOT_OPTIONS"},"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","name":"LAZY_ELEMENT_ROOT_GUARD"},"useFactory":{"__symbolic":"reference","name":"createLazyElementRootGuard"},"deps":[[{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":58,"character":44}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":58,"character":60}}]]}]}},"forFeature":{"__symbolic":"function","parameters":["options"],"value":{"ngModule":{"__symbolic":"reference","name":"LazyElementsModule"},"providers":[{"provide":{"__symbolic":"reference","name":"LAZY_ELEMENT_CONFIGS"},"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}]}}}},"LazyElementModuleOptions":{"__symbolic":"interface"},"LazyElementModuleRootOptions":{"__symbolic":"interface"},"LazyElementRootOptions":{"__symbolic":"interface"},"LAZY_ELEMENT_CONFIGS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":5,"character":40},"arguments":["LAZY_ELEMENT_CONFIGS"]},"LAZY_ELEMENT_ROOT_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":45},"arguments":["LAZY_ELEMENT_ROOT_OPTIONS"]},"LAZY_ELEMENT_ROOT_GUARD":{"__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":["LAZY_ELEMENTS_REGISTRY",{"__symbolic":"error","message":"Lambda not supported","line":21,"character":13,"module":"./lib/lazy-elements/lazy-elements.tokens"}]},"LazyElementsRegistry":{"__symbolic":"interface"},"Hook":{"__symbolic":"interface"},"HooksConfig":{"__symbolic":"interface"},"ElementConfig":{"__symbolic":"interface"},"LazyElementsLoaderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":28,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":35,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENTS_REGISTRY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":5},"arguments":[{"__symbolic":"reference","name":"LAZY_ELEMENT_ROOT_OPTIONS"}]}]],"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"}],"isPromise":[{"__symbolic":"method"}],"handleHook":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"LazyElementDirective":{"__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":"LazyElementsLoaderService"},{"__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"}]}},"LazyElementDynamicDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[axLazyElementDynamic]"}]}],"members":{"tag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["axLazyElementDynamic"]}]}],"url":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3},"arguments":["axLazyElementDynamicUrl"]}]}],"loadingTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3},"arguments":["axLazyElementDynamicLoadingTemplate"]}]}],"errorTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3},"arguments":["axLazyElementDynamicErrorTemplate"]}]}],"isModule":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3},"arguments":["axLazyElementDynamicModule"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":36,"character":12}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"error","message":"Could not resolve type","line":36,"character":40,"context":{"typeName":"Document"},"module":"./lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":38,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":39,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":40,"character":17},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"LazyElementsLoaderService"}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"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","LAZY_ELEMENT_CONFIGS":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENT_ROOT_OPTIONS":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENT_ROOT_GUARD":"./lib/lazy-elements/lazy-elements.tokens","LAZY_ELEMENTS_REGISTRY":"./lib/lazy-elements/lazy-elements.tokens","LazyElementsRegistry":"./lib/lazy-elements/lazy-elements.tokens","Hook":"./lib/lazy-elements/lazy-elements-loader.service","HooksConfig":"./lib/lazy-elements/lazy-elements-loader.service","ElementConfig":"./lib/lazy-elements/lazy-elements-loader.service","LazyElementsLoaderService":"./lib/lazy-elements/lazy-elements-loader.service","LazyElementDirective":"./lib/lazy-elements/lazy-element/lazy-element.directive","LazyElementDynamicDirective":"./lib/lazy-elements/lazy-element-dynamic/lazy-element-dynamic.directive"},"importAs":"@angular-extensions/elements"}

@@ -47,2 +47,12 @@ (function (global, factory) {

*/
function HooksConfig() { }
if (false) {
/** @type {?|undefined} */
HooksConfig.prototype.beforeLoad;
/** @type {?|undefined} */
HooksConfig.prototype.afterLoad;
}
/**
* @record
*/
function ElementConfig() { }

@@ -62,2 +72,4 @@ if (false) {

ElementConfig.prototype.preload;
/** @type {?|undefined} */
ElementConfig.prototype.hooks;
}

@@ -100,3 +112,3 @@ var LazyElementsLoaderService = /** @class */ (function () {

if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule, newConfig.hooks);
}

@@ -145,3 +157,3 @@ }

function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
return _this.loadElement(config.url, config.tag, config.isModule, config.hooks);
}));

@@ -153,2 +165,3 @@ };

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}

@@ -160,5 +173,8 @@ */

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}
*/
function (url, tag, isModule) {
function (url, tag, isModule, hooksConfig) {
var _this = this;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
/** @type {?} */

@@ -183,12 +199,38 @@ var config = this.getElementConfig(tag);

/** @type {?} */
var notifier = this.addElement(url);
var notifier_1 = this.addElement(url);
/** @type {?} */
var script = (/** @type {?} */ (document.createElement('script')));
var script_1 = (/** @type {?} */ (document.createElement('script')));
/** @type {?} */
var beforeLoadHook = (_e = (_b = (_a = hooksConfig) === null || _a === void 0 ? void 0 : _a.beforeLoad, (_b !== null && _b !== void 0 ? _b : (_d = (_c = config) === null || _c === void 0 ? void 0 : _c.hooks) === null || _d === void 0 ? void 0 : _d.beforeLoad)), (_e !== null && _e !== void 0 ? _e : (_g = (_f = this.options) === null || _f === void 0 ? void 0 : _f.hooks) === null || _g === void 0 ? void 0 : _g.beforeLoad));
/** @type {?} */
var afterLoadHook_1 = (_m = (_j = (_h = hooksConfig) === null || _h === void 0 ? void 0 : _h.afterLoad, (_j !== null && _j !== void 0 ? _j : (_l = (_k = config) === null || _k === void 0 ? void 0 : _k.hooks) === null || _l === void 0 ? void 0 : _l.afterLoad)), (_m !== null && _m !== void 0 ? _m : (_p = (_o = this.options) === null || _o === void 0 ? void 0 : _o.hooks) === null || _p === void 0 ? void 0 : _p.afterLoad));
if (isModule) {
script.type = 'module';
script_1.type = 'module';
}
script.src = url;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);
script_1.src = url;
script_1.onload = (/**
* @return {?}
*/
function () {
if (afterLoadHook_1) {
_this.handleHook(afterLoadHook_1, tag)
.then(notifier_1.resolve)
.catch(notifier_1.reject);
}
else {
notifier_1.resolve();
}
});
script_1.onerror = notifier_1.reject;
if (beforeLoadHook) {
this.handleHook(beforeLoadHook, tag)
.then((/**
* @return {?}
*/
function () { return document.body.appendChild(script_1); }))
.catch(notifier_1.reject);
}
else {
document.body.appendChild(script_1);
}
}

@@ -244,2 +286,45 @@ return this.registry.get(this.stripUrlProtocol(url));

};
/**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
LazyElementsLoaderService.prototype.isPromise = /**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
function (obj) {
var _a;
return typeof ((_a = ((/** @type {?} */ (obj)))) === null || _a === void 0 ? void 0 : _a.then) === 'function';
};
/**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.handleHook = /**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
function (hook, tag) {
try {
/** @type {?} */
var result = hook(tag);
if (this.isPromise(result)) {
return result;
}
else {
return Promise.resolve();
}
}
catch (err) {
return Promise.reject(err);
}
};
LazyElementsLoaderService.decorators = [

@@ -302,2 +387,3 @@ { type: core.Injectable, args: [{

var _this = this;
var _a;
/** @type {?} */

@@ -325,3 +411,3 @@ var tpl = (/** @type {?} */ (this.template));

this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.loadElement(this.url, elementTag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -441,2 +527,3 @@ * @return {?}

var _this = this;
var _a;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {

@@ -461,3 +548,3 @@ throw new Error(LOG_PREFIX$2 + " - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic=\"'some-tag'\"), got: \"" + this.tag + "\"");

this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.loadElement(this.url, this.tag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -698,2 +785,4 @@ * @return {?}

LazyElementRootOptions.prototype.preload;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.hooks;
}

@@ -700,0 +789,0 @@

@@ -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,r){"use strict";var n=new t.InjectionToken("LAZY_ELEMENT_CONFIGS"),o=new t.InjectionToken("LAZY_ELEMENT_ROOT_OPTIONS"),a=new t.InjectionToken("LAZY_ELEMENT_ROOT_GUARD"),i=new t.InjectionToken("LAZY_ELEMENTS_REGISTRY",{providedIn:"root",factory:function(){return new Map}});var l="@angular-extensions/elements";var s=function(){function e(e,t){this.registry=e,this.options=t,this.configs=[],t||(this.options={})}return e.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),(void 0!==e.preload?e.preload:t.options.preload)&&t.loadElement(e.url,e.tag,e.isModule))}))},e.prototype.getElementConfig=function(e){return this.configs.find((function(t){return t.tag===e}))},e.prototype.preload=function(e){var t=this,r=this.configs;e&&(r=this.configs.filter((function(t){return e.includes(t.tag)}))),r.forEach((function(e){return t.loadElement(e.url,e.tag,e.isModule)}))},e.prototype.loadElement=function(e,t,r){var n=this.getElementConfig(t);if(!e){if(!n||!n.url)throw new Error(l+" - url for <"+t+"> not found");e=n.url}if(void 0===r&&(r=n&&void 0!==n.isModule?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))},e.prototype.addElement=function(e){var t;return this.registry.set(this.stripUrlProtocol(e),new Promise((function(e,r){return t={resolve:e,reject:r}}))),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[{type:void 0,decorators:[{type:t.Inject,args:[i]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[o]}]}]},e.ɵprov=t["ɵɵdefineInjectable"]({factory:function(){return new e(t["ɵɵinject"](i),t["ɵɵinject"](o,8))},token:e,providedIn:"root"}),e}();var c=function(){function e(e,t,r,n,o){this.vcr=e,this.template=t,this.elementsLoaderService=r,this.cfr=n,this.cdr=o}return e.prototype.ngOnInit=function(){var e=this,t=this.template,r=t._declarationTContainer?t._declarationTContainer.tagName:t._def.element.template.nodes[0].element.name,n=this.elementsLoaderService.getElementConfig(r)||{},o=this.elementsLoaderService.options,a=n.loadingComponent||o.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(a){var i=this.cfr.resolveComponentFactory(a);this.vcr.createComponent(i)}this.elementsLoaderService.loadElement(this.url,r,this.isModule).then((function(){e.vcr.clear(),e.vcr.createEmbeddedView(e.template),e.cdr.markForCheck()})).catch((function(){e.vcr.clear();var t=n.errorComponent||o.errorComponent;if(e.errorTemplateRef)e.vcr.createEmbeddedView(e.errorTemplateRef),e.cdr.markForCheck();else if(t){var a=e.cfr.resolveComponentFactory(t);e.vcr.createComponent(a),e.cdr.markForCheck()}else console.error("@angular-extensions/elements - Loading of element <"+r+'> 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')}))},e.decorators=[{type:t.Directive,args:[{selector:"[axLazyElement]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:s},{type:t.ComponentFactoryResolver},{type:t.ChangeDetectorRef}]},e.propDecorators={url:[{type:t.Input,args:["axLazyElement"]}],loadingTemplateRef:[{type:t.Input,args:["axLazyElementLoadingTemplate"]}],errorTemplateRef:[{type:t.Input,args:["axLazyElementErrorTemplate"]}],isModule:[{type:t.Input,args:["axLazyElementModule"]}]},e}();var p=function(){function e(e,t,r,n,o,a,i){this.document=e,this.renderer=t,this.vcr=r,this.cfr=n,this.cdr=o,this.template=a,this.elementsLoaderService=i}return e.prototype.ngOnInit=function(){var e=this;if(!this.tag||0===this.tag.length||!this.tag.includes("-"))throw new Error('@angular-extensions/elements - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="\'some-tag\'"), got: "'+this.tag+'"');var t=this.elementsLoaderService.getElementConfig(this.tag)||{},r=this.elementsLoaderService.options,n=t.loadingComponent||r.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(n){var o=this.cfr.resolveComponentFactory(n);this.vcr.createComponent(o)}this.elementsLoaderService.loadElement(this.url,this.tag,this.isModule).then((function(){e.vcr.clear();var t=e.renderer.createElement;e.renderer.createElement=function(t,r){return"ax-lazy-element"===t&&(t=e.tag),e.document.createElement(t)},e.vcr.createEmbeddedView(e.template),e.renderer.createElement=t,e.cdr.markForCheck()})).catch((function(n){var o=t.errorComponent||r.errorComponent;if(e.vcr.clear(),e.errorTemplateRef)e.vcr.createEmbeddedView(e.errorTemplateRef),e.cdr.markForCheck();else if(o){var a=e.cfr.resolveComponentFactory(o);e.vcr.createComponent(a),e.cdr.markForCheck()}else console.error("@angular-extensions/elements - Loading of element <"+e.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',n)}))},e.decorators=[{type:t.Directive,args:[{selector:"[axLazyElementDynamic]"}]}],e.ctorParameters=function(){return[{type:Document,decorators:[{type:t.Inject,args:[r.DOCUMENT]}]},{type:t.Renderer2},{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver},{type:t.ChangeDetectorRef},{type:t.TemplateRef},{type:s}]},e.propDecorators={tag:[{type:t.Input,args:["axLazyElementDynamic"]}],url:[{type:t.Input,args:["axLazyElementDynamicUrl"]}],loadingTemplateRef:[{type:t.Input,args:["axLazyElementDynamicLoadingTemplate"]}],errorTemplateRef:[{type:t.Input,args:["axLazyElementDynamicErrorTemplate"]}],isModule:[{type:t.Input,args:["axLazyElementDynamicModule"]}]},e}();function d(e){if(e)throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");return"guarded"}var m=function(){function e(e,t,r){if(t&&t.length){var n=t[t.length-1];e.addConfigs(n)}}return e.forRoot=function(r){return{ngModule:e,providers:[{provide:n,useValue:r&&r.elementConfigs?r.elementConfigs:[],multi:!0},{provide:o,useValue:r.rootOptions?r.rootOptions:{}},{provide:a,useFactory:d,deps:[[n,new t.Optional,new t.SkipSelf]]}]}},e.forFeature=function(t){return{ngModule:e,providers:[{provide:n,useValue:t&&t.elementConfigs?t.elementConfigs:[],multi:!0}]}},e.decorators=[{type:t.NgModule,args:[{declarations:[c,p],imports:[r.CommonModule],exports:[c,p],providers:[]}]}],e.ctorParameters=function(){return[{type:s},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[n]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[a]}]}]},e}();e.LAZY_ELEMENTS_REGISTRY=i,e.LAZY_ELEMENT_CONFIGS=n,e.LAZY_ELEMENT_ROOT_GUARD=a,e.LAZY_ELEMENT_ROOT_OPTIONS=o,e.LazyElementDirective=c,e.LazyElementDynamicDirective=p,e.LazyElementsLoaderService=s,e.LazyElementsModule=m,e.createLazyElementRootGuard=d,Object.defineProperty(e,"__esModule",{value:!0})}));
!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,o){"use strict";var r=new t.InjectionToken("LAZY_ELEMENT_CONFIGS"),n=new t.InjectionToken("LAZY_ELEMENT_ROOT_OPTIONS"),i=new t.InjectionToken("LAZY_ELEMENT_ROOT_GUARD"),a=new t.InjectionToken("LAZY_ELEMENTS_REGISTRY",{providedIn:"root",factory:function(){return new Map}});var l="@angular-extensions/elements";var s=function(){function e(e,t){this.registry=e,this.options=t,this.configs=[],t||(this.options={})}return e.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),(void 0!==e.preload?e.preload:t.options.preload)&&t.loadElement(e.url,e.tag,e.isModule,e.hooks))}))},e.prototype.getElementConfig=function(e){return this.configs.find((function(t){return t.tag===e}))},e.prototype.preload=function(e){var t=this,o=this.configs;e&&(o=this.configs.filter((function(t){return e.includes(t.tag)}))),o.forEach((function(e){return t.loadElement(e.url,e.tag,e.isModule,e.hooks)}))},e.prototype.loadElement=function(e,t,o,r){var n,i,a,s,c,d,p,u,m,f,h,g,v,y,E=this,L=this.getElementConfig(t);if(!e){if(!L||!L.url)throw new Error(l+" - url for <"+t+"> not found");e=L.url}if(void 0===o&&(o=L&&void 0!==L.isModule?L.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 C=this.addElement(e),T=document.createElement("script"),R=null!=(c=null!=(i=null===(n=r)||void 0===n?void 0:n.beforeLoad)?i:null===(s=null===(a=L)||void 0===a?void 0:a.hooks)||void 0===s?void 0:s.beforeLoad)?c:null===(p=null===(d=this.options)||void 0===d?void 0:d.hooks)||void 0===p?void 0:p.beforeLoad,I=null!=(g=null!=(m=null===(u=r)||void 0===u?void 0:u.afterLoad)?m:null===(h=null===(f=L)||void 0===f?void 0:f.hooks)||void 0===h?void 0:h.afterLoad)?g:null===(y=null===(v=this.options)||void 0===v?void 0:v.hooks)||void 0===y?void 0:y.afterLoad;o&&(T.type="module"),T.src=e,T.onload=function(){I?E.handleHook(I,t).then(C.resolve).catch(C.reject):C.resolve()},T.onerror=C.reject,R?this.handleHook(R,t).then((function(){return document.body.appendChild(T)})).catch(C.reject):document.body.appendChild(T)}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,o){return t={resolve:e,reject:o}}))),t},e.prototype.hasElement=function(e){return this.registry.has(this.stripUrlProtocol(e))},e.prototype.stripUrlProtocol=function(e){return e.replace(/https?:\/\//,"")},e.prototype.isPromise=function(e){var t;return"function"==typeof(null===(t=e)||void 0===t?void 0:t.then)},e.prototype.handleHook=function(e,t){try{var o=e(t);return this.isPromise(o)?o:Promise.resolve()}catch(e){return Promise.reject(e)}},e.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[a]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[n]}]}]},e.ɵprov=t["ɵɵdefineInjectable"]({factory:function(){return new e(t["ɵɵinject"](a),t["ɵɵinject"](n,8))},token:e,providedIn:"root"}),e}();var c=function(){function e(e,t,o,r,n){this.vcr=e,this.template=t,this.elementsLoaderService=o,this.cfr=r,this.cdr=n}return e.prototype.ngOnInit=function(){var e,t=this,o=this.template,r=o._declarationTContainer?o._declarationTContainer.tagName:o._def.element.template.nodes[0].element.name,n=this.elementsLoaderService.getElementConfig(r)||{},i=this.elementsLoaderService.options,a=n.loadingComponent||i.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(a){var l=this.cfr.resolveComponentFactory(a);this.vcr.createComponent(l)}this.elementsLoaderService.loadElement(this.url,r,this.isModule,null===(e=n)||void 0===e?void 0:e.hooks).then((function(){t.vcr.clear(),t.vcr.createEmbeddedView(t.template),t.cdr.markForCheck()})).catch((function(){t.vcr.clear();var e=n.errorComponent||i.errorComponent;if(t.errorTemplateRef)t.vcr.createEmbeddedView(t.errorTemplateRef),t.cdr.markForCheck();else if(e){var o=t.cfr.resolveComponentFactory(e);t.vcr.createComponent(o),t.cdr.markForCheck()}else console.error("@angular-extensions/elements - Loading of element <"+r+'> 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')}))},e.decorators=[{type:t.Directive,args:[{selector:"[axLazyElement]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:s},{type:t.ComponentFactoryResolver},{type:t.ChangeDetectorRef}]},e.propDecorators={url:[{type:t.Input,args:["axLazyElement"]}],loadingTemplateRef:[{type:t.Input,args:["axLazyElementLoadingTemplate"]}],errorTemplateRef:[{type:t.Input,args:["axLazyElementErrorTemplate"]}],isModule:[{type:t.Input,args:["axLazyElementModule"]}]},e}();var d=function(){function e(e,t,o,r,n,i,a){this.document=e,this.renderer=t,this.vcr=o,this.cfr=r,this.cdr=n,this.template=i,this.elementsLoaderService=a}return e.prototype.ngOnInit=function(){var e,t=this;if(!this.tag||0===this.tag.length||!this.tag.includes("-"))throw new Error('@angular-extensions/elements - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="\'some-tag\'"), got: "'+this.tag+'"');var o=this.elementsLoaderService.getElementConfig(this.tag)||{},r=this.elementsLoaderService.options,n=o.loadingComponent||r.loadingComponent;if(this.loadingTemplateRef)this.vcr.createEmbeddedView(this.loadingTemplateRef);else if(n){var i=this.cfr.resolveComponentFactory(n);this.vcr.createComponent(i)}this.elementsLoaderService.loadElement(this.url,this.tag,this.isModule,null===(e=o)||void 0===e?void 0:e.hooks).then((function(){t.vcr.clear();var e=t.renderer.createElement;t.renderer.createElement=function(e,o){return"ax-lazy-element"===e&&(e=t.tag),t.document.createElement(e)},t.vcr.createEmbeddedView(t.template),t.renderer.createElement=e,t.cdr.markForCheck()})).catch((function(e){var n=o.errorComponent||r.errorComponent;if(t.vcr.clear(),t.errorTemplateRef)t.vcr.createEmbeddedView(t.errorTemplateRef),t.cdr.markForCheck();else if(n){var i=t.cfr.resolveComponentFactory(n);t.vcr.createComponent(i),t.cdr.markForCheck()}else console.error("@angular-extensions/elements - Loading of element <"+t.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)}))},e.decorators=[{type:t.Directive,args:[{selector:"[axLazyElementDynamic]"}]}],e.ctorParameters=function(){return[{type:Document,decorators:[{type:t.Inject,args:[o.DOCUMENT]}]},{type:t.Renderer2},{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver},{type:t.ChangeDetectorRef},{type:t.TemplateRef},{type:s}]},e.propDecorators={tag:[{type:t.Input,args:["axLazyElementDynamic"]}],url:[{type:t.Input,args:["axLazyElementDynamicUrl"]}],loadingTemplateRef:[{type:t.Input,args:["axLazyElementDynamicLoadingTemplate"]}],errorTemplateRef:[{type:t.Input,args:["axLazyElementDynamicErrorTemplate"]}],isModule:[{type:t.Input,args:["axLazyElementDynamicModule"]}]},e}();function p(e){if(e)throw new TypeError("LazyElementsModule.forRoot() called twice. Feature modules should use LazyElementsModule.forFeature() instead.");return"guarded"}var u=function(){function e(e,t,o){if(t&&t.length){var r=t[t.length-1];e.addConfigs(r)}}return e.forRoot=function(o){return{ngModule:e,providers:[{provide:r,useValue:o&&o.elementConfigs?o.elementConfigs:[],multi:!0},{provide:n,useValue:o.rootOptions?o.rootOptions:{}},{provide:i,useFactory:p,deps:[[r,new t.Optional,new t.SkipSelf]]}]}},e.forFeature=function(t){return{ngModule:e,providers:[{provide:r,useValue:t&&t.elementConfigs?t.elementConfigs:[],multi:!0}]}},e.decorators=[{type:t.NgModule,args:[{declarations:[c,d],imports:[o.CommonModule],exports:[c,d],providers:[]}]}],e.ctorParameters=function(){return[{type:s},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[r]}]},{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[i]}]}]},e}();e.LAZY_ELEMENTS_REGISTRY=a,e.LAZY_ELEMENT_CONFIGS=r,e.LAZY_ELEMENT_ROOT_GUARD=i,e.LAZY_ELEMENT_ROOT_OPTIONS=n,e.LazyElementDirective=c,e.LazyElementDynamicDirective=d,e.LazyElementsLoaderService=s,e.LazyElementsModule=u,e.createLazyElementRootGuard=p,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=angular-extensions-elements.umd.min.js.map

@@ -37,2 +37,3 @@ /**

ngOnInit() {
var _a;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {

@@ -57,3 +58,3 @@ throw new Error(`${LOG_PREFIX} - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="'some-tag'"), got: "${this.tag}"`);

this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.loadElement(this.url, this.tag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -174,2 +175,2 @@ * @return {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7TUFFbkMsVUFBVSxHQUFHLDhCQUE4Qjs7OztBQU1qRCxNQUFNLE9BQU8sMkJBQTJCOzs7Ozs7Ozs7OztJQVd0QyxZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixHQUFxQixFQUNyQixHQUE2QixFQUM3QixHQUFzQixFQUN0QixRQUEwQixFQUMxQixxQkFBZ0Q7UUFOOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7SUFDdkQsQ0FBQzs7OztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEs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QTNDLE1BQU0sU0FBQyxRQUFRO1lBNUJsQixTQUFTO1lBSFQsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFIakIsV0FBVztZQVVYLHlCQUF5Qjs7O2tCQVd4QixLQUFLLFNBQUMsc0JBQXNCO2tCQUM1QixLQUFLLFNBQUMseUJBQXlCO2lDQUMvQixLQUFLLFNBQUMscUNBQXFDOytCQUczQyxLQUFLLFNBQUMsbUNBQW1DO3VCQUd6QyxLQUFLLFNBQUMsNEJBQTRCOzs7O0lBUm5DLDBDQUEyQzs7SUFDM0MsMENBQThDOztJQUM5Qyx5REFFRTs7SUFDRix1REFFRTs7SUFDRiwrQ0FBbUU7Ozs7O0lBR2pFLCtDQUE0Qzs7Ozs7SUFDNUMsK0NBQTJCOzs7OztJQUMzQiwwQ0FBNkI7Ozs7O0lBQzdCLDBDQUFxQzs7Ozs7SUFDckMsMENBQThCOzs7OztJQUM5QiwrQ0FBa0M7Ozs7O0lBQ2xDLDREQUF3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQge1xuICBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICBFbGVtZW50Q29uZmlnXG59IGZyb20gJy4uL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG4vKiogQGR5bmFtaWMgKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theExhenlFbGVtZW50RHluYW1pY10nXG59KVxuZXhwb3J0IGNsYXNzIExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWMnKSB0YWc6IHN0cmluZztcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pY1VybCcpIHVybDogc3RyaW5nOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljTG9hZGluZ1RlbXBsYXRlJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxcbiAgICBhbnlcbiAgPjsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pY0Vycm9yVGVtcGxhdGUnKSBlcnJvclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxcbiAgICBhbnlcbiAgPjsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pY01vZHVsZScpIGlzTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgZWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGFnIHx8IHRoaXMudGFnLmxlbmd0aCA9PT0gMCB8fCAhdGhpcy50YWcuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSAtIFZhbGlkIHRhZyBoYXMgdG8gYmUgc3BlY2lmaWVkIHdoZW4gdXNpbmcgKmF4TGF6eUVsZW1lbnREeW5hbWljIGRpcmVjdGl2ZSAodXNlICpheExhenlFbGVtZW50RHluYW1pYz1cIidzb21lLXRhZydcIiksIGdvdDogXCIke3RoaXMudGFnfVwiYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLmdldEVsZW1lbnRDb25maWcodGhpcy50YWcpIHx8XG4gICAgICAoe30gYXMgRWxlbWVudENvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLm9wdGlvbnM7XG4gICAgY29uc3QgbG9hZGluZ0NvbXBvbmVudCA9XG4gICAgICBlbGVtZW50Q29uZmlnLmxvYWRpbmdDb21wb25lbnQgfHwgb3B0aW9ucy5sb2FkaW5nQ29tcG9uZW50O1xuXG4gICAgaWYgKHRoaXMubG9hZGluZ1RlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpO1xuICAgIH0gZWxzZSBpZiAobG9hZGluZ0NvbXBvbmVudCkge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGxvYWRpbmdDb21wb25lbnQpO1xuICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlXG4gICAgICAubG9hZEVsZW1lbnQodGhpcy51cmwsIHRoaXMudGFnLCB0aGlzLmlzTW9kdWxlKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbENyZWF0ZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCA9IChuYW1lOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKG5hbWUgPT09ICdheC1sYXp5LWVsZW1lbnQnKSB7XG4gICAgICAgICAgICBuYW1lID0gdGhpcy50YWc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50ID0gb3JpZ2luYWxDcmVhdGVFbGVtZW50O1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XG4gICAgICAgICAgZWxlbWVudENvbmZpZy5lcnJvckNvbXBvbmVudCB8fCBvcHRpb25zLmVycm9yQ29tcG9uZW50O1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy5lcnJvclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBMb2FkaW5nIG9mIGVsZW1lbnQgPCR7dGhpcy50YWd9PiBmYWlsZWQsIHBsZWFzZSBwcm92aWRlIDxuZy10ZW1wbGF0ZSAjZXJyb3I+TG9hZGluZyBmYWlsZWQuLi48L25nLXRlbXBsYXRlPiBhbmQgcmVmZXJlbmNlIGl0IGluICpheExhenlFbGVtZW50RHluYW1pYz1cImVycm9yVGVtcGxhdGU6IGVycm9yXCIgdG8gZGlzcGxheSBjdXN0b21pemVkIGVycm9yIG1lc3NhZ2UgaW4gcGxhY2Ugb2YgZWxlbWVudFxcblxcbmAsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7TUFFbkMsVUFBVSxHQUFHLDhCQUE4Qjs7OztBQU1qRCxNQUFNLE9BQU8sMkJBQTJCOzs7Ozs7Ozs7OztJQVd0QyxZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixHQUFxQixFQUNyQixHQUE2QixFQUM3QixHQUFzQixFQUN0QixRQUEwQixFQUMxQixxQkFBZ0Q7UUFOOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7SUFDdkQsQ0FBQzs7OztJQUVKLFFBQVE7O1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFR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QUNuQzs7OztZQWF1QyxRQUFRLHVCQUEzQyxNQUFNLFNBQUMsUUFBUTtZQTVCbEIsU0FBUztZQUhULGdCQUFnQjtZQUNoQix3QkFBd0I7WUFDeEIsaUJBQWlCO1lBSGpCLFdBQVc7WUFVWCx5QkFBeUI7OztrQkFXeEIsS0FBSyxTQUFDLHNCQUFzQjtrQkFDNUIsS0FBSyxTQUFDLHlCQUF5QjtpQ0FDL0IsS0FBSyxTQUFDLHFDQUFxQzsrQkFHM0MsS0FBSyxTQUFDLG1DQUFtQzt1QkFHekMsS0FBSyxTQUFDLDRCQUE0Qjs7OztJQVJuQywwQ0FBMkM7O0lBQzNDLDBDQUE4Qzs7SUFDOUMseURBRUU7O0lBQ0YsdURBRUU7O0lBQ0YsK0NBQW1FOzs7OztJQUdqRSwrQ0FBNEM7Ozs7O0lBQzVDLCtDQUEyQjs7Ozs7SUFDM0IsMENBQTZCOzs7OztJQUM3QiwwQ0FBcUM7Ozs7O0lBQ3JDLDBDQUE4Qjs7Ozs7SUFDOUIsK0NBQWtDOzs7OztJQUNsQyw0REFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBSZW5kZXJlcjIsXG4gIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgRWxlbWVudENvbmZpZ1xufSBmcm9tICcuLi9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuLyoqIEBkeW5hbWljICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudER5bmFtaWNdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljJykgdGFnOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNVcmwnKSB1cmw6IHN0cmluZzsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pY0xvYWRpbmdUZW1wbGF0ZScpIGxvYWRpbmdUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8XG4gICAgYW55XG4gID47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNFcnJvclRlbXBsYXRlJykgZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8XG4gICAgYW55XG4gID47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNNb2R1bGUnKSBpc01vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnRhZyB8fCB0aGlzLnRhZy5sZW5ndGggPT09IDAgfHwgIXRoaXMudGFnLmluY2x1ZGVzKCctJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBWYWxpZCB0YWcgaGFzIHRvIGJlIHNwZWNpZmllZCB3aGVuIHVzaW5nICpheExhenlFbGVtZW50RHluYW1pYyBkaXJlY3RpdmUgKHVzZSAqYXhMYXp5RWxlbWVudER5bmFtaWM9XCInc29tZS10YWcnXCIpLCBnb3Q6IFwiJHt0aGlzLnRhZ31cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudENvbmZpZyA9XG4gICAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5nZXRFbGVtZW50Q29uZmlnKHRoaXMudGFnKSB8fFxuICAgICAgKHt9IGFzIEVsZW1lbnRDb25maWcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5vcHRpb25zO1xuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxuICAgICAgZWxlbWVudENvbmZpZy5sb2FkaW5nQ29tcG9uZW50IHx8IG9wdGlvbnMubG9hZGluZ0NvbXBvbmVudDtcblxuICAgIGlmICh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubG9hZGluZ1RlbXBsYXRlUmVmKTtcbiAgICB9IGVsc2UgaWYgKGxvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZVxuICAgICAgLmxvYWRFbGVtZW50KHRoaXMudXJsLCB0aGlzLnRhZywgdGhpcy5pc01vZHVsZSwgZWxlbWVudENvbmZpZz8uaG9va3MpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQ3JlYXRlRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50ID0gKG5hbWU6IHN0cmluZywgbmFtZXNwYWNlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAobmFtZSA9PT0gJ2F4LWxhenktZWxlbWVudCcpIHtcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLnRhZztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQgPSBvcmlnaW5hbENyZWF0ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yQ29tcG9uZW50ID1cbiAgICAgICAgICBlbGVtZW50Q29uZmlnLmVycm9yQ29tcG9uZW50IHx8IG9wdGlvbnMuZXJyb3JDb21wb25lbnQ7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIGlmICh0aGlzLmVycm9yVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5lcnJvclRlbXBsYXRlUmVmKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgJHtMT0dfUFJFRklYfSAtIExvYWRpbmcgb2YgZWxlbWVudCA8JHt0aGlzLnRhZ30+IGZhaWxlZCwgcGxlYXNlIHByb3ZpZGUgPG5nLXRlbXBsYXRlICNlcnJvcj5Mb2FkaW5nIGZhaWxlZC4uLjwvbmctdGVtcGxhdGU+IGFuZCByZWZlcmVuY2UgaXQgaW4gKmF4TGF6eUVsZW1lbnREeW5hbWljPVwiZXJyb3JUZW1wbGF0ZTogZXJyb3JcIiB0byBkaXNwbGF5IGN1c3RvbWl6ZWQgZXJyb3IgbWVzc2FnZSBpbiBwbGFjZSBvZiBlbGVtZW50XFxuXFxuYCxcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==

@@ -29,2 +29,3 @@ /**

ngOnInit() {
var _a;
/** @type {?} */

@@ -52,3 +53,3 @@ const tpl = (/** @type {?} */ (this.template));

this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.loadElement(this.url, elementTag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -139,2 +140,2 @@ * @return {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7TUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUtqRCxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7Ozs7SUFNL0IsWUFDVSxHQUFxQixFQUNyQixRQUEwQixFQUMxQixxQkFBZ0QsRUFDaEQsR0FBNkIsRUFDN0IsR0FBc0I7UUFKdEIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDOzs7O0lBRUosUUFBUTs7Y0FDQSxHQUFHLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsRUFBTzs7Y0FDMUIsVUFBVSxHQUFHLEdBQUcsQ0FBQyxzQkFBc0I7WUFDM0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPO1lBQ3BDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJOztjQUU3QyxhQUFhLEdBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7WUFDdkQsQ0FBQyxtQkFBQSxFQUFFLEVBQWlCLENBQUM7O2NBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTzs7Y0FDNUMsZ0JBQWdCLEdBQ3BCLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsZ0JBQWdCO1FBRTVELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdEQ7YUFBTSxJQUFJLGdCQUFnQixFQUFFOztrQkFDckIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7WUFDbEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMscUJBQXFCO2FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2hELElBQUk7OztRQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUM7YUFDRCxLQUFLOzs7UUFBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDOztrQkFDWCxjQUFjLEdBQ2xCLGFBQWEsQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWM7WUFDeEQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekI7aUJBQU0sSUFBSSxjQUFjLEVBQUU7O3NCQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQ1gsR0FBRyxVQUFVLDBCQUEwQixVQUFVLGdNQUFnTSxDQUNsUCxDQUFDO2FBQ0g7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztZQTVERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7OztZQWRDLGdCQUFnQjtZQURoQixXQUFXO1lBT1gseUJBQXlCO1lBTHpCLHdCQUF3QjtZQUN4QixpQkFBaUI7OztrQkFjaEIsS0FBSyxTQUFDLGVBQWU7aUNBQ3JCLEtBQUssU0FBQyw4QkFBOEI7K0JBQ3BDLEtBQUssU0FBQyw0QkFBNEI7dUJBQ2xDLEtBQUssU0FBQyxxQkFBcUI7Ozs7SUFINUIsbUNBQW9DOztJQUNwQyxrREFBNEU7O0lBQzVFLGdEQUF3RTs7SUFDeEUsd0NBQTREOzs7OztJQUcxRCxtQ0FBNkI7Ozs7O0lBQzdCLHdDQUFrQzs7Ozs7SUFDbEMscURBQXdEOzs7OztJQUN4RCxtQ0FBcUM7Ozs7O0lBQ3JDLG1DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG4gIEVsZW1lbnRDb25maWdcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5cbmNvbnN0IExPR19QUkVGSVggPSAnQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theExhenlFbGVtZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnQnKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCdheExhenlFbGVtZW50TG9hZGluZ1RlbXBsYXRlJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRFcnJvclRlbXBsYXRlJykgZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50TW9kdWxlJykgaXNNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgdHBsID0gdGhpcy50ZW1wbGF0ZSBhcyBhbnk7XG4gICAgY29uc3QgZWxlbWVudFRhZyA9IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyXG4gICAgICA/IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRhZ05hbWVcbiAgICAgIDogdHBsLl9kZWYuZWxlbWVudC50ZW1wbGF0ZS5ub2Rlc1swXS5lbGVtZW50Lm5hbWU7XG5cbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLmdldEVsZW1lbnRDb25maWcoZWxlbWVudFRhZykgfHxcbiAgICAgICh7fSBhcyBFbGVtZW50Q29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcbiAgICBjb25zdCBsb2FkaW5nQ29tcG9uZW50ID1cbiAgICAgIGVsZW1lbnRDb25maWcubG9hZGluZ0NvbXBvbmVudCB8fCBvcHRpb25zLmxvYWRpbmdDb21wb25lbnQ7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgfVxuICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlXG4gICAgICAubG9hZEVsZW1lbnQodGhpcy51cmwsIGVsZW1lbnRUYWcsIHRoaXMuaXNNb2R1bGUpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgY29uc3QgZXJyb3JDb21wb25lbnQgPVxuICAgICAgICAgIGVsZW1lbnRDb25maWcuZXJyb3JDb21wb25lbnQgfHwgb3B0aW9ucy5lcnJvckNvbXBvbmVudDtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JUZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVycm9yVGVtcGxhdGVSZWYpO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yQ29tcG9uZW50KSB7XG4gICAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gTG9hZGluZyBvZiBlbGVtZW50IDwke2VsZW1lbnRUYWd9PiBmYWlsZWQsIHBsZWFzZSBwcm92aWRlIDxuZy10ZW1wbGF0ZSAjZXJyb3I+TG9hZGluZyBmYWlsZWQuLi48L25nLXRlbXBsYXRlPiBhbmQgcmVmZXJlbmNlIGl0IGluICpheExhenlFbGVtZW50PVwiZXJyb3JUZW1wbGF0ZTogZXJyb3JcIiB0byBkaXNwbGF5IGN1c3RvbWl6ZWQgZXJyb3IgbWVzc2FnZSBpbiBwbGFjZSBvZiBlbGVtZW50YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7TUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUtqRCxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7Ozs7SUFNL0IsWUFDVSxHQUFxQixFQUNyQixRQUEwQixFQUMxQixxQkFBZ0QsRUFDaEQsR0FBNkIsRUFDN0IsR0FBc0I7UUFKdEIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEyQjtRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDOzs7O0lBRUosUUFBUTs7O2NBQ0EsR0FBRyxHQUFHLG1CQUFBLElBQUksQ0FBQyxRQUFRLEVBQU87O2NBQzFCLFVBQVUsR0FBRyxHQUFHLENBQUMsc0JBQXNCO1lBQzNDLENBQUMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsT0FBTztZQUNwQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTs7Y0FFN0MsYUFBYSxHQUNqQixJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1lBQ3ZELENBQUMsbUJBQUEsRUFBRSxFQUFpQixDQUFDOztjQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU87O2NBQzVDLGdCQUFnQixHQUNwQixhQUFhLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGdCQUFnQjtRQUU1RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxnQkFBZ0IsRUFBRTs7a0JBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDO1lBQ2xFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQjthQUN2QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsUUFBRSxhQUFhLDBDQUFFLEtBQUssQ0FBQzthQUN0RSxJQUFJOzs7UUFBQyxHQUFHLEVBQUU7WUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFDO2FBQ0QsS0FBSzs7O1FBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7a0JBQ1gsY0FBYyxHQUNsQixhQUFhLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxjQUFjO1lBQ3hELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO2lCQUFNLElBQUksY0FBYyxFQUFFOztzQkFDbkIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUNYLEdBQUcsVUFBVSwwQkFBMEIsVUFBVSxnTUFBZ00sQ0FDbFAsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7WUE1REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7YUFDNUI7Ozs7WUFkQyxnQkFBZ0I7WUFEaEIsV0FBVztZQU9YLHlCQUF5QjtZQUx6Qix3QkFBd0I7WUFDeEIsaUJBQWlCOzs7a0JBY2hCLEtBQUssU0FBQyxlQUFlO2lDQUNyQixLQUFLLFNBQUMsOEJBQThCOytCQUNwQyxLQUFLLFNBQUMsNEJBQTRCO3VCQUNsQyxLQUFLLFNBQUMscUJBQXFCOzs7O0lBSDVCLG1DQUFvQzs7SUFDcEMsa0RBQTRFOztJQUM1RSxnREFBd0U7O0lBQ3hFLHdDQUE0RDs7Ozs7SUFHMUQsbUNBQTZCOzs7OztJQUM3Qix3Q0FBa0M7Ozs7O0lBQ2xDLHFEQUF3RDs7Ozs7SUFDeEQsbUNBQXFDOzs7OztJQUNyQyxtQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICBFbGVtZW50Q29uZmlnXG59IGZyb20gJy4uL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudF0nXG59KVxuZXhwb3J0IGNsYXNzIExhenlFbGVtZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdheExhenlFbGVtZW50JykgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudExvYWRpbmdUZW1wbGF0ZScpIGxvYWRpbmdUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50RXJyb3JUZW1wbGF0ZScpIGVycm9yVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudE1vZHVsZScpIGlzTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBlbGVtZW50c0xvYWRlclNlcnZpY2U6IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHRwbCA9IHRoaXMudGVtcGxhdGUgYXMgYW55O1xuICAgIGNvbnN0IGVsZW1lbnRUYWcgPSB0cGwuX2RlY2xhcmF0aW9uVENvbnRhaW5lclxuICAgICAgPyB0cGwuX2RlY2xhcmF0aW9uVENvbnRhaW5lci50YWdOYW1lXG4gICAgICA6IHRwbC5fZGVmLmVsZW1lbnQudGVtcGxhdGUubm9kZXNbMF0uZWxlbWVudC5uYW1lO1xuXG4gICAgY29uc3QgZWxlbWVudENvbmZpZyA9XG4gICAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5nZXRFbGVtZW50Q29uZmlnKGVsZW1lbnRUYWcpIHx8XG4gICAgICAoe30gYXMgRWxlbWVudENvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLm9wdGlvbnM7XG4gICAgY29uc3QgbG9hZGluZ0NvbXBvbmVudCA9XG4gICAgICBlbGVtZW50Q29uZmlnLmxvYWRpbmdDb21wb25lbnQgfHwgb3B0aW9ucy5sb2FkaW5nQ29tcG9uZW50O1xuXG4gICAgaWYgKHRoaXMubG9hZGluZ1RlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpO1xuICAgIH0gZWxzZSBpZiAobG9hZGluZ0NvbXBvbmVudCkge1xuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGxvYWRpbmdDb21wb25lbnQpO1xuICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgIH1cbiAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZVxuICAgICAgLmxvYWRFbGVtZW50KHRoaXMudXJsLCBlbGVtZW50VGFnLCB0aGlzLmlzTW9kdWxlLCBlbGVtZW50Q29uZmlnPy5ob29rcylcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XG4gICAgICAgICAgZWxlbWVudENvbmZpZy5lcnJvckNvbXBvbmVudCB8fCBvcHRpb25zLmVycm9yQ29tcG9uZW50O1xuICAgICAgICBpZiAodGhpcy5lcnJvclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBMb2FkaW5nIG9mIGVsZW1lbnQgPCR7ZWxlbWVudFRhZ30+IGZhaWxlZCwgcGxlYXNlIHByb3ZpZGUgPG5nLXRlbXBsYXRlICNlcnJvcj5Mb2FkaW5nIGZhaWxlZC4uLjwvbmctdGVtcGxhdGU+IGFuZCByZWZlcmVuY2UgaXQgaW4gKmF4TGF6eUVsZW1lbnQ9XCJlcnJvclRlbXBsYXRlOiBlcnJvclwiIHRvIGRpc3BsYXkgY3VzdG9taXplZCBlcnJvciBtZXNzYWdlIGluIHBsYWNlIG9mIGVsZW1lbnRgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==

@@ -14,2 +14,12 @@ /**

*/
export function HooksConfig() { }
if (false) {
/** @type {?|undefined} */
HooksConfig.prototype.beforeLoad;
/** @type {?|undefined} */
HooksConfig.prototype.afterLoad;
}
/**
* @record
*/
export function ElementConfig() { }

@@ -29,2 +39,4 @@ if (false) {

ElementConfig.prototype.preload;
/** @type {?|undefined} */
ElementConfig.prototype.hooks;
}

@@ -66,3 +78,3 @@ export class LazyElementsLoaderService {

if (shouldPreload) {
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule, newConfig.hooks);
}

@@ -101,3 +113,3 @@ }

*/
config => this.loadElement(config.url, config.tag, config.isModule)));
config => this.loadElement(config.url, config.tag, config.isModule, config.hooks)));
}

@@ -108,5 +120,7 @@ /**

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}
*/
loadElement(url, tag, isModule) {
loadElement(url, tag, isModule, hooksConfig) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
/** @type {?} */

@@ -134,2 +148,6 @@ const config = this.getElementConfig(tag);

const script = (/** @type {?} */ (document.createElement('script')));
/** @type {?} */
const beforeLoadHook = (_e = (_b = (_a = hooksConfig) === null || _a === void 0 ? void 0 : _a.beforeLoad, (_b !== null && _b !== void 0 ? _b : (_d = (_c = config) === null || _c === void 0 ? void 0 : _c.hooks) === null || _d === void 0 ? void 0 : _d.beforeLoad)), (_e !== null && _e !== void 0 ? _e : (_g = (_f = this.options) === null || _f === void 0 ? void 0 : _f.hooks) === null || _g === void 0 ? void 0 : _g.beforeLoad));
/** @type {?} */
const afterLoadHook = (_m = (_j = (_h = hooksConfig) === null || _h === void 0 ? void 0 : _h.afterLoad, (_j !== null && _j !== void 0 ? _j : (_l = (_k = config) === null || _k === void 0 ? void 0 : _k.hooks) === null || _l === void 0 ? void 0 : _l.afterLoad)), (_m !== null && _m !== void 0 ? _m : (_p = (_o = this.options) === null || _o === void 0 ? void 0 : _o.hooks) === null || _p === void 0 ? void 0 : _p.afterLoad));
if (isModule) {

@@ -139,5 +157,27 @@ script.type = 'module';

script.src = url;
script.onload = notifier.resolve;
script.onload = (/**
* @return {?}
*/
() => {
if (afterLoadHook) {
this.handleHook(afterLoadHook, tag)
.then(notifier.resolve)
.catch(notifier.reject);
}
else {
notifier.resolve();
}
});
script.onerror = notifier.reject;
document.body.appendChild(script);
if (beforeLoadHook) {
this.handleHook(beforeLoadHook, tag)
.then((/**
* @return {?}
*/
() => document.body.appendChild(script)))
.catch(notifier.reject);
}
else {
document.body.appendChild(script);
}
}

@@ -178,2 +218,33 @@ return this.registry.get(this.stripUrlProtocol(url));

}
/**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
isPromise(obj) {
var _a;
return typeof ((_a = ((/** @type {?} */ (obj)))) === null || _a === void 0 ? void 0 : _a.then) === 'function';
}
/**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
handleHook(hook, tag) {
try {
/** @type {?} */
const result = hook(tag);
if (this.isPromise(result)) {
return result;
}
else {
return Promise.resolve();
}
}
catch (err) {
return Promise.reject(err);
}
}
}

@@ -212,2 +283,2 @@ LazyElementsLoaderService.decorators = [

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztNQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBRWpELG1DQU9DOzs7SUFOQyw0QkFBWTs7SUFDWiw0QkFBWTs7SUFDWixpQ0FBbUI7O0lBQ25CLHlDQUE2Qjs7SUFDN0IsdUNBQTJCOztJQUMzQixnQ0FBa0I7O0FBTXBCLE1BQU0sT0FBTyx5QkFBeUI7Ozs7O0lBR3BDLFlBQzBDLFFBQThCLEVBRy9ELE9BQStCO1FBSEUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFHL0QsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFOeEMsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFRNUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsVUFBMkI7UUFDcEMsVUFBVSxDQUFDLE9BQU87Ozs7UUFBQyxTQUFTLENBQUMsRUFBRTs7a0JBQ3ZCLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUMzRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLElBQUksQ0FDVixHQUFHLFVBQVUsNkJBQTZCLFNBQVMsQ0FBQyxHQUFHLDBFQUEwRSxDQUNsSSxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxD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Z0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7OztJQUVPLFVBQVUsQ0FBQyxHQUFXOztZQUN4QixRQUFrQjtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQzFCLElBQUksT0FBTzs7Ozs7UUFBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUMsQ0FDekUsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7OztJQUVPLFVBQVUsQ0FBQyxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Ozs7O0lBRU8sZ0JBQWdCLENBQUMsR0FBVztRQUNsQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OztZQXhHRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7NENBS0ksTUFBTSxTQUFDLHNCQUFzQjs0Q0FDN0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx5QkFBeUI7Ozs7O0lBTG5DLDRDQUE4Qjs7Ozs7SUFHNUIsNkNBQXNFOztJQUN0RSw0Q0FFc0M7Ozs7O0FBaUcxQyx1QkFHQzs7O0lBRkMsMkJBQW9COztJQUNwQiwwQkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExhenlFbGVtZW50Um9vdE9wdGlvbnMgfSBmcm9tICcuL2xhenktZWxlbWVudHMubW9kdWxlJztcbmltcG9ydCB7XG4gIExBWllfRUxFTUVOVF9ST09UX09QVElPTlMsXG4gIExBWllfRUxFTUVOVFNfUkVHSVNUUlksXG4gIExhenlFbGVtZW50c1JlZ2lzdHJ5XG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy50b2tlbnMnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRDb25maWcge1xuICB0YWc6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcbiAgbG9hZGluZ0NvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgZXJyb3JDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIHByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlIHtcbiAgY29uZmlnczogRWxlbWVudENvbmZpZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRTX1JFR0lTVFJZKSBwcml2YXRlIHJlZ2lzdHJ5OiBMYXp5RWxlbWVudHNSZWdpc3RyeSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUylcbiAgICBwdWJsaWMgb3B0aW9uczogTGF6eUVsZW1lbnRSb290T3B0aW9uc1xuICApIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbmZpZ3MobmV3Q29uZmlnczogRWxlbWVudENvbmZpZ1tdKSB7XG4gICAgbmV3Q29uZmlncy5mb3JFYWNoKG5ld0NvbmZpZyA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZ0NvbmZpZyA9IHRoaXMuZ2V0RWxlbWVudENvbmZpZyhuZXdDb25maWcudGFnKTtcbiAgICAgIGlmIChleGlzdGluZ0NvbmZpZykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBFbGVtZW50Q29uZmlnIGZvciB0YWcgJyR7bmV3Q29uZmlnLnRhZ30nIHdhcyBwcmV2aW91c2x5IGFkZGVkLCBpdCB3aWxsIG5vdCBiZSBhZGRlZCBtdWx0aXBsZSB0aW1lcywgY29udGludWUuLi5gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbmZpZ3MucHVzaChuZXdDb25maWcpO1xuICAgICAgICBjb25zdCBzaG91bGRQcmVsb2FkID1cbiAgICAgICAgICBuZXdDb25maWcucHJlbG9hZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG5ld0NvbmZpZy5wcmVsb2FkXG4gICAgICAgICAgICA6IHRoaXMub3B0aW9ucy5wcmVsb2FkO1xuICAgICAgICBpZiAoc2hvdWxkUHJlbG9hZCkge1xuICAgICAgICAgIHRoaXMubG9hZEVsZW1lbnQobmV3Q29uZmlnLnVybCwgbmV3Q29uZmlnLnRhZywgbmV3Q29uZmlnLmlzTW9kdWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RWxlbWVudENvbmZpZyh0YWc6IHN0cmluZyk6IEVsZW1lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuZmluZChjb25maWcgPT4gY29uZmlnLnRhZyA9PT0gdGFnKTtcbiAgfVxuXG4gIHByZWxvYWQodGFncz86IHN0cmluZ1tdKSB7XG4gICAgbGV0IGNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3M7XG4gICAgaWYgKHRhZ3MpIHtcbiAgICAgIGNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3MuZmlsdGVyKGNvbmZpZyA9PiB0YWdzLmluY2x1ZGVzKGNvbmZpZy50YWcpKTtcbiAgICB9XG4gICAgY29uZmlncy5mb3JFYWNoKGNvbmZpZyA9PlxuICAgICAgdGhpcy5sb2FkRWxlbWVudChjb25maWcudXJsLCBjb25maWcudGFnLCBjb25maWcuaXNNb2R1bGUpXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRFbGVtZW50KHVybDogc3RyaW5nLCB0YWc6IHN0cmluZywgaXNNb2R1bGU/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRFbGVtZW50Q29uZmlnKHRhZyk7XG5cbiAgICBpZiAoIXVybCkge1xuICAgICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy51cmwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0xPR19QUkVGSVh9IC0gdXJsIGZvciA8JHt0YWd9PiBub3QgZm91bmRgKTtcbiAgICAgIH1cbiAgICAgIHVybCA9IGNvbmZpZy51cmw7XG4gICAgfVxuXG4gICAgaWYgKGlzTW9kdWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlzTW9kdWxlID1cbiAgICAgICAgY29uZmlnICYmIGNvbmZpZy5pc01vZHVsZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBjb25maWcuaXNNb2R1bGVcbiAgICAgICAgICA6IHRoaXMub3B0aW9ucy5pc01vZHVsZTtcbiAgICB9XG5cbiAgICBpZiAoIXRhZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSAtIHRhZyBmb3IgJyR7dXJsfScgbm90IGZvdW5kLCB0aGUgKmF4TGF6eUVsZW1lbnQgaGFzIHRvIGJlIHVzZWQgb24gSFRNTCBlbGVtZW50YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGFzRWxlbWVudCh1cmwpKSB7XG4gICAgICBjb25zdCBub3RpZmllciA9IHRoaXMuYWRkRWxlbWVudCh1cmwpO1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICBpZiAoaXNNb2R1bGUpIHtcbiAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJztcbiAgICAgIH1cbiAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgICBzY3JpcHQub25sb2FkID0gbm90aWZpZXIucmVzb2x2ZTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gbm90aWZpZXIucmVqZWN0O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldCh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVsZW1lbnQodXJsOiBzdHJpbmcpOiBOb3RpZmllciB7XG4gICAgbGV0IG5vdGlmaWVyOiBOb3RpZmllcjtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChcbiAgICAgIHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpLFxuICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4gKG5vdGlmaWVyID0geyByZXNvbHZlLCByZWplY3QgfSkpXG4gICAgKTtcbiAgICByZXR1cm4gbm90aWZpZXI7XG4gIH1cblxuICBwcml2YXRlIGhhc0VsZW1lbnQodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5oYXModGhpcy5zdHJpcFVybFByb3RvY29sKHVybCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcFVybFByb3RvY29sKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL2h0dHBzPzpcXC9cXC8vLCAnJyk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE5vdGlmaWVyIHtcbiAgcmVzb2x2ZTogKCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztNQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBSWpELGlDQUdDOzs7SUFGQyxpQ0FBa0I7O0lBQ2xCLGdDQUFpQjs7Ozs7QUFHbkIsbUNBUUM7OztJQVBDLDRCQUFZOztJQUNaLDRCQUFZOztJQUNaLGlDQUFtQjs7SUFDbkIseUNBQTZCOztJQUM3Qix1Q0FBMkI7O0lBQzNCLGdDQUFrQjs7SUFDbEIsOEJBQW9COztBQU10QixNQUFNLE9BQU8seUJBQXlCOzs7OztJQUdwQyxZQUMwQyxRQUE4QixFQUcvRCxPQUErQjtRQUhFLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBRy9ELFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBTnhDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBUTVCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLFVBQTJCO1FBQ3BDLFVBQVUsQ0FBQyxPQUFPOzs7O1FBQUMsU0FBUyxDQUFDLEVBQUU7O2tCQUN2QixjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDM0QsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsR0FBRyxVQUFVLDZCQUE2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OEI7Ozs7O0lBRzVCLDZDQUFzRTs7SUFDdEUsNENBRXNDOzs7OztBQWtKMUMsdUJBR0M7OztJQUZDLDJCQUFvQjs7SUFDcEIsMEJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXp5RWxlbWVudFJvb3RPcHRpb25zIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLm1vZHVsZSc7XG5pbXBvcnQge1xuICBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxuICBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLFxuICBMYXp5RWxlbWVudHNSZWdpc3RyeVxufSBmcm9tICcuL2xhenktZWxlbWVudHMudG9rZW5zJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuZXhwb3J0IHR5cGUgSG9vayA9ICh0YWc6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9va3NDb25maWcge1xuICBiZWZvcmVMb2FkPzogSG9vaztcbiAgYWZ0ZXJMb2FkPzogSG9vaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50Q29uZmlnIHtcbiAgdGFnOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBpc01vZHVsZT86IGJvb2xlYW47XG4gIGxvYWRpbmdDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBwcmVsb2FkPzogYm9vbGVhbjtcbiAgaG9va3M/OiBIb29rc0NvbmZpZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSB7XG4gIGNvbmZpZ3M6IEVsZW1lbnRDb25maWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UU19SRUdJU1RSWSkgcHJpdmF0ZSByZWdpc3RyeTogTGF6eUVsZW1lbnRzUmVnaXN0cnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KExBWllfRUxFTUVOVF9ST09UX09QVElPTlMpXG4gICAgcHVibGljIG9wdGlvbnM6IExhenlFbGVtZW50Um9vdE9wdGlvbnNcbiAgKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICB9XG4gIH1cblxuICBhZGRDb25maWdzKG5ld0NvbmZpZ3M6IEVsZW1lbnRDb25maWdbXSkge1xuICAgIG5ld0NvbmZpZ3MuZm9yRWFjaChuZXdDb25maWcgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdDb25maWcgPSB0aGlzLmdldEVsZW1lbnRDb25maWcobmV3Q29uZmlnLnRhZyk7XG4gICAgICBpZiAoZXhpc3RpbmdDb25maWcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gRWxlbWVudENvbmZpZyBmb3IgdGFnICcke25ld0NvbmZpZy50YWd9JyB3YXMgcHJldmlvdXNseSBhZGRlZCwgaXQgd2lsbCBub3QgYmUgYWRkZWQgbXVsdGlwbGUgdGltZXMsIGNvbnRpbnVlLi4uYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25maWdzLnB1c2gobmV3Q29uZmlnKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlbG9hZCA9XG4gICAgICAgICAgbmV3Q29uZmlnLnByZWxvYWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBuZXdDb25maWcucHJlbG9hZFxuICAgICAgICAgICAgOiB0aGlzLm9wdGlvbnMucHJlbG9hZDtcbiAgICAgICAgaWYgKHNob3VsZFByZWxvYWQpIHtcbiAgICAgICAgICB0aGlzLmxvYWRFbGVtZW50KFxuICAgICAgICAgICAgbmV3Q29uZmlnLnVybCxcbiAgICAgICAgICAgIG5ld0NvbmZpZy50YWcsXG4gICAgICAgICAgICBuZXdDb25maWcuaXNNb2R1bGUsXG4gICAgICAgICAgICBuZXdDb25maWcuaG9va3NcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRFbGVtZW50Q29uZmlnKHRhZzogc3RyaW5nKTogRWxlbWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlncy5maW5kKGNvbmZpZyA9PiBjb25maWcudGFnID09PSB0YWcpO1xuICB9XG5cbiAgcHJlbG9hZCh0YWdzPzogc3RyaW5nW10pIHtcbiAgICBsZXQgY29uZmlncyA9IHRoaXMuY29uZmlncztcbiAgICBpZiAodGFncykge1xuICAgICAgY29uZmlncyA9IHRoaXMuY29uZmlncy5maWx0ZXIoY29uZmlnID0+IHRhZ3MuaW5jbHVkZXMoY29uZmlnLnRhZykpO1xuICAgIH1cbiAgICBjb25maWdzLmZvckVhY2goY29uZmlnID0+XG4gICAgICB0aGlzLmxvYWRFbGVtZW50KGNvbmZpZy51cmwsIGNvbmZpZy50YWcsIGNvbmZpZy5pc01vZHVsZSwgY29uZmlnLmhvb2tzKVxuICAgICk7XG4gIH1cblxuICBsb2FkRWxlbWVudChcbiAgICB1cmw6IHN0cmluZyxcbiAgICB0YWc6IHN0cmluZyxcbiAgICBpc01vZHVsZT86IGJvb2xlYW4sXG4gICAgaG9va3NDb25maWc/OiBIb29rc0NvbmZpZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldEVsZW1lbnRDb25maWcodGFnKTtcblxuICAgIGlmICghdXJsKSB7XG4gICAgICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLnVybCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TE9HX1BSRUZJWH0gLSB1cmwgZm9yIDwke3RhZ30+IG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgdXJsID0gY29uZmlnLnVybDtcbiAgICB9XG5cbiAgICBpZiAoaXNNb2R1bGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaXNNb2R1bGUgPVxuICAgICAgICBjb25maWcgJiYgY29uZmlnLmlzTW9kdWxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGNvbmZpZy5pc01vZHVsZVxuICAgICAgICAgIDogdGhpcy5vcHRpb25zLmlzTW9kdWxlO1xuICAgIH1cblxuICAgIGlmICghdGFnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke0xPR19QUkVGSVh9IC0gdGFnIGZvciAnJHt1cmx9JyBub3QgZm91bmQsIHRoZSAqYXhMYXp5RWxlbWVudCBoYXMgdG8gYmUgdXNlZCBvbiBIVE1MIGVsZW1lbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNFbGVtZW50KHVybCkpIHtcbiAgICAgIGNvbnN0IG5vdGlmaWVyID0gdGhpcy5hZGRFbGVtZW50KHVybCk7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcbiAgICAgIGNvbnN0IGJlZm9yZUxvYWRIb29rID1cbiAgICAgICAgaG9va3NDb25maWc/LmJlZm9yZUxvYWQgPz9cbiAgICAgICAgY29uZmlnPy5ob29rcz8uYmVmb3JlTG9hZCA/P1xuICAgICAgICB0aGlzLm9wdGlvbnM/Lmhvb2tzPy5iZWZvcmVMb2FkO1xuICAgICAgY29uc3QgYWZ0ZXJMb2FkSG9vayA9XG4gICAgICAgIGhvb2tzQ29uZmlnPy5hZnRlckxvYWQgPz9cbiAgICAgICAgY29uZmlnPy5ob29rcz8uYWZ0ZXJMb2FkID8/XG4gICAgICAgIHRoaXMub3B0aW9ucz8uaG9va3M/LmFmdGVyTG9hZDtcbiAgICAgIGlmIChpc01vZHVsZSkge1xuICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnO1xuICAgICAgfVxuICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmIChhZnRlckxvYWRIb29rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVIb29rKGFmdGVyTG9hZEhvb2ssIHRhZylcbiAgICAgICAgICAgIC50aGVuKG5vdGlmaWVyLnJlc29sdmUpXG4gICAgICAgICAgICAuY2F0Y2gobm90aWZpZXIucmVqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub3RpZmllci5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBzY3JpcHQub25lcnJvciA9IG5vdGlmaWVyLnJlamVjdDtcbiAgICAgIGlmIChiZWZvcmVMb2FkSG9vaykge1xuICAgICAgICB0aGlzLmhhbmRsZUhvb2soYmVmb3JlTG9hZEhvb2ssIHRhZylcbiAgICAgICAgICAudGhlbigoKSA9PiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCkpXG4gICAgICAgICAgLmNhdGNoKG5vdGlmaWVyLnJlamVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRWxlbWVudCh1cmw6IHN0cmluZyk6IE5vdGlmaWVyIHtcbiAgICBsZXQgbm90aWZpZXI6IE5vdGlmaWVyO1xuICAgIHRoaXMucmVnaXN0cnkuc2V0KFxuICAgICAgdGhpcy5zdHJpcFVybFByb3RvY29sKHVybCksXG4gICAgICBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiAobm90aWZpZXIgPSB7IHJlc29sdmUsIHJlamVjdCB9KSlcbiAgICApO1xuICAgIHJldHVybiBub3RpZmllcjtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRWxlbWVudCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lmhhcyh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIHN0cmlwVXJsUHJvdG9jb2wodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgvaHR0cHM/OlxcL1xcLy8sICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQcm9taXNlPFQ+KG9iajogVCB8IFByb21pc2U8VD4pOiBvYmogaXMgUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHR5cGVvZiAob2JqIGFzIGFueSk/LnRoZW4gPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvb2soaG9vazogSG9vaywgdGFnOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaG9vayh0YWcpO1xuICAgICAgaWYgKHRoaXMuaXNQcm9taXNlKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgTm90aWZpZXIge1xuICByZXNvbHZlOiAoKSA9PiB2b2lkO1xuICByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkO1xufVxuIl19

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

LazyElementRootOptions.prototype.preload;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.hooks;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFHTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFFTCx5QkFBeUIsRUFDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFaEMsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQWlDO0lBQzFFLElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxJQUFJLFNBQVMsQ0FDakIsZ0hBQWdILENBQ2pILENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFRRCxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7SUEwQzdCLFlBQ0UseUJBQW9ELEVBR3BELDJCQUE4QyxFQUc5QyxLQUFVO1FBRVYsSUFBSSwyQkFBMkIsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNLEVBQUU7O2tCQUMvRCxnQkFBZ0IsR0FDcEIsMkJBQTJCLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyRSx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Ozs7O0lBdkRELE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBcUM7UUFFckMsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFDTixPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakUsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtvQkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQ3pEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFVBQVUsRUFBRSwwQkFBMEI7b0JBQ3RDLElBQUksRUFBRSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQy9EO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUNmLE9BQWlDO1FBRWpDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBOUNGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQztnQkFDakUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQztnQkFDNUQsU0FBUyxFQUFFLEVBQUU7YUFDZDs7OztZQXRCQyx5QkFBeUI7d0NBbUV0QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG9CQUFvQjs0Q0FFM0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx1QkFBdUI7Ozs7O0FBV25DLDhDQUVDOzs7SUFEQyxrREFBaUM7Ozs7O0FBR25DLGtEQUdDOzs7SUFGQyxzREFBaUM7O0lBQ2pDLG1EQUFxQzs7Ozs7QUFHdkMsNENBS0M7OztJQUpDLGtEQUE2Qjs7SUFDN0IsZ0RBQTJCOztJQUMzQiwwQ0FBbUI7O0lBQ25CLHlDQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBPcHRpb25hbCxcbiAgSW5qZWN0LFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBUeXBlLFxuICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IExhenlFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBFbGVtZW50Q29uZmlnLFxuICBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQge1xuICBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxuICBMQVpZX0VMRU1FTlRfQ09ORklHUyxcbiAgTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkRcbn0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLnRva2Vucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMYXp5RWxlbWVudFJvb3RHdWFyZChvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgYExhenlFbGVtZW50c01vZHVsZS5mb3JSb290KCkgY2FsbGVkIHR3aWNlLiBGZWF0dXJlIG1vZHVsZXMgc2hvdWxkIHVzZSBMYXp5RWxlbWVudHNNb2R1bGUuZm9yRmVhdHVyZSgpIGluc3RlYWQuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuICdndWFyZGVkJztcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGF6eUVsZW1lbnREaXJlY3RpdmUsIExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTGF6eUVsZW1lbnREaXJlY3RpdmUsIExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVSb290T3B0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExhenlFbGVtZW50c01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTGF6eUVsZW1lbnRzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfQ09ORklHUyxcbiAgICAgICAgICB1c2VWYWx1ZTpcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5yb290T3B0aW9ucyA/IG9wdGlvbnMucm9vdE9wdGlvbnMgOiB7fVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlTGF6eUVsZW1lbnRSb290R3VhcmQsXG4gICAgICAgICAgZGVwczogW1tMQVpZX0VMRU1FTlRfQ09ORklHUywgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yRmVhdHVyZShcbiAgICBvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMYXp5RWxlbWVudHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IExhenlFbGVtZW50c01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gICAgICAgICAgdXNlVmFsdWU6XG4gICAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgPyBvcHRpb25zLmVsZW1lbnRDb25maWdzIDogW10sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRfQ09ORklHUylcbiAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXI6IEVsZW1lbnRDb25maWdbXVtdLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRClcbiAgICBndWFyZDogYW55XG4gICkge1xuICAgIGlmIChlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXIgJiYgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgbGFzdEFkZGVkQ29uZmlncyA9XG4gICAgICAgIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlcltlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXIubGVuZ3RoIC0gMV07XG4gICAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLmFkZENvbmZpZ3MobGFzdEFkZGVkQ29uZmlncyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zIHtcbiAgZWxlbWVudENvbmZpZ3M/OiBFbGVtZW50Q29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRNb2R1bGVSb290T3B0aW9ucyB7XG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xuICByb290T3B0aW9ucz86IExhenlFbGVtZW50Um9vdE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRSb290T3B0aW9ucyB7XG4gIGxvYWRpbmdDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBpc01vZHVsZT86IGJvb2xlYW47XG4gIHByZWxvYWQ/OiBib29sZWFuO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFHTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFFTCx5QkFBeUIsRUFFMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFaEMsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQWlDO0lBQzFFLElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxJQUFJLFNBQVMsQ0FDakIsZ0hBQWdILENBQ2pILENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFRRCxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7SUEwQzdCLFlBQ0UseUJBQW9ELEVBR3BELDJCQUE4QyxFQUc5QyxLQUFVO1FBRVYsSUFBSSwyQkFBMkIsSUFBSSwyQkFBMkIsQ0FBQyxNQUFNLEVBQUU7O2tCQUMvRCxnQkFBZ0IsR0FDcEIsMkJBQTJCLENBQUMsMkJBQTJCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyRSx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Ozs7O0lBdkRELE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBcUM7UUFFckMsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFDTixPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakUsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtvQkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQ3pEO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFVBQVUsRUFBRSwwQkFBMEI7b0JBQ3RDLElBQUksRUFBRSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQy9EO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUNmLE9BQWlDO1FBRWpDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBOUNGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQztnQkFDakUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQztnQkFDNUQsU0FBUyxFQUFFLEVBQUU7YUFDZDs7OztZQXZCQyx5QkFBeUI7d0NBb0V0QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG9CQUFvQjs0Q0FFM0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx1QkFBdUI7Ozs7O0FBV25DLDhDQUVDOzs7SUFEQyxrREFBaUM7Ozs7O0FBR25DLGtEQUdDOzs7SUFGQyxzREFBaUM7O0lBQ2pDLG1EQUFxQzs7Ozs7QUFHdkMsNENBTUM7OztJQUxDLGtEQUE2Qjs7SUFDN0IsZ0RBQTJCOztJQUMzQiwwQ0FBbUI7O0lBQ25CLHlDQUFrQjs7SUFDbEIsdUNBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGUsXG4gIE9wdGlvbmFsLFxuICBJbmplY3QsXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIFR5cGUsXG4gIFNraXBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTGF6eUVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC9sYXp5LWVsZW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZSB9IGZyb20gJy4vbGF6eS1lbGVtZW50LWR5bmFtaWMvbGF6eS1lbGVtZW50LWR5bmFtaWMuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIEVsZW1lbnRDb25maWcsXG4gIExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG4gIEhvb2tzQ29uZmlnXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQge1xuICBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxuICBMQVpZX0VMRU1FTlRfQ09ORklHUyxcbiAgTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkRcbn0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLnRva2Vucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMYXp5RWxlbWVudFJvb3RHdWFyZChvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgYExhenlFbGVtZW50c01vZHVsZS5mb3JSb290KCkgY2FsbGVkIHR3aWNlLiBGZWF0dXJlIG1vZHVsZXMgc2hvdWxkIHVzZSBMYXp5RWxlbWVudHNNb2R1bGUuZm9yRmVhdHVyZSgpIGluc3RlYWQuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuICdndWFyZGVkJztcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTGF6eUVsZW1lbnREaXJlY3RpdmUsIExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTGF6eUVsZW1lbnREaXJlY3RpdmUsIExhenlFbGVtZW50RHluYW1pY0RpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVSb290T3B0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExhenlFbGVtZW50c01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTGF6eUVsZW1lbnRzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMQVpZX0VMRU1FTlRfQ09ORklHUyxcbiAgICAgICAgICB1c2VWYWx1ZTpcbiAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbGVtZW50Q29uZmlncyA/IG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgOiBbXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5yb290T3B0aW9ucyA/IG9wdGlvbnMucm9vdE9wdGlvbnMgOiB7fVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlTGF6eUVsZW1lbnRSb290R3VhcmQsXG4gICAgICAgICAgZGVwczogW1tMQVpZX0VMRU1FTlRfQ09ORklHUywgbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpXV1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yRmVhdHVyZShcbiAgICBvcHRpb25zOiBMYXp5RWxlbWVudE1vZHVsZU9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMYXp5RWxlbWVudHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IExhenlFbGVtZW50c01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gICAgICAgICAgdXNlVmFsdWU6XG4gICAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgPyBvcHRpb25zLmVsZW1lbnRDb25maWdzIDogW10sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRfQ09ORklHUylcbiAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXI6IEVsZW1lbnRDb25maWdbXVtdLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRfUk9PVF9HVUFSRClcbiAgICBndWFyZDogYW55XG4gICkge1xuICAgIGlmIChlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXIgJiYgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyLmxlbmd0aCkge1xuICAgICAgY29uc3QgbGFzdEFkZGVkQ29uZmlncyA9XG4gICAgICAgIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlcltlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXIubGVuZ3RoIC0gMV07XG4gICAgICBsYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLmFkZENvbmZpZ3MobGFzdEFkZGVkQ29uZmlncyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zIHtcbiAgZWxlbWVudENvbmZpZ3M/OiBFbGVtZW50Q29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRNb2R1bGVSb290T3B0aW9ucyB7XG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xuICByb290T3B0aW9ucz86IExhenlFbGVtZW50Um9vdE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUVsZW1lbnRSb290T3B0aW9ucyB7XG4gIGxvYWRpbmdDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBpc01vZHVsZT86IGJvb2xlYW47XG4gIHByZWxvYWQ/OiBib29sZWFuO1xuICBob29rcz86IEhvb2tzQ29uZmlnO1xufVxuIl19

@@ -31,2 +31,3 @@ /**

var _this = this;
var _a;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {

@@ -51,3 +52,3 @@ throw new Error(LOG_PREFIX + " - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic=\"'some-tag'\"), got: \"" + this.tag + "\"");

this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.loadElement(this.url, this.tag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -170,2 +171,2 @@ * @return {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7SUFFbkMsVUFBVSxHQUFHLDhCQUE4Qjs7OztBQUdqRDtJQWNFLHFDQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixHQUFxQixFQUNyQixHQUE2QixFQUM3QixHQUFzQixFQUN0QixRQUEwQixFQUMxQixxQkFBZ0Q7UUFOOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7SUFDdkQsQ0FBQzs7OztJQUVKLDhDQUFROzs7SUFBUjtRQUFBLGlCQXNEQztRQXJEQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxH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QkFBZ0I7Z0JBQ2hCLHdCQUF3QjtnQkFDeEIsaUJBQWlCO2dCQUhqQixXQUFXO2dCQVVYLHlCQUF5Qjs7O3NCQVd4QixLQUFLLFNBQUMsc0JBQXNCO3NCQUM1QixLQUFLLFNBQUMseUJBQXlCO3FDQUMvQixLQUFLLFNBQUMscUNBQXFDO21DQUczQyxLQUFLLFNBQUMsbUNBQW1DOzJCQUd6QyxLQUFLLFNBQUMsNEJBQTRCOztJQW1FckMsa0NBQUM7Q0FBQSxBQS9FRCxJQStFQztTQTVFWSwyQkFBMkI7OztJQUN0QywwQ0FBMkM7O0lBQzNDLDBDQUE4Qzs7SUFDOUMseURBRUU7O0lBQ0YsdURBRUU7O0lBQ0YsK0NBQW1FOzs7OztJQUdqRSwrQ0FBNEM7Ozs7O0lBQzVDLCtDQUEyQjs7Ozs7SUFDM0IsMENBQTZCOzs7OztJQUM3QiwwQ0FBcUM7Ozs7O0lBQ3JDLDBDQUE4Qjs7Ozs7SUFDOUIsK0NBQWtDOzs7OztJQUNsQyw0REFBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBSZW5kZXJlcjIsXG4gIEluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgRWxlbWVudENvbmZpZ1xufSBmcm9tICcuLi9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuLyoqIEBkeW5hbWljICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudER5bmFtaWNdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljJykgdGFnOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNVcmwnKSB1cmw6IHN0cmluZzsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pY0xvYWRpbmdUZW1wbGF0ZScpIGxvYWRpbmdUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8XG4gICAgYW55XG4gID47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNFcnJvclRlbXBsYXRlJykgZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8XG4gICAgYW55XG4gID47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNNb2R1bGUnKSBpc01vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLnRhZyB8fCB0aGlzLnRhZy5sZW5ndGggPT09IDAgfHwgIXRoaXMudGFnLmluY2x1ZGVzKCctJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBWYWxpZCB0YWcgaGFzIHRvIGJlIHNwZWNpZmllZCB3aGVuIHVzaW5nICpheExhenlFbGVtZW50RHluYW1pYyBkaXJlY3RpdmUgKHVzZSAqYXhMYXp5RWxlbWVudER5bmFtaWM9XCInc29tZS10YWcnXCIpLCBnb3Q6IFwiJHt0aGlzLnRhZ31cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudENvbmZpZyA9XG4gICAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5nZXRFbGVtZW50Q29uZmlnKHRoaXMudGFnKSB8fFxuICAgICAgKHt9IGFzIEVsZW1lbnRDb25maWcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5vcHRpb25zO1xuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxuICAgICAgZWxlbWVudENvbmZpZy5sb2FkaW5nQ29tcG9uZW50IHx8IG9wdGlvbnMubG9hZGluZ0NvbXBvbmVudDtcblxuICAgIGlmICh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubG9hZGluZ1RlbXBsYXRlUmVmKTtcbiAgICB9IGVsc2UgaWYgKGxvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICB9XG5cbiAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZVxuICAgICAgLmxvYWRFbGVtZW50KHRoaXMudXJsLCB0aGlzLnRhZywgdGhpcy5pc01vZHVsZSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxDcmVhdGVFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50O1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQgPSAobmFtZTogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChuYW1lID09PSAnYXgtbGF6eS1lbGVtZW50Jykge1xuICAgICAgICAgICAgbmFtZSA9IHRoaXMudGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCA9IG9yaWdpbmFsQ3JlYXRlRWxlbWVudDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JDb21wb25lbnQgPVxuICAgICAgICAgIGVsZW1lbnRDb25maWcuZXJyb3JDb21wb25lbnQgfHwgb3B0aW9ucy5lcnJvckNvbXBvbmVudDtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JUZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVycm9yVGVtcGxhdGVSZWYpO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yQ29tcG9uZW50KSB7XG4gICAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gTG9hZGluZyBvZiBlbGVtZW50IDwke3RoaXMudGFnfT4gZmFpbGVkLCBwbGVhc2UgcHJvdmlkZSA8bmctdGVtcGxhdGUgI2Vycm9yPkxvYWRpbmcgZmFpbGVkLi4uPC9uZy10ZW1wbGF0ZT4gYW5kIHJlZmVyZW5jZSBpdCBpbiAqYXhMYXp5RWxlbWVudER5bmFtaWM9XCJlcnJvclRlbXBsYXRlOiBlcnJvclwiIHRvIGRpc3BsYXkgY3VzdG9taXplZCBlcnJvciBtZXNzYWdlIGluIHBsYWNlIG9mIGVsZW1lbnRcXG5cXG5gLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LWR5bmFtaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cy8iLCJzb3VyY2VzIjpbImxpYi9sYXp5LWVsZW1lbnRzL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7SUFFbkMsVUFBVSxHQUFHLDhCQUE4Qjs7OztBQUdqRDtJQWNFLHFDQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixHQUFxQixFQUNyQixHQUE2QixFQUM3QixHQUFzQixFQUN0QixRQUEwQixFQUMxQixxQkFBZ0Q7UUFOOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7SUFDdkQsQ0FBQzs7OztJQUVKLDhDQUFROzs7SUFBUjtRQUFBLGlCQXNEQzs7UUFyREMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMs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UTtnQkE1QmxCLFNBQVM7Z0JBSFQsZ0JBQWdCO2dCQUNoQix3QkFBd0I7Z0JBQ3hCLGlCQUFpQjtnQkFIakIsV0FBVztnQkFVWCx5QkFBeUI7OztzQkFXeEIsS0FBSyxTQUFDLHNCQUFzQjtzQkFDNUIsS0FBSyxTQUFDLHlCQUF5QjtxQ0FDL0IsS0FBSyxTQUFDLHFDQUFxQzttQ0FHM0MsS0FBSyxTQUFDLG1DQUFtQzsyQkFHekMsS0FBSyxTQUFDLDRCQUE0Qjs7SUFtRXJDLGtDQUFDO0NBQUEsQUEvRUQsSUErRUM7U0E1RVksMkJBQTJCOzs7SUFDdEMsMENBQTJDOztJQUMzQywwQ0FBOEM7O0lBQzlDLHlEQUVFOztJQUNGLHVEQUVFOztJQUNGLCtDQUFtRTs7Ozs7SUFHakUsK0NBQTRDOzs7OztJQUM1QywrQ0FBMkI7Ozs7O0lBQzNCLDBDQUE2Qjs7Ozs7SUFDN0IsMENBQXFDOzs7OztJQUNyQywwQ0FBOEI7Ozs7O0lBQzlCLCtDQUFrQzs7Ozs7SUFDbEMsNERBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgUmVuZGVyZXIyLFxuICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gIExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG4gIEVsZW1lbnRDb25maWdcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5cbmNvbnN0IExPR19QUkVGSVggPSAnQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cyc7XG5cbi8qKiBAZHluYW1pYyAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGF6eUVsZW1lbnREeW5hbWljXSdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdheExhenlFbGVtZW50RHluYW1pYycpIHRhZzogc3RyaW5nO1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljVXJsJykgdXJsOiBzdHJpbmc7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudER5bmFtaWNMb2FkaW5nVGVtcGxhdGUnKSBsb2FkaW5nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFxuICAgIGFueVxuICA+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljRXJyb3JUZW1wbGF0ZScpIGVycm9yVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFxuICAgIGFueVxuICA+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnREeW5hbWljTW9kdWxlJykgaXNNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBlbGVtZW50c0xvYWRlclNlcnZpY2U6IExhenlFbGVtZW50c0xvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy50YWcgfHwgdGhpcy50YWcubGVuZ3RoID09PSAwIHx8ICF0aGlzLnRhZy5pbmNsdWRlcygnLScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke0xPR19QUkVGSVh9IC0gVmFsaWQgdGFnIGhhcyB0byBiZSBzcGVjaWZpZWQgd2hlbiB1c2luZyAqYXhMYXp5RWxlbWVudER5bmFtaWMgZGlyZWN0aXZlICh1c2UgKmF4TGF6eUVsZW1lbnREeW5hbWljPVwiJ3NvbWUtdGFnJ1wiKSwgZ290OiBcIiR7dGhpcy50YWd9XCJgXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPVxuICAgICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UuZ2V0RWxlbWVudENvbmZpZyh0aGlzLnRhZykgfHxcbiAgICAgICh7fSBhcyBFbGVtZW50Q29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcbiAgICBjb25zdCBsb2FkaW5nQ29tcG9uZW50ID1cbiAgICAgIGVsZW1lbnRDb25maWcubG9hZGluZ0NvbXBvbmVudCB8fCBvcHRpb25zLmxvYWRpbmdDb21wb25lbnQ7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2VcbiAgICAgIC5sb2FkRWxlbWVudCh0aGlzLnVybCwgdGhpcy50YWcsIHRoaXMuaXNNb2R1bGUsIGVsZW1lbnRDb25maWc/Lmhvb2tzKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbENyZWF0ZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCA9IChuYW1lOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgaWYgKG5hbWUgPT09ICdheC1sYXp5LWVsZW1lbnQnKSB7XG4gICAgICAgICAgICBuYW1lID0gdGhpcy50YWc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50ID0gb3JpZ2luYWxDcmVhdGVFbGVtZW50O1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XG4gICAgICAgICAgZWxlbWVudENvbmZpZy5lcnJvckNvbXBvbmVudCB8fCBvcHRpb25zLmVycm9yQ29tcG9uZW50O1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy5lcnJvclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBMb2FkaW5nIG9mIGVsZW1lbnQgPCR7dGhpcy50YWd9PiBmYWlsZWQsIHBsZWFzZSBwcm92aWRlIDxuZy10ZW1wbGF0ZSAjZXJyb3I+TG9hZGluZyBmYWlsZWQuLi48L25nLXRlbXBsYXRlPiBhbmQgcmVmZXJlbmNlIGl0IGluICpheExhenlFbGVtZW50RHluYW1pYz1cImVycm9yVGVtcGxhdGU6IGVycm9yXCIgdG8gZGlzcGxheSBjdXN0b21pemVkIGVycm9yIG1lc3NhZ2UgaW4gcGxhY2Ugb2YgZWxlbWVudFxcblxcbmAsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -25,2 +25,3 @@ /**

var _this = this;
var _a;
/** @type {?} */

@@ -48,3 +49,3 @@ var tpl = (/** @type {?} */ (this.template));

this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.loadElement(this.url, elementTag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -137,2 +138,2 @@ * @return {?}

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7SUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUVqRDtJQVNFLDhCQUNVLEdBQXFCLEVBQ3JCLFFBQTBCLEVBQzFCLHFCQUFnRCxFQUNoRCxHQUE2QixFQUM3QixHQUFzQjtRQUp0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7Ozs7SUFFSix1Q0FBUTs7O0lBQVI7UUFBQSxpQkEyQ0M7O1lBMUNPLEdBQUcsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxFQUFPOztZQUMxQixVQUFVLEdBQUcsR0FBRyxDQUFDLHNCQUFzQjtZQUMzQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLE9BQU87WUFDcEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7O1lBRTdDLGFBQWEsR0FDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUN2RCxDQUFDLG1CQUFBLEVBQUUsRUFBaUIsQ0FBQzs7WUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPOztZQUM1QyxnQkFBZ0IsR0FDcEIsYUFBYSxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0I7UUFFNUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN0RDthQUFNLElBQUksZ0JBQWdCLEVBQUU7O2dCQUNyQixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxxQkFBcUI7YUFDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDaEQsSUFBSTs7O1FBQUM7WUFDSixLQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLEtBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLEtBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFDO2FBQ0QsS0FBSzs7O1FBQUM7WUFDTCxLQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDOztnQkFDWCxjQUFjLEdBQ2xCLGFBQWEsQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWM7WUFDeEQsSUFBSSxLQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLEtBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ25ELEtBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekI7aUJBQU0sSUFBSSxjQUFjLEVBQUU7O29CQUNuQixPQUFPLEdBQUcsS0FBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUM7Z0JBQ2hFLEtBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQ1IsVUFBVSwrQkFBMEIsVUFBVSxxTUFBZ00sQ0FDbFAsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOztnQkE1REYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzs7O2dCQWRDLGdCQUFnQjtnQkFEaEIsV0FBVztnQkFPWCx5QkFBeUI7Z0JBTHpCLHdCQUF3QjtnQkFDeEIsaUJBQWlCOzs7c0JBY2hCLEtBQUssU0FBQyxlQUFlO3FDQUNyQixLQUFLLFNBQUMsOEJBQThCO21DQUNwQyxLQUFLLFNBQUMsNEJBQTRCOzJCQUNsQyxLQUFLLFNBQUMscUJBQXFCOztJQXNEOUIsMkJBQUM7Q0FBQSxBQTdERCxJQTZEQztTQTFEWSxvQkFBb0I7OztJQUMvQixtQ0FBb0M7O0lBQ3BDLGtEQUE0RTs7SUFDNUUsZ0RBQXdFOztJQUN4RSx3Q0FBNEQ7Ozs7O0lBRzFELG1DQUE2Qjs7Ozs7SUFDN0Isd0NBQWtDOzs7OztJQUNsQyxxREFBd0Q7Ozs7O0lBQ3hELG1DQUFxQzs7Ozs7SUFDckMsbUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgRWxlbWVudENvbmZpZ1xufSBmcm9tICcuLi9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGF6eUVsZW1lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudCcpIHVybDogc3RyaW5nO1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRMb2FkaW5nVGVtcGxhdGUnKSBsb2FkaW5nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudEVycm9yVGVtcGxhdGUnKSBlcnJvclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRNb2R1bGUnKSBpc01vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgZWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB0cGwgPSB0aGlzLnRlbXBsYXRlIGFzIGFueTtcbiAgICBjb25zdCBlbGVtZW50VGFnID0gdHBsLl9kZWNsYXJhdGlvblRDb250YWluZXJcbiAgICAgID8gdHBsLl9kZWNsYXJhdGlvblRDb250YWluZXIudGFnTmFtZVxuICAgICAgOiB0cGwuX2RlZi5lbGVtZW50LnRlbXBsYXRlLm5vZGVzWzBdLmVsZW1lbnQubmFtZTtcblxuICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPVxuICAgICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UuZ2V0RWxlbWVudENvbmZpZyhlbGVtZW50VGFnKSB8fFxuICAgICAgKHt9IGFzIEVsZW1lbnRDb25maWcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5vcHRpb25zO1xuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxuICAgICAgZWxlbWVudENvbmZpZy5sb2FkaW5nQ29tcG9uZW50IHx8IG9wdGlvbnMubG9hZGluZ0NvbXBvbmVudDtcblxuICAgIGlmICh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubG9hZGluZ1RlbXBsYXRlUmVmKTtcbiAgICB9IGVsc2UgaWYgKGxvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICB9XG4gICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2VcbiAgICAgIC5sb2FkRWxlbWVudCh0aGlzLnVybCwgZWxlbWVudFRhZywgdGhpcy5pc01vZHVsZSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICBjb25zdCBlcnJvckNvbXBvbmVudCA9XG4gICAgICAgICAgZWxlbWVudENvbmZpZy5lcnJvckNvbXBvbmVudCB8fCBvcHRpb25zLmVycm9yQ29tcG9uZW50O1xuICAgICAgICBpZiAodGhpcy5lcnJvclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZXJyb3JUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZXJyb3JDb21wb25lbnQpO1xuICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBMb2FkaW5nIG9mIGVsZW1lbnQgPCR7ZWxlbWVudFRhZ30+IGZhaWxlZCwgcGxlYXNlIHByb3ZpZGUgPG5nLXRlbXBsYXRlICNlcnJvcj5Mb2FkaW5nIGZhaWxlZC4uLjwvbmctdGVtcGxhdGU+IGFuZCByZWZlcmVuY2UgaXQgaW4gKmF4TGF6eUVsZW1lbnQ9XCJlcnJvclRlbXBsYXRlOiBlcnJvclwiIHRvIGRpc3BsYXkgY3VzdG9taXplZCBlcnJvciBtZXNzYWdlIGluIHBsYWNlIG9mIGVsZW1lbnRgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsV0FBVyxFQUNYLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7SUFFbkMsVUFBVSxHQUFHLDhCQUE4QjtBQUVqRDtJQVNFLDhCQUNVLEdBQXFCLEVBQ3JCLFFBQTBCLEVBQzFCLHFCQUFnRCxFQUNoRCxHQUE2QixFQUM3QixHQUFzQjtRQUp0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7Ozs7SUFFSix1Q0FBUTs7O0lBQVI7UUFBQSxpQkEyQ0M7OztZQTFDTyxHQUFHLEdBQUcsbUJBQUEsSUFBSSxDQUFDLFFBQVEsRUFBTzs7WUFDMUIsVUFBVSxHQUFHLEdBQUcsQ0FBQyxzQkFBc0I7WUFDM0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPO1lBQ3BDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJOztZQUU3QyxhQUFhLEdBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7WUFDdkQsQ0FBQyxtQkFBQSxFQUFFLEVBQWlCLENBQUM7O1lBQ2pCLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTzs7WUFDNUMsZ0JBQWdCLEdBQ3BCLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsZ0JBQWdCO1FBRTVELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDdEQ7YUFBTSxJQUFJLGdCQUFnQixFQUFFOztnQkFDckIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7WUFDbEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMscUJBQXFCO2FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxRQUFFLGFBQWEsMENBQUUsS0FBSyxDQUFDO2FBQ3RFLElBQUk7OztRQUFDO1lBQ0osS0FBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixLQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBQzthQUNELEtBQUs7OztRQUFDO1lBQ0wsS0FBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7Z0JBQ1gsY0FBYyxHQUNsQixhQUFhLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxjQUFjO1lBQ3hELElBQUksS0FBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixLQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRCxLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3pCO2lCQUFNLElBQUksY0FBYyxFQUFFOztvQkFDbkIsT0FBTyxHQUFHLEtBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO2dCQUNoRSxLQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUNSLFVBQVUsK0JBQTBCLFVBQVUscU1BQWdNLENBQ2xQLENBQUM7YUFDSDtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0JBNURGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7OztnQkFkQyxnQkFBZ0I7Z0JBRGhCLFdBQVc7Z0JBT1gseUJBQXlCO2dCQUx6Qix3QkFBd0I7Z0JBQ3hCLGlCQUFpQjs7O3NCQWNoQixLQUFLLFNBQUMsZUFBZTtxQ0FDckIsS0FBSyxTQUFDLDhCQUE4QjttQ0FDcEMsS0FBSyxTQUFDLDRCQUE0QjsyQkFDbEMsS0FBSyxTQUFDLHFCQUFxQjs7SUFzRDlCLDJCQUFDO0NBQUEsQUE3REQsSUE2REM7U0ExRFksb0JBQW9COzs7SUFDL0IsbUNBQW9DOztJQUNwQyxrREFBNEU7O0lBQzVFLGdEQUF3RTs7SUFDeEUsd0NBQTREOzs7OztJQUcxRCxtQ0FBNkI7Ozs7O0lBQzdCLHdDQUFrQzs7Ozs7SUFDbEMscURBQXdEOzs7OztJQUN4RCxtQ0FBcUM7Ozs7O0lBQ3JDLG1DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG4gIEVsZW1lbnRDb25maWdcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5cbmNvbnN0IExPR19QUkVGSVggPSAnQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theExhenlFbGVtZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnQnKSB1cmw6IHN0cmluZztcbiAgQElucHV0KCdheExhenlFbGVtZW50TG9hZGluZ1RlbXBsYXRlJykgbG9hZGluZ1RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRFcnJvclRlbXBsYXRlJykgZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjsgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50TW9kdWxlJykgaXNNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8taW5wdXQtcmVuYW1lXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgdHBsID0gdGhpcy50ZW1wbGF0ZSBhcyBhbnk7XG4gICAgY29uc3QgZWxlbWVudFRhZyA9IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyXG4gICAgICA/IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRhZ05hbWVcbiAgICAgIDogdHBsLl9kZWYuZWxlbWVudC50ZW1wbGF0ZS5ub2Rlc1swXS5lbGVtZW50Lm5hbWU7XG5cbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLmdldEVsZW1lbnRDb25maWcoZWxlbWVudFRhZykgfHxcbiAgICAgICh7fSBhcyBFbGVtZW50Q29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcbiAgICBjb25zdCBsb2FkaW5nQ29tcG9uZW50ID1cbiAgICAgIGVsZW1lbnRDb25maWcubG9hZGluZ0NvbXBvbmVudCB8fCBvcHRpb25zLmxvYWRpbmdDb21wb25lbnQ7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgfVxuICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlXG4gICAgICAubG9hZEVsZW1lbnQodGhpcy51cmwsIGVsZW1lbnRUYWcsIHRoaXMuaXNNb2R1bGUsIGVsZW1lbnRDb25maWc/Lmhvb2tzKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGVycm9yQ29tcG9uZW50ID1cbiAgICAgICAgICBlbGVtZW50Q29uZmlnLmVycm9yQ29tcG9uZW50IHx8IG9wdGlvbnMuZXJyb3JDb21wb25lbnQ7XG4gICAgICAgIGlmICh0aGlzLmVycm9yVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5lcnJvclRlbXBsYXRlUmVmKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSBlbHNlIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgJHtMT0dfUFJFRklYfSAtIExvYWRpbmcgb2YgZWxlbWVudCA8JHtlbGVtZW50VGFnfT4gZmFpbGVkLCBwbGVhc2UgcHJvdmlkZSA8bmctdGVtcGxhdGUgI2Vycm9yPkxvYWRpbmcgZmFpbGVkLi4uPC9uZy10ZW1wbGF0ZT4gYW5kIHJlZmVyZW5jZSBpdCBpbiAqYXhMYXp5RWxlbWVudD1cImVycm9yVGVtcGxhdGU6IGVycm9yXCIgdG8gZGlzcGxheSBjdXN0b21pemVkIGVycm9yIG1lc3NhZ2UgaW4gcGxhY2Ugb2YgZWxlbWVudGBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19

@@ -14,2 +14,12 @@ /**

*/
export function HooksConfig() { }
if (false) {
/** @type {?|undefined} */
HooksConfig.prototype.beforeLoad;
/** @type {?|undefined} */
HooksConfig.prototype.afterLoad;
}
/**
* @record
*/
export function ElementConfig() { }

@@ -29,2 +39,4 @@ if (false) {

ElementConfig.prototype.preload;
/** @type {?|undefined} */
ElementConfig.prototype.hooks;
}

@@ -67,3 +79,3 @@ var LazyElementsLoaderService = /** @class */ (function () {

if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule, newConfig.hooks);
}

@@ -112,3 +124,3 @@ }

function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
return _this.loadElement(config.url, config.tag, config.isModule, config.hooks);
}));

@@ -120,2 +132,3 @@ };

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}

@@ -127,5 +140,8 @@ */

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}
*/
function (url, tag, isModule) {
function (url, tag, isModule, hooksConfig) {
var _this = this;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
/** @type {?} */

@@ -150,12 +166,38 @@ var config = this.getElementConfig(tag);

/** @type {?} */
var notifier = this.addElement(url);
var notifier_1 = this.addElement(url);
/** @type {?} */
var script = (/** @type {?} */ (document.createElement('script')));
var script_1 = (/** @type {?} */ (document.createElement('script')));
/** @type {?} */
var beforeLoadHook = (_e = (_b = (_a = hooksConfig) === null || _a === void 0 ? void 0 : _a.beforeLoad, (_b !== null && _b !== void 0 ? _b : (_d = (_c = config) === null || _c === void 0 ? void 0 : _c.hooks) === null || _d === void 0 ? void 0 : _d.beforeLoad)), (_e !== null && _e !== void 0 ? _e : (_g = (_f = this.options) === null || _f === void 0 ? void 0 : _f.hooks) === null || _g === void 0 ? void 0 : _g.beforeLoad));
/** @type {?} */
var afterLoadHook_1 = (_m = (_j = (_h = hooksConfig) === null || _h === void 0 ? void 0 : _h.afterLoad, (_j !== null && _j !== void 0 ? _j : (_l = (_k = config) === null || _k === void 0 ? void 0 : _k.hooks) === null || _l === void 0 ? void 0 : _l.afterLoad)), (_m !== null && _m !== void 0 ? _m : (_p = (_o = this.options) === null || _o === void 0 ? void 0 : _o.hooks) === null || _p === void 0 ? void 0 : _p.afterLoad));
if (isModule) {
script.type = 'module';
script_1.type = 'module';
}
script.src = url;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);
script_1.src = url;
script_1.onload = (/**
* @return {?}
*/
function () {
if (afterLoadHook_1) {
_this.handleHook(afterLoadHook_1, tag)
.then(notifier_1.resolve)
.catch(notifier_1.reject);
}
else {
notifier_1.resolve();
}
});
script_1.onerror = notifier_1.reject;
if (beforeLoadHook) {
this.handleHook(beforeLoadHook, tag)
.then((/**
* @return {?}
*/
function () { return document.body.appendChild(script_1); }))
.catch(notifier_1.reject);
}
else {
document.body.appendChild(script_1);
}
}

@@ -211,2 +253,45 @@ return this.registry.get(this.stripUrlProtocol(url));

};
/**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
LazyElementsLoaderService.prototype.isPromise = /**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
function (obj) {
var _a;
return typeof ((_a = ((/** @type {?} */ (obj)))) === null || _a === void 0 ? void 0 : _a.then) === 'function';
};
/**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.handleHook = /**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
function (hook, tag) {
try {
/** @type {?} */
var result = hook(tag);
if (this.isPromise(result)) {
return result;
}
else {
return Promise.resolve();
}
}
catch (err) {
return Promise.reject(err);
}
};
LazyElementsLoaderService.decorators = [

@@ -247,2 +332,2 @@ { type: Injectable, args: [{

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztJQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBRWpELG1DQU9DOzs7SUFOQyw0QkFBWTs7SUFDWiw0QkFBWTs7SUFDWixpQ0FBbUI7O0lBQ25CLHlDQUE2Qjs7SUFDN0IsdUNBQTJCOztJQUMzQixnQ0FBa0I7O0FBR3BCO0lBTUUsbUNBQzBDLFFBQThCLEVBRy9ELE9BQStCO1FBSEUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFHL0QsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFOeEMsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFRNUIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw4Q0FBVTs7OztJQUFWLFVBQVcsVUFBMkI7UUFBdEMsaUJBa0JDO1FBakJDLFVBQVUsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxTQUFTOztnQkFDcEIsY0FBYyxHQUFHLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzNELElBQUksY0FBYyxFQUFFO2dCQUNsQixPQUFPLENBQUMsSUFBSSxDQUNQLFVBQVUsa0NBQTZCLFNBQVMsQ0FBQyxHQUFHLDZFQUEwRSxDQUNsSSxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLE9BQU8s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LCBUeXBlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExhenlFbGVtZW50Um9vdE9wdGlvbnMgfSBmcm9tICcuL2xhenktZWxlbWVudHMubW9kdWxlJztcbmltcG9ydCB7XG4gIExBWllfRUxFTUVOVF9ST09UX09QVElPTlMsXG4gIExBWllfRUxFTUVOVFNfUkVHSVNUUlksXG4gIExhenlFbGVtZW50c1JlZ2lzdHJ5XG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy50b2tlbnMnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRDb25maWcge1xuICB0YWc6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGlzTW9kdWxlPzogYm9vbGVhbjtcbiAgbG9hZGluZ0NvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgZXJyb3JDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIHByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlIHtcbiAgY29uZmlnczogRWxlbWVudENvbmZpZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMQVpZX0VMRU1FTlRTX1JFR0lTVFJZKSBwcml2YXRlIHJlZ2lzdHJ5OiBMYXp5RWxlbWVudHNSZWdpc3RyeSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUylcbiAgICBwdWJsaWMgb3B0aW9uczogTGF6eUVsZW1lbnRSb290T3B0aW9uc1xuICApIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIGFkZENvbmZpZ3MobmV3Q29uZmlnczogRWxlbWVudENvbmZpZ1tdKSB7XG4gICAgbmV3Q29uZmlncy5mb3JFYWNoKG5ld0NvbmZpZyA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZ0NvbmZpZyA9IHRoaXMuZ2V0RWxlbWVudENvbmZpZyhuZXdDb25maWcudGFnKTtcbiAgICAgIGlmIChleGlzdGluZ0NvbmZpZykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYCR7TE9HX1BSRUZJWH0gLSBFbGVtZW50Q29uZmlnIGZvciB0YWcgJyR7bmV3Q29uZmlnLnRhZ30nIHdhcyBwcmV2aW91c2x5IGFkZGVkLCBpdCB3aWxsIG5vdCBiZSBhZGRlZCBtdWx0aXBsZSB0aW1lcywgY29udGludWUuLi5gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbmZpZ3MucHVzaChuZXdDb25maWcpO1xuICAgICAgICBjb25zdCBzaG91bGRQcmVsb2FkID1cbiAgICAgICAgICBuZXdDb25maWcucHJlbG9hZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG5ld0NvbmZpZy5wcmVsb2FkXG4gICAgICAgICAgICA6IHRoaXMub3B0aW9ucy5wcmVsb2FkO1xuICAgICAgICBpZiAoc2hvdWxkUHJlbG9hZCkge1xuICAgICAgICAgIHRoaXMubG9hZEVsZW1lbnQobmV3Q29uZmlnLnVybCwgbmV3Q29uZmlnLnRhZywgbmV3Q29uZmlnLmlzTW9kdWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RWxlbWVudENvbmZpZyh0YWc6IHN0cmluZyk6IEVsZW1lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuZmluZChjb25maWcgPT4gY29uZmlnLnRhZyA9PT0gdGFnKTtcbiAgfVxuXG4gIHByZWxvYWQodGFncz86IHN0cmluZ1tdKSB7XG4gICAgbGV0IGNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3M7XG4gICAgaWYgKHRhZ3MpIHtcbiAgICAgIGNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3MuZmlsdGVyKGNvbmZpZyA9PiB0YWdzLmluY2x1ZGVzKGNvbmZpZy50YWcpKTtcbiAgICB9XG4gICAgY29uZmlncy5mb3JFYWNoKGNvbmZpZyA9PlxuICAgICAgdGhpcy5sb2FkRWxlbWVudChjb25maWcudXJsLCBjb25maWcudGFnLCBjb25maWcuaXNNb2R1bGUpXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRFbGVtZW50KHVybDogc3RyaW5nLCB0YWc6IHN0cmluZywgaXNNb2R1bGU/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5nZXRFbGVtZW50Q29uZmlnKHRhZyk7XG5cbiAgICBpZiAoIXVybCkge1xuICAgICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy51cmwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0xPR19QUkVGSVh9IC0gdXJsIGZvciA8JHt0YWd9PiBub3QgZm91bmRgKTtcbiAgICAgIH1cbiAgICAgIHVybCA9IGNvbmZpZy51cmw7XG4gICAgfVxuXG4gICAgaWYgKGlzTW9kdWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlzTW9kdWxlID1cbiAgICAgICAgY29uZmlnICYmIGNvbmZpZy5pc01vZHVsZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBjb25maWcuaXNNb2R1bGVcbiAgICAgICAgICA6IHRoaXMub3B0aW9ucy5pc01vZHVsZTtcbiAgICB9XG5cbiAgICBpZiAoIXRhZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtMT0dfUFJFRklYfSAtIHRhZyBmb3IgJyR7dXJsfScgbm90IGZvdW5kLCB0aGUgKmF4TGF6eUVsZW1lbnQgaGFzIHRvIGJlIHVzZWQgb24gSFRNTCBlbGVtZW50YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaGFzRWxlbWVudCh1cmwpKSB7XG4gICAgICBjb25zdCBub3RpZmllciA9IHRoaXMuYWRkRWxlbWVudCh1cmwpO1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICBpZiAoaXNNb2R1bGUpIHtcbiAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJztcbiAgICAgIH1cbiAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgICBzY3JpcHQub25sb2FkID0gbm90aWZpZXIucmVzb2x2ZTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gbm90aWZpZXIucmVqZWN0O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldCh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVsZW1lbnQodXJsOiBzdHJpbmcpOiBOb3RpZmllciB7XG4gICAgbGV0IG5vdGlmaWVyOiBOb3RpZmllcjtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChcbiAgICAgIHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpLFxuICAgICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4gKG5vdGlmaWVyID0geyByZXNvbHZlLCByZWplY3QgfSkpXG4gICAgKTtcbiAgICByZXR1cm4gbm90aWZpZXI7XG4gIH1cblxuICBwcml2YXRlIGhhc0VsZW1lbnQodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeS5oYXModGhpcy5zdHJpcFVybFByb3RvY29sKHVybCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcFVybFByb3RvY29sKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL2h0dHBzPzpcXC9cXC8vLCAnJyk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE5vdGlmaWVyIHtcbiAgcmVzb2x2ZTogKCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMvIiwic291cmNlcyI6WyJsaWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnRzLWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFFdkIsTUFBTSx3QkFBd0IsQ0FBQzs7OztJQUUxQixVQUFVLEdBQUcsOEJBQThCOzs7O0FBSWpELGlDQUdDOzs7SUFGQyxpQ0FBa0I7O0lBQ2xCLGdDQUFpQjs7Ozs7QUFHbkIsbUNBUUM7OztJQVBDLDRCQUFZOztJQUNaLDRCQUFZOztJQUNaLGlDQUFtQjs7SUFDbkIseUNBQTZCOztJQUM3Qix1Q0FBMkI7O0lBQzNCLGdDQUFrQjs7SUFDbEIsOEJBQW9COztBQUd0QjtJQU1FLG1DQUMwQyxRQUE4QixFQUcvRCxPQUErQjtRQUhFLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBRy9ELFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBTnhDLFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBUTVCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7Ozs7O0lBRUQsOENBQVU7Ozs7SUFBVixVQUFXLFVBQTJCO1FBQXRDLGlCQXVCQztRQXRCQyxVQUFVLENBQUMsT0FBTzs7OztRQUFDLFVBQUEsU0FBUzs7Z0JBQ3BCLGNBQWMsR0FBRyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUMzRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLElBQUksQ0FDUCxVQUFVLGtDQUE2QixTQUFTLENB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QUFHLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7O2dCQXpKRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dEQUtJLE1BQU0sU0FBQyxzQkFBc0I7Z0RBQzdCLFFBQVEsWUFDUixNQUFNLFNBQUMseUJBQXlCOzs7b0NBckNyQztDQXNMQyxBQTFKRCxJQTBKQztTQXZKWSx5QkFBeUI7OztJQUNwQyw0Q0FBOEI7Ozs7O0lBRzVCLDZDQUFzRTs7SUFDdEUsNENBRXNDOzs7OztBQWtKMUMsdUJBR0M7OztJQUZDLDJCQUFvQjs7SUFDcEIsMEJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXp5RWxlbWVudFJvb3RPcHRpb25zIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnRzLm1vZHVsZSc7XG5pbXBvcnQge1xuICBMQVpZX0VMRU1FTlRfUk9PVF9PUFRJT05TLFxuICBMQVpZX0VMRU1FTlRTX1JFR0lTVFJZLFxuICBMYXp5RWxlbWVudHNSZWdpc3RyeVxufSBmcm9tICcuL2xhenktZWxlbWVudHMudG9rZW5zJztcblxuY29uc3QgTE9HX1BSRUZJWCA9ICdAYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzJztcblxuZXhwb3J0IHR5cGUgSG9vayA9ICh0YWc6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9va3NDb25maWcge1xuICBiZWZvcmVMb2FkPzogSG9vaztcbiAgYWZ0ZXJMb2FkPzogSG9vaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50Q29uZmlnIHtcbiAgdGFnOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBpc01vZHVsZT86IGJvb2xlYW47XG4gIGxvYWRpbmdDb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGVycm9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBwcmVsb2FkPzogYm9vbGVhbjtcbiAgaG9va3M/OiBIb29rc0NvbmZpZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSB7XG4gIGNvbmZpZ3M6IEVsZW1lbnRDb25maWdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UU19SRUdJU1RSWSkgcHJpdmF0ZSByZWdpc3RyeTogTGF6eUVsZW1lbnRzUmVnaXN0cnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KExBWllfRUxFTUVOVF9ST09UX09QVElPTlMpXG4gICAgcHVibGljIG9wdGlvbnM6IExhenlFbGVtZW50Um9vdE9wdGlvbnNcbiAgKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICB9XG4gIH1cblxuICBhZGRDb25maWdzKG5ld0NvbmZpZ3M6IEVsZW1lbnRDb25maWdbXSkge1xuICAgIG5ld0NvbmZpZ3MuZm9yRWFjaChuZXdDb25maWcgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdDb25maWcgPSB0aGlzLmdldEVsZW1lbnRDb25maWcobmV3Q29uZmlnLnRhZyk7XG4gICAgICBpZiAoZXhpc3RpbmdDb25maWcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGAke0xPR19QUkVGSVh9IC0gRWxlbWVudENvbmZpZyBmb3IgdGFnICcke25ld0NvbmZpZy50YWd9JyB3YXMgcHJldmlvdXNseSBhZGRlZCwgaXQgd2lsbCBub3QgYmUgYWRkZWQgbXVsdGlwbGUgdGltZXMsIGNvbnRpbnVlLi4uYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25maWdzLnB1c2gobmV3Q29uZmlnKTtcbiAgICAgICAgY29uc3Qgc2hvdWxkUHJlbG9hZCA9XG4gICAgICAgICAgbmV3Q29uZmlnLnByZWxvYWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBuZXdDb25maWcucHJlbG9hZFxuICAgICAgICAgICAgOiB0aGlzLm9wdGlvbnMucHJlbG9hZDtcbiAgICAgICAgaWYgKHNob3VsZFByZWxvYWQpIHtcbiAgICAgICAgICB0aGlzLmxvYWRFbGVtZW50KFxuICAgICAgICAgICAgbmV3Q29uZmlnLnVybCxcbiAgICAgICAgICAgIG5ld0NvbmZpZy50YWcsXG4gICAgICAgICAgICBuZXdDb25maWcuaXNNb2R1bGUsXG4gICAgICAgICAgICBuZXdDb25maWcuaG9va3NcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRFbGVtZW50Q29uZmlnKHRhZzogc3RyaW5nKTogRWxlbWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlncy5maW5kKGNvbmZpZyA9PiBjb25maWcudGFnID09PSB0YWcpO1xuICB9XG5cbiAgcHJlbG9hZCh0YWdzPzogc3RyaW5nW10pIHtcbiAgICBsZXQgY29uZmlncyA9IHRoaXMuY29uZmlncztcbiAgICBpZiAodGFncykge1xuICAgICAgY29uZmlncyA9IHRoaXMuY29uZmlncy5maWx0ZXIoY29uZmlnID0+IHRhZ3MuaW5jbHVkZXMoY29uZmlnLnRhZykpO1xuICAgIH1cbiAgICBjb25maWdzLmZvckVhY2goY29uZmlnID0+XG4gICAgICB0aGlzLmxvYWRFbGVtZW50KGNvbmZpZy51cmwsIGNvbmZpZy50YWcsIGNvbmZpZy5pc01vZHVsZSwgY29uZmlnLmhvb2tzKVxuICAgICk7XG4gIH1cblxuICBsb2FkRWxlbWVudChcbiAgICB1cmw6IHN0cmluZyxcbiAgICB0YWc6IHN0cmluZyxcbiAgICBpc01vZHVsZT86IGJvb2xlYW4sXG4gICAgaG9va3NDb25maWc/OiBIb29rc0NvbmZpZ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldEVsZW1lbnRDb25maWcodGFnKTtcblxuICAgIGlmICghdXJsKSB7XG4gICAgICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLnVybCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7TE9HX1BSRUZJWH0gLSB1cmwgZm9yIDwke3RhZ30+IG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgdXJsID0gY29uZmlnLnVybDtcbiAgICB9XG5cbiAgICBpZiAoaXNNb2R1bGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaXNNb2R1bGUgPVxuICAgICAgICBjb25maWcgJiYgY29uZmlnLmlzTW9kdWxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGNvbmZpZy5pc01vZHVsZVxuICAgICAgICAgIDogdGhpcy5vcHRpb25zLmlzTW9kdWxlO1xuICAgIH1cblxuICAgIGlmICghdGFnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke0xPR19QUkVGSVh9IC0gdGFnIGZvciAnJHt1cmx9JyBub3QgZm91bmQsIHRoZSAqYXhMYXp5RWxlbWVudCBoYXMgdG8gYmUgdXNlZCBvbiBIVE1MIGVsZW1lbnRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNFbGVtZW50KHVybCkpIHtcbiAgICAgIGNvbnN0IG5vdGlmaWVyID0gdGhpcy5hZGRFbGVtZW50KHVybCk7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcbiAgICAgIGNvbnN0IGJlZm9yZUxvYWRIb29rID1cbiAgICAgICAgaG9va3NDb25maWc/LmJlZm9yZUxvYWQgPz9cbiAgICAgICAgY29uZmlnPy5ob29rcz8uYmVmb3JlTG9hZCA/P1xuICAgICAgICB0aGlzLm9wdGlvbnM/Lmhvb2tzPy5iZWZvcmVMb2FkO1xuICAgICAgY29uc3QgYWZ0ZXJMb2FkSG9vayA9XG4gICAgICAgIGhvb2tzQ29uZmlnPy5hZnRlckxvYWQgPz9cbiAgICAgICAgY29uZmlnPy5ob29rcz8uYWZ0ZXJMb2FkID8/XG4gICAgICAgIHRoaXMub3B0aW9ucz8uaG9va3M/LmFmdGVyTG9hZDtcbiAgICAgIGlmIChpc01vZHVsZSkge1xuICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnO1xuICAgICAgfVxuICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmIChhZnRlckxvYWRIb29rKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVIb29rKGFmdGVyTG9hZEhvb2ssIHRhZylcbiAgICAgICAgICAgIC50aGVuKG5vdGlmaWVyLnJlc29sdmUpXG4gICAgICAgICAgICAuY2F0Y2gobm90aWZpZXIucmVqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub3RpZmllci5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBzY3JpcHQub25lcnJvciA9IG5vdGlmaWVyLnJlamVjdDtcbiAgICAgIGlmIChiZWZvcmVMb2FkSG9vaykge1xuICAgICAgICB0aGlzLmhhbmRsZUhvb2soYmVmb3JlTG9hZEhvb2ssIHRhZylcbiAgICAgICAgICAudGhlbigoKSA9PiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCkpXG4gICAgICAgICAgLmNhdGNoKG5vdGlmaWVyLnJlamVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHRoaXMuc3RyaXBVcmxQcm90b2NvbCh1cmwpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRWxlbWVudCh1cmw6IHN0cmluZyk6IE5vdGlmaWVyIHtcbiAgICBsZXQgbm90aWZpZXI6IE5vdGlmaWVyO1xuICAgIHRoaXMucmVnaXN0cnkuc2V0KFxuICAgICAgdGhpcy5zdHJpcFVybFByb3RvY29sKHVybCksXG4gICAgICBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiAobm90aWZpZXIgPSB7IHJlc29sdmUsIHJlamVjdCB9KSlcbiAgICApO1xuICAgIHJldHVybiBub3RpZmllcjtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRWxlbWVudCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lmhhcyh0aGlzLnN0cmlwVXJsUHJvdG9jb2wodXJsKSk7XG4gIH1cblxuICBwcml2YXRlIHN0cmlwVXJsUHJvdG9jb2wodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwucmVwbGFjZSgvaHR0cHM/OlxcL1xcLy8sICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQcm9taXNlPFQ+KG9iajogVCB8IFByb21pc2U8VD4pOiBvYmogaXMgUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHR5cGVvZiAob2JqIGFzIGFueSk/LnRoZW4gPT09ICdmdW5jdGlvbic7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvb2soaG9vazogSG9vaywgdGFnOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaG9vayh0YWcpO1xuICAgICAgaWYgKHRoaXMuaXNQcm9taXNlKHJlc3VsdCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgTm90aWZpZXIge1xuICByZXNvbHZlOiAoKSA9PiB2b2lkO1xuICByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkO1xufVxuIl19

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

LazyElementRootOptions.prototype.preload;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.hooks;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFHTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFFTCx5QkFBeUIsRUFDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFaEMsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQWlDO0lBQzFFLElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxJQUFJLFNBQVMsQ0FDakIsZ0hBQWdILENBQ2pILENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDtJQWdERSw0QkFDRSx5QkFBb0QsRUFHcEQsMkJBQThDLEVBRzlDLEtBQVU7UUFFVixJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU0sRUFBRTs7Z0JBQy9ELGdCQUFnQixHQUNwQiwyQkFBMkIsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQzs7Ozs7SUF2RE0sMEJBQU87Ozs7SUFBZCxVQUNFLE9BQXFDO1FBRXJDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN6RDtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxVQUFVLEVBQUUsMEJBQTBCO29CQUN0QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRU0sNkJBQVU7Ozs7SUFBakIsVUFDRSxPQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsUUFBUSxFQUNOLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNqRSxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dCQTlDRixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUM7b0JBQzVELFNBQVMsRUFBRSxFQUFFO2lCQUNkOzs7O2dCQXRCQyx5QkFBeUI7NENBbUV0QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG9CQUFvQjtnREFFM0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx1QkFBdUI7O0lBU25DLHlCQUFDO0NBQUEsQUEvREQsSUErREM7U0F6RFksa0JBQWtCOzs7O0FBMkQvQiw4Q0FFQzs7O0lBREMsa0RBQWlDOzs7OztBQUduQyxrREFHQzs7O0lBRkMsc0RBQWlDOztJQUNqQyxtREFBcUM7Ozs7O0FBR3ZDLDRDQUtDOzs7SUFKQyxrREFBNkI7O0lBQzdCLGdEQUEyQjs7SUFDM0IsMENBQW1COztJQUNuQix5Q0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbiAgT3B0aW9uYWwsXG4gIEluamVjdCxcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgVHlwZSxcbiAgU2tpcFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBMYXp5RWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4vbGF6eS1lbGVtZW50L2xhenktZWxlbWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGF6eUVsZW1lbnREeW5hbWljRGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQtZHluYW1pYy9sYXp5LWVsZW1lbnQtZHluYW1pYy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgRWxlbWVudENvbmZpZyxcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZVxufSBmcm9tICcuL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcbiAgTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gIExBWllfRUxFTUVOVF9ST09UX0dVQVJEXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy50b2tlbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGF6eUVsZW1lbnRSb290R3VhcmQob3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIGBMYXp5RWxlbWVudHNNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgTGF6eUVsZW1lbnRzTW9kdWxlLmZvckZlYXR1cmUoKSBpbnN0ZWFkLmBcbiAgICApO1xuICB9XG4gIHJldHVybiAnZ3VhcmRlZCc7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIExhenlFbGVtZW50c01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMYXp5RWxlbWVudHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IExhenlFbGVtZW50c01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gICAgICAgICAgdXNlVmFsdWU6XG4gICAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgPyBvcHRpb25zLmVsZW1lbnRDb25maWdzIDogW10sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9ST09UX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucm9vdE9wdGlvbnMgPyBvcHRpb25zLnJvb3RPcHRpb25zIDoge31cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9ST09UX0dVQVJELFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkLFxuICAgICAgICAgIGRlcHM6IFtbTEFaWV9FTEVNRU5UX0NPTkZJR1MsIG5ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKV1dXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckZlYXR1cmUoXG4gICAgb3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TGF6eUVsZW1lbnRzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxuICAgICAgICAgIHVzZVZhbHVlOlxuICAgICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmVsZW1lbnRDb25maWdzID8gb3B0aW9ucy5lbGVtZW50Q29uZmlncyA6IFtdLFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX0NPTkZJR1MpXG4gICAgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyOiBFbGVtZW50Q29uZmlnW11bXSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQpXG4gICAgZ3VhcmQ6IGFueVxuICApIHtcbiAgICBpZiAoZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyICYmIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGxhc3RBZGRlZENvbmZpZ3MgPVxuICAgICAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXJbZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyLmxlbmd0aCAtIDFdO1xuICAgICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZS5hZGRDb25maWdzKGxhc3RBZGRlZENvbmZpZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlT3B0aW9ucyB7XG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMge1xuICBlbGVtZW50Q29uZmlncz86IEVsZW1lbnRDb25maWdbXTtcbiAgcm9vdE9wdGlvbnM/OiBMYXp5RWxlbWVudFJvb3RPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50Um9vdE9wdGlvbnMge1xuICBsb2FkaW5nQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBlcnJvckNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgaXNNb2R1bGU/OiBib29sZWFuO1xuICBwcmVsb2FkPzogYm9vbGVhbjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhci1leHRlbnNpb25zL2VsZW1lbnRzLyIsInNvdXJjZXMiOlsibGliL2xhenktZWxlbWVudHMvbGF6eS1lbGVtZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFHTixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFFTCx5QkFBeUIsRUFFMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFaEMsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQWlDO0lBQzFFLElBQUksT0FBTyxFQUFFO1FBQ1gsTUFBTSxJQUFJLFNBQVMsQ0FDakIsZ0hBQWdILENBQ2pILENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDtJQWdERSw0QkFDRSx5QkFBb0QsRUFHcEQsMkJBQThDLEVBRzlDLEtBQVU7UUFFVixJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU0sRUFBRTs7Z0JBQy9ELGdCQUFnQixHQUNwQiwyQkFBMkIsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQzs7Ozs7SUF2RE0sMEJBQU87Ozs7SUFBZCxVQUNFLE9BQXFDO1FBRXJDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixRQUFRLEVBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2pFLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN6RDtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxVQUFVLEVBQUUsMEJBQTBCO29CQUN0QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRU0sNkJBQVU7Ozs7SUFBakIsVUFDRSxPQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsUUFBUSxFQUNOLE9BQU8sSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNqRSxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2dCQTlDRixRQUFRLFNBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUM7b0JBQzVELFNBQVMsRUFBRSxFQUFFO2lCQUNkOzs7O2dCQXZCQyx5QkFBeUI7NENBb0V0QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG9CQUFvQjtnREFFM0IsUUFBUSxZQUNSLE1BQU0sU0FBQyx1QkFBdUI7O0lBU25DLHlCQUFDO0NBQUEsQUEvREQsSUErREM7U0F6RFksa0JBQWtCOzs7O0FBMkQvQiw4Q0FFQzs7O0lBREMsa0RBQWlDOzs7OztBQUduQyxrREFHQzs7O0lBRkMsc0RBQWlDOztJQUNqQyxtREFBcUM7Ozs7O0FBR3ZDLDRDQU1DOzs7SUFMQyxrREFBNkI7O0lBQzdCLGdEQUEyQjs7SUFDM0IsMENBQW1COztJQUNuQix5Q0FBa0I7O0lBQ2xCLHVDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlLFxuICBPcHRpb25hbCxcbiAgSW5qZWN0LFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBUeXBlLFxuICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IExhenlFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmUgfSBmcm9tICcuL2xhenktZWxlbWVudC1keW5hbWljL2xhenktZWxlbWVudC1keW5hbWljLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICBFbGVtZW50Q29uZmlnLFxuICBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICBIb29rc0NvbmZpZ1xufSBmcm9tICcuL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTEFaWV9FTEVNRU5UX1JPT1RfT1BUSU9OUyxcbiAgTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gIExBWllfRUxFTUVOVF9ST09UX0dVQVJEXG59IGZyb20gJy4vbGF6eS1lbGVtZW50cy50b2tlbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGF6eUVsZW1lbnRSb290R3VhcmQob3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIGBMYXp5RWxlbWVudHNNb2R1bGUuZm9yUm9vdCgpIGNhbGxlZCB0d2ljZS4gRmVhdHVyZSBtb2R1bGVzIHNob3VsZCB1c2UgTGF6eUVsZW1lbnRzTW9kdWxlLmZvckZlYXR1cmUoKSBpbnN0ZWFkLmBcbiAgICApO1xuICB9XG4gIHJldHVybiAnZ3VhcmRlZCc7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0xhenlFbGVtZW50RGlyZWN0aXZlLCBMYXp5RWxlbWVudER5bmFtaWNEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIExhenlFbGVtZW50c01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM6IExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMYXp5RWxlbWVudHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IExhenlFbGVtZW50c01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTEFaWV9FTEVNRU5UX0NPTkZJR1MsXG4gICAgICAgICAgdXNlVmFsdWU6XG4gICAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZWxlbWVudENvbmZpZ3MgPyBvcHRpb25zLmVsZW1lbnRDb25maWdzIDogW10sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9ST09UX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMucm9vdE9wdGlvbnMgPyBvcHRpb25zLnJvb3RPcHRpb25zIDoge31cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9ST09UX0dVQVJELFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZUxhenlFbGVtZW50Um9vdEd1YXJkLFxuICAgICAgICAgIGRlcHM6IFtbTEFaWV9FTEVNRU5UX0NPTkZJR1MsIG5ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKV1dXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckZlYXR1cmUoXG4gICAgb3B0aW9uczogTGF6eUVsZW1lbnRNb2R1bGVPcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TGF6eUVsZW1lbnRzTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBMYXp5RWxlbWVudHNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExBWllfRUxFTUVOVF9DT05GSUdTLFxuICAgICAgICAgIHVzZVZhbHVlOlxuICAgICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmVsZW1lbnRDb25maWdzID8gb3B0aW9ucy5lbGVtZW50Q29uZmlncyA6IFtdLFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX0NPTkZJR1MpXG4gICAgZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyOiBFbGVtZW50Q29uZmlnW11bXSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoTEFaWV9FTEVNRU5UX1JPT1RfR1VBUkQpXG4gICAgZ3VhcmQ6IGFueVxuICApIHtcbiAgICBpZiAoZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyICYmIGVsZW1lbnRDb25maWdzTXVsdGlQcm92aWRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGxhc3RBZGRlZENvbmZpZ3MgPVxuICAgICAgICBlbGVtZW50Q29uZmlnc011bHRpUHJvdmlkZXJbZWxlbWVudENvbmZpZ3NNdWx0aVByb3ZpZGVyLmxlbmd0aCAtIDFdO1xuICAgICAgbGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZS5hZGRDb25maWdzKGxhc3RBZGRlZENvbmZpZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlT3B0aW9ucyB7XG4gIGVsZW1lbnRDb25maWdzPzogRWxlbWVudENvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50TW9kdWxlUm9vdE9wdGlvbnMge1xuICBlbGVtZW50Q29uZmlncz86IEVsZW1lbnRDb25maWdbXTtcbiAgcm9vdE9wdGlvbnM/OiBMYXp5RWxlbWVudFJvb3RPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhenlFbGVtZW50Um9vdE9wdGlvbnMge1xuICBsb2FkaW5nQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBlcnJvckNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgaXNNb2R1bGU/OiBib29sZWFuO1xuICBwcmVsb2FkPzogYm9vbGVhbjtcbiAgaG9va3M/OiBIb29rc0NvbmZpZztcbn1cbiJdfQ==

@@ -44,2 +44,12 @@ import { InjectionToken, Injectable, Inject, Optional, ɵɵdefineInjectable, ɵɵinject, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, ChangeDetectorRef, Input, Renderer2, SkipSelf, NgModule } from '@angular/core';

*/
function HooksConfig() { }
if (false) {
/** @type {?|undefined} */
HooksConfig.prototype.beforeLoad;
/** @type {?|undefined} */
HooksConfig.prototype.afterLoad;
}
/**
* @record
*/
function ElementConfig() { }

@@ -59,2 +69,4 @@ if (false) {

ElementConfig.prototype.preload;
/** @type {?|undefined} */
ElementConfig.prototype.hooks;
}

@@ -96,3 +108,3 @@ class LazyElementsLoaderService {

if (shouldPreload) {
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule, newConfig.hooks);
}

@@ -131,3 +143,3 @@ }

*/
config => this.loadElement(config.url, config.tag, config.isModule)));
config => this.loadElement(config.url, config.tag, config.isModule, config.hooks)));
}

@@ -138,5 +150,7 @@ /**

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}
*/
loadElement(url, tag, isModule) {
loadElement(url, tag, isModule, hooksConfig) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
/** @type {?} */

@@ -164,2 +178,6 @@ const config = this.getElementConfig(tag);

const script = (/** @type {?} */ (document.createElement('script')));
/** @type {?} */
const beforeLoadHook = (_e = (_b = (_a = hooksConfig) === null || _a === void 0 ? void 0 : _a.beforeLoad, (_b !== null && _b !== void 0 ? _b : (_d = (_c = config) === null || _c === void 0 ? void 0 : _c.hooks) === null || _d === void 0 ? void 0 : _d.beforeLoad)), (_e !== null && _e !== void 0 ? _e : (_g = (_f = this.options) === null || _f === void 0 ? void 0 : _f.hooks) === null || _g === void 0 ? void 0 : _g.beforeLoad));
/** @type {?} */
const afterLoadHook = (_m = (_j = (_h = hooksConfig) === null || _h === void 0 ? void 0 : _h.afterLoad, (_j !== null && _j !== void 0 ? _j : (_l = (_k = config) === null || _k === void 0 ? void 0 : _k.hooks) === null || _l === void 0 ? void 0 : _l.afterLoad)), (_m !== null && _m !== void 0 ? _m : (_p = (_o = this.options) === null || _o === void 0 ? void 0 : _o.hooks) === null || _p === void 0 ? void 0 : _p.afterLoad));
if (isModule) {

@@ -169,5 +187,27 @@ script.type = 'module';

script.src = url;
script.onload = notifier.resolve;
script.onload = (/**
* @return {?}
*/
() => {
if (afterLoadHook) {
this.handleHook(afterLoadHook, tag)
.then(notifier.resolve)
.catch(notifier.reject);
}
else {
notifier.resolve();
}
});
script.onerror = notifier.reject;
document.body.appendChild(script);
if (beforeLoadHook) {
this.handleHook(beforeLoadHook, tag)
.then((/**
* @return {?}
*/
() => document.body.appendChild(script)))
.catch(notifier.reject);
}
else {
document.body.appendChild(script);
}
}

@@ -208,2 +248,33 @@ return this.registry.get(this.stripUrlProtocol(url));

}
/**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
isPromise(obj) {
var _a;
return typeof ((_a = ((/** @type {?} */ (obj)))) === null || _a === void 0 ? void 0 : _a.then) === 'function';
}
/**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
handleHook(hook, tag) {
try {
/** @type {?} */
const result = hook(tag);
if (this.isPromise(result)) {
return result;
}
else {
return Promise.resolve();
}
}
catch (err) {
return Promise.reject(err);
}
}
}

@@ -269,2 +340,3 @@ LazyElementsLoaderService.decorators = [

ngOnInit() {
var _a;
/** @type {?} */

@@ -292,3 +364,3 @@ const tpl = (/** @type {?} */ (this.template));

this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.loadElement(this.url, elementTag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -413,2 +485,3 @@ * @return {?}

ngOnInit() {
var _a;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {

@@ -433,3 +506,3 @@ throw new Error(`${LOG_PREFIX$2} - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic="'some-tag'"), got: "${this.tag}"`);

this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.loadElement(this.url, this.tag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -665,2 +738,4 @@ * @return {?}

LazyElementRootOptions.prototype.preload;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.hooks;
}

@@ -667,0 +742,0 @@

@@ -44,2 +44,12 @@ import { InjectionToken, Injectable, Inject, Optional, ɵɵdefineInjectable, ɵɵinject, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, ChangeDetectorRef, Input, Renderer2, SkipSelf, NgModule } from '@angular/core';

*/
function HooksConfig() { }
if (false) {
/** @type {?|undefined} */
HooksConfig.prototype.beforeLoad;
/** @type {?|undefined} */
HooksConfig.prototype.afterLoad;
}
/**
* @record
*/
function ElementConfig() { }

@@ -59,2 +69,4 @@ if (false) {

ElementConfig.prototype.preload;
/** @type {?|undefined} */
ElementConfig.prototype.hooks;
}

@@ -97,3 +109,3 @@ var LazyElementsLoaderService = /** @class */ (function () {

if (shouldPreload) {
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule);
_this.loadElement(newConfig.url, newConfig.tag, newConfig.isModule, newConfig.hooks);
}

@@ -142,3 +154,3 @@ }

function (config) {
return _this.loadElement(config.url, config.tag, config.isModule);
return _this.loadElement(config.url, config.tag, config.isModule, config.hooks);
}));

@@ -150,2 +162,3 @@ };

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}

@@ -157,5 +170,8 @@ */

* @param {?=} isModule
* @param {?=} hooksConfig
* @return {?}
*/
function (url, tag, isModule) {
function (url, tag, isModule, hooksConfig) {
var _this = this;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
/** @type {?} */

@@ -180,12 +196,38 @@ var config = this.getElementConfig(tag);

/** @type {?} */
var notifier = this.addElement(url);
var notifier_1 = this.addElement(url);
/** @type {?} */
var script = (/** @type {?} */ (document.createElement('script')));
var script_1 = (/** @type {?} */ (document.createElement('script')));
/** @type {?} */
var beforeLoadHook = (_e = (_b = (_a = hooksConfig) === null || _a === void 0 ? void 0 : _a.beforeLoad, (_b !== null && _b !== void 0 ? _b : (_d = (_c = config) === null || _c === void 0 ? void 0 : _c.hooks) === null || _d === void 0 ? void 0 : _d.beforeLoad)), (_e !== null && _e !== void 0 ? _e : (_g = (_f = this.options) === null || _f === void 0 ? void 0 : _f.hooks) === null || _g === void 0 ? void 0 : _g.beforeLoad));
/** @type {?} */
var afterLoadHook_1 = (_m = (_j = (_h = hooksConfig) === null || _h === void 0 ? void 0 : _h.afterLoad, (_j !== null && _j !== void 0 ? _j : (_l = (_k = config) === null || _k === void 0 ? void 0 : _k.hooks) === null || _l === void 0 ? void 0 : _l.afterLoad)), (_m !== null && _m !== void 0 ? _m : (_p = (_o = this.options) === null || _o === void 0 ? void 0 : _o.hooks) === null || _p === void 0 ? void 0 : _p.afterLoad));
if (isModule) {
script.type = 'module';
script_1.type = 'module';
}
script.src = url;
script.onload = notifier.resolve;
script.onerror = notifier.reject;
document.body.appendChild(script);
script_1.src = url;
script_1.onload = (/**
* @return {?}
*/
function () {
if (afterLoadHook_1) {
_this.handleHook(afterLoadHook_1, tag)
.then(notifier_1.resolve)
.catch(notifier_1.reject);
}
else {
notifier_1.resolve();
}
});
script_1.onerror = notifier_1.reject;
if (beforeLoadHook) {
this.handleHook(beforeLoadHook, tag)
.then((/**
* @return {?}
*/
function () { return document.body.appendChild(script_1); }))
.catch(notifier_1.reject);
}
else {
document.body.appendChild(script_1);
}
}

@@ -241,2 +283,45 @@ return this.registry.get(this.stripUrlProtocol(url));

};
/**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
LazyElementsLoaderService.prototype.isPromise = /**
* @private
* @template T
* @param {?} obj
* @return {?}
*/
function (obj) {
var _a;
return typeof ((_a = ((/** @type {?} */ (obj)))) === null || _a === void 0 ? void 0 : _a.then) === 'function';
};
/**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
LazyElementsLoaderService.prototype.handleHook = /**
* @private
* @param {?} hook
* @param {?} tag
* @return {?}
*/
function (hook, tag) {
try {
/** @type {?} */
var result = hook(tag);
if (this.isPromise(result)) {
return result;
}
else {
return Promise.resolve();
}
}
catch (err) {
return Promise.reject(err);
}
};
LazyElementsLoaderService.decorators = [

@@ -299,2 +384,3 @@ { type: Injectable, args: [{

var _this = this;
var _a;
/** @type {?} */

@@ -322,3 +408,3 @@ var tpl = (/** @type {?} */ (this.template));

this.elementsLoaderService
.loadElement(this.url, elementTag, this.isModule)
.loadElement(this.url, elementTag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -438,2 +524,3 @@ * @return {?}

var _this = this;
var _a;
if (!this.tag || this.tag.length === 0 || !this.tag.includes('-')) {

@@ -458,3 +545,3 @@ throw new Error(LOG_PREFIX$2 + " - Valid tag has to be specified when using *axLazyElementDynamic directive (use *axLazyElementDynamic=\"'some-tag'\"), got: \"" + this.tag + "\"");

this.elementsLoaderService
.loadElement(this.url, this.tag, this.isModule)
.loadElement(this.url, this.tag, this.isModule, (_a = elementConfig) === null || _a === void 0 ? void 0 : _a.hooks)
.then((/**

@@ -695,2 +782,4 @@ * @return {?}

LazyElementRootOptions.prototype.preload;
/** @type {?|undefined} */
LazyElementRootOptions.prototype.hooks;
}

@@ -697,0 +786,0 @@

import { Type } from '@angular/core';
import { LazyElementRootOptions } from './lazy-elements.module';
import { LazyElementsRegistry } from './lazy-elements.tokens';
export declare type Hook = (tag: string) => Promise<void> | void;
export interface HooksConfig {
beforeLoad?: Hook;
afterLoad?: Hook;
}
export interface ElementConfig {

@@ -11,2 +16,3 @@ tag: string;

preload?: boolean;
hooks?: HooksConfig;
}

@@ -21,6 +27,8 @@ export declare class LazyElementsLoaderService {

preload(tags?: string[]): void;
loadElement(url: string, tag: string, isModule?: boolean): Promise<void>;
loadElement(url: string, tag: string, isModule?: boolean, hooksConfig?: HooksConfig): Promise<void>;
private addElement;
private hasElement;
private stripUrlProtocol;
private isPromise;
private handleHook;
}
import { ModuleWithProviders, Type } from '@angular/core';
import { ElementConfig, LazyElementsLoaderService } from './lazy-elements-loader.service';
import { ElementConfig, LazyElementsLoaderService, HooksConfig } from './lazy-elements-loader.service';
export declare function createLazyElementRootGuard(options: LazyElementModuleOptions): string;

@@ -21,2 +21,3 @@ export declare class LazyElementsModule {

preload?: boolean;
hooks?: HooksConfig;
}
{
"name": "@angular-extensions/elements",
"version": "9.1.3",
"version": "9.2.0",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^9.0.0",

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc