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