@formql/core
Version:
FormQL - A framework for building dynamic forms
44 lines • 5.44 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { ComponentFactoryResolver, Injectable } from '@angular/core';
var ComponentResolverService = /** @class */ (function () {
function ComponentResolverService(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
this.componentRegister = {};
}
ComponentResolverService.prototype.resolveComponent = function (componentName) {
if (!this.componentRegister) {
return null;
}
var component = this.componentRegister[componentName];
if (!component) {
console.log("Component " + componentName + " not found.");
return null;
}
var resolvedComponent = this.componentFactoryResolver.resolveComponentFactory(component);
return resolvedComponent;
};
ComponentResolverService.prototype.addComponents = function () {
var _this = this;
var components = [];
for (var _i = 0; _i < arguments.length; _i++) {
components[_i] = arguments[_i];
}
if (Array.isArray(components)) {
components.forEach(function (c) { return _this.componentRegister[c.componentName] = c; });
}
};
ComponentResolverService.prototype.addComponent = function (component) {
this.componentRegister[component.componentName] = component;
};
ComponentResolverService.prototype.getComponentArray = function () {
var _this = this;
return Array.from(Object.keys(this.componentRegister), function (x) { return _this.componentRegister[x]; });
};
ComponentResolverService = __decorate([
Injectable(),
__metadata("design:paramtypes", [ComponentFactoryResolver])
], ComponentResolverService);
return ComponentResolverService;
}());
export { ComponentResolverService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZm9ybXFsL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9jb21wb25lbnQtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkY7SUFJRSxrQ0FBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFGL0Qsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztJQUduRCxDQUFDO0lBRU0sbURBQWdCLEdBQXZCLFVBQXdCLGFBQXFCO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFhLGFBQWEsZ0JBQWEsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxnREFBYSxHQUFwQjtRQUFBLGlCQUlDO1FBSm9CLG9CQUFvQjthQUFwQixVQUFvQixFQUFwQixxQkFBb0IsRUFBcEIsSUFBb0I7WUFBcEIsK0JBQW9COztRQUN2QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDN0IsVUFBVSxDQUFDLE9BQU8sQ0FBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUEzQyxDQUEyQyxDQUFDLENBQUM7U0FDdkU7SUFDSCxDQUFDO0lBRU0sK0NBQVksR0FBbkIsVUFBb0IsU0FBYztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sb0RBQWlCLEdBQXhCO1FBQUEsaUJBRUM7UUFEQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBekIsQ0FBeUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFoQ1Usd0JBQXdCO1FBRHBDLFVBQVUsRUFBRTt5Q0FLbUMsd0JBQXdCO09BSjNELHdCQUF3QixDQWlDcEM7SUFBRCwrQkFBQztDQUFBLEFBakNELElBaUNDO1NBakNZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVzb2x2ZXJTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGNvbXBvbmVudFJlZ2lzdGVyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNvbHZlQ29tcG9uZW50KGNvbXBvbmVudE5hbWU6IHN0cmluZyk6IENvbXBvbmVudEZhY3Rvcnk8dW5rbm93bj4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZ2lzdGVyKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRSZWdpc3Rlcltjb21wb25lbnROYW1lXTtcclxuICAgIGlmICghY29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGBDb21wb25lbnQgJHtjb21wb25lbnROYW1lfSBub3QgZm91bmQuYCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzb2x2ZWRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xyXG4gICAgcmV0dXJuIHJlc29sdmVkQ29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50czogYW55W10pIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbXBvbmVudHMpKSB7XHJcbiAgICAgIGNvbXBvbmVudHMuZm9yRWFjaCggYyA9PiB0aGlzLmNvbXBvbmVudFJlZ2lzdGVyW2MuY29tcG9uZW50TmFtZV0gPSBjKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRDb21wb25lbnQoY29tcG9uZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29tcG9uZW50UmVnaXN0ZXJbY29tcG9uZW50LmNvbXBvbmVudE5hbWVdID0gY29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvbXBvbmVudEFycmF5KCkge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oT2JqZWN0LmtleXModGhpcy5jb21wb25lbnRSZWdpc3RlciksIHggPT4gdGhpcy5jb21wb25lbnRSZWdpc3Rlclt4XSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19