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

57 lines (56 loc) 4.02 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { ComponentFactoryResolver, Injectable } from '@angular/core'; import { WidgetRegistry, WidgetType } from './widgetregistry'; var WidgetFactory = /** @class */ (function () { function WidgetFactory(widgetRegistry, factoryResolver) { this.widgetRegistry = widgetRegistry; this.factoryResolver = factoryResolver; } /** * @template T * @param {?} container * @param {?} id * @param {?=} opts * @return {?} */ WidgetFactory.prototype.createWidget = /** * @template T * @param {?} container * @param {?} id * @param {?=} opts * @return {?} */ function (container, id, opts) { if (opts === void 0) { opts = { type: WidgetType.Field }; } /** @type {?} */ var componentClass = this.widgetRegistry.getWidgetType(id, opts.type); /** @type {?} */ var componentFactory = this.factoryResolver .resolveComponentFactory(componentClass); return container.createComponent(componentFactory, undefined, // index // index opts.injector); }; WidgetFactory.decorators = [ { type: Injectable } ]; /** @nocollapse */ WidgetFactory.ctorParameters = function () { return [ { type: WidgetRegistry }, { type: ComponentFactoryResolver } ]; }; return WidgetFactory; }()); export { WidgetFactory }; if (false) { /** @type {?} */ WidgetFactory.prototype.widgetRegistry; /** @type {?} */ WidgetFactory.prototype.factoryResolver; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0ZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zY2hlbWEtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvd2lkZ2V0ZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUdMLHdCQUF3QixFQUN4QixVQUFVLEVBRVgsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7SUFNNUQsdUJBQ1UsZ0JBQ0E7UUFEQSxtQkFBYyxHQUFkLGNBQWM7UUFDZCxvQkFBZSxHQUFmLGVBQWU7S0FDcEI7Ozs7Ozs7O0lBRUwsb0NBQVk7Ozs7Ozs7SUFBWixVQUNFLFNBQTJCLEVBQzNCLEVBQVUsRUFDVixJQUtDO1FBTEQscUJBQUEsRUFBQTtZQUlFLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSztTQUN2Qjs7UUFHRCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOztRQUN4RSxJQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlO2FBQzFDLHVCQUF1QixDQUFJLGNBQWMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUM5QixnQkFBZ0IsRUFDaEIsU0FBUyxFQUFFLFFBQVE7O1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztLQUNIOztnQkE1QkYsVUFBVTs7OztnQkFIRixjQUFjO2dCQUxyQix3QkFBd0I7O3dCQUgxQjs7U0FZYSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXaWRnZXRSZWdpc3RyeSwgV2lkZ2V0VHlwZSB9IGZyb20gJy4vd2lkZ2V0cmVnaXN0cnknO1xuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL2Jhc2Uvd2lkZ2V0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpZGdldEZhY3Rvcnkge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgd2lkZ2V0UmVnaXN0cnk6IFdpZGdldFJlZ2lzdHJ5LFxuICAgIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7IH1cblxuICBjcmVhdGVXaWRnZXQ8VCBleHRlbmRzIFdpZGdldD4oXG4gICAgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0czoge1xuICAgICAgdHlwZTogV2lkZ2V0VHlwZSxcbiAgICAgIGluamVjdG9yPzogSW5qZWN0b3JcbiAgICB9ID0ge1xuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5GaWVsZFxuICAgIH1cbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcblxuICAgIGNvbnN0IGNvbXBvbmVudENsYXNzID0gdGhpcy53aWRnZXRSZWdpc3RyeS5nZXRXaWRnZXRUeXBlKGlkLCBvcHRzLnR5cGUpO1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PFQ+KGNvbXBvbmVudENsYXNzKTtcblxuICAgIHJldHVybiBjb250YWluZXIuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgY29tcG9uZW50RmFjdG9yeSxcbiAgICAgIHVuZGVmaW5lZCwgLy8gaW5kZXhcbiAgICAgIG9wdHMuaW5qZWN0b3JcbiAgICApO1xuICB9XG59XG4iXX0=