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