@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
47 lines • 6.89 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) {
if (this.updateDataInComponentSubscription) {
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() {
if (this.updateDataInComponentSubscription) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zZXR0aW5ncy9zZXR0aW5ncy1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXdCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHOUQsTUFBTSxPQUFPLHFCQUFxQjtJQWE5QixZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYOUMsb0JBQWUsR0FBYyxJQUFJLENBQUM7UUFNbEMsK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUlyRCxZQUFPLEdBQWMsSUFBSSxDQUFDO0lBQ3dCLENBQUM7SUFFbkQsV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkQsSUFBSSxJQUFJLENBQUMsaUNBQWlDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUN4RDtZQUVELElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1RixJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxpQ0FBaUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEQ7SUFDTCxDQUFDOzs2R0F0Q1EscUJBQXFCO3VHQUFyQixxQkFBcUI7dUZBQXJCLHFCQUFxQjtjQURqQyxTQUFTO2VBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7c0VBR2pDLGVBQWU7a0JBRHJCLEtBQUs7WUFJQyx3QkFBd0I7a0JBRDlCLEtBQUs7WUFJQywwQkFBMEI7a0JBRGhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2V0dGluZ3NGb3JtU2VydmljZSB9IGZyb20gJy4vc2V0dGluZ3MtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tzbWVTZXR0aW5nc0Zvcm1dJyB9KVxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NGb3JtRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzbWVTZXR0aW5nc0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzbWVVcGRhdGVEYXRhSW5Db21wb25lbnQ6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc21lU2V0dGluZ3NGb3JtVmFsdWVVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZURhdGFJbkNvbXBvbmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIHB1YmxpYyBvbGRGb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3Jtc1NlcnZpY2U6IFNldHRpbmdzRm9ybVNlcnZpY2UpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc21lVXBkYXRlRGF0YUluQ29tcG9uZW50ICYmIHRoaXMuc21lU2V0dGluZ3NGb3JtKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZURhdGFJbkNvbXBvbmVudFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1zU2VydmljZS51cGRhdGVGb3JtVmFsdWUoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc21lU2V0dGluZ3NGb3JtVmFsdWVVcGRhdGUuZW1pdChkYXRhLmZvcm1Hcm91cE5ld0RhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdzbWVTZXR0aW5nc0Zvcm0nKSkge1xyXG4gICAgICAgICAgICAvLyBUT0RPOiBSZWdpc3RlciB0aGUgZm9ybSBpbiB0aGUgc2VydmljZVxyXG4gICAgICAgICAgICB0aGlzLmZvcm1zU2VydmljZS5yZW1vdmVGb3JtKHRoaXMub2xkRm9ybSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLmFkZEZvcm0odGhpcy5zbWVTZXR0aW5nc0Zvcm0sIHRoaXMuc21lVXBkYXRlRGF0YUluQ29tcG9uZW50KTtcclxuICAgICAgICAgICAgdGhpcy5vbGRGb3JtID0gdGhpcy5zbWVTZXR0aW5nc0Zvcm07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy51cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhSW5Db21wb25lbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19