@formql/core
Version:
FormQL - A framework for building dynamic forms
37 lines • 4.8 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { ComponentFactoryResolver, Injectable } from '@angular/core';
let ComponentResolverService = class ComponentResolverService {
constructor(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
this.componentRegister = {};
}
resolveComponent(componentName) {
if (!this.componentRegister) {
return null;
}
const component = this.componentRegister[componentName];
if (!component) {
console.log(`Component ${componentName} not found.`);
return null;
}
const resolvedComponent = this.componentFactoryResolver.resolveComponentFactory(component);
return resolvedComponent;
}
addComponents(...components) {
if (Array.isArray(components)) {
components.forEach(c => this.componentRegister[c.componentName] = c);
}
}
addComponent(component) {
this.componentRegister[component.componentName] = component;
}
getComponentArray() {
return Array.from(Object.keys(this.componentRegister), x => this.componentRegister[x]);
}
};
ComponentResolverService = __decorate([
Injectable(),
__metadata("design:paramtypes", [ComponentFactoryResolver])
], ComponentResolverService);
export { ComponentResolverService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZm9ybXFsL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9jb21wb25lbnQtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkYsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFJbkMsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFGL0Qsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztJQUduRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBcUI7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsYUFBYSxhQUFhLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0YsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRU0sYUFBYSxDQUFDLEdBQUcsVUFBaUI7UUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFjO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlELENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0NBQ0YsQ0FBQTtBQWpDWSx3QkFBd0I7SUFEcEMsVUFBVSxFQUFFO3FDQUttQyx3QkFBd0I7R0FKM0Qsd0JBQXdCLENBaUNwQztTQWpDWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudFJlc29sdmVyU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBjb21wb25lbnRSZWdpc3RlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzb2x2ZUNvbXBvbmVudChjb21wb25lbnROYW1lOiBzdHJpbmcpOiBDb21wb25lbnRGYWN0b3J5PHVua25vd24+IHtcclxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWdpc3Rlcikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50UmVnaXN0ZXJbY29tcG9uZW50TmFtZV07XHJcbiAgICBpZiAoIWNvbXBvbmVudCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgQ29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0gbm90IGZvdW5kLmApO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc29sdmVkQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcclxuICAgIHJldHVybiByZXNvbHZlZENvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRDb21wb25lbnRzKC4uLmNvbXBvbmVudHM6IGFueVtdKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnRzKSkge1xyXG4gICAgICBjb21wb25lbnRzLmZvckVhY2goIGMgPT4gdGhpcy5jb21wb25lbnRSZWdpc3RlcltjLmNvbXBvbmVudE5hbWVdID0gYyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkQ29tcG9uZW50KGNvbXBvbmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZ2lzdGVyW2NvbXBvbmVudC5jb21wb25lbnROYW1lXSA9IGNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb21wb25lbnRBcnJheSgpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKE9iamVjdC5rZXlzKHRoaXMuY29tcG9uZW50UmVnaXN0ZXIpLCB4ID0+IHRoaXMuY29tcG9uZW50UmVnaXN0ZXJbeF0pO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==