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

61 lines (60 loc) 4.04 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** @enum {string} */ const TemplateElementType = { Field: 'field', Button: 'button', }; export { TemplateElementType }; export class TemplateSchemaElementRegistry { constructor() { this.elements = {}; } /** * @param {?} id * @param {?=} type * @return {?} */ hasElement(id, type = TemplateElementType.Field) { if (!this.elements.hasOwnProperty(type)) { return false; } return this.elements[type].hasOwnProperty(id); } /** * @param {?} id * @param {?} element * @param {?=} type * @return {?} */ register(id, element, type = TemplateElementType.Field) { if (!this.elements.hasOwnProperty(type)) { this.elements[type] = {}; } this.elements[type][id] = element; } /** * @template T * @param {?} id * @param {?=} type * @return {?} */ getElement(id, type = TemplateElementType.Field) { if (this.hasElement(id, type)) { return this.elements[type][id]; } } /** * @return {?} */ clear() { this.elements = {}; } } if (false) { /** @type {?} */ TemplateSchemaElementRegistry.prototype.elements; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtc2NoZW1hLWVsZW1lbnQtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2NoZW1hLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3RlbXBsYXRlLXNjaGVtYS90ZW1wbGF0ZS1zY2hlbWEtZWxlbWVudC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7SUFHRSxPQUFRLE9BQU87SUFDZixRQUFTLFFBQVE7OztBQUduQixNQUFNOzt3QkFFMEQsRUFBRTs7Ozs7OztJQUVoRSxVQUFVLENBQUMsRUFBVSxFQUFFLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLO1FBQ3JELEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUM7U0FDZDtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUMvQzs7Ozs7OztJQUVELFFBQVEsQ0FBQyxFQUFVLEVBQUUsT0FBWSxFQUFFLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLO1FBQ2pFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDbkM7Ozs7Ozs7SUFFRCxVQUFVLENBQXFCLEVBQVUsRUFBRSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsS0FBSztRQUN6RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEM7S0FDRjs7OztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUNwQjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBlbnVtIFRlbXBsYXRlRWxlbWVudFR5cGUge1xuICBGaWVsZCA9ICdmaWVsZCcsXG4gIEJ1dHRvbiA9ICdidXR0b24nXG59XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVNjaGVtYUVsZW1lbnRSZWdpc3RyeSB7XG5cbiAgcHJpdmF0ZSBlbGVtZW50czogeyBbdHlwZTogc3RyaW5nXTogeyBbaWQ6IHN0cmluZ106IGFueSB9IH0gPSB7fTtcblxuICBoYXNFbGVtZW50KGlkOiBzdHJpbmcsIHR5cGUgPSBUZW1wbGF0ZUVsZW1lbnRUeXBlLkZpZWxkKSB7XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRzLmhhc093blByb3BlcnR5KHR5cGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzW3R5cGVdLmhhc093blByb3BlcnR5KGlkKTtcbiAgfVxuXG4gIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSwgdHlwZSA9IFRlbXBsYXRlRWxlbWVudFR5cGUuRmllbGQpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudHMuaGFzT3duUHJvcGVydHkodHlwZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudHNbdHlwZV0gPSB7fTtcbiAgICB9XG4gICAgdGhpcy5lbGVtZW50c1t0eXBlXVtpZF0gPSBlbGVtZW50O1xuICB9XG5cbiAgZ2V0RWxlbWVudDxUID0gRmllbGRDb21wb25lbnQ+KGlkOiBzdHJpbmcsIHR5cGUgPSBUZW1wbGF0ZUVsZW1lbnRUeXBlLkZpZWxkKTogVCB7XG4gICAgaWYgKHRoaXMuaGFzRWxlbWVudChpZCwgdHlwZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzW3R5cGVdW2lkXTtcbiAgICB9XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRzID0ge307XG4gIH1cbn1cbiJdfQ==