{"version":3,"file":"ng-dynamic-component.mjs","sources":["../../../projects/ng-dynamic-component/src/lib/io/event-argument.ts","../../../projects/ng-dynamic-component/src/lib/io/event-context.ts","../../../projects/ng-dynamic-component/src/lib/component-injector/token.ts","../../../projects/ng-dynamic-component/src/lib/io/io.service.ts","../../../projects/ng-dynamic-component/src/lib/io/io-factory.service.ts","../../../projects/ng-dynamic-component/src/lib/component-outlet/component-outlet-io.directive.ts","../../../projects/ng-dynamic-component/src/lib/component-outlet/component-outlet-injector.directive.ts","../../../projects/ng-dynamic-component/src/lib/component-outlet/component-outlet-injector.module.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-io/dynamic-io.directive.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-io/dynamic-io.module.ts","../../../projects/ng-dynamic-component/src/lib/dynamic.component.ts","../../../projects/ng-dynamic-component/src/lib/dynamic.module.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-attributes/dynamic-attributes.directive.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-attributes/dynamic-attributes.module.ts","../../../projects/ng-dynamic-component/src/lib/util.ts","../../../projects/ng-dynamic-component/src/lib/reflect/reflect.service.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-directives/dynamic-directives.directive.ts","../../../projects/ng-dynamic-component/src/lib/dynamic-directives/dynamic-directives.module.ts","../../../projects/ng-dynamic-component/src/public-api.ts","../../../projects/ng-dynamic-component/src/ng-dynamic-component.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * @public\n */\nexport function defaultEventArgumentFactory() {\n return '$event';\n}\n\n/**\n * @public\n */\nexport const IoEventArgumentToken = new InjectionToken(\n 'EventArgument',\n {\n providedIn: 'root',\n factory: defaultEventArgumentFactory,\n },\n);\n\n/**\n * @public\n * @deprecated Since v10.4.0 - Use {@link IoEventArgumentToken} instead!\n */\nexport const EventArgumentToken = IoEventArgumentToken;\n","import { InjectionToken, StaticProvider } from '@angular/core';\n\n/**\n * A token that holds custom context of the output handlers\n *\n * @public\n */\nexport const IoEventContextToken = new InjectionToken(\n 'IoEventContext',\n);\n\n/**\n * A token that holds provider for custom context of the output handlers\n * which should be provided using {@link IoEventContextToken} token\n *\n * @public\n */\nexport const IoEventContextProviderToken = new InjectionToken(\n 'IoEventContextProvider',\n);\n","import { InjectionToken } from '@angular/core';\nimport { DynamicComponentInjector } from './component-injector';\n\n/**\n * @public\n */\nexport const DynamicComponentInjectorToken =\n new InjectionToken('DynamicComponentInjector');\n","import {\n ChangeDetectorRef,\n ComponentFactory,\n ComponentFactoryResolver,\n Inject,\n Injectable,\n Injector,\n KeyValueChangeRecord,\n KeyValueChanges,\n KeyValueDiffers,\n OnDestroy,\n Optional,\n StaticProvider,\n Type,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from '../component-injector';\nimport { IoEventArgumentToken } from './event-argument';\nimport {\n IoEventContextProviderToken,\n IoEventContextToken,\n} from './event-context';\nimport { EventHandler, InputsType, OutputsType, OutputWithArgs } from './types';\n\ninterface IOMapInfo {\n propName: string;\n templateName: string;\n}\n\ntype IOMappingList = IOMapInfo[];\n\ntype KeyValueChangesAny = KeyValueChanges;\n\ninterface OutputsTypeProcessed extends OutputsType {\n [k: string]: EventHandler;\n}\n\n/**\n * @public\n */\n@Injectable({ providedIn: 'root' })\nexport class IoServiceOptions {\n trackOutputChanges = false;\n}\n\n/**\n * @public\n */\n@Injectable()\nexport class IoService implements OnDestroy {\n private lastComponentInst: unknown = null;\n private lastChangedInputs = new Set();\n private inputsDiffer = this.differs.find({}).create();\n // TODO: Replace ComponentFactory once new API is created\n // @see https://github.com/angular/angular/issues/44926\n // eslint-disable-next-line deprecation/deprecation\n private compFactory: ComponentFactory | null = null;\n private outputsShouldDisconnect$ = new Subject();\n private outputsEventContext: unknown;\n\n private inputs: InputsType = {};\n private outputs: OutputsType = {};\n private outputsChanged: (outputs: OutputsType) => boolean = () => false;\n\n private get compRef() {\n return this.compInjector.componentRef;\n }\n\n private get componentInst(): Record | null {\n return this.compRef ? this.compRef.instance : (null as any);\n }\n\n private get componentInstChanged(): boolean {\n if (this.lastComponentInst !== this.componentInst) {\n this.lastComponentInst = this.componentInst;\n return true;\n } else {\n return false;\n }\n }\n\n constructor(\n private injector: Injector,\n private differs: KeyValueDiffers,\n // TODO: Replace ComponentFactoryResolver once new API is created\n // @see https://github.com/angular/angular/issues/44926\n // eslint-disable-next-line deprecation/deprecation\n private cfr: ComponentFactoryResolver,\n private options: IoServiceOptions,\n @Inject(DynamicComponentInjectorToken)\n private compInjector: DynamicComponentInjector,\n @Inject(IoEventArgumentToken)\n private eventArgument: string,\n private cdr: ChangeDetectorRef,\n @Inject(IoEventContextProviderToken)\n @Optional()\n private eventContextProvider: StaticProvider,\n ) {\n if (this.options.trackOutputChanges) {\n const outputsDiffer = this.differs.find({}).create();\n this.outputsChanged = (outputs) => !!outputsDiffer.diff(outputs);\n }\n }\n\n ngOnDestroy(): void {\n this.disconnectOutputs();\n }\n\n /**\n * Call update whenever inputs/outputs may or did change.\n *\n * It will detect both new and mutated changes.\n */\n update(inputs?: InputsType | null, outputs?: OutputsType | null) {\n if (!this.compRef) {\n this.disconnectOutputs();\n return;\n }\n\n const changes = this.updateIO(inputs, outputs);\n\n const compChanged = this.componentInstChanged;\n\n const inputsChanges = this.getInputsChanges(compChanged);\n const outputsChanged = this.outputsChanged(this.outputs);\n\n if (inputsChanges) {\n this.updateChangedInputs(inputsChanges);\n }\n\n if (compChanged || inputsChanges) {\n this.updateInputs(compChanged || !this.lastChangedInputs.size);\n }\n\n if (compChanged || outputsChanged || changes.outputsChanged) {\n this.bindOutputs();\n }\n }\n\n private updateIO(inputs?: InputsType | null, outputs?: OutputsType | null) {\n if (!inputs) {\n inputs = {};\n }\n if (!outputs) {\n outputs = {};\n }\n\n const inputsChanged = this.inputs !== inputs;\n const outputsChanged = this.outputs !== outputs;\n\n this.inputs = inputs;\n this.outputs = outputs;\n\n return { inputsChanged, outputsChanged };\n }\n\n private updateInputs(isFirstChange = false) {\n if (isFirstChange) {\n this.updateCompFactory();\n }\n\n const compRef = this.compRef;\n const inputs = this.inputs;\n\n if (!inputs || !compRef) {\n return;\n }\n\n const ifInputChanged = this.lastChangedInputs.size\n ? (name: string) => this.lastChangedInputs.has(name)\n : () => true;\n\n Object.keys(inputs)\n .filter(ifInputChanged)\n .forEach((name) => compRef.setInput(name, inputs[name]));\n }\n\n private bindOutputs() {\n this.disconnectOutputs();\n\n const compInst = this.componentInst;\n let outputs = this.outputs;\n\n if (!outputs || !compInst) {\n return;\n }\n\n outputs = this.resolveOutputs(outputs);\n\n Object.keys(outputs)\n .filter((p) => compInst[p])\n .forEach((p) =>\n (compInst[p] as Observable)\n .pipe(takeUntil(this.outputsShouldDisconnect$))\n .subscribe((event) => {\n this.cdr.markForCheck();\n return (outputs[p] as EventHandler)(event);\n }),\n );\n }\n\n private disconnectOutputs() {\n this.outputsShouldDisconnect$.next();\n }\n\n private getInputsChanges(isCompChanged: boolean) {\n if (isCompChanged) {\n this.inputsDiffer.diff({});\n }\n\n return this.inputsDiffer.diff(this.inputs);\n }\n\n private updateChangedInputs(differ: KeyValueChangesAny) {\n this.lastChangedInputs.clear();\n\n const addRecordKeyToSet = (record: KeyValueChangeRecord) =>\n this.lastChangedInputs.add(record.key);\n\n differ.forEachAddedItem(addRecordKeyToSet);\n differ.forEachChangedItem(addRecordKeyToSet);\n differ.forEachRemovedItem(addRecordKeyToSet);\n }\n\n // TODO: Replace ComponentFactory once new API is created\n // @see https://github.com/angular/angular/issues/44926\n // eslint-disable-next-line deprecation/deprecation\n private resolveCompFactory(): ComponentFactory | null {\n if (!this.compRef) {\n return null;\n }\n\n try {\n try {\n return this.cfr.resolveComponentFactory(this.compRef.componentType);\n } catch (e) {\n // Fallback if componentType does not exist (happens on NgComponentOutlet)\n return this.cfr.resolveComponentFactory(\n (this.compRef.instance as any).constructor as Type,\n );\n }\n } catch (e) {\n // Factory not available - bailout\n return null;\n }\n }\n\n private updateCompFactory() {\n this.compFactory = this.resolveCompFactory();\n }\n\n private resolveOutputs(outputs: OutputsType): OutputsType {\n this.updateOutputsEventContext();\n\n outputs = this.processOutputs(outputs);\n\n if (!this.compFactory) {\n return outputs;\n }\n\n return this.remapIO(outputs, this.compFactory.outputs);\n }\n\n private updateOutputsEventContext() {\n if (this.eventContextProvider) {\n // Resolve custom context from local provider\n const eventContextInjector = Injector.create({\n name: 'EventContext',\n parent: this.injector,\n providers: [this.eventContextProvider],\n });\n\n this.outputsEventContext = eventContextInjector.get(IoEventContextToken);\n } else {\n // Try to get global context\n this.outputsEventContext = this.injector.get(IoEventContextToken, null);\n }\n }\n\n private processOutputs(outputs: OutputsType): OutputsTypeProcessed {\n const processedOutputs: OutputsTypeProcessed = {};\n\n Object.keys(outputs).forEach((key) => {\n const outputExpr = outputs[key]!;\n let outputHandler: EventHandler;\n\n if (typeof outputExpr === 'function') {\n outputHandler = outputExpr;\n } else {\n outputHandler = outputExpr && this.processOutputArgs(outputExpr);\n }\n\n if (this.outputsEventContext && outputHandler) {\n outputHandler = outputHandler.bind(this.outputsEventContext);\n }\n\n processedOutputs[key] = outputHandler;\n });\n\n return processedOutputs;\n }\n\n private processOutputArgs(output: OutputWithArgs): EventHandler {\n const eventArgument = this.eventArgument;\n const args = 'args' in output ? output.args || [] : [eventArgument];\n const eventIdx = args.indexOf(eventArgument);\n const handler = output.handler;\n\n // When there is no event argument - use just arguments\n if (eventIdx === -1) {\n return function (this: unknown) {\n return handler.apply(this, args);\n };\n }\n\n return function (this: unknown, event) {\n const argsWithEvent = [...args];\n argsWithEvent[eventIdx] = event;\n\n return handler.apply(this, argsWithEvent);\n };\n }\n\n private remapIO>(\n io: T,\n mapping: IOMappingList,\n ): T {\n const newIO: Record = {};\n\n Object.keys(io).forEach((key) => {\n const newKey = this.findPropByTplInMapping(key, mapping) || key;\n newIO[newKey] = io[key];\n });\n\n return newIO as T;\n }\n\n private findPropByTplInMapping(\n tplName: string,\n mapping: IOMappingList,\n ): string | null {\n for (const map of mapping) {\n if (map.templateName === tplName) {\n return map.propName;\n }\n }\n return null;\n }\n}\n","import { Injectable, Injector, StaticProvider } from '@angular/core';\n\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from '../component-injector';\nimport { IoService, IoServiceOptions } from './io.service';\n\n/**\n * @public\n */\nexport interface IoFactoryServiceOptions {\n injector?: Injector;\n}\n\n/**\n * @public\n */\n@Injectable({ providedIn: 'root' })\nexport class IoFactoryService {\n constructor(private injector: Injector) {}\n\n create(\n componentInjector: DynamicComponentInjector,\n ioOptions?: IoServiceOptions & IoFactoryServiceOptions,\n ) {\n const providers: StaticProvider[] = [\n { provide: IoService, useClass: IoService },\n { provide: DynamicComponentInjectorToken, useValue: componentInjector },\n ];\n\n if (ioOptions) {\n providers.push({ provide: IoServiceOptions, useValue: ioOptions });\n }\n\n const ioInjector = Injector.create({\n name: 'IoInjector',\n parent: ioOptions?.injector ?? this.injector,\n providers,\n });\n\n return ioInjector.get(IoService);\n }\n}\n","import { Directive, DoCheck, Input } from '@angular/core';\n\nimport { InputsType, IoService, OutputsType } from '../io';\n\n/**\n * @public\n */\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n '[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]',\n exportAs: 'ndcDynamicIo',\n standalone: true,\n providers: [IoService],\n})\nexport class ComponentOutletIoDirective implements DoCheck {\n @Input()\n ngComponentOutletNdcDynamicInputs?: InputsType | null;\n @Input()\n ngComponentOutletNdcDynamicOutputs?: OutputsType | null;\n\n constructor(private ioService: IoService) {}\n\n ngDoCheck() {\n this.ioService.update(\n this.ngComponentOutletNdcDynamicInputs,\n this.ngComponentOutletNdcDynamicOutputs,\n );\n }\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { ComponentRef, Directive, Host } from '@angular/core';\n\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from '../component-injector';\n\n/**\n * @public\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[ngComponentOutlet]',\n exportAs: 'ndcComponentOutletInjector',\n standalone: true,\n providers: [\n {\n provide: DynamicComponentInjectorToken,\n useExisting: ComponentOutletInjectorDirective,\n },\n ],\n})\nexport class ComponentOutletInjectorDirective\n implements DynamicComponentInjector\n{\n get componentRef(): ComponentRef {\n // NOTE: Accessing private APIs of Angular\n return (this.componentOutlet as any)._componentRef;\n }\n\n constructor(@Host() private componentOutlet: NgComponentOutlet) {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { ComponentOutletInjectorDirective } from './component-outlet-injector.directive';\nimport { ComponentOutletIoDirective } from './component-outlet-io.directive';\n\n/**\n * @public\n */\n@NgModule({\n imports: [ComponentOutletInjectorDirective, ComponentOutletIoDirective],\n exports: [ComponentOutletInjectorDirective, ComponentOutletIoDirective],\n})\nexport class ComponentOutletInjectorModule {}\n","import { Directive, DoCheck, Input } from '@angular/core';\n\nimport { InputsType, IoService, OutputsType } from '../io';\n\n/**\n * @public\n */\n@Directive({\n selector: '[ndcDynamicInputs],[ndcDynamicOutputs]',\n exportAs: 'ndcDynamicIo',\n standalone: true,\n providers: [IoService],\n})\nexport class DynamicIoDirective implements DoCheck {\n @Input()\n ndcDynamicInputs?: InputsType | null;\n @Input()\n ndcDynamicOutputs?: OutputsType | null;\n\n constructor(private ioService: IoService) {}\n\n ngDoCheck() {\n this.ioService.update(this.ndcDynamicInputs, this.ndcDynamicOutputs);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ComponentOutletInjectorModule } from '../component-outlet';\nimport { DynamicIoDirective } from './dynamic-io.directive';\n\n/**\n * @public\n */\n@NgModule({\n imports: [DynamicIoDirective],\n exports: [DynamicIoDirective, ComponentOutletInjectorModule],\n})\nexport class DynamicIoModule {}\n","import {\n Component,\n ComponentRef,\n EnvironmentInjector,\n EventEmitter,\n Injector,\n Input,\n NgModuleRef,\n OnChanges,\n Output,\n SimpleChanges,\n StaticProvider,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from './component-injector';\n\n/**\n * @public\n */\n@Component({\n selector: 'ndc-dynamic',\n standalone: true,\n template: '',\n providers: [\n { provide: DynamicComponentInjectorToken, useExisting: DynamicComponent },\n ],\n})\nexport class DynamicComponent\n implements OnChanges, DynamicComponentInjector\n{\n private static UpdateOnInputs: (keyof DynamicComponent)[] = [\n 'ndcDynamicComponent',\n 'ndcDynamicInjector',\n 'ndcDynamicProviders',\n 'ndcDynamicContent',\n 'ndcDynamicNgModuleRef',\n 'ndcDynamicEnvironmentInjector',\n ];\n\n @Input()\n ndcDynamicComponent?: Type | null;\n @Input()\n ndcDynamicInjector?: Injector | null;\n @Input()\n ndcDynamicProviders?: StaticProvider[] | null;\n @Input()\n ndcDynamicContent?: Node[][];\n @Input()\n ndcDynamicNgModuleRef?: NgModuleRef;\n @Input()\n ndcDynamicEnvironmentInjector?: EnvironmentInjector | NgModuleRef;\n\n @Output()\n ndcDynamicCreated = new EventEmitter>();\n\n componentRef: ComponentRef | null = null;\n\n constructor(private vcr: ViewContainerRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n DynamicComponent.UpdateOnInputs.some((input) =>\n changes.hasOwnProperty(input),\n )\n ) {\n this.createDynamicComponent();\n }\n }\n\n createDynamicComponent() {\n this.vcr.clear();\n this.componentRef = null;\n\n if (this.ndcDynamicComponent) {\n this.componentRef = this.vcr.createComponent(this.ndcDynamicComponent, {\n index: 0,\n injector: this._resolveInjector(),\n projectableNodes: this.ndcDynamicContent,\n ngModuleRef: this.ndcDynamicNgModuleRef,\n environmentInjector: this.ndcDynamicEnvironmentInjector,\n });\n this.ndcDynamicCreated.emit(this.componentRef);\n }\n }\n\n private _resolveInjector(): Injector {\n let injector = this.ndcDynamicInjector || this.vcr.injector;\n\n if (this.ndcDynamicProviders) {\n injector = Injector.create({\n providers: this.ndcDynamicProviders,\n parent: injector,\n });\n }\n\n return injector;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DynamicIoModule } from './dynamic-io';\nimport { DynamicComponent } from './dynamic.component';\n\n/**\n * @public\n */\n@NgModule({\n imports: [DynamicIoModule, DynamicComponent],\n exports: [DynamicIoModule, DynamicComponent],\n})\nexport class DynamicModule {}\n","import {\n Directive,\n DoCheck,\n Inject,\n Input,\n KeyValueChanges,\n KeyValueDiffers,\n Optional,\n Renderer2,\n Type,\n} from '@angular/core';\n\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from '../component-injector';\n\n/**\n * @public\n */\nexport interface AttributesMap {\n [key: string]: string;\n}\n\ninterface AttributeActions {\n set: AttributesMap;\n remove: string[];\n}\n\n/**\n * @public\n */\n@Directive({\n selector: '[ndcDynamicAttributes],[ngComponentOutletNdcDynamicAttributes]',\n exportAs: 'ndcDynamicAttributes',\n standalone: true,\n})\nexport class DynamicAttributesDirective implements DoCheck {\n @Input()\n ndcDynamicAttributes?: AttributesMap | null;\n @Input()\n ngComponentOutletNdcDynamicAttributes?: AttributesMap | null;\n\n private attrsDiffer = this.differs.find({}).create();\n private lastCompType?: Type;\n private lastAttrActions?: AttributeActions;\n\n private get _attributes() {\n return (\n this.ndcDynamicAttributes ||\n this.ngComponentOutletNdcDynamicAttributes ||\n {}\n );\n }\n\n private get nativeElement() {\n return this.componentInjector?.componentRef?.location.nativeElement;\n }\n\n private get compType() {\n return this.componentInjector?.componentRef?.componentType;\n }\n\n private get isCompChanged() {\n if (this.lastCompType !== this.compType) {\n this.lastCompType = this.compType;\n return true;\n }\n return false;\n }\n\n constructor(\n private renderer: Renderer2,\n private differs: KeyValueDiffers,\n @Inject(DynamicComponentInjectorToken)\n @Optional()\n private componentInjector?: DynamicComponentInjector,\n ) {}\n\n ngDoCheck(): void {\n const isCompChanged = this.isCompChanged;\n const changes = this.attrsDiffer.diff(this._attributes);\n\n if (changes) {\n this.lastAttrActions = this.changesToAttrActions(changes);\n }\n\n if (changes || (isCompChanged && this.lastAttrActions)) {\n this.updateAttributes(this.lastAttrActions);\n }\n }\n\n setAttribute(name: string, value: string, namespace?: string) {\n if (this.nativeElement) {\n this.renderer.setAttribute(this.nativeElement, name, value, namespace);\n }\n }\n\n removeAttribute(name: string, namespace?: string) {\n if (this.nativeElement) {\n this.renderer.removeAttribute(this.nativeElement, name, namespace);\n }\n }\n\n private updateAttributes(actions?: AttributeActions) {\n if (!this.compType || !actions) {\n return;\n }\n\n Object.keys(actions.set).forEach((key) =>\n this.setAttribute(key, actions.set[key]),\n );\n\n actions.remove.forEach((key) => this.removeAttribute(key));\n }\n\n private changesToAttrActions(\n changes: KeyValueChanges,\n ): AttributeActions {\n const attrActions: AttributeActions = {\n set: {},\n remove: [],\n };\n\n changes.forEachAddedItem((r) => (attrActions.set[r.key] = r.currentValue!));\n changes.forEachChangedItem(\n (r) => (attrActions.set[r.key] = r.currentValue!),\n );\n changes.forEachRemovedItem((r) => attrActions.remove.push(r.key));\n\n return attrActions;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ComponentOutletInjectorModule } from '../component-outlet';\nimport { DynamicAttributesDirective } from './dynamic-attributes.directive';\n\n/**\n * @public\n */\n@NgModule({\n imports: [DynamicAttributesDirective],\n exports: [DynamicAttributesDirective, ComponentOutletInjectorModule],\n})\nexport class DynamicAttributesModule {}\n","import { OnDestroy, Type } from '@angular/core';\n\n/**\n * Extract type arguments from Angular Directive/Component\n *\n * @internal\n */\nexport function extractNgParamTypes(\n type: Type,\n): unknown[] | undefined {\n // NOTE: Accessing private APIs of Angular\n return (type as any)?.ctorParameters?.()?.map((param: any) => param.type);\n}\n\n/**\n * @internal\n */\nexport function isOnDestroy(obj: unknown): obj is OnDestroy {\n return !!obj && typeof (obj as OnDestroy).ngOnDestroy === 'function';\n}\n","import { Inject, Injectable, InjectionToken, Type } from '@angular/core';\n\n/**\n * Reflect API subsystem required for lib to work\n *\n * @public\n */\nexport interface ReflectApi {\n getMetadata(type: string, obj: unknown): unknown[];\n}\n\n/**\n * @public\n */\nexport const ReflectRef = new InjectionToken('ReflectRef', {\n providedIn: 'root',\n factory: () => window.Reflect as any,\n});\n\n/**\n * @public\n */\n@Injectable({ providedIn: 'root' })\nexport class ReflectService {\n constructor(@Inject(ReflectRef) private reflect: ReflectApi) {}\n\n getCtorParamTypes(ctor: Type): unknown[] {\n return this.reflect.getMetadata('design:paramtypes', ctor);\n }\n}\n","import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n IterableChanges,\n IterableDiffers,\n OnDestroy,\n Optional,\n Output,\n Type,\n ViewRef,\n} from '@angular/core';\n\nimport {\n DynamicComponentInjector,\n DynamicComponentInjectorToken,\n} from '../component-injector';\nimport { InputsType, IoFactoryService, IoService, OutputsType } from '../io';\nimport { extractNgParamTypes, isOnDestroy } from '../util';\nimport { ReflectService } from '../reflect';\n\n/**\n * @public\n */\nexport interface DynamicDirectiveDef {\n type: Type;\n inputs?: InputsType;\n outputs?: OutputsType;\n}\n\n/**\n * @public\n */\nexport function dynamicDirectiveDef(\n type: Type,\n inputs?: InputsType,\n outputs?: OutputsType,\n): DynamicDirectiveDef {\n return { type, inputs, outputs };\n}\n\n/**\n * @public\n */\nexport interface DirectiveRef {\n instance: T;\n type: Type;\n injector: Injector;\n hostComponent: unknown;\n hostView: ViewRef;\n location: ElementRef;\n changeDetectorRef: ChangeDetectorRef;\n // eslint-disable-next-line @typescript-eslint/ban-types\n onDestroy: (callback: Function) => void;\n}\n\n/**\n * @public\n * @experimental Dynamic directives is an experimental API that may not work as expected.\n *\n * NOTE: There is a known issue with OnChanges hook not beign triggered on dynamic directives\n * since this part of functionality has been removed from the core as Angular now\n * supports this out of the box for dynamic components.\n */\n@Directive({\n selector: '[ndcDynamicDirectives],[ngComponentOutletNdcDynamicDirectives]',\n standalone: true,\n providers: [IoFactoryService],\n})\nexport class DynamicDirectivesDirective implements OnDestroy, DoCheck {\n @Input()\n ndcDynamicDirectives?: DynamicDirectiveDef[] | null;\n @Input()\n ngComponentOutletNdcDynamicDirectives?: DynamicDirectiveDef[] | null;\n\n @Output()\n ndcDynamicDirectivesCreated = new EventEmitter[]>();\n\n private lastCompInstance: unknown;\n\n private get directives() {\n return (\n this.ndcDynamicDirectives || this.ngComponentOutletNdcDynamicDirectives\n );\n }\n\n private get componentRef() {\n return this.componentInjector?.componentRef;\n }\n\n private get compInstance() {\n return this.componentRef && this.componentRef.instance;\n }\n\n private get isCompChanged() {\n if (this.lastCompInstance !== this.compInstance) {\n this.lastCompInstance = this.compInstance;\n return true;\n }\n return false;\n }\n\n private get hostInjector() {\n return this.componentRef?.injector;\n }\n\n private dirRef = new Map, DirectiveRef>();\n private dirIo = new Map, IoService>();\n private dirsDiffer = this.iterableDiffers\n .find([])\n .create>((_, def) => def.type);\n\n constructor(\n private injector: Injector,\n private iterableDiffers: IterableDiffers,\n private ioFactoryService: IoFactoryService,\n private reflectService: ReflectService,\n @Inject(DynamicComponentInjectorToken)\n @Optional()\n private componentInjector?: DynamicComponentInjector,\n ) {}\n\n ngDoCheck(): void {\n if (this.maybeDestroyDirectives()) {\n return;\n }\n\n const dirsChanges = this.dirsDiffer.diff(this.directives);\n\n if (!dirsChanges) {\n return this.updateDirectives();\n }\n\n this.processDirChanges(dirsChanges);\n }\n\n ngOnDestroy(): void {\n this.destroyAllDirectives();\n }\n\n private maybeDestroyDirectives() {\n if (this.isCompChanged || !this.componentRef) {\n this.dirsDiffer.diff([]);\n this.destroyAllDirectives();\n }\n\n return !this.componentRef;\n }\n\n private processDirChanges(\n changes: IterableChanges>,\n ) {\n changes.forEachRemovedItem(({ item }) => this.destroyDirective(item));\n\n const createdDirs: DirectiveRef[] = [];\n changes.forEachAddedItem(({ item }) => {\n const dirRef = this.initDirective(item);\n\n if (dirRef) {\n createdDirs.push(dirRef);\n }\n });\n\n if (createdDirs.length) {\n this.ndcDynamicDirectivesCreated.emit(createdDirs);\n }\n }\n\n private updateDirectives() {\n this.directives?.forEach((dir) => this.updateDirective(dir));\n }\n\n private updateDirective(dirDef: DynamicDirectiveDef) {\n const io = this.dirIo.get(dirDef.type);\n io?.update(dirDef.inputs, dirDef.outputs);\n }\n\n private initDirective(\n dirDef: DynamicDirectiveDef,\n ): DirectiveRef | undefined {\n if (this.dirRef.has(dirDef.type)) {\n return;\n }\n\n const instance = this.createDirective(dirDef.type);\n const directiveRef: DirectiveRef = {\n instance,\n type: dirDef.type,\n injector: this.hostInjector!,\n hostComponent: this.componentRef!.instance,\n hostView: this.componentRef!.hostView,\n location: this.componentRef!.location,\n changeDetectorRef: this.componentRef!.changeDetectorRef,\n onDestroy: this.componentRef!.onDestroy,\n };\n\n this.initDirIO(directiveRef, dirDef);\n this.callInitHooks(instance);\n\n this.dirRef.set(directiveRef.type, directiveRef);\n\n return directiveRef;\n }\n\n private destroyAllDirectives() {\n this.dirRef.forEach((dir) => this.destroyDirRef(dir));\n this.dirRef.clear();\n this.dirIo.clear();\n }\n\n private destroyDirective(dirDef: DynamicDirectiveDef) {\n const dirRef = this.dirRef.get(dirDef.type);\n if (dirRef) {\n this.destroyDirRef(dirRef);\n }\n this.dirRef.delete(dirDef.type);\n this.dirIo.delete(dirDef.type);\n }\n\n private initDirIO(\n dirRef: DirectiveRef,\n dirDef: DynamicDirectiveDef,\n ) {\n const io = this.ioFactoryService.create(\n { componentRef: this.dirToCompDef(dirRef) },\n { trackOutputChanges: true, injector: this.injector },\n );\n io.update(dirDef.inputs, dirDef.outputs);\n this.dirIo.set(dirRef.type, io);\n }\n\n private dirToCompDef(dirRef: DirectiveRef): ComponentRef {\n return {\n changeDetectorRef: this.componentRef!.changeDetectorRef,\n hostView: this.componentRef!.hostView,\n location: this.componentRef!.location,\n destroy: this.componentRef!.destroy,\n onDestroy: this.componentRef!.onDestroy,\n injector: this.componentRef!.injector,\n instance: dirRef.instance,\n componentType: dirRef.type,\n setInput: (name, value) => ((dirRef.instance as any)[name] = value),\n };\n }\n\n private destroyDirRef(dirRef: DirectiveRef) {\n this.dirIo.get(dirRef.type)?.ngOnDestroy();\n\n if (isOnDestroy(dirRef.instance)) {\n dirRef.instance.ngOnDestroy();\n }\n }\n\n private createDirective(dirType: Type): T {\n const directiveInjector = Injector.create({\n providers: [\n {\n provide: dirType,\n useClass: dirType,\n deps: this.resolveDirParamTypes(dirType),\n },\n { provide: ElementRef, useValue: this.componentRef!.location },\n ],\n parent: this.hostInjector,\n name: `DynamicDirectiveInjector:${dirType.name}@${\n this.componentRef!.componentType.name\n }`,\n });\n\n return directiveInjector.get(dirType);\n }\n\n private resolveDirParamTypes(dirType: Type): unknown[] {\n return (\n // First try Angular Compiler's metadata\n extractNgParamTypes(dirType) ??\n // Then fallback to Reflect API\n this.reflectService.getCtorParamTypes(dirType) ??\n // Bailout\n []\n );\n }\n\n private callInitHooks(obj: unknown) {\n this.callHook(obj, 'ngOnInit');\n this.callHook(obj, 'ngDoCheck');\n this.callHook(obj, 'ngAfterContentInit');\n this.callHook(obj, 'ngAfterContentChecked');\n this.callHook(obj, 'ngAfterViewInit');\n this.callHook(obj, 'ngAfterViewChecked');\n }\n\n private callHook(obj: any, hook: string, args: unknown[] = []) {\n if (obj[hook]) {\n obj[hook](...args);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ComponentOutletInjectorModule } from '../component-outlet';\nimport { DynamicDirectivesDirective } from './dynamic-directives.directive';\n\n/**\n * @public\n */\n@NgModule({\n imports: [DynamicDirectivesDirective],\n exports: [DynamicDirectivesDirective, ComponentOutletInjectorModule],\n})\nexport class DynamicDirectivesModule {}\n","/*\n * Public API Surface of ng-dynamic-component\n */\n\nexport * from './lib/io';\nexport * from './lib/component-injector';\nexport * from './lib/component-outlet';\nexport * from './lib/dynamic.module';\nexport * from './lib/dynamic.component';\nexport * from './lib/dynamic-io';\nexport * from './lib/dynamic-attributes';\nexport * from './lib/dynamic-directives';\nexport * from './lib/reflect';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.IoService"],"mappings":"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"}