UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

50 lines 6.09 kB
import { ComponentFactoryResolver, Directive, Injector, ViewChild, ViewContainerRef } from '@angular/core'; import { CoreBaseComponent } from './base.component'; import * as i0 from "@angular/core"; const _c0 = ["container"]; // eslint-disable-next-line @angular-eslint/directive-class-suffix export class DynamicComponentBase extends CoreBaseComponent { constructor(componentFactoryResolver, inject) { super(inject); this.componentFactoryResolver = componentFactoryResolver; } /** * The source name to use for logging */ get logSourceName() { return 'DynamicComponentBase'; } ngOnInit() { this.createComponent(); } ngOnDestroy() { this.cleanComponent(); } createComponent() { this.cleanComponent(); let factory; factory = this.componentFactoryResolver.resolveComponentFactory(this.componentType); this.ref = this.container.createComponent(factory); } cleanComponent() { // make sure any previously created component is properly destroyed if (this.ref) { this.ref.destroy(); this.ref = null; } } } /** @nocollapse */ DynamicComponentBase.ɵfac = function DynamicComponentBase_Factory(t) { return new (t || DynamicComponentBase)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.Injector)); }; /** @nocollapse */ DynamicComponentBase.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DynamicComponentBase, viewQuery: function DynamicComponentBase_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, 7, ViewContainerRef); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first); } }, features: [i0.ɵɵInheritDefinitionFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicComponentBase, [{ type: Directive }], function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, { container: [{ type: ViewChild, args: ['container', { read: ViewContainerRef, static: true }] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9jb21tb24vZHluYW1pYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHdCQUF3QixFQUV4QixTQUFTLEVBQ1QsUUFBUSxFQUlSLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUdyRCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLG9CQUF3QixTQUFRLGlCQUFpQjtJQWMxRCxZQUFvQix3QkFBa0QsRUFDbEUsTUFBaUI7UUFDakIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRkUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUd0RSxDQUFDO0lBaEJEOztPQUVHO0lBQ0gsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sc0JBQXNCLENBQUM7SUFDbEMsQ0FBQztJQWFNLFFBQVE7UUFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLGVBQWU7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksT0FBNEIsQ0FBQztRQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFUyxjQUFjO1FBQ3BCLG1FQUFtRTtRQUNuRSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQzs7MkdBeENRLG9CQUFvQjtzR0FBcEIsb0JBQW9COytCQVFHLGdCQUFnQjs7Ozs7dUZBUnZDLG9CQUFvQjtjQUZoQyxTQUFTO2tHQVdFLFNBQVM7a0JBRGhCLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50RmFjdG9yeSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIENvbXBvbmVudFJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIEluamVjdG9yLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVHlwZSxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRCYXNlPFQ+IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnRHluYW1pY0NvbXBvbmVudEJhc2UnO1xyXG4gICAgfVxyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgY29tcG9uZW50VHlwZTogVHlwZTxUPjtcclxuICAgIHByb3RlY3RlZCByZWY6IENvbXBvbmVudFJlZjxUPjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIGluamVjdD86IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhbkNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVDb21wb25lbnQoKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhbkNvbXBvbmVudCgpO1xyXG4gICAgICAgIGxldCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFQ+O1xyXG4gICAgICAgIGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNvbXBvbmVudFR5cGUpO1xyXG4gICAgICAgIHRoaXMucmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjbGVhbkNvbXBvbmVudCgpIHtcclxuICAgICAgICAvLyBtYWtlIHN1cmUgYW55IHByZXZpb3VzbHkgY3JlYXRlZCBjb21wb25lbnQgaXMgcHJvcGVybHkgZGVzdHJveWVkXHJcbiAgICAgICAgaWYgKHRoaXMucmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5yZWYgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=