@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
100 lines • 12.4 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { SchemaFieldHostComponent } from '../schema/schema-field-host.component';
import { SchemaFieldContext } from '../schema/schema-models';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../schema/schema-field-host.component";
function SchemaFormContentComponent_div_0_Template(rf, ctx) { if (rf & 1) {
const _r2 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 1)(1, "sme-schema-field-host", 2);
i0.ɵɵlistener("dataChange", function SchemaFormContentComponent_div_0_Template_sme_schema_field_host_dataChange_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.data = $event); })("formActionExecuted", function SchemaFormContentComponent_div_0_Template_sme_schema_field_host_formActionExecuted_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onFormActionExecuted($event.action, $event.data)); });
i0.ɵɵelementEnd()();
} if (rf & 2) {
const ctx_r0 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("propertySchema", ctx_r0.schema)("data", ctx_r0.data)("context", ctx_r0.context);
} }
/**
* Schema Form Component
* It takes the schema and data and other necessary inputs then dynamically renders the form UI.
*/
export class SchemaFormContentComponent {
constructor() {
this.dataChange = new EventEmitter();
this.formActionExecuted = new EventEmitter();
}
/**
* It gets and sets the schema.
*/
get schema() {
return this.internalSchema;
}
set schema(value) {
this.internalSchema = value;
}
/**
* It gets and sets the form data.
*/
get data() {
return this.internalData;
}
set data(value) {
this.internalData = value;
this.dataChange.emit(this.internalData);
if (this.context) {
this.context.formData = value;
}
}
get isFormValid() {
return !!this.fieldHostComponent && this.fieldHostComponent.isValid();
}
get isFormDirty() {
return !!this.fieldHostComponent && this.fieldHostComponent.isDirty();
}
onFormActionExecuted(action, data) {
this.formActionExecuted.emit({ action: action, data: data });
}
ngOnInit() {
this.context = new SchemaFieldContext();
this.context.isEditorMode = this.isEditorMode;
this.context.formData = this.data;
this.context.formController = this.formController;
}
getFormContainerLoaderComponent() {
if (this.fieldHostComponent) {
return this.fieldHostComponent.getFormFieldLoaderComponent();
}
return null;
}
}
/** @nocollapse */ SchemaFormContentComponent.ɵfac = function SchemaFormContentComponent_Factory(t) { return new (t || SchemaFormContentComponent)(); };
/** @nocollapse */ SchemaFormContentComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SchemaFormContentComponent, selectors: [["sme-schema-form-content"]], viewQuery: function SchemaFormContentComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(SchemaFieldHostComponent, 5);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldHostComponent = _t.first);
} }, inputs: { schema: "schema", data: "data", formController: "formController", isEditorMode: "isEditorMode" }, outputs: { dataChange: "dataChange", formActionExecuted: "formActionExecuted" }, decls: 1, vars: 1, consts: [["class", "form-content", 4, "ngIf"], [1, "form-content"], [3, "propertySchema", "data", "context", "dataChange", "formActionExecuted"]], template: function SchemaFormContentComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, SchemaFormContentComponent_div_0_Template, 2, 3, "div", 0);
} if (rf & 2) {
i0.ɵɵproperty("ngIf", ctx.schema);
} }, dependencies: [i1.NgIf, i2.SchemaFieldHostComponent], encapsulation: 2 });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFormContentComponent, [{
type: Component,
args: [{ selector: 'sme-schema-form-content', template: "<div *ngIf=\"schema\" class=\"form-content\">\r\n <sme-schema-field-host [propertySchema]=\"schema\" [(data)]=\"data\" [context]=\"context\" (formActionExecuted)=\"onFormActionExecuted($event.action, $event.data)\"></sme-schema-field-host>\r\n</div>" }]
}], null, { fieldHostComponent: [{
type: ViewChild,
args: [SchemaFieldHostComponent]
}], schema: [{
type: Input
}], data: [{
type: Input
}], dataChange: [{
type: Output
}], formController: [{
type: Input
}], isEditorMode: [{
type: Input
}], formActionExecuted: [{
type: Output
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3NjaGVtYS1mb3JtL3NjaGVtYS1mb3JtLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQzVELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBa0MsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqSCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztJQ0puRiw4QkFBeUMsK0JBQUE7SUFDWSw4T0FBZSx5TUFBMkMsZUFBQSx1REFBZ0QsQ0FBQSxJQUEzRjtJQUE2RixpQkFBd0IsRUFBQTs7O0lBQTlKLGVBQXlCO0lBQXpCLDhDQUF5QixxQkFBQSwyQkFBQTs7QURLcEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQXNDVyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQWUxQyx1QkFBa0IsR0FBZ0QsSUFBSSxZQUFZLEVBQWlDLENBQUM7S0F5QjlIO0lBbkVHOztPQUVHO0lBQ0gsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWU7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNqQztJQUNMLENBQUM7SUFvQkQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFDTSxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsSUFBUztRQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ00sUUFBUTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3RELENBQUM7SUFDTSwrQkFBK0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztTQUNoRTtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3VIQXpFUSwwQkFBMEI7NEdBQTFCLDBCQUEwQjt1QkFJeEIsd0JBQXdCOzs7OztRQ2xCdkMsMkVBRU07O1FBRkEsaUNBQVk7O3VGRGNMLDBCQUEwQjtjQUp0QyxTQUFTOzJCQUNJLHlCQUF5QjtnQkFRNUIsa0JBQWtCO2tCQUR4QixTQUFTO21CQUFDLHdCQUF3QjtZQU94QixNQUFNO2tCQURoQixLQUFLO1lBWUssSUFBSTtrQkFEZCxLQUFLO1lBYUMsVUFBVTtrQkFEaEIsTUFBTTtZQVVBLGNBQWM7a0JBRHBCLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsa0JBQWtCO2tCQUR4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTY2hlbWFGaWVsZEhvc3RDb21wb25lbnQsIFNjaGVtYUZpZWxkTG9hZGVyQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL3NjaGVtYS9zY2hlbWEtZmllbGQtaG9zdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhU2NoZW1hLCBGb3JtRGF0YSwgU2NoZW1hRmllbGRDb250ZXh0IH0gZnJvbSAnLi4vc2NoZW1hL3NjaGVtYS1tb2RlbHMnO1xyXG5cclxuLyoqXHJcbiAqIFNjaGVtYSBGb3JtIENvbXBvbmVudFxyXG4gKiBJdCB0YWtlcyB0aGUgc2NoZW1hIGFuZCBkYXRhIGFuZCBvdGhlciBuZWNlc3NhcnkgaW5wdXRzIHRoZW4gZHluYW1pY2FsbHkgcmVuZGVycyB0aGUgZm9ybSBVSS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtc2NoZW1hLWZvcm0tY29udGVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZW1hLWZvcm0tY29udGVudC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjaGVtYUZvcm1Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHByaXZhdGUgaW50ZXJuYWxTY2hlbWE6IERhdGFTY2hlbWE7XHJcbiAgICBwcml2YXRlIGludGVybmFsRGF0YTogRm9ybURhdGE7XHJcblxyXG4gICAgQFZpZXdDaGlsZChTY2hlbWFGaWVsZEhvc3RDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgZmllbGRIb3N0Q29tcG9uZW50OiBTY2hlbWFGaWVsZEhvc3RDb21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBnZXRzIGFuZCBzZXRzIHRoZSBzY2hlbWEuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHNjaGVtYSgpOiBEYXRhU2NoZW1hIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFNjaGVtYTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgc2NoZW1hKHZhbHVlOiBEYXRhU2NoZW1hKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFNjaGVtYSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZ2V0cyBhbmQgc2V0cyB0aGUgZm9ybSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBkYXRhKCk6IEZvcm1EYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbERhdGE7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGRhdGEodmFsdWU6IEZvcm1EYXRhKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbERhdGEgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLmludGVybmFsRGF0YSk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZm9ybURhdGEgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybURhdGE+KCk7XHJcblxyXG4gICAgcHVibGljIGNvbnRleHQ6IFNjaGVtYUZpZWxkQ29udGV4dDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmb3JtIGNvbnRyb2xsZXIgIHdoaWNoIGlzIHVzZWQgdG8gcHJvdmlkZSBzb21lIGJlaGF2aW9ycyBmcm9tIHRoZSBob3N0IG9mIHRoZSBmb3JtLlxyXG4gICAgICogQ3VzdG9tIHZhbGlkYXRpb24gbWV0aG9kcyBjYW4gYmUgcHJvdmlkZWQgYnkgaXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2xsZXI6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlzRWRpdG9yTW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBmb3JtQWN0aW9uRXhlY3V0ZWQ6IEV2ZW50RW1pdHRlcjx7IGFjdGlvbjogc3RyaW5nLCBkYXRhOiBhbnkgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBzdHJpbmcsIGRhdGE6IGFueSB9PigpO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZEhvc3RDb21wb25lbnQgJiYgdGhpcy5maWVsZEhvc3RDb21wb25lbnQuaXNWYWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNGb3JtRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZEhvc3RDb21wb25lbnQgJiYgdGhpcy5maWVsZEhvc3RDb21wb25lbnQuaXNEaXJ0eSgpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIG9uRm9ybUFjdGlvbkV4ZWN1dGVkKGFjdGlvbjogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1BY3Rpb25FeGVjdXRlZC5lbWl0KHsgYWN0aW9uOiBhY3Rpb24sIGRhdGE6IGRhdGEgfSk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbmV3IFNjaGVtYUZpZWxkQ29udGV4dCgpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5pc0VkaXRvck1vZGUgPSB0aGlzLmlzRWRpdG9yTW9kZTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZm9ybURhdGEgPSB0aGlzLmRhdGE7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZvcm1Db250cm9sbGVyID0gdGhpcy5mb3JtQ29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXRGb3JtQ29udGFpbmVyTG9hZGVyQ29tcG9uZW50KCk6IFNjaGVtYUZpZWxkTG9hZGVyQ29tcG9uZW50QmFzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGRIb3N0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkSG9zdENvbXBvbmVudC5nZXRGb3JtRmllbGRMb2FkZXJDb21wb25lbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzY2hlbWFcIiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxyXG4gICAgPHNtZS1zY2hlbWEtZmllbGQtaG9zdCBbcHJvcGVydHlTY2hlbWFdPVwic2NoZW1hXCIgWyhkYXRhKV09XCJkYXRhXCIgW2NvbnRleHRdPVwiY29udGV4dFwiIChmb3JtQWN0aW9uRXhlY3V0ZWQpPVwib25Gb3JtQWN0aW9uRXhlY3V0ZWQoJGV2ZW50LmFjdGlvbiwgJGV2ZW50LmRhdGEpXCI+PC9zbWUtc2NoZW1hLWZpZWxkLWhvc3Q+XHJcbjwvZGl2PiJdfQ==