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) • 5.98 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/** @enum {string} */
var WidgetType = {
Field: 'field',
Fieldset: 'fieldset',
Button: 'button',
};
export { WidgetType };
var WidgetRegistry = /** @class */ (function () {
function WidgetRegistry() {
this.widgets = {};
this.defaultWidget = {};
}
/**
* @param {?} widget
* @param {?=} type
* @return {?}
*/
WidgetRegistry.prototype.setDefaultWidget = /**
* @param {?} widget
* @param {?=} type
* @return {?}
*/
function (widget, type) {
if (type === void 0) { type = WidgetType.Field; }
this.defaultWidget[type] = widget;
};
/**
* @param {?=} type
* @return {?}
*/
WidgetRegistry.prototype.getDefaultWidget = /**
* @param {?=} type
* @return {?}
*/
function (type) {
if (type === void 0) { type = WidgetType.Field; }
return this.defaultWidget[type];
};
/**
* @param {?} id
* @param {?=} type
* @return {?}
*/
WidgetRegistry.prototype.hasWidget = /**
* @param {?} id
* @param {?=} type
* @return {?}
*/
function (id, type) {
if (type === void 0) { type = WidgetType.Field; }
if (!this.widgets.hasOwnProperty(type)) {
return false;
}
return this.widgets[type].hasOwnProperty(id);
};
/**
* @param {?} id
* @param {?} widget
* @param {?=} type
* @return {?}
*/
WidgetRegistry.prototype.register = /**
* @param {?} id
* @param {?} widget
* @param {?=} type
* @return {?}
*/
function (id, widget, type) {
if (type === void 0) { type = WidgetType.Field; }
if (!this.widgets.hasOwnProperty(type)) {
this.widgets[type] = {};
}
this.widgets[type][id] = widget;
};
/**
* @template T
* @param {?} id
* @param {?=} type
* @return {?}
*/
WidgetRegistry.prototype.getWidgetType = /**
* @template T
* @param {?} id
* @param {?=} type
* @return {?}
*/
function (id, type) {
if (type === void 0) { type = WidgetType.Field; }
if (this.hasWidget(id, type)) {
return this.widgets[type][id];
}
return this.getDefaultWidget(type);
};
return WidgetRegistry;
}());
export { WidgetRegistry };
if (false) {
/** @type {?} */
WidgetRegistry.prototype.widgets;
/** @type {?} */
WidgetRegistry.prototype.defaultWidget;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cmVnaXN0cnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtc2NoZW1hLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL3dpZGdldHJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztJQUdFLE9BQVEsT0FBTztJQUNmLFVBQVcsVUFBVTtJQUNyQixRQUFTLFFBQVE7OztBQUduQixJQUFBOzt1QkFFK0QsRUFBRTs2QkFFZCxFQUFFOzs7Ozs7O0lBRW5ELHlDQUFnQjs7Ozs7SUFBaEIsVUFBaUIsTUFBVyxFQUFFLElBQXVCO1FBQXZCLHFCQUFBLEVBQUEsT0FBTyxVQUFVLENBQUMsS0FBSztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztLQUNuQzs7Ozs7SUFFRCx5Q0FBZ0I7Ozs7SUFBaEIsVUFBaUIsSUFBdUI7UUFBdkIscUJBQUEsRUFBQSxPQUFPLFVBQVUsQ0FBQyxLQUFLO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2pDOzs7Ozs7SUFFRCxrQ0FBUzs7Ozs7SUFBVCxVQUFVLEVBQVUsRUFBRSxJQUF1QjtRQUF2QixxQkFBQSxFQUFBLE9BQU8sVUFBVSxDQUFDLEtBQUs7UUFDM0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNkO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzlDOzs7Ozs7O0lBRUQsaUNBQVE7Ozs7OztJQUFSLFVBQVMsRUFBVSxFQUFFLE1BQVcsRUFBRSxJQUF1QjtRQUF2QixxQkFBQSxFQUFBLE9BQU8sVUFBVSxDQUFDLEtBQUs7UUFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztLQUNqQzs7Ozs7OztJQUVELHNDQUFhOzs7Ozs7SUFBYixVQUF1QixFQUFVLEVBQUUsSUFBdUI7UUFBdkIscUJBQUEsRUFBQSxPQUFPLFVBQVUsQ0FBQyxLQUFLO1FBQ3hELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQjtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDcEM7eUJBekNIO0lBMENDLENBQUE7QUFsQ0QsMEJBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBUT0RPIGFkZCBidXR0b24gdHlwZVxuZXhwb3J0IGVudW0gV2lkZ2V0VHlwZSB7XG4gIEZpZWxkID0gJ2ZpZWxkJyxcbiAgRmllbGRzZXQgPSAnZmllbGRzZXQnLFxuICBCdXR0b24gPSAnYnV0dG9uJ1xufVxuXG5leHBvcnQgY2xhc3MgV2lkZ2V0UmVnaXN0cnkge1xuXG4gIHByaXZhdGUgd2lkZ2V0czogeyBbdHlwZTogc3RyaW5nXTogeyBbaWQ6IHN0cmluZ106IGFueSB9IH0gPSB7fTtcblxuICBwcml2YXRlIGRlZmF1bHRXaWRnZXQ6IHsgW3R5cGU6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgc2V0RGVmYXVsdFdpZGdldCh3aWRnZXQ6IGFueSwgdHlwZSA9IFdpZGdldFR5cGUuRmllbGQpIHtcbiAgICB0aGlzLmRlZmF1bHRXaWRnZXRbdHlwZV0gPSB3aWRnZXQ7XG4gIH1cblxuICBnZXREZWZhdWx0V2lkZ2V0KHR5cGUgPSBXaWRnZXRUeXBlLkZpZWxkKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFdpZGdldFt0eXBlXTtcbiAgfVxuXG4gIGhhc1dpZGdldChpZDogc3RyaW5nLCB0eXBlID0gV2lkZ2V0VHlwZS5GaWVsZCkge1xuICAgIGlmICghdGhpcy53aWRnZXRzLmhhc093blByb3BlcnR5KHR5cGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLndpZGdldHNbdHlwZV0uaGFzT3duUHJvcGVydHkoaWQpO1xuICB9XG5cbiAgcmVnaXN0ZXIoaWQ6IHN0cmluZywgd2lkZ2V0OiBhbnksIHR5cGUgPSBXaWRnZXRUeXBlLkZpZWxkKSB7XG4gICAgaWYgKCF0aGlzLndpZGdldHMuaGFzT3duUHJvcGVydHkodHlwZSkpIHtcbiAgICAgIHRoaXMud2lkZ2V0c1t0eXBlXSA9IHt9O1xuICAgIH1cbiAgICB0aGlzLndpZGdldHNbdHlwZV1baWRdID0gd2lkZ2V0O1xuICB9XG5cbiAgZ2V0V2lkZ2V0VHlwZTxUID0gYW55PihpZDogc3RyaW5nLCB0eXBlID0gV2lkZ2V0VHlwZS5GaWVsZCk6IFQge1xuICAgIGlmICh0aGlzLmhhc1dpZGdldChpZCwgdHlwZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLndpZGdldHNbdHlwZV1baWRdO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0V2lkZ2V0KHR5cGUpO1xuICB9XG59XG4iXX0=