UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

43 lines 6.44 kB
import { Directive, EventEmitter, Input, Output } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { SettingsFormService } from './settings-form.service'; import * as i0 from "@angular/core"; import * as i1 from "./settings-form.service"; export class SettingsFormDirective { constructor(formsService) { this.formsService = formsService; this.smeSettingsForm = null; this.smeSettingsFormValueUpdate = new EventEmitter(); this.oldForm = null; } ngOnChanges(changes) { if (this.smeUpdateDataInComponent && this.smeSettingsForm) { this.updateDataInComponentSubscription?.unsubscribe(); this.updateDataInComponentSubscription = this.formsService.updateFormValue().subscribe((data) => { this.smeSettingsFormValueUpdate.emit(data.formGroupNewData); }); } if (changes.hasOwnProperty('smeSettingsForm')) { // TODO: Register the form in the service this.formsService.removeForm(this.oldForm); this.formsService.addForm(this.smeSettingsForm, this.smeUpdateDataInComponent); this.oldForm = this.smeSettingsForm; } } ngOnDestroy() { this.updateDataInComponentSubscription?.unsubscribe(); } } /** @nocollapse */ SettingsFormDirective.ɵfac = function SettingsFormDirective_Factory(t) { return new (t || SettingsFormDirective)(i0.ɵɵdirectiveInject(i1.SettingsFormService)); }; /** @nocollapse */ SettingsFormDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SettingsFormDirective, selectors: [["", "smeSettingsForm", ""]], inputs: { smeSettingsForm: "smeSettingsForm", smeUpdateDataInComponent: "smeUpdateDataInComponent" }, outputs: { smeSettingsFormValueUpdate: "smeSettingsFormValueUpdate" }, features: [i0.ɵɵNgOnChangesFeature] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsFormDirective, [{ type: Directive, args: [{ selector: '[smeSettingsForm]' }] }], function () { return [{ type: i1.SettingsFormService }]; }, { smeSettingsForm: [{ type: Input }], smeUpdateDataInComponent: [{ type: Input }], smeSettingsFormValueUpdate: [{ type: Output }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zZXR0aW5ncy9zZXR0aW5ncy1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXdCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLHFCQUFxQjtJQWE5QixZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYOUMsb0JBQWUsR0FBYyxJQUFJLENBQUM7UUFNbEMsK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUlyRCxZQUFPLEdBQWMsSUFBSSxDQUFDO0lBQ3dCLENBQUM7SUFFbkQsV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBRXRELElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1RixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQzs7NkdBbENRLHFCQUFxQjt1R0FBckIscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FEakMsU0FBUztlQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3NFQUdqQyxlQUFlO2tCQURyQixLQUFLO1lBSUMsd0JBQXdCO2tCQUQ5QixLQUFLO1lBSUMsMEJBQTBCO2tCQURoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNldHRpbmdzRm9ybVNlcnZpY2UgfSBmcm9tICcuL3NldHRpbmdzLWZvcm0uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc21lU2V0dGluZ3NGb3JtXScgfSlcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzRm9ybURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc21lU2V0dGluZ3NGb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc21lVXBkYXRlRGF0YUluQ29tcG9uZW50OiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNtZVNldHRpbmdzRm9ybVZhbHVlVXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBwdWJsaWMgb2xkRm9ybTogRm9ybUdyb3VwID0gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBTZXR0aW5nc0Zvcm1TZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICh0aGlzLnNtZVVwZGF0ZURhdGFJbkNvbXBvbmVudCAmJiB0aGlzLnNtZVNldHRpbmdzRm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFJbkNvbXBvbmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YUluQ29tcG9uZW50U3Vic2NyaXB0aW9uID0gdGhpcy5mb3Jtc1NlcnZpY2UudXBkYXRlRm9ybVZhbHVlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNtZVNldHRpbmdzRm9ybVZhbHVlVXBkYXRlLmVtaXQoZGF0YS5mb3JtR3JvdXBOZXdEYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnc21lU2V0dGluZ3NGb3JtJykpIHtcclxuICAgICAgICAgICAgLy8gVE9ETzogUmVnaXN0ZXIgdGhlIGZvcm0gaW4gdGhlIHNlcnZpY2VcclxuICAgICAgICAgICAgdGhpcy5mb3Jtc1NlcnZpY2UucmVtb3ZlRm9ybSh0aGlzLm9sZEZvcm0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1zU2VydmljZS5hZGRGb3JtKHRoaXMuc21lU2V0dGluZ3NGb3JtLCB0aGlzLnNtZVVwZGF0ZURhdGFJbkNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIHRoaXMub2xkRm9ybSA9IHRoaXMuc21lU2V0dGluZ3NGb3JtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19