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

75 lines (74 loc) 4.86 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** @enum {string} */ const WidgetType = { Field: 'field', Fieldset: 'fieldset', Button: 'button', }; export { WidgetType }; export class WidgetRegistry { constructor() { this.widgets = {}; this.defaultWidget = {}; } /** * @param {?} widget * @param {?=} type * @return {?} */ setDefaultWidget(widget, type = WidgetType.Field) { this.defaultWidget[type] = widget; } /** * @param {?=} type * @return {?} */ getDefaultWidget(type = WidgetType.Field) { return this.defaultWidget[type]; } /** * @param {?} id * @param {?=} type * @return {?} */ hasWidget(id, type = WidgetType.Field) { if (!this.widgets.hasOwnProperty(type)) { return false; } return this.widgets[type].hasOwnProperty(id); } /** * @param {?} id * @param {?} widget * @param {?=} type * @return {?} */ register(id, widget, type = WidgetType.Field) { if (!this.widgets.hasOwnProperty(type)) { this.widgets[type] = {}; } this.widgets[type][id] = widget; } /** * @template T * @param {?} id * @param {?=} type * @return {?} */ getWidgetType(id, type = WidgetType.Field) { if (this.hasWidget(id, type)) { return this.widgets[type][id]; } return this.getDefaultWidget(type); } } if (false) { /** @type {?} */ WidgetRegistry.prototype.widgets; /** @type {?} */ WidgetRegistry.prototype.defaultWidget; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cmVnaXN0cnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2NoZW1hLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3dpZGdldHJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztJQUdFLE9BQVEsT0FBTztJQUNmLFVBQVcsVUFBVTtJQUNyQixRQUFTLFFBQVE7OztBQUduQixNQUFNOzt1QkFFeUQsRUFBRTs2QkFFZCxFQUFFOzs7Ozs7O0lBRW5ELGdCQUFnQixDQUFDLE1BQVcsRUFBRSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUs7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7S0FDbkM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2pDOzs7Ozs7SUFFRCxTQUFTLENBQUMsRUFBVSxFQUFFLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSztRQUMzQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUM7Ozs7Ozs7SUFFRCxRQUFRLENBQUMsRUFBVSxFQUFFLE1BQVcsRUFBRSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUs7UUFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztLQUNqQzs7Ozs7OztJQUVELGFBQWEsQ0FBVSxFQUFVLEVBQUUsSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLO1FBQ3hELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQjtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDcEM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gVE9ETyBhZGQgYnV0dG9uIHR5cGVcbmV4cG9ydCBlbnVtIFdpZGdldFR5cGUge1xuICBGaWVsZCA9ICdmaWVsZCcsXG4gIEZpZWxkc2V0ID0gJ2ZpZWxkc2V0JyxcbiAgQnV0dG9uID0gJ2J1dHRvbidcbn1cblxuZXhwb3J0IGNsYXNzIFdpZGdldFJlZ2lzdHJ5IHtcblxuICBwcml2YXRlIHdpZGdldHM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2lkOiBzdHJpbmddOiBhbnkgfSB9ID0ge307XG5cbiAgcHJpdmF0ZSBkZWZhdWx0V2lkZ2V0OiB7IFt0eXBlOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIHNldERlZmF1bHRXaWRnZXQod2lkZ2V0OiBhbnksIHR5cGUgPSBXaWRnZXRUeXBlLkZpZWxkKSB7XG4gICAgdGhpcy5kZWZhdWx0V2lkZ2V0W3R5cGVdID0gd2lkZ2V0O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFdpZGdldCh0eXBlID0gV2lkZ2V0VHlwZS5GaWVsZCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRXaWRnZXRbdHlwZV07XG4gIH1cblxuICBoYXNXaWRnZXQoaWQ6IHN0cmluZywgdHlwZSA9IFdpZGdldFR5cGUuRmllbGQpIHtcbiAgICBpZiAoIXRoaXMud2lkZ2V0cy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy53aWRnZXRzW3R5cGVdLmhhc093blByb3BlcnR5KGlkKTtcbiAgfVxuXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIHdpZGdldDogYW55LCB0eXBlID0gV2lkZ2V0VHlwZS5GaWVsZCkge1xuICAgIGlmICghdGhpcy53aWRnZXRzLmhhc093blByb3BlcnR5KHR5cGUpKSB7XG4gICAgICB0aGlzLndpZGdldHNbdHlwZV0gPSB7fTtcbiAgICB9XG4gICAgdGhpcy53aWRnZXRzW3R5cGVdW2lkXSA9IHdpZGdldDtcbiAgfVxuXG4gIGdldFdpZGdldFR5cGU8VCA9IGFueT4oaWQ6IHN0cmluZywgdHlwZSA9IFdpZGdldFR5cGUuRmllbGQpOiBUIHtcbiAgICBpZiAodGhpcy5oYXNXaWRnZXQoaWQsIHR5cGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy53aWRnZXRzW3R5cGVdW2lkXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFdpZGdldCh0eXBlKTtcbiAgfVxufVxuIl19