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
JavaScript
/**
* @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