@c-standard/angular-devui-extension
Version:
an extensional components lib for devui
1 lines • 4.41 kB
Source Map (JSON)
{"version":3,"file":"c-standard-angular-devui-extension-component-loader.mjs","sources":["../../../projects/components/component-loader/component-loader.directive.ts","../../../projects/components/component-loader/component-loader.module.ts","../../../projects/components/component-loader/c-standard-angular-devui-extension-component-loader.ts"],"sourcesContent":["import {\r\n Directive,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { DynamicComponent, DynamicComponentInput } from './component-loader';\r\n\r\n@Directive({\r\n selector: '[dComponent]',\r\n})\r\nexport class ComponentLoaderDirective implements OnChanges {\r\n @Input() keyExpr: string | number = 'id';\r\n @Input() dataSource?: DynamicComponent<any>[];\r\n @Input() componentId?: string | number;\r\n @Input() componentInput?: DynamicComponentInput;\r\n @Input() componentOutput?: any;\r\n @Output() callback: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(private vcr: ViewContainerRef) {}\r\n\r\n ngOnChanges(simple: SimpleChanges) {\r\n if (simple){\r\n this.createComponent();\r\n }\r\n }\r\n\r\n private createComponent() {\r\n this.vcr.clear();\r\n const comp = this.dataSource?.find((t) => (t[this.keyExpr] == this.componentId))?.component;\r\n if (comp) {\r\n const compRef = this.vcr.createComponent(comp);\r\n for (const key in this.componentInput) {\r\n compRef.instance[key] = this.componentInput[key];\r\n }\r\n for (const func in this.componentOutput) {\r\n // 事件的处理,组件的所有事件都会触发callback事件,在emit结果中标记是组件的哪个事件所触发\r\n compRef.instance.func.subscribe((result: any) => this.callback.emit(result));\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ComponentLoaderDirective } from './component-loader.directive';\r\n\r\n@NgModule({\r\n declarations: [ComponentLoaderDirective],\r\n exports: [ComponentLoaderDirective],\r\n})\r\nexport class ComponentLoaderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}