@angular-extensions/elements
Advanced tools
Comparing version 12.4.2 to 12.5.0
@@ -39,5 +39,5 @@ (function (global, factory) { | ||
}()); | ||
LazyElementTestingDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementTestingDirective, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementTestingDirective, decorators: [{ | ||
LazyElementTestingDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementTestingDirective, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementTestingDirective, decorators: [{ | ||
type: i0.Directive, | ||
@@ -59,5 +59,5 @@ args: [{ | ||
}()); | ||
LazyElementDynamicTestingDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDynamicTestingDirective, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
LazyElementDynamicTestingDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDynamicTestingDirective, deps: [{ token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
type: i0.Directive, | ||
@@ -74,7 +74,7 @@ args: [{ | ||
}()); | ||
LazyElementsTestingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsTestingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementsTestingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsTestingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementDynamicTestingDirective], exports: [LazyElementTestingDirective, LazyElementDynamicTestingDirective] }); | ||
LazyElementsTestingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsTestingModule }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsTestingModule, decorators: [{ | ||
LazyElementsTestingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsTestingModule }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsTestingModule, decorators: [{ | ||
type: i0.NgModule, | ||
@@ -81,0 +81,0 @@ args: [{ |
@@ -516,5 +516,5 @@ (function (global, factory) { | ||
}()); | ||
LazyElementsLoaderService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsLoaderService, deps: [{ token: i0__namespace.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsLoaderService, decorators: [{ | ||
LazyElementsLoaderService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsLoaderService, deps: [{ token: i0__namespace.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsLoaderService, decorators: [{ | ||
type: i0.Injectable, | ||
@@ -547,5 +547,10 @@ args: [{ | ||
this.subscription = rxjs.Subscription.EMPTY; | ||
this.url$ = new rxjs.BehaviorSubject(null); | ||
} | ||
LazyElementDirective.prototype.ngOnChanges = function (changes) { | ||
if (changes.url) { | ||
this.url$.next(this.url); | ||
} | ||
}; | ||
LazyElementDirective.prototype.ngOnInit = function () { | ||
var _this = this; | ||
// There's no sense to execute the below logic on the Node.js side since the JavaScript | ||
@@ -558,2 +563,16 @@ // will not be loaded on the server-side (Angular will only append the script to body). | ||
} | ||
this.setupUrlListener(); | ||
}; | ||
LazyElementDirective.prototype.ngOnDestroy = function () { | ||
this.subscription.unsubscribe(); | ||
}; | ||
LazyElementDirective.prototype.destroyEmbeddedView = function () { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
}; | ||
LazyElementDirective.prototype.setupUrlListener = function () { | ||
var _this = this; | ||
var tpl = this.template; | ||
@@ -567,20 +586,17 @@ var elementTag = tpl._declarationTContainer | ||
var loadingComponent = elementConfig.loadingComponent || options.loadingComponent; | ||
if (this.loadingTemplateRef) { | ||
this.vcr.createEmbeddedView(this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
var factory = this.cfr.resolveComponentFactory(loadingComponent); | ||
this.vcr.createComponent(factory); | ||
} | ||
var loadElement$ = rxjs.from(this.elementsLoaderService.loadElement(this.url, elementTag, this.isModule, this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)); | ||
this.subscription = loadElement$ | ||
.pipe(operators.mergeMap(function () { return customElements.whenDefined(elementTag); })) | ||
.subscribe({ | ||
next: function () { | ||
this.subscription = this.url$ | ||
.pipe( | ||
// This is used to coalesce changes since the `url$` subject might emit multiple values initially, e.g. | ||
// `null` (initial value) and the url itself (when the `url` binding is provided). | ||
// The `animationFrameScheduler` is used to prevent the frame drop. | ||
operators.debounceTime(0, rxjs.animationFrameScheduler), operators.switchMap(function (url) { | ||
if (_this.loadingTemplateRef) { | ||
_this.vcr.createEmbeddedView(_this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
var factory = _this.cfr.resolveComponentFactory(loadingComponent); | ||
_this.vcr.createComponent(factory); | ||
} | ||
return rxjs.from(_this.elementsLoaderService.loadElement(url, elementTag, _this.isModule, _this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)).pipe(operators.catchError(function () { | ||
_this.vcr.clear(); | ||
_this.viewRef = _this.vcr.createEmbeddedView(_this.template); | ||
_this.cdr.markForCheck(); | ||
}, | ||
error: function () { | ||
_this.vcr.clear(); | ||
var errorComponent = elementConfig.errorComponent || options.errorComponent; | ||
@@ -599,20 +615,18 @@ if (_this.errorTemplateRef) { | ||
} | ||
return rxjs.EMPTY; | ||
})); | ||
}), operators.mergeMap(function () { return customElements.whenDefined(elementTag); })) | ||
.subscribe({ | ||
next: function () { | ||
_this.vcr.clear(); | ||
_this.viewRef = _this.vcr.createEmbeddedView(_this.template); | ||
_this.cdr.markForCheck(); | ||
}, | ||
}); | ||
}; | ||
LazyElementDirective.prototype.ngOnDestroy = function () { | ||
this.subscription.unsubscribe(); | ||
}; | ||
LazyElementDirective.prototype.destroyEmbeddedView = function () { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
}; | ||
return LazyElementDirective; | ||
}()); | ||
LazyElementDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDirective, deps: [{ token: i0.PLATFORM_ID }, { token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }, { token: LazyElementsLoaderService }, { token: i0__namespace.ComponentFactoryResolver }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDirective, decorators: [{ | ||
LazyElementDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDirective, deps: [{ token: i0.PLATFORM_ID }, { token: i0__namespace.ViewContainerRef }, { token: i0__namespace.TemplateRef }, { token: LazyElementsLoaderService }, { token: i0__namespace.ComponentFactoryResolver }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, usesOnChanges: true, ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDirective, decorators: [{ | ||
type: i0.Directive, | ||
@@ -730,5 +744,5 @@ args: [{ | ||
}()); | ||
LazyElementDynamicDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDynamicDirective, deps: [{ token: i0.PLATFORM_ID }, { token: common.DOCUMENT }, { token: i0__namespace.Renderer2 }, { token: i0__namespace.ViewContainerRef }, { token: i0__namespace.ComponentFactoryResolver }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.TemplateRef }, { token: LazyElementsLoaderService }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementDynamicDirective, decorators: [{ | ||
LazyElementDynamicDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDynamicDirective, deps: [{ token: i0.PLATFORM_ID }, { token: common.DOCUMENT }, { token: i0__namespace.Renderer2 }, { token: i0__namespace.ViewContainerRef }, { token: i0__namespace.ComponentFactoryResolver }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.TemplateRef }, { token: LazyElementsLoaderService }], target: i0__namespace.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0__namespace }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementDynamicDirective, decorators: [{ | ||
type: i0.Directive, | ||
@@ -815,6 +829,6 @@ args: [{ | ||
}()); | ||
LazyElementsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsModule, deps: [{ token: LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0__namespace.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [common.CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsModule, providers: [], imports: [[common.CommonModule]] }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0__namespace, type: LazyElementsModule, decorators: [{ | ||
LazyElementsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsModule, deps: [{ token: LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0__namespace.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [common.CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsModule, providers: [], imports: [[common.CommonModule]] }); | ||
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0__namespace, type: LazyElementsModule, decorators: [{ | ||
type: i0.NgModule, | ||
@@ -821,0 +835,0 @@ args: [{ |
@@ -91,5 +91,5 @@ import { Directive, Inject, Input, PLATFORM_ID, } from '@angular/core'; | ||
} | ||
LazyElementDynamicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicDirective, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.TemplateRef }, { token: i1.LazyElementsLoaderService }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicDirective, decorators: [{ | ||
LazyElementDynamicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicDirective, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.TemplateRef }, { token: i1.LazyElementsLoaderService }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicDirective, decorators: [{ | ||
type: Directive, | ||
@@ -96,0 +96,0 @@ args: [{ |
import { Directive, Inject, Input, PLATFORM_ID, } from '@angular/core'; | ||
import { isPlatformServer } from '@angular/common'; | ||
import { from, Subscription } from 'rxjs'; | ||
import { mergeMap } from 'rxjs/operators'; | ||
import { animationFrameScheduler, BehaviorSubject, EMPTY, from, Subscription, } from 'rxjs'; | ||
import { catchError, debounceTime, mergeMap, switchMap } from 'rxjs/operators'; | ||
import * as i0 from "@angular/core"; | ||
@@ -18,3 +18,9 @@ import * as i1 from "../lazy-elements-loader.service"; | ||
this.subscription = Subscription.EMPTY; | ||
this.url$ = new BehaviorSubject(null); | ||
} | ||
ngOnChanges(changes) { | ||
if (changes.url) { | ||
this.url$.next(this.url); | ||
} | ||
} | ||
ngOnInit() { | ||
@@ -28,2 +34,15 @@ // There's no sense to execute the below logic on the Node.js side since the JavaScript | ||
} | ||
this.setupUrlListener(); | ||
} | ||
ngOnDestroy() { | ||
this.subscription.unsubscribe(); | ||
} | ||
destroyEmbeddedView() { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
} | ||
setupUrlListener() { | ||
const tpl = this.template; | ||
@@ -37,20 +56,17 @@ const elementTag = tpl._declarationTContainer | ||
const loadingComponent = elementConfig.loadingComponent || options.loadingComponent; | ||
if (this.loadingTemplateRef) { | ||
this.vcr.createEmbeddedView(this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
const factory = this.cfr.resolveComponentFactory(loadingComponent); | ||
this.vcr.createComponent(factory); | ||
} | ||
const loadElement$ = from(this.elementsLoaderService.loadElement(this.url, elementTag, this.isModule, this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)); | ||
this.subscription = loadElement$ | ||
.pipe(mergeMap(() => customElements.whenDefined(elementTag))) | ||
.subscribe({ | ||
next: () => { | ||
this.subscription = this.url$ | ||
.pipe( | ||
// This is used to coalesce changes since the `url$` subject might emit multiple values initially, e.g. | ||
// `null` (initial value) and the url itself (when the `url` binding is provided). | ||
// The `animationFrameScheduler` is used to prevent the frame drop. | ||
debounceTime(0, animationFrameScheduler), switchMap((url) => { | ||
if (this.loadingTemplateRef) { | ||
this.vcr.createEmbeddedView(this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
const factory = this.cfr.resolveComponentFactory(loadingComponent); | ||
this.vcr.createComponent(factory); | ||
} | ||
return from(this.elementsLoaderService.loadElement(url, elementTag, this.isModule, this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)).pipe(catchError(() => { | ||
this.vcr.clear(); | ||
this.viewRef = this.vcr.createEmbeddedView(this.template); | ||
this.cdr.markForCheck(); | ||
}, | ||
error: () => { | ||
this.vcr.clear(); | ||
const errorComponent = elementConfig.errorComponent || options.errorComponent; | ||
@@ -69,19 +85,17 @@ if (this.errorTemplateRef) { | ||
} | ||
return EMPTY; | ||
})); | ||
}), mergeMap(() => customElements.whenDefined(elementTag))) | ||
.subscribe({ | ||
next: () => { | ||
this.vcr.clear(); | ||
this.viewRef = this.vcr.createEmbeddedView(this.template); | ||
this.cdr.markForCheck(); | ||
}, | ||
}); | ||
} | ||
ngOnDestroy() { | ||
this.subscription.unsubscribe(); | ||
} | ||
destroyEmbeddedView() { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
} | ||
} | ||
LazyElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.LazyElementsLoaderService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDirective, decorators: [{ | ||
LazyElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.LazyElementsLoaderService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, usesOnChanges: true, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDirective, decorators: [{ | ||
type: Directive, | ||
@@ -110,2 +124,2 @@ args: [{ | ||
}] } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZW1lbnRzL3NyYy9saWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBR0wsV0FBVyxHQUdaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzFDLE1BQU0sVUFBVSxHQUFHLDhCQUE4QixDQUFDO0FBS2xELE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDK0IsVUFBa0IsRUFDdkMsR0FBcUIsRUFDckIsUUFBMEIsRUFDMUIscUJBQWdELEVBQ2hELEdBQTZCLEVBQzdCLEdBQXNCO1FBTEQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUN2QyxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTJCO1FBQ2hELFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQzdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVHhCLFlBQU8sR0FBeUIsSUFBSSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQVN2QyxDQUFDO0lBRUosUUFBUTtRQUNOLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsNkdBQTZHO1FBQzdHLDJHQUEyRztRQUMzRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxP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QUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDSCxDQUFDOztpSEEvRlUsb0JBQW9CLGtCQVdyQixXQUFXO3FHQVhWLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzswQkFZSSxNQUFNOzJCQUFDLFdBQVc7b05BVkcsR0FBRztzQkFBMUIsS0FBSzt1QkFBQyxlQUFlO2dCQUNpQixrQkFBa0I7c0JBQXhELEtBQUs7dUJBQUMsOEJBQThCO2dCQUNBLGdCQUFnQjtzQkFBcEQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBQ0wsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ0ssU0FBUztzQkFBekMsS0FBSzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFBMQVRGT1JNX0lELFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEVsZW1lbnRDb25maWcsXG4gIExhenlFbGVtZW50c0xvYWRlclNlcnZpY2UsXG59IGZyb20gJy4uL2xhenktZWxlbWVudHMtbG9hZGVyLnNlcnZpY2UnO1xuXG5jb25zdCBMT0dfUFJFRklYID0gJ0Bhbmd1bGFyLWV4dGVuc2lvbnMvZWxlbWVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhMYXp5RWxlbWVudF0nLFxufSlcbmV4cG9ydCBjbGFzcyBMYXp5RWxlbWVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdheExhenlFbGVtZW50JykgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudExvYWRpbmdUZW1wbGF0ZScpIGxvYWRpbmdUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudEVycm9yVGVtcGxhdGUnKSBlcnJvclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50TW9kdWxlJykgaXNNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRJbXBvcnRNYXAnKSBpbXBvcnRNYXA6IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuXG4gIHByaXZhdGUgdmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPGFueT4gPSBudWxsO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgZWxlbWVudHNMb2FkZXJTZXJ2aWNlOiBMYXp5RWxlbWVudHNMb2FkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBUaGVyZSdzIG5vIHNlbnNlIHRvIGV4ZWN1dGUgdGhlIGJlbG93IGxvZ2ljIG9uIHRoZSBOb2RlLmpzIHNpZGUgc2luY2UgdGhlIEphdmFTY3JpcHRcbiAgICAvLyB3aWxsIG5vdCBiZSBsb2FkZWQgb24gdGhlIHNlcnZlci1zaWRlIChBbmd1bGFyIHdpbGwgb25seSBhcHBlbmQgdGhlIHNjcmlwdCB0byBib2R5KS5cbiAgICAvLyBUaGUgYGxvYWRFbGVtZW50YCBwcm9taXNlIHdpbGwgbmV2ZXIgYmUgcmVzb2x2ZWQsIHNpbmNlIGl0IGdldHMgcmVzb2x2ZWQgd2hlbiB0aGUgYGxvYWRgIGV2ZW50IGlzIGVtaXR0ZWQuXG4gICAgLy8gYGN1c3RvbUVsZW1lbnRzYCBhcmUgYWxzbyB1bmRlZmluZWQgb24gdGhlIE5vZGUuanMgc2lkZTsgdGh1cywgaXQgd2lsbCBhbHdheXMgcmVuZGVyIHRoZSBlcnJvciB0ZW1wbGF0ZS5cbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHBsID0gdGhpcy50ZW1wbGF0ZSBhcyBhbnk7XG4gICAgY29uc3QgZWxlbWVudFRhZyA9IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyXG4gICAgICA/IHRwbC5fZGVjbGFyYXRpb25UQ29udGFpbmVyLnRhZ05hbWUgfHwgdHBsLl9kZWNsYXJhdGlvblRDb250YWluZXIudmFsdWVcbiAgICAgIDogdHBsLl9kZWYuZWxlbWVudC50ZW1wbGF0ZS5ub2Rlc1swXS5lbGVtZW50Lm5hbWU7XG5cbiAgICBjb25zdCBlbGVtZW50Q29uZmlnID1cbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLmdldEVsZW1lbnRDb25maWcoZWxlbWVudFRhZykgfHxcbiAgICAgICh7fSBhcyBFbGVtZW50Q29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2Uub3B0aW9ucztcbiAgICBjb25zdCBsb2FkaW5nQ29tcG9uZW50ID1cbiAgICAgIGVsZW1lbnRDb25maWcubG9hZGluZ0NvbXBvbmVudCB8fCBvcHRpb25zLmxvYWRpbmdDb21wb25lbnQ7XG5cbiAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZEVsZW1lbnQkID0gZnJvbShcbiAgICAgIHRoaXMuZWxlbWVudHNMb2FkZXJTZXJ2aWNlLmxvYWRFbGVtZW50KFxuICAgICAgICB0aGlzLnVybCxcbiAgICAgICAgZWxlbWVudFRhZyxcbiAgICAgICAgdGhpcy5pc01vZHVsZSxcbiAgICAgICAgdGhpcy5pbXBvcnRNYXAsXG4gICAgICAgIGVsZW1lbnRDb25maWc/Lmhvb2tzXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbG9hZEVsZW1lbnQkXG4gICAgICAucGlwZShtZXJnZU1hcCgoKSA9PiBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZChlbGVtZW50VGFnKSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgICAgY29uc3QgZXJyb3JDb21wb25lbnQgPVxuICAgICAgICAgICAgZWxlbWVudENvbmZpZy5lcnJvckNvbXBvbmVudCB8fCBvcHRpb25zLmVycm9yQ29tcG9uZW50O1xuICAgICAgICAgIGlmICh0aGlzLmVycm9yVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVycm9yVGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgICAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobmdEZXZNb2RlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBgJHtMT0dfUFJFRklYfSAtIExvYWRpbmcgb2YgZWxlbWVudCA8JHtlbGVtZW50VGFnfT4gZmFpbGVkLCBwbGVhc2UgcHJvdmlkZSA8bmctdGVtcGxhdGUgI2Vycm9yPkxvYWRpbmcgZmFpbGVkLi4uPC9uZy10ZW1wbGF0ZT4gYW5kIHJlZmVyZW5jZSBpdCBpbiAqYXhMYXp5RWxlbWVudD1cImVycm9yVGVtcGxhdGU6IGVycm9yXCIgdG8gZGlzcGxheSBjdXN0b21pemVkIGVycm9yIG1lc3NhZ2UgaW4gcGxhY2Ugb2YgZWxlbWVudGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZGVzdHJveUVtYmVkZGVkVmlldygpIHtcbiAgICBpZiAodGhpcy52aWV3UmVmICYmICF0aGlzLnZpZXdSZWYuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLnZpZXdSZWYuZGV0YWNoKCk7XG4gICAgICB0aGlzLnZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy52aWV3UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZW1lbnRzL3NyYy9saWIvbGF6eS1lbGVtZW50cy9sYXp5LWVsZW1lbnQvbGF6eS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUlaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLEtBQUssRUFDTCxJQUFJLEVBQ0osWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPL0UsTUFBTSxVQUFVLEdBQUcsOEJBQThCLENBQUM7QUFLbEQsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUMrQixVQUFrQixFQUN2QyxHQUFxQixFQUNyQixRQUEwQixFQUMxQixxQkFBZ0QsRUFDaEQsR0FBNkIsRUFDN0IsR0FBc0I7UUFMRCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3ZDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7UUFDaEQsUUFBRyxHQUFILEdBQUcsQ0FBMEI7UUFDN0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFWeEIsWUFBTyxHQUF5QixJQUFJLENBQUM7UUFDckMsaUJBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFTckQsQ0FBQztJQUVKLFdB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QUExQixLQUFLO3VCQUFDLGVBQWU7Z0JBQ2lCLGtCQUFrQjtzQkFBeEQsS0FBSzt1QkFBQyw4QkFBOEI7Z0JBQ0EsZ0JBQWdCO3NCQUFwRCxLQUFLO3VCQUFDLDRCQUE0QjtnQkFDTCxRQUFRO3NCQUFyQyxLQUFLO3VCQUFDLHFCQUFxQjtnQkFDSyxTQUFTO3NCQUF6QyxLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQTEFURk9STV9JRCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhbmltYXRpb25GcmFtZVNjaGVkdWxlcixcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBFTVBUWSxcbiAgZnJvbSxcbiAgU3Vic2NyaXB0aW9uLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgbWVyZ2VNYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgRWxlbWVudENvbmZpZyxcbiAgTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbn0gZnJvbSAnLi4vbGF6eS1lbGVtZW50cy1sb2FkZXIuc2VydmljZSc7XG5cbmNvbnN0IExPR19QUkVGSVggPSAnQGFuZ3VsYXItZXh0ZW5zaW9ucy9lbGVtZW50cyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theExhenlFbGVtZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIExhenlFbGVtZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudCcpIHVybDogc3RyaW5nO1xuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRMb2FkaW5nVGVtcGxhdGUnKSBsb2FkaW5nVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2F4TGF6eUVsZW1lbnRFcnJvclRlbXBsYXRlJykgZXJyb3JUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYXhMYXp5RWxlbWVudE1vZHVsZScpIGlzTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdheExhenlFbGVtZW50SW1wb3J0TWFwJykgaW1wb3J0TWFwOiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcblxuICBwcml2YXRlIHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gIHByaXZhdGUgdXJsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIGVsZW1lbnRzTG9hZGVyU2VydmljZTogTGF6eUVsZW1lbnRzTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnVybCkge1xuICAgICAgdGhpcy51cmwkLm5leHQodGhpcy51cmwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFRoZXJlJ3Mgbm8gc2Vuc2UgdG8gZXhlY3V0ZSB0aGUgYmVsb3cgbG9naWMgb24gdGhlIE5vZGUuanMgc2lkZSBzaW5jZSB0aGUgSmF2YVNjcmlwdFxuICAgIC8vIHdpbGwgbm90IGJlIGxvYWRlZCBvbiB0aGUgc2VydmVyLXNpZGUgKEFuZ3VsYXIgd2lsbCBvbmx5IGFwcGVuZCB0aGUgc2NyaXB0IHRvIGJvZHkpLlxuICAgIC8vIFRoZSBgbG9hZEVsZW1lbnRgIHByb21pc2Ugd2lsbCBuZXZlciBiZSByZXNvbHZlZCwgc2luY2UgaXQgZ2V0cyByZXNvbHZlZCB3aGVuIHRoZSBgbG9hZGAgZXZlbnQgaXMgZW1pdHRlZC5cbiAgICAvLyBgY3VzdG9tRWxlbWVudHNgIGFyZSBhbHNvIHVuZGVmaW5lZCBvbiB0aGUgTm9kZS5qcyBzaWRlOyB0aHVzLCBpdCB3aWxsIGFsd2F5cyByZW5kZXIgdGhlIGVycm9yIHRlbXBsYXRlLlxuICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwVXJsTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBkZXN0cm95RW1iZWRkZWRWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXdSZWYgJiYgIXRoaXMudmlld1JlZi5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMudmlld1JlZi5kZXRhY2goKTtcbiAgICAgIHRoaXMudmlld1JlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBVcmxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCB0cGwgPSB0aGlzLnRlbXBsYXRlIGFzIGFueTtcbiAgICBjb25zdCBlbGVtZW50VGFnID0gdHBsLl9kZWNsYXJhdGlvblRDb250YWluZXJcbiAgICAgID8gdHBsLl9kZWNsYXJhdGlvblRDb250YWluZXIudGFnTmFtZSB8fCB0cGwuX2RlY2xhcmF0aW9uVENvbnRhaW5lci52YWx1ZVxuICAgICAgOiB0cGwuX2RlZi5lbGVtZW50LnRlbXBsYXRlLm5vZGVzWzBdLmVsZW1lbnQubmFtZTtcblxuICAgIGNvbnN0IGVsZW1lbnRDb25maWcgPVxuICAgICAgdGhpcy5lbGVtZW50c0xvYWRlclNlcnZpY2UuZ2V0RWxlbWVudENvbmZpZyhlbGVtZW50VGFnKSB8fFxuICAgICAgKHt9IGFzIEVsZW1lbnRDb25maWcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5vcHRpb25zO1xuICAgIGNvbnN0IGxvYWRpbmdDb21wb25lbnQgPVxuICAgICAgZWxlbWVudENvbmZpZy5sb2FkaW5nQ29tcG9uZW50IHx8IG9wdGlvbnMubG9hZGluZ0NvbXBvbmVudDtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy51cmwkXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGNvYWxlc2NlIGNoYW5nZXMgc2luY2UgdGhlIGB1cmwkYCBzdWJqZWN0IG1pZ2h0IGVtaXQgbXVsdGlwbGUgdmFsdWVzIGluaXRpYWxseSwgZS5nLlxuICAgICAgICAvLyBgbnVsbGAgKGluaXRpYWwgdmFsdWUpIGFuZCB0aGUgdXJsIGl0c2VsZiAod2hlbiB0aGUgYHVybGAgYmluZGluZyBpcyBwcm92aWRlZCkuXG4gICAgICAgIC8vIFRoZSBgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXJgIGlzIHVzZWQgdG8gcHJldmVudCB0aGUgZnJhbWUgZHJvcC5cbiAgICAgICAgZGVib3VuY2VUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICAgICAgc3dpdGNoTWFwKCh1cmwpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5sb2FkaW5nVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmxvYWRpbmdUZW1wbGF0ZVJlZik7XG4gICAgICAgICAgfSBlbHNlIGlmIChsb2FkaW5nQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICAgICAgICB0aGlzLnZjci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzTG9hZGVyU2VydmljZS5sb2FkRWxlbWVudChcbiAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICBlbGVtZW50VGFnLFxuICAgICAgICAgICAgICB0aGlzLmlzTW9kdWxlLFxuICAgICAgICAgICAgICB0aGlzLmltcG9ydE1hcCxcbiAgICAgICAgICAgICAgZWxlbWVudENvbmZpZz8uaG9va3NcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3JDb21wb25lbnQgPVxuICAgICAgICAgICAgICAgIGVsZW1lbnRDb25maWcuZXJyb3JDb21wb25lbnQgfHwgb3B0aW9ucy5lcnJvckNvbXBvbmVudDtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZXJyb3JUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVycm9yVGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yeSA9XG4gICAgICAgICAgICAgICAgICB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShlcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBgJHtMT0dfUFJFRklYfSAtIExvYWRpbmcgb2YgZWxlbWVudCA8JHtlbGVtZW50VGFnfT4gZmFpbGVkLCBwbGVhc2UgcHJvdmlkZSA8bmctdGVtcGxhdGUgI2Vycm9yPkxvYWRpbmcgZmFpbGVkLi4uPC9uZy10ZW1wbGF0ZT4gYW5kIHJlZmVyZW5jZSBpdCBpbiAqYXhMYXp5RWxlbWVudD1cImVycm9yVGVtcGxhdGU6IGVycm9yXCIgdG8gZGlzcGxheSBjdXN0b21pemVkIGVycm9yIG1lc3NhZ2UgaW4gcGxhY2Ugb2YgZWxlbWVudGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKGVsZW1lbnRUYWcpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgICAgIHRoaXMudmlld1JlZiA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG59XG4iXX0= |
@@ -149,5 +149,5 @@ import { __awaiter } from "tslib"; | ||
} | ||
LazyElementsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, deps: [{ token: i0.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, decorators: [{ | ||
LazyElementsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, deps: [{ token: i0.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, decorators: [{ | ||
type: Injectable, | ||
@@ -154,0 +154,0 @@ args: [{ |
@@ -57,6 +57,6 @@ import { Inject, NgModule, Optional, SkipSelf, } from '@angular/core'; | ||
} | ||
LazyElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, deps: [{ token: i1.LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, providers: [], imports: [[CommonModule]] }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, decorators: [{ | ||
LazyElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, deps: [{ token: i1.LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, providers: [], imports: [[CommonModule]] }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, decorators: [{ | ||
type: NgModule, | ||
@@ -63,0 +63,0 @@ args: [{ |
@@ -12,5 +12,5 @@ import { Directive, } from '@angular/core'; | ||
} | ||
LazyElementDynamicTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
LazyElementDynamicTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
type: Directive, | ||
@@ -17,0 +17,0 @@ args: [{ |
@@ -12,5 +12,5 @@ import { Directive, } from '@angular/core'; | ||
} | ||
LazyElementTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementTestingDirective, decorators: [{ | ||
LazyElementTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementTestingDirective, decorators: [{ | ||
type: Directive, | ||
@@ -17,0 +17,0 @@ args: [{ |
@@ -7,7 +7,7 @@ import { NgModule } from '@angular/core'; | ||
} | ||
LazyElementsTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementsTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementDynamicTestingDirective], exports: [LazyElementTestingDirective, LazyElementDynamicTestingDirective] }); | ||
LazyElementsTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, decorators: [{ | ||
LazyElementsTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, decorators: [{ | ||
type: NgModule, | ||
@@ -14,0 +14,0 @@ args: [{ |
@@ -13,5 +13,5 @@ import * as i0 from '@angular/core'; | ||
} | ||
LazyElementTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementTestingDirective, decorators: [{ | ||
LazyElementTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementTestingDirective, selector: "[axLazyElement]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementTestingDirective, decorators: [{ | ||
type: Directive, | ||
@@ -32,5 +32,5 @@ args: [{ | ||
} | ||
LazyElementDynamicTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
LazyElementDynamicTestingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicTestingDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicTestingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicTestingDirective, selector: "[axLazyElementDynamic]", ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicTestingDirective, decorators: [{ | ||
type: Directive, | ||
@@ -44,7 +44,7 @@ args: [{ | ||
} | ||
LazyElementsTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementsTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, declarations: [LazyElementTestingDirective, | ||
LazyElementDynamicTestingDirective], exports: [LazyElementTestingDirective, LazyElementDynamicTestingDirective] }); | ||
LazyElementsTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsTestingModule, decorators: [{ | ||
LazyElementsTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsTestingModule, decorators: [{ | ||
type: NgModule, | ||
@@ -51,0 +51,0 @@ args: [{ |
import * as i0 from '@angular/core'; | ||
import { InjectionToken, Injectable, Inject, Optional, PLATFORM_ID, Directive, Input, SkipSelf, NgModule } from '@angular/core'; | ||
import { isPlatformServer, DOCUMENT, CommonModule } from '@angular/common'; | ||
import { Subscription, from } from 'rxjs'; | ||
import { mergeMap } from 'rxjs/operators'; | ||
import { Subscription, BehaviorSubject, animationFrameScheduler, from, EMPTY } from 'rxjs'; | ||
import { debounceTime, switchMap, catchError, mergeMap } from 'rxjs/operators'; | ||
import { __awaiter } from 'tslib'; | ||
@@ -160,5 +160,5 @@ | ||
} | ||
LazyElementsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, deps: [{ token: i0.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsLoaderService, decorators: [{ | ||
LazyElementsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, deps: [{ token: i0.ErrorHandler }, { token: LAZY_ELEMENTS_REGISTRY }, { token: LAZY_ELEMENT_ROOT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); | ||
LazyElementsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, providedIn: 'root' }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsLoaderService, decorators: [{ | ||
type: Injectable, | ||
@@ -189,3 +189,9 @@ args: [{ | ||
this.subscription = Subscription.EMPTY; | ||
this.url$ = new BehaviorSubject(null); | ||
} | ||
ngOnChanges(changes) { | ||
if (changes.url) { | ||
this.url$.next(this.url); | ||
} | ||
} | ||
ngOnInit() { | ||
@@ -199,2 +205,15 @@ // There's no sense to execute the below logic on the Node.js side since the JavaScript | ||
} | ||
this.setupUrlListener(); | ||
} | ||
ngOnDestroy() { | ||
this.subscription.unsubscribe(); | ||
} | ||
destroyEmbeddedView() { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
} | ||
setupUrlListener() { | ||
const tpl = this.template; | ||
@@ -208,20 +227,17 @@ const elementTag = tpl._declarationTContainer | ||
const loadingComponent = elementConfig.loadingComponent || options.loadingComponent; | ||
if (this.loadingTemplateRef) { | ||
this.vcr.createEmbeddedView(this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
const factory = this.cfr.resolveComponentFactory(loadingComponent); | ||
this.vcr.createComponent(factory); | ||
} | ||
const loadElement$ = from(this.elementsLoaderService.loadElement(this.url, elementTag, this.isModule, this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)); | ||
this.subscription = loadElement$ | ||
.pipe(mergeMap(() => customElements.whenDefined(elementTag))) | ||
.subscribe({ | ||
next: () => { | ||
this.subscription = this.url$ | ||
.pipe( | ||
// This is used to coalesce changes since the `url$` subject might emit multiple values initially, e.g. | ||
// `null` (initial value) and the url itself (when the `url` binding is provided). | ||
// The `animationFrameScheduler` is used to prevent the frame drop. | ||
debounceTime(0, animationFrameScheduler), switchMap((url) => { | ||
if (this.loadingTemplateRef) { | ||
this.vcr.createEmbeddedView(this.loadingTemplateRef); | ||
} | ||
else if (loadingComponent) { | ||
const factory = this.cfr.resolveComponentFactory(loadingComponent); | ||
this.vcr.createComponent(factory); | ||
} | ||
return from(this.elementsLoaderService.loadElement(url, elementTag, this.isModule, this.importMap, elementConfig === null || elementConfig === void 0 ? void 0 : elementConfig.hooks)).pipe(catchError(() => { | ||
this.vcr.clear(); | ||
this.viewRef = this.vcr.createEmbeddedView(this.template); | ||
this.cdr.markForCheck(); | ||
}, | ||
error: () => { | ||
this.vcr.clear(); | ||
const errorComponent = elementConfig.errorComponent || options.errorComponent; | ||
@@ -240,19 +256,17 @@ if (this.errorTemplateRef) { | ||
} | ||
return EMPTY; | ||
})); | ||
}), mergeMap(() => customElements.whenDefined(elementTag))) | ||
.subscribe({ | ||
next: () => { | ||
this.vcr.clear(); | ||
this.viewRef = this.vcr.createEmbeddedView(this.template); | ||
this.cdr.markForCheck(); | ||
}, | ||
}); | ||
} | ||
ngOnDestroy() { | ||
this.subscription.unsubscribe(); | ||
} | ||
destroyEmbeddedView() { | ||
if (this.viewRef && !this.viewRef.destroyed) { | ||
this.viewRef.detach(); | ||
this.viewRef.destroy(); | ||
this.viewRef = null; | ||
} | ||
} | ||
} | ||
LazyElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: LazyElementsLoaderService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDirective, decorators: [{ | ||
LazyElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: LazyElementsLoaderService }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDirective, selector: "[axLazyElement]", inputs: { url: ["axLazyElement", "url"], loadingTemplateRef: ["axLazyElementLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementModule", "isModule"], importMap: ["axLazyElementImportMap", "importMap"] }, usesOnChanges: true, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDirective, decorators: [{ | ||
type: Directive, | ||
@@ -366,5 +380,5 @@ args: [{ | ||
} | ||
LazyElementDynamicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicDirective, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.TemplateRef }, { token: LazyElementsLoaderService }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementDynamicDirective, decorators: [{ | ||
LazyElementDynamicDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicDirective, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i0.TemplateRef }, { token: LazyElementsLoaderService }], target: i0.ɵɵFactoryTarget.Directive }); | ||
LazyElementDynamicDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.0", type: LazyElementDynamicDirective, selector: "[axLazyElementDynamic]", inputs: { tag: ["axLazyElementDynamic", "tag"], url: ["axLazyElementDynamicUrl", "url"], loadingTemplateRef: ["axLazyElementDynamicLoadingTemplate", "loadingTemplateRef"], errorTemplateRef: ["axLazyElementDynamicErrorTemplate", "errorTemplateRef"], isModule: ["axLazyElementDynamicModule", "isModule"], importMap: ["axLazyElementDynamicImportMap", "importMap"] }, ngImport: i0 }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementDynamicDirective, decorators: [{ | ||
type: Directive, | ||
@@ -448,6 +462,6 @@ args: [{ | ||
} | ||
LazyElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, deps: [{ token: LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, providers: [], imports: [[CommonModule]] }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.0", ngImport: i0, type: LazyElementsModule, decorators: [{ | ||
LazyElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, deps: [{ token: LazyElementsLoaderService }, { token: LAZY_ELEMENT_CONFIGS, optional: true }, { token: LAZY_ELEMENT_ROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); | ||
LazyElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, declarations: [LazyElementDirective, LazyElementDynamicDirective], imports: [CommonModule], exports: [LazyElementDirective, LazyElementDynamicDirective] }); | ||
LazyElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, providers: [], imports: [[CommonModule]] }); | ||
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.0", ngImport: i0, type: LazyElementsModule, decorators: [{ | ||
type: NgModule, | ||
@@ -454,0 +468,0 @@ args: [{ |
@@ -1,5 +0,5 @@ | ||
import { ChangeDetectorRef, ComponentFactoryResolver, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { ChangeDetectorRef, ComponentFactoryResolver, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core'; | ||
import { LazyElementsLoaderService } from '../lazy-elements-loader.service'; | ||
import * as i0 from "@angular/core"; | ||
export declare class LazyElementDirective implements OnInit, OnDestroy { | ||
export declare class LazyElementDirective implements OnChanges, OnInit, OnDestroy { | ||
private platformId; | ||
@@ -18,8 +18,11 @@ private vcr; | ||
private subscription; | ||
private url$; | ||
constructor(platformId: string, vcr: ViewContainerRef, template: TemplateRef<any>, elementsLoaderService: LazyElementsLoaderService, cfr: ComponentFactoryResolver, cdr: ChangeDetectorRef); | ||
ngOnChanges(changes: SimpleChanges): void; | ||
ngOnInit(): void; | ||
ngOnDestroy(): void; | ||
destroyEmbeddedView(): void; | ||
private setupUrlListener; | ||
static ɵfac: i0.ɵɵFactoryDeclaration<LazyElementDirective, never>; | ||
static ɵdir: i0.ɵɵDirectiveDeclaration<LazyElementDirective, "[axLazyElement]", never, { "url": "axLazyElement"; "loadingTemplateRef": "axLazyElementLoadingTemplate"; "errorTemplateRef": "axLazyElementErrorTemplate"; "isModule": "axLazyElementModule"; "importMap": "axLazyElementImportMap"; }, {}, never>; | ||
} |
{ | ||
"name": "@angular-extensions/elements", | ||
"version": "12.4.2", | ||
"version": "12.5.0", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": ">=12", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
298018
2264