{"version":3,"file":"chunk-b88mxvi9.js","sources":["node_modules/ng-dynamic-component/fesm2020/ng-dynamic-component.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Injector, Inject, Optional, Directive, Input, Host, NgModule, EventEmitter, Component, Output, ElementRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/common';\n\n/**\n * @public\n */\nfunction defaultEventArgumentFactory() {\n return '$event';\n}\n/**\n * @public\n */\nconst IoEventArgumentToken = new InjectionToken('EventArgument', {\n providedIn: 'root',\n factory: defaultEventArgumentFactory\n});\n/**\n * @public\n * @deprecated Since v10.4.0 - Use {@link IoEventArgumentToken} instead!\n */\nconst EventArgumentToken = IoEventArgumentToken;\n\n/**\n * A token that holds custom context of the output handlers\n *\n * @public\n */\nconst IoEventContextToken = new InjectionToken('IoEventContext');\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 */\nconst IoEventContextProviderToken = new InjectionToken('IoEventContextProvider');\n\n/**\n * @public\n */\nconst DynamicComponentInjectorToken = new InjectionToken('DynamicComponentInjector');\n\n/**\n * @public\n */\nlet IoServiceOptions = /*#__PURE__*/(() => {\n class IoServiceOptions {\n constructor() {\n this.trackOutputChanges = false;\n }\n }\n /** @nocollapse */\n /** @nocollapse */IoServiceOptions.ɵfac = function IoServiceOptions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IoServiceOptions)();\n };\n IoServiceOptions.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IoServiceOptions,\n factory: IoServiceOptions.ɵfac,\n providedIn: 'root'\n });\n return IoServiceOptions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @public\n */\nlet IoService = /*#__PURE__*/(() => {\n class IoService {\n constructor(injector, differs,\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 cfr, options, compInjector, eventArgument, cdr, eventContextProvider) {\n this.injector = injector;\n this.differs = differs;\n this.cfr = cfr;\n this.options = options;\n this.compInjector = compInjector;\n this.eventArgument = eventArgument;\n this.cdr = cdr;\n this.eventContextProvider = eventContextProvider;\n this.lastComponentInst = null;\n this.lastChangedInputs = new Set();\n this.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 this.compFactory = null;\n this.outputsShouldDisconnect$ = new Subject();\n this.inputs = {};\n this.outputs = {};\n this.outputsChanged = () => false;\n if (this.options.trackOutputChanges) {\n const outputsDiffer = this.differs.find({}).create();\n this.outputsChanged = outputs => !!outputsDiffer.diff(outputs);\n }\n }\n get compRef() {\n return this.compInjector.componentRef;\n }\n get componentInst() {\n return this.compRef ? this.compRef.instance : null;\n }\n get componentInstChanged() {\n if (this.lastComponentInst !== this.componentInst) {\n this.lastComponentInst = this.componentInst;\n return true;\n } else {\n return false;\n }\n }\n ngOnDestroy() {\n this.disconnectOutputs();\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, outputs) {\n if (!this.compRef) {\n this.disconnectOutputs();\n return;\n }\n const changes = this.updateIO(inputs, outputs);\n const compChanged = this.componentInstChanged;\n const inputsChanges = this.getInputsChanges(compChanged);\n const outputsChanged = this.outputsChanged(this.outputs);\n if (inputsChanges) {\n this.updateChangedInputs(inputsChanges);\n }\n if (compChanged || inputsChanges) {\n this.updateInputs(compChanged || !this.lastChangedInputs.size);\n }\n if (compChanged || outputsChanged || changes.outputsChanged) {\n this.bindOutputs();\n }\n }\n updateIO(inputs, outputs) {\n if (!inputs) {\n inputs = {};\n }\n if (!outputs) {\n outputs = {};\n }\n const inputsChanged = this.inputs !== inputs;\n const outputsChanged = this.outputs !== outputs;\n this.inputs = inputs;\n this.outputs = outputs;\n return {\n inputsChanged,\n outputsChanged\n };\n }\n updateInputs(isFirstChange = false) {\n if (isFirstChange) {\n this.updateCompFactory();\n }\n const compRef = this.compRef;\n const inputs = this.inputs;\n if (!inputs || !compRef) {\n return;\n }\n const ifInputChanged = this.lastChangedInputs.size ? name => this.lastChangedInputs.has(name) : () => true;\n Object.keys(inputs).filter(ifInputChanged).forEach(name => compRef.setInput(name, inputs[name]));\n }\n bindOutputs() {\n this.disconnectOutputs();\n const compInst = this.componentInst;\n let outputs = this.outputs;\n if (!outputs || !compInst) {\n return;\n }\n outputs = this.resolveOutputs(outputs);\n Object.keys(outputs).filter(p => compInst[p]).forEach(p => compInst[p].pipe(takeUntil(this.outputsShouldDisconnect$)).subscribe(event => {\n this.cdr.markForCheck();\n return outputs[p](event);\n }));\n }\n disconnectOutputs() {\n this.outputsShouldDisconnect$.next();\n }\n getInputsChanges(isCompChanged) {\n if (isCompChanged) {\n this.inputsDiffer.diff({});\n }\n return this.inputsDiffer.diff(this.inputs);\n }\n updateChangedInputs(differ) {\n this.lastChangedInputs.clear();\n const addRecordKeyToSet = record => this.lastChangedInputs.add(record.key);\n differ.forEachAddedItem(addRecordKeyToSet);\n differ.forEachChangedItem(addRecordKeyToSet);\n differ.forEachRemovedItem(addRecordKeyToSet);\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 resolveCompFactory() {\n if (!this.compRef) {\n return null;\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(this.compRef.instance.constructor);\n }\n } catch (e) {\n // Factory not available - bailout\n return null;\n }\n }\n updateCompFactory() {\n this.compFactory = this.resolveCompFactory();\n }\n resolveOutputs(outputs) {\n this.updateOutputsEventContext();\n outputs = this.processOutputs(outputs);\n if (!this.compFactory) {\n return outputs;\n }\n return this.remapIO(outputs, this.compFactory.outputs);\n }\n 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 this.outputsEventContext = eventContextInjector.get(IoEventContextToken);\n } else {\n // Try to get global context\n this.outputsEventContext = this.injector.get(IoEventContextToken, null);\n }\n }\n processOutputs(outputs) {\n const processedOutputs = {};\n Object.keys(outputs).forEach(key => {\n const outputExpr = outputs[key];\n let outputHandler;\n if (typeof outputExpr === 'function') {\n outputHandler = outputExpr;\n } else {\n outputHandler = outputExpr && this.processOutputArgs(outputExpr);\n }\n if (this.outputsEventContext && outputHandler) {\n outputHandler = outputHandler.bind(this.outputsEventContext);\n }\n processedOutputs[key] = outputHandler;\n });\n return processedOutputs;\n }\n processOutputArgs(output) {\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 // When there is no event argument - use just arguments\n if (eventIdx === -1) {\n return function () {\n return handler.apply(this, args);\n };\n }\n return function (event) {\n const argsWithEvent = [...args];\n argsWithEvent[eventIdx] = event;\n return handler.apply(this, argsWithEvent);\n };\n }\n remapIO(io, mapping) {\n const newIO = {};\n Object.keys(io).forEach(key => {\n const newKey = this.findPropByTplInMapping(key, mapping) || key;\n newIO[newKey] = io[key];\n });\n return newIO;\n }\n findPropByTplInMapping(tplName, mapping) {\n for (const map of mapping) {\n if (map.templateName === tplName) {\n return map.propName;\n }\n }\n return null;\n }\n }\n /** @nocollapse */\n /** @nocollapse */IoService.ɵfac = function IoService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IoService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.KeyValueDiffers), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(IoServiceOptions), i0.ɵɵinject(DynamicComponentInjectorToken), i0.ɵɵinject(IoEventArgumentToken), i0.ɵɵinject(i0.ChangeDetectorRef), i0.ɵɵinject(IoEventContextProviderToken, 8));\n };\n IoService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IoService,\n factory: IoService.ɵfac\n });\n return IoService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet IoFactoryService = /*#__PURE__*/(() => {\n class IoFactoryService {\n constructor(injector) {\n this.injector = injector;\n }\n create(componentInjector, ioOptions) {\n const providers = [{\n provide: IoService,\n useClass: IoService\n }, {\n provide: DynamicComponentInjectorToken,\n useValue: componentInjector\n }];\n if (ioOptions) {\n providers.push({\n provide: IoServiceOptions,\n useValue: ioOptions\n });\n }\n const ioInjector = Injector.create({\n name: 'IoInjector',\n parent: ioOptions?.injector ?? this.injector,\n providers\n });\n return ioInjector.get(IoService);\n }\n }\n /** @nocollapse */\n /** @nocollapse */IoFactoryService.ɵfac = function IoFactoryService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IoFactoryService)(i0.ɵɵinject(i0.Injector));\n };\n IoFactoryService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IoFactoryService,\n factory: IoFactoryService.ɵfac,\n providedIn: 'root'\n });\n return IoFactoryService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet ComponentOutletIoDirective = /*#__PURE__*/(() => {\n class ComponentOutletIoDirective {\n constructor(ioService) {\n this.ioService = ioService;\n }\n ngDoCheck() {\n this.ioService.update(this.ngComponentOutletNdcDynamicInputs, this.ngComponentOutletNdcDynamicOutputs);\n }\n }\n /** @nocollapse */\n /** @nocollapse */ComponentOutletIoDirective.ɵfac = function ComponentOutletIoDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ComponentOutletIoDirective)(i0.ɵɵdirectiveInject(IoService));\n };\n ComponentOutletIoDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ComponentOutletIoDirective,\n selectors: [[\"\", \"ngComponentOutletNdcDynamicInputs\", \"\"], [\"\", \"ngComponentOutletNdcDynamicOutputs\", \"\"]],\n inputs: {\n ngComponentOutletNdcDynamicInputs: \"ngComponentOutletNdcDynamicInputs\",\n ngComponentOutletNdcDynamicOutputs: \"ngComponentOutletNdcDynamicOutputs\"\n },\n exportAs: [\"ndcDynamicIo\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([IoService])]\n });\n return ComponentOutletIoDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet ComponentOutletInjectorDirective = /*#__PURE__*/(() => {\n class ComponentOutletInjectorDirective {\n constructor(componentOutlet) {\n this.componentOutlet = componentOutlet;\n }\n get componentRef() {\n // NOTE: Accessing private APIs of Angular\n return this.componentOutlet._componentRef;\n }\n }\n /** @nocollapse */\n /** @nocollapse */ComponentOutletInjectorDirective.ɵfac = function ComponentOutletInjectorDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ComponentOutletInjectorDirective)(i0.ɵɵdirectiveInject(i1.NgComponentOutlet, 1));\n };\n ComponentOutletInjectorDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ComponentOutletInjectorDirective,\n selectors: [[\"\", \"ngComponentOutlet\", \"\"]],\n exportAs: [\"ndcComponentOutletInjector\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: DynamicComponentInjectorToken,\n useExisting: ComponentOutletInjectorDirective\n }])]\n });\n return ComponentOutletInjectorDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet ComponentOutletInjectorModule = /*#__PURE__*/(() => {\n class ComponentOutletInjectorModule {}\n /** @nocollapse */\n /** @nocollapse */\n /** @nocollapse */ComponentOutletInjectorModule.ɵfac = function ComponentOutletInjectorModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ComponentOutletInjectorModule)();\n };\n ComponentOutletInjectorModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ComponentOutletInjectorModule\n });\n ComponentOutletInjectorModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return ComponentOutletInjectorModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicIoDirective = /*#__PURE__*/(() => {\n class DynamicIoDirective {\n constructor(ioService) {\n this.ioService = ioService;\n }\n ngDoCheck() {\n this.ioService.update(this.ndcDynamicInputs, this.ndcDynamicOutputs);\n }\n }\n /** @nocollapse */\n /** @nocollapse */DynamicIoDirective.ɵfac = function DynamicIoDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicIoDirective)(i0.ɵɵdirectiveInject(IoService));\n };\n DynamicIoDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DynamicIoDirective,\n selectors: [[\"\", \"ndcDynamicInputs\", \"\"], [\"\", \"ndcDynamicOutputs\", \"\"]],\n inputs: {\n ndcDynamicInputs: \"ndcDynamicInputs\",\n ndcDynamicOutputs: \"ndcDynamicOutputs\"\n },\n exportAs: [\"ndcDynamicIo\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([IoService])]\n });\n return DynamicIoDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicIoModule = /*#__PURE__*/(() => {\n class DynamicIoModule {}\n /** @nocollapse */\n /** @nocollapse */\n /** @nocollapse */DynamicIoModule.ɵfac = function DynamicIoModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicIoModule)();\n };\n DynamicIoModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DynamicIoModule\n });\n DynamicIoModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ComponentOutletInjectorModule]\n });\n return DynamicIoModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicComponent = /*#__PURE__*/(() => {\n class DynamicComponent {\n constructor(vcr) {\n this.vcr = vcr;\n this.ndcDynamicCreated = new EventEmitter();\n this.componentRef = null;\n }\n ngOnChanges(changes) {\n if (DynamicComponent.UpdateOnInputs.some(input => changes.hasOwnProperty(input))) {\n this.createDynamicComponent();\n }\n }\n createDynamicComponent() {\n this.vcr.clear();\n this.componentRef = null;\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 _resolveInjector() {\n let injector = this.ndcDynamicInjector || this.vcr.injector;\n if (this.ndcDynamicProviders) {\n injector = Injector.create({\n providers: this.ndcDynamicProviders,\n parent: injector\n });\n }\n return injector;\n }\n }\n DynamicComponent.UpdateOnInputs = ['ndcDynamicComponent', 'ndcDynamicInjector', 'ndcDynamicProviders', 'ndcDynamicContent', 'ndcDynamicNgModuleRef', 'ndcDynamicEnvironmentInjector'];\n /** @nocollapse */\n /** @nocollapse */\n DynamicComponent.ɵfac = function DynamicComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n DynamicComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DynamicComponent,\n selectors: [[\"ndc-dynamic\"]],\n inputs: {\n ndcDynamicComponent: \"ndcDynamicComponent\",\n ndcDynamicInjector: \"ndcDynamicInjector\",\n ndcDynamicProviders: \"ndcDynamicProviders\",\n ndcDynamicContent: \"ndcDynamicContent\",\n ndcDynamicNgModuleRef: \"ndcDynamicNgModuleRef\",\n ndcDynamicEnvironmentInjector: \"ndcDynamicEnvironmentInjector\"\n },\n outputs: {\n ndcDynamicCreated: \"ndcDynamicCreated\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: DynamicComponentInjectorToken,\n useExisting: DynamicComponent\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function DynamicComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return DynamicComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicModule = /*#__PURE__*/(() => {\n class DynamicModule {}\n /** @nocollapse */\n /** @nocollapse */\n /** @nocollapse */DynamicModule.ɵfac = function DynamicModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicModule)();\n };\n DynamicModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DynamicModule\n });\n DynamicModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [DynamicIoModule, DynamicComponent, DynamicIoModule]\n });\n return DynamicModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicAttributesDirective = /*#__PURE__*/(() => {\n class DynamicAttributesDirective {\n constructor(renderer, differs, componentInjector) {\n this.renderer = renderer;\n this.differs = differs;\n this.componentInjector = componentInjector;\n this.attrsDiffer = this.differs.find({}).create();\n }\n get _attributes() {\n return this.ndcDynamicAttributes || this.ngComponentOutletNdcDynamicAttributes || {};\n }\n get nativeElement() {\n return this.componentInjector?.componentRef?.location.nativeElement;\n }\n get compType() {\n return this.componentInjector?.componentRef?.componentType;\n }\n get isCompChanged() {\n if (this.lastCompType !== this.compType) {\n this.lastCompType = this.compType;\n return true;\n }\n return false;\n }\n ngDoCheck() {\n const isCompChanged = this.isCompChanged;\n const changes = this.attrsDiffer.diff(this._attributes);\n if (changes) {\n this.lastAttrActions = this.changesToAttrActions(changes);\n }\n if (changes || isCompChanged && this.lastAttrActions) {\n this.updateAttributes(this.lastAttrActions);\n }\n }\n setAttribute(name, value, namespace) {\n if (this.nativeElement) {\n this.renderer.setAttribute(this.nativeElement, name, value, namespace);\n }\n }\n removeAttribute(name, namespace) {\n if (this.nativeElement) {\n this.renderer.removeAttribute(this.nativeElement, name, namespace);\n }\n }\n updateAttributes(actions) {\n if (!this.compType || !actions) {\n return;\n }\n Object.keys(actions.set).forEach(key => this.setAttribute(key, actions.set[key]));\n actions.remove.forEach(key => this.removeAttribute(key));\n }\n changesToAttrActions(changes) {\n const attrActions = {\n set: {},\n remove: []\n };\n changes.forEachAddedItem(r => attrActions.set[r.key] = r.currentValue);\n changes.forEachChangedItem(r => attrActions.set[r.key] = r.currentValue);\n changes.forEachRemovedItem(r => attrActions.remove.push(r.key));\n return attrActions;\n }\n }\n /** @nocollapse */\n /** @nocollapse */DynamicAttributesDirective.ɵfac = function DynamicAttributesDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicAttributesDirective)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.KeyValueDiffers), i0.ɵɵdirectiveInject(DynamicComponentInjectorToken, 8));\n };\n DynamicAttributesDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DynamicAttributesDirective,\n selectors: [[\"\", \"ndcDynamicAttributes\", \"\"], [\"\", \"ngComponentOutletNdcDynamicAttributes\", \"\"]],\n inputs: {\n ndcDynamicAttributes: \"ndcDynamicAttributes\",\n ngComponentOutletNdcDynamicAttributes: \"ngComponentOutletNdcDynamicAttributes\"\n },\n exportAs: [\"ndcDynamicAttributes\"],\n standalone: true\n });\n return DynamicAttributesDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicAttributesModule = /*#__PURE__*/(() => {\n class DynamicAttributesModule {}\n /** @nocollapse */\n /** @nocollapse */\n /** @nocollapse */DynamicAttributesModule.ɵfac = function DynamicAttributesModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicAttributesModule)();\n };\n DynamicAttributesModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DynamicAttributesModule\n });\n DynamicAttributesModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ComponentOutletInjectorModule]\n });\n return DynamicAttributesModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Extract type arguments from Angular Directive/Component\n *\n * @internal\n */\nfunction extractNgParamTypes(type) {\n // NOTE: Accessing private APIs of Angular\n return type?.ctorParameters?.()?.map(param => param.type);\n}\n/**\n * @internal\n */\nfunction isOnDestroy(obj) {\n return !!obj && typeof obj.ngOnDestroy === 'function';\n}\n\n/**\n * @public\n */\nconst ReflectRef = new InjectionToken('ReflectRef', {\n providedIn: 'root',\n factory: () => window.Reflect\n});\n/**\n * @public\n */\nlet ReflectService = /*#__PURE__*/(() => {\n class ReflectService {\n constructor(reflect) {\n this.reflect = reflect;\n }\n getCtorParamTypes(ctor) {\n return this.reflect.getMetadata('design:paramtypes', ctor);\n }\n }\n /** @nocollapse */\n /** @nocollapse */ReflectService.ɵfac = function ReflectService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ReflectService)(i0.ɵɵinject(ReflectRef));\n };\n ReflectService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ReflectService,\n factory: ReflectService.ɵfac,\n providedIn: 'root'\n });\n return ReflectService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nfunction dynamicDirectiveDef(type, inputs, outputs) {\n return {\n type,\n inputs,\n outputs\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 */\nlet DynamicDirectivesDirective = /*#__PURE__*/(() => {\n class DynamicDirectivesDirective {\n constructor(injector, iterableDiffers, ioFactoryService, reflectService, componentInjector) {\n this.injector = injector;\n this.iterableDiffers = iterableDiffers;\n this.ioFactoryService = ioFactoryService;\n this.reflectService = reflectService;\n this.componentInjector = componentInjector;\n this.ndcDynamicDirectivesCreated = new EventEmitter();\n this.dirRef = new Map();\n this.dirIo = new Map();\n this.dirsDiffer = this.iterableDiffers.find([]).create((_, def) => def.type);\n }\n get directives() {\n return this.ndcDynamicDirectives || this.ngComponentOutletNdcDynamicDirectives;\n }\n get componentRef() {\n return this.componentInjector?.componentRef;\n }\n get compInstance() {\n return this.componentRef && this.componentRef.instance;\n }\n get isCompChanged() {\n if (this.lastCompInstance !== this.compInstance) {\n this.lastCompInstance = this.compInstance;\n return true;\n }\n return false;\n }\n get hostInjector() {\n return this.componentRef?.injector;\n }\n ngDoCheck() {\n if (this.maybeDestroyDirectives()) {\n return;\n }\n const dirsChanges = this.dirsDiffer.diff(this.directives);\n if (!dirsChanges) {\n return this.updateDirectives();\n }\n this.processDirChanges(dirsChanges);\n }\n ngOnDestroy() {\n this.destroyAllDirectives();\n }\n maybeDestroyDirectives() {\n if (this.isCompChanged || !this.componentRef) {\n this.dirsDiffer.diff([]);\n this.destroyAllDirectives();\n }\n return !this.componentRef;\n }\n processDirChanges(changes) {\n changes.forEachRemovedItem(({\n item\n }) => this.destroyDirective(item));\n const createdDirs = [];\n changes.forEachAddedItem(({\n item\n }) => {\n const dirRef = this.initDirective(item);\n if (dirRef) {\n createdDirs.push(dirRef);\n }\n });\n if (createdDirs.length) {\n this.ndcDynamicDirectivesCreated.emit(createdDirs);\n }\n }\n updateDirectives() {\n this.directives?.forEach(dir => this.updateDirective(dir));\n }\n updateDirective(dirDef) {\n const io = this.dirIo.get(dirDef.type);\n io?.update(dirDef.inputs, dirDef.outputs);\n }\n initDirective(dirDef) {\n if (this.dirRef.has(dirDef.type)) {\n return;\n }\n const instance = this.createDirective(dirDef.type);\n const 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 this.initDirIO(directiveRef, dirDef);\n this.callInitHooks(instance);\n this.dirRef.set(directiveRef.type, directiveRef);\n return directiveRef;\n }\n destroyAllDirectives() {\n this.dirRef.forEach(dir => this.destroyDirRef(dir));\n this.dirRef.clear();\n this.dirIo.clear();\n }\n destroyDirective(dirDef) {\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 initDirIO(dirRef, dirDef) {\n const io = this.ioFactoryService.create({\n componentRef: this.dirToCompDef(dirRef)\n }, {\n trackOutputChanges: true,\n injector: this.injector\n });\n io.update(dirDef.inputs, dirDef.outputs);\n this.dirIo.set(dirRef.type, io);\n }\n dirToCompDef(dirRef) {\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[name] = value\n };\n }\n destroyDirRef(dirRef) {\n this.dirIo.get(dirRef.type)?.ngOnDestroy();\n if (isOnDestroy(dirRef.instance)) {\n dirRef.instance.ngOnDestroy();\n }\n }\n createDirective(dirType) {\n const directiveInjector = Injector.create({\n providers: [{\n provide: dirType,\n useClass: dirType,\n deps: this.resolveDirParamTypes(dirType)\n }, {\n provide: ElementRef,\n useValue: this.componentRef.location\n }],\n parent: this.hostInjector,\n name: `DynamicDirectiveInjector:${dirType.name}@${this.componentRef.componentType.name}`\n });\n return directiveInjector.get(dirType);\n }\n resolveDirParamTypes(dirType) {\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 callInitHooks(obj) {\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 callHook(obj, hook, args = []) {\n if (obj[hook]) {\n obj[hook](...args);\n }\n }\n }\n /** @nocollapse */\n /** @nocollapse */DynamicDirectivesDirective.ɵfac = function DynamicDirectivesDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicDirectivesDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(IoFactoryService), i0.ɵɵdirectiveInject(ReflectService), i0.ɵɵdirectiveInject(DynamicComponentInjectorToken, 8));\n };\n DynamicDirectivesDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DynamicDirectivesDirective,\n selectors: [[\"\", \"ndcDynamicDirectives\", \"\"], [\"\", \"ngComponentOutletNdcDynamicDirectives\", \"\"]],\n inputs: {\n ndcDynamicDirectives: \"ndcDynamicDirectives\",\n ngComponentOutletNdcDynamicDirectives: \"ngComponentOutletNdcDynamicDirectives\"\n },\n outputs: {\n ndcDynamicDirectivesCreated: \"ndcDynamicDirectivesCreated\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([IoFactoryService])]\n });\n return DynamicDirectivesDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @public\n */\nlet DynamicDirectivesModule = /*#__PURE__*/(() => {\n class DynamicDirectivesModule {}\n /** @nocollapse */\n /** @nocollapse */\n /** @nocollapse */DynamicDirectivesModule.ɵfac = function DynamicDirectivesModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DynamicDirectivesModule)();\n };\n DynamicDirectivesModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DynamicDirectivesModule\n });\n DynamicDirectivesModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ComponentOutletInjectorModule]\n });\n return DynamicDirectivesModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ng-dynamic-component\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ComponentOutletInjectorDirective, ComponentOutletInjectorModule, ComponentOutletIoDirective, DynamicAttributesDirective, DynamicAttributesModule, DynamicComponent, DynamicComponentInjectorToken, DynamicDirectivesDirective, DynamicDirectivesModule, DynamicIoDirective, DynamicIoModule, DynamicModule, EventArgumentToken, IoEventArgumentToken, IoEventContextProviderToken, IoEventContextToken, IoFactoryService, IoService, IoServiceOptions, ReflectRef, ReflectService, defaultEventArgumentFactory, dynamicDirectiveDef };\n"],"names":["defaultEventArgumentFactory","IoEventArgumentToken","InjectionToken","IoEventContextToken","IoEventContextProviderToken","DynamicComponentInjectorToken","IoServiceOptions","__ngFactoryType__","ɵɵdefineInjectable","IoService","injector","differs","cfr","options","compInjector","eventArgument","cdr","eventContextProvider","Subject","outputsDiffer","outputs","inputs","changes","compChanged","inputsChanges","outputsChanged","inputsChanged","isFirstChange","compRef","ifInputChanged","name","compInst","p","takeUntil","event","isCompChanged","differ","addRecordKeyToSet","record","eventContextInjector","Injector","processedOutputs","key","outputExpr","outputHandler","output","args","eventIdx","handler","argsWithEvent","io","mapping","newIO","newKey","tplName","map","ɵɵinject","KeyValueDiffers","ComponentFactoryResolver$1","ChangeDetectorRef","DynamicIoDirective","ioService","ɵɵdirectiveInject","ɵɵdefineDirective","ɵɵProvidersFeature","DynamicComponent","vcr","EventEmitter","input","ViewContainerRef","ɵɵdefineComponent","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","rf","ctx"],"mappings":"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","x_google_ignoreList":[0]}