UNPKG

ngx-schema-forms

Version:

New features: - Ajv schema validator. - Angular forms compatible: Property tree is created using FormGroup, FormArray and FormControl classes. - Array now properly loads initial data from model. - WidgetTyep: WidgetRegistry now supports WidgetType, now wo

108 lines (107 loc) 9.63 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Directive, Input, ViewContainerRef, TemplateRef, Injector, } from '@angular/core'; import { WidgetFactory } from '../widgetfactory'; import { WidgetType } from '../widgetregistry'; import { ObjectProperty } from '../model/object-property'; import { FormElementTemplateRef } from './form-element.component'; var FormFieldsetWidgetChooserDirective = /** @class */ (function () { function FormFieldsetWidgetChooserDirective(viewContainerRef, widgetFactory) { this.viewContainerRef = viewContainerRef; this.widgetFactory = widgetFactory; } /** * @return {?} */ FormFieldsetWidgetChooserDirective.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var injector = Injector.create({ providers: [{ provide: FormElementTemplateRef, useValue: this.templateRef, }], }); /** @type {?} */ var widget = this.getFieldsetWidget(); this.componentRef = this.widgetFactory.createWidget(this.viewContainerRef, widget.id, { type: WidgetType.Fieldset, injector: injector }); /** @type {?} */ var component = this.componentRef.instance; component.formProperty = this.formProperty; component.title = this.fieldset.title; component.description = this.fieldset.description; component.formProperties = this.fieldset.fields.map(function (id) { return _this.formProperty.get(id); }); component.widget = widget; this.formProperty.fieldsetWidgetInstance = component; }; /** * @return {?} */ FormFieldsetWidgetChooserDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.componentRef.destroy(); this.viewContainerRef.clear(); }; /** * @return {?} */ FormFieldsetWidgetChooserDirective.prototype.getFieldsetWidget = /** * @return {?} */ function () { if (!this.fieldset.widget) { return { id: 'fieldset' }; } if (typeof this.fieldset.widget === 'string') { return { id: this.fieldset.widget }; } if (!this.fieldset.widget.id) { this.fieldset.widget.id = 'fieldset'; } return this.fieldset.widget; }; FormFieldsetWidgetChooserDirective.decorators = [ { type: Directive, args: [{ selector: '[sfFormFieldsetWidgetChooser]', },] } ]; /** @nocollapse */ FormFieldsetWidgetChooserDirective.ctorParameters = function () { return [ { type: ViewContainerRef }, { type: WidgetFactory } ]; }; FormFieldsetWidgetChooserDirective.propDecorators = { formProperty: [{ type: Input }], fieldset: [{ type: Input }], templateRef: [{ type: Input }] }; return FormFieldsetWidgetChooserDirective; }()); export { FormFieldsetWidgetChooserDirective }; if (false) { /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.formProperty; /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.fieldset; /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.templateRef; /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.componentRef; /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.viewContainerRef; /** @type {?} */ FormFieldsetWidgetChooserDirective.prototype.widgetFactory; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZHNldC13aWRnZXQtY2hvb3Nlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2NoZW1hLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL2Zvcm0vZm9ybS1maWVsZHNldC13aWRnZXQtY2hvb3Nlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLGdCQUFnQixFQUdoQixXQUFXLEVBQ1gsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztJQWtCaEUsNENBQ1Usa0JBQ0E7UUFEQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYTtLQUNsQjs7OztJQUVMLHFEQUFROzs7SUFBUjtRQUFBLGlCQStCQzs7UUE3QkMsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixTQUFTLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQzNCLENBQUM7U0FDSCxDQUFDLENBQUM7O1FBRUgsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDakQsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixNQUFNLENBQUMsRUFBRSxFQUNUO1lBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQ3pCLFFBQVEsVUFBQTtTQUNULENBQ0YsQ0FBQzs7UUFFRixJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0MsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN0QyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBRTtZQUNyRCxNQUFNLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7S0FFdEQ7Ozs7SUFFRCx3REFBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUMvQjs7OztJQUVPLDhEQUFpQjs7OztRQUN2QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDM0I7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDckM7UUFFRCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQztTQUN0QztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzs7O2dCQXhFL0IsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDOzs7O2dCQWxCQyxnQkFBZ0I7Z0JBT1QsYUFBYTs7OytCQWNuQixLQUFLOzJCQUdMLEtBQUs7OEJBR0wsS0FBSzs7NkNBL0JSOztTQXVCYSxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIENvbXBvbmVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5IH0gZnJvbSAnLi4vd2lkZ2V0ZmFjdG9yeSc7XG5pbXBvcnQgeyBXaWRnZXRUeXBlIH0gZnJvbSAnLi4vd2lkZ2V0cmVnaXN0cnknO1xuaW1wb3J0IHsgRmllbGRzZXRXaWRnZXQgfSBmcm9tICcuLi93aWRnZXRzL2Jhc2UvZmllbGRzZXQud2lkZ2V0JztcbmltcG9ydCB7IEZvcm1Qcm9wZXJ0eSB9IGZyb20gJy4uL21vZGVsL2Zvcm0tcHJvcGVydHknO1xuaW1wb3J0IHsgR2VuZXJpY1Byb3BlcnR5IH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJpYy1wcm9wZXJ0eSc7XG5pbXBvcnQgeyBPYmplY3RQcm9wZXJ0eSB9IGZyb20gJy4uL21vZGVsL29iamVjdC1wcm9wZXJ0eSc7XG5cbmltcG9ydCB7IEZvcm1FbGVtZW50VGVtcGxhdGVSZWYgfSBmcm9tICcuL2Zvcm0tZWxlbWVudC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2ZGb3JtRmllbGRzZXRXaWRnZXRDaG9vc2VyXScsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZHNldFdpZGdldENob29zZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgZm9ybVByb3BlcnR5OiBPYmplY3RQcm9wZXJ0eTtcblxuICBASW5wdXQoKVxuICBmaWVsZHNldDogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RmllbGRzZXRXaWRnZXQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHdpZGdldEZhY3Rvcnk6IFdpZGdldEZhY3RvcnlcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogRm9ybUVsZW1lbnRUZW1wbGF0ZVJlZixcbiAgICAgICAgdXNlVmFsdWU6IHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMuZ2V0RmllbGRzZXRXaWRnZXQoKTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMud2lkZ2V0RmFjdG9yeS5jcmVhdGVXaWRnZXQ8RmllbGRzZXRXaWRnZXQ+KFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgd2lkZ2V0LmlkLFxuICAgICAge1xuICAgICAgICB0eXBlOiBXaWRnZXRUeXBlLkZpZWxkc2V0LFxuICAgICAgICBpbmplY3RvclxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBjb21wb25lbnQuZm9ybVByb3BlcnR5ID0gdGhpcy5mb3JtUHJvcGVydHk7XG4gICAgY29tcG9uZW50LnRpdGxlID0gdGhpcy5maWVsZHNldC50aXRsZTtcbiAgICBjb21wb25lbnQuZGVzY3JpcHRpb24gPSB0aGlzLmZpZWxkc2V0LmRlc2NyaXB0aW9uO1xuICAgIGNvbXBvbmVudC5mb3JtUHJvcGVydGllcyA9IHRoaXMuZmllbGRzZXQuZmllbGRzLm1hcCgoaWQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1Qcm9wZXJ0eS5nZXQoaWQpO1xuICAgIH0pO1xuXG4gICAgY29tcG9uZW50LndpZGdldCA9IHdpZGdldDtcblxuICAgIHRoaXMuZm9ybVByb3BlcnR5LmZpZWxkc2V0V2lkZ2V0SW5zdGFuY2UgPSBjb21wb25lbnQ7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzZXRXaWRnZXQoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuZmllbGRzZXQud2lkZ2V0KSB7XG4gICAgICByZXR1cm4geyBpZDogJ2ZpZWxkc2V0JyB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5maWVsZHNldC53aWRnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4geyBpZDogdGhpcy5maWVsZHNldC53aWRnZXQgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZmllbGRzZXQud2lkZ2V0LmlkKSB7XG4gICAgICB0aGlzLmZpZWxkc2V0LndpZGdldC5pZCA9ICdmaWVsZHNldCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmllbGRzZXQud2lkZ2V0O1xuICB9XG5cblxufVxuIl19