@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
52 lines • 6.44 kB
JavaScript
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import * as i0 from "@angular/core";
/**
* Base class for template loaders
*/
// eslint-disable-next-line @angular-eslint/directive-class-suffix
export class TemplateLoaderBaseComponent {
/**
* Instantiates a new instance of TemplateLoaderBaseComponent
* @param viewContainer the reference to this elements view container
*/
constructor(viewContainer) {
this.viewContainer = viewContainer;
}
/**
* Implementation of angular OnInit interface
*/
ngOnInit() {
this.view = this.viewContainer.createEmbeddedView(this.template, this.createContext());
}
/**
* Implementation of angular OnChanges interface
* @param changes the changes that occured
*/
ngOnChanges(changes) {
if (!this.view || !this.view.context) {
return;
}
// changes and update the context if those properties exist
for (const key in changes) {
if (key in this.view.context) {
this.view.context[key] = changes[key].currentValue;
}
}
}
/**
* Implementation of angular OnDestroy interface
*/
ngOnDestroy() {
this.view.destroy();
}
}
/** @nocollapse */ TemplateLoaderBaseComponent.ɵfac = function TemplateLoaderBaseComponent_Factory(t) { return new (t || TemplateLoaderBaseComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
/** @nocollapse */ TemplateLoaderBaseComponent.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: TemplateLoaderBaseComponent, inputs: { data: "data", template: "template" }, features: [i0.ɵɵNgOnChangesFeature] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TemplateLoaderBaseComponent, [{
type: Directive
}], function () { return [{ type: i0.ViewContainerRef }]; }, { data: [{
type: Input
}], template: [{
type: Input
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbG9hZGVyLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvY29tbW9uL3RlbXBsYXRlLWxvYWRlci1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQixLQUFLLEVBQWdDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLL0g7O0dBRUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQiwyQkFBMkI7SUFtQjdDOzs7T0FHRztJQUNILFlBQW9CLGFBQStCO1FBQS9CLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxPQUFPO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbEMsT0FBTztTQUNWO1FBRUQsMkRBQTJEO1FBQzNELEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzt5SEF2RGlCLDJCQUEyQjs2R0FBM0IsMkJBQTJCO3VGQUEzQiwyQkFBMkI7Y0FGaEQsU0FBUzttRUFRQyxJQUFJO2tCQURWLEtBQUs7WUFPQyxRQUFRO2tCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlQ29udGV4dDxURGF0YT4ge1xyXG4gICAgJGltcGxpY2l0OiBURGF0YTtcclxufVxyXG4vKipcclxuICogQmFzZSBjbGFzcyBmb3IgdGVtcGxhdGUgbG9hZGVyc1xyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVtcGxhdGVMb2FkZXJCYXNlQ29tcG9uZW50PFREYXRhLCBUQ29udGV4dCBleHRlbmRzIFRlbXBsYXRlQ29udGV4dDxURGF0YT4+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGF0YSBjb250ZXh0IG9mIHRoZSB2aWV3IHdlIGNyZWF0ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRhdGE6IFREYXRhO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFRlbXBsYXRlIHRvIGxvYWQgaW50byB0aGUgdmlldyBjb250YWluZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VENvbnRleHQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJlZmVyZW5jZSB0byB0aGUgdmlldyBjcmVhdGVkIGZvciB0aGUgdGVtcGxhdGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxUQ29udGV4dD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW50aWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgVGVtcGxhdGVMb2FkZXJCYXNlQ29tcG9uZW50XHJcbiAgICAgKiBAcGFyYW0gdmlld0NvbnRhaW5lciB0aGUgcmVmZXJlbmNlIHRvIHRoaXMgZWxlbWVudHMgdmlldyBjb250YWluZXJcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhbmd1bGFyIE9uSW5pdCBpbnRlcmZhY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlldyA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSwgdGhpcy5jcmVhdGVDb250ZXh0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgYW5ndWxhciBPbkNoYW5nZXMgaW50ZXJmYWNlXHJcbiAgICAgKiBAcGFyYW0gY2hhbmdlcyB0aGUgY2hhbmdlcyB0aGF0IG9jY3VyZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudmlldyB8fCAhdGhpcy52aWV3LmNvbnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2hhbmdlcyBhbmQgdXBkYXRlIHRoZSBjb250ZXh0IGlmIHRob3NlIHByb3BlcnRpZXMgZXhpc3RcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgaW4gdGhpcy52aWV3LmNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlldy5jb250ZXh0W2tleV0gPSBjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgYW5ndWxhciBPbkRlc3Ryb3kgaW50ZXJmYWNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXcuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgY29udGV4dCBmb3Igb3VyIGVtYmVkZWQgdmlld1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQ29udGV4dCgpOiBUQ29udGV4dDtcclxufVxyXG4iXX0=