@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
50 lines • 6.09 kB
JavaScript
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=