{"version":3,"file":"catrx-ui-dynamic-component.mjs","sources":["../../../../projects/catrx/ui/dynamic-component/src/cat-dynamic-component.ts","../../../../projects/catrx/ui/dynamic-component/src/dynamic-component.directive.ts","../../../../projects/catrx/ui/dynamic-component/src/dynamic-component.factory.ts","../../../../projects/catrx/ui/dynamic-component/src/cat-dynamic-component.module.ts","../../../../projects/catrx/ui/dynamic-component/catrx-ui-dynamic-component.ts"],"sourcesContent":["import { Type } from '@angular/core';\n\nexport class CatDynamicComponent {\n  constructor(public component: Type<any>, public data?: any) {}\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[catDynamicComponent]',\n})\nexport class DynamicComponentDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { CatDynamicComponent } from './cat-dynamic-component';\nimport { DynamicComponentDirective } from './dynamic-component.directive';\nimport { CatDynamicComponentDataInterface } from './cat-dynamic-component-data.interface';\n\n@Component({\n  selector: 'cat-dynamic-component[component]',\n  template: `<ng-template catDynamicComponent></ng-template>`,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class DynamicComponentFactory implements OnInit {\n  @Input() component?: CatDynamicComponent;\n\n  @ViewChild(DynamicComponentDirective, { static: true })\n  dynamicComponentDirective?: DynamicComponentDirective;\n\n  ngOnInit() {\n    this.loadComponent();\n  }\n\n  loadComponent() {\n    const dynamicComponent = this.component;\n    if (dynamicComponent) {\n      const viewContainerRef = this.dynamicComponentDirective?.viewContainerRef;\n      viewContainerRef?.clear();\n\n      const componentRef =\n        viewContainerRef?.createComponent<CatDynamicComponentDataInterface>(\n          dynamicComponent.component\n        );\n      const instance = componentRef?.instance;\n      if (instance && dynamicComponent.data)\n        instance.data = dynamicComponent.data;\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DynamicComponentDirective } from './dynamic-component.directive';\nimport { DynamicComponentFactory } from './dynamic-component.factory';\n\n@NgModule({\n  exports: [DynamicComponentFactory],\n  declarations: [DynamicComponentDirective, DynamicComponentFactory],\n})\nexport class CatDynamicComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DynamicComponentDirective"],"mappings":"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"}