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