@koalarx/ui
Version:
Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.
41 lines • 6.09 kB
JavaScript
import { Component, Input, ViewChild } from '@angular/core';
import { KoalaDynamicComponentDirective } from './koala-dynamic-component.directive';
import * as i0 from "@angular/core";
import * as i1 from "./koala-dynamic-component.directive";
export class KoalaDynamicComponentFactory {
constructor(componentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
}
ngOnInit() {
this.loadComponent();
}
loadComponent() {
const dynamicComponent = this.dynamicComponent;
if (dynamicComponent) {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(dynamicComponent.component);
const viewContainerRef = this.koalaDynamicComponentDirective?.viewContainerRef;
viewContainerRef?.clear();
const componentRef = viewContainerRef?.createComponent(componentFactory);
const instance = componentRef?.instance;
if (instance)
instance.data = dynamicComponent.data;
}
}
}
KoalaDynamicComponentFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaDynamicComponentFactory, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
KoalaDynamicComponentFactory.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: KoalaDynamicComponentFactory, selector: "koala-dynamic-component", inputs: { dynamicComponent: "dynamicComponent" }, viewQueries: [{ propertyName: "koalaDynamicComponentDirective", first: true, predicate: KoalaDynamicComponentDirective, descendants: true, static: true }], ngImport: i0, template: `
<ng-template koalaDynamicComponent></ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: i1.KoalaDynamicComponentDirective, selector: "[koalaDynamicComponent]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KoalaDynamicComponentFactory, decorators: [{
type: Component,
args: [{
selector: 'koala-dynamic-component',
template: `
<ng-template koalaDynamicComponent></ng-template>`
}]
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; }, propDecorators: { dynamicComponent: [{
type: Input
}], koalaDynamicComponentDirective: [{
type: ViewChild,
args: [KoalaDynamicComponentDirective, { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEtZHluYW1pYy1jb21wb25lbnQuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtY29tcG9uZW50L3NyYy9saWIva29hbGEtZHluYW1pYy1jb21wb25lbnQuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFRckYsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFM0csTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLEVBQUUsZ0JBQWdCLENBQUM7WUFDL0UsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFFMUIsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLEVBQUUsZUFBZSxDQUFpQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pHLE1BQU0sUUFBUSxHQUFHLFlBQVksRUFBRSxRQUFRLENBQUM7WUFDeEMsSUFBSSxRQUFRO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7eUhBdkJVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGlMQUU1Qiw4QkFBOEIsOERBTC9CO3NEQUMwQzsyRkFFekMsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTtzREFDMEM7aUJBQ3JEOytHQUVVLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDcUQsOEJBQThCO3NCQUF4RixTQUFTO3VCQUFDLDhCQUE4QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtvYWxhRHluYW1pY0NvbXBvbmVudCB9IGZyb20gJy4va29hbGEtZHluYW1pYy1jb21wb25lbnQnO1xuaW1wb3J0IHsgS29hbGFEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9rb2FsYS1keW5hbWljLWNvbXBvbmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS29hbGFEeW5hbWljQ29tcG9uZW50Q29tcG9uZW50IH0gZnJvbSAnLi9rb2FsYS1keW5hbWljLWNvbXBvbmVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrb2FsYS1keW5hbWljLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlIGtvYWxhRHluYW1pY0NvbXBvbmVudD48L25nLXRlbXBsYXRlPmBcbn0pXG5leHBvcnQgY2xhc3MgS29hbGFEeW5hbWljQ29tcG9uZW50RmFjdG9yeSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGR5bmFtaWNDb21wb25lbnQ/OiBLb2FsYUR5bmFtaWNDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoS29hbGFEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkga29hbGFEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlPzogS29hbGFEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZENvbXBvbmVudCgpO1xuICB9XG5cbiAgbG9hZENvbXBvbmVudCgpIHtcbiAgICBjb25zdCBkeW5hbWljQ29tcG9uZW50ID0gdGhpcy5keW5hbWljQ29tcG9uZW50O1xuICAgIGlmIChkeW5hbWljQ29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZHluYW1pY0NvbXBvbmVudC5jb21wb25lbnQpO1xuXG4gICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5rb2FsYUR5bmFtaWNDb21wb25lbnREaXJlY3RpdmU/LnZpZXdDb250YWluZXJSZWY7XG4gICAgICB2aWV3Q29udGFpbmVyUmVmPy5jbGVhcigpO1xuXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmPy5jcmVhdGVDb21wb25lbnQ8S29hbGFEeW5hbWljQ29tcG9uZW50Q29tcG9uZW50Pihjb21wb25lbnRGYWN0b3J5KTtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmPy5pbnN0YW5jZTtcbiAgICAgIGlmIChpbnN0YW5jZSkgaW5zdGFuY2UuZGF0YSA9IGR5bmFtaWNDb21wb25lbnQuZGF0YTtcbiAgICB9XG4gIH1cblxufVxuIl19