{"version":3,"file":"ngxd-core.mjs","sources":["../../../projects/core/src/lib/property-def.ts","../../../projects/core/src/lib/hooks/on-changes-hook.ts","../../../projects/core/src/lib/hooks/do-check-hook.ts","../../../projects/core/src/lib/host-input-manager.ts","../../../projects/core/src/lib/host-manager.ts","../../../projects/core/src/lib/ngx-component-outlet-ref.ts","../../../projects/core/src/lib/ngx-component-outlet.ts","../../../projects/core/src/lib/resolver/resolve-pipe.ts","../../../projects/core/src/lib/module.ts","../../../projects/core/src/lib/resolver/resolver.ts","../../../projects/core/src/lib/resolver/provider.ts","../../../projects/core/src/ngxd-core.ts"],"sourcesContent":["export type Disposable = () => void;\n\nexport function hasProperty(context: any, name: string): boolean {\n  if (name in context) {\n    return true;\n  }\n\n  const prototype = Object.getPrototypeOf(context);\n\n  if (prototype) {\n    return hasProperty(prototype, name);\n  }\n\n  return false;\n}\n\nexport function getPropertyDescriptor(context: any, name: string): PropertyDescriptor {\n  const descriptor = Object.getOwnPropertyDescriptor(context, name);\n\n  if (descriptor) {\n    return Object.getOwnPropertyDescriptor(context, name);\n  }\n\n  const prototype = Object.getPrototypeOf(context);\n\n  if (prototype) {\n    return getPropertyDescriptor(prototype, name);\n  }\n\n  return void 0;\n}\n\n/**\n * PropertyDef is a structure that describes a property of a component.\n *\n * insidePropName is the name of the property inside the component, e.g. `value` in `@Input() value: string;`\n * outsidePropName is the name of the property outside the component, e.g. `value` in `<my-component [value]=\"value\"></my-component>`\n */\nexport interface PropertyDef<T> {\n  context: T;\n  dynamicContext: T;\n  hostContext: T;\n  insidePropName: string;\n  outsidePropName: string;\n}\n\nexport function toPropertyDef<T>(\n  context: T,\n  dynamicContext: T,\n  hostContext: T\n): (property: { propName: string; templateName: string }) => PropertyDef<T> {\n  return (property: { propName: string; templateName: string }) => ({\n    context: context,\n    dynamicContext: dynamicContext,\n    hostContext: hostContext,\n    insidePropName: property.propName,\n    outsidePropName: property.templateName,\n  });\n}\n\nexport interface BindingDef<T> extends PropertyDef<T> {\n  defaultDescriptor: PropertyDescriptor;\n}\n","import {OnChanges, SimpleChanges} from \"@angular/core\";\nimport {hasProperty} from \"../property-def\";\n\nexport const SimpleChangesWeakMap = new WeakMap<any, SimpleChanges>();\nexport const WasChangesBeforeWeakMap = new WeakMap<any, Map<string, true>>();\n\nfunction hasOnChangesHook(component: unknown): component is OnChanges {\n  return component && hasProperty(component, 'ngOnChanges');\n}\n\nexport function runOnChangesHook(context: unknown): void {\n  const simpleChanges = SimpleChangesWeakMap.get(context);\n\n  if (simpleChanges != null && hasOnChangesHook(context)) {\n    context.ngOnChanges(simpleChanges);\n  }\n\n  SimpleChangesWeakMap.set(context, null);\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ComponentRef,\n  DoCheck,\n  ViewContainerRef,\n} from '@angular/core';\nimport {Disposable} from '../property-def';\nimport {runOnChangesHook} from \"./on-changes-hook\";\n\n@Component({\n  selector: 'ngxd-do-check-hook',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DoCheckHook implements DoCheck {\n  private context: unknown;\n  private changeDetectorRef: ChangeDetectorRef;\n\n  ngDoCheck() {\n    if (this.context) {\n      runOnChangesHook(this.context);\n    }\n\n    if (this.changeDetectorRef) {\n      this.changeDetectorRef.markForCheck();\n    }\n  }\n\n  attach<TComponent>(componentRef: ComponentRef<TComponent>): void {\n    this.context = componentRef.instance;\n    this.changeDetectorRef = componentRef.changeDetectorRef;\n  }\n\n  static attach<TComponent>(\n    componentRef: ComponentRef<TComponent>,\n    viewContainerRef: ViewContainerRef,\n  ): Disposable {\n    const doCheckComponentRef = viewContainerRef.createComponent(DoCheckHook);\n\n    doCheckComponentRef.instance.attach(componentRef);\n\n    return () => doCheckComponentRef.destroy();\n  }\n}\n","import { isDevMode } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { getPropertyDescriptor } from './property-def';\n\nexport class HostInputManager<TComponent> {\n  static hostInputManagerMap = new WeakMap<any, Map<string, HostInputManager<any>>>();\n\n  changes: Subject<any>;\n  defaultDescriptor: PropertyDescriptor;\n  value: any;\n  refCount: number;\n  disposed = false;\n\n  constructor(private host: TComponent, private name: string) {\n    if (HostInputManager.hostInputManagerMap.has(host)) {\n      const inputs = HostInputManager.hostInputManagerMap.get(host);\n      if (inputs.has(name)) {\n        return inputs.get(name);\n      }\n    }\n\n    if (!HostInputManager.hostInputManagerMap.has(host)) {\n      HostInputManager.hostInputManagerMap.set(host, new Map<string, HostInputManager<any>>());\n    }\n    HostInputManager.hostInputManagerMap.get(host).set(name, this);\n\n    this.changes = new Subject<any>();\n    this.defaultDescriptor = getPropertyDescriptor(host, name);\n\n    if (this.defaultDescriptor && this.defaultDescriptor.get && !this.defaultDescriptor.set) {\n      if (isDevMode()) {\n        const constructorName = (host as any).constructor.name;\n        console.log(`You should use get and set descriptors both with dynamic components:\nERROR: not found '${name}' input, it has setter only, please add getter!\n\n  class ${constructorName} {\n\n    // Please add that 👇\n    get ${name}() { ... }\n\n    set ${name}() { ... }\n\n  }`);\n      }\n    }\n    this.refCount = 0;\n\n    const defaultValue = host[name];\n\n    Object.defineProperty(host, name, {\n      get: () => {\n        if (this.defaultDescriptor && this.defaultDescriptor.get) {\n          return this.defaultDescriptor.get.call(host);\n        }\n        return this.value;\n      },\n      set: (value: any) => {\n        if (this.defaultDescriptor && this.defaultDescriptor.set) {\n          this.defaultDescriptor.set.call(host, value);\n        }\n\n        this.value = value;\n        this.changes.next(value);\n      },\n      configurable: true,\n    });\n\n    if (typeof defaultValue !== 'undefined') {\n      host[name] = defaultValue;\n    }\n  }\n\n  attach(): void {\n    this.refCount++;\n  }\n\n  detach(): void {\n    this.refCount--;\n\n    if (this.refCount <= 0) {\n      this.dispose();\n    }\n  }\n\n  private dispose(): void {\n    const defaultValue = this.host[this.name];\n\n    this.disposed = true;\n    this.changes.complete();\n    HostInputManager.hostInputManagerMap.get(this.host).delete(this.name);\n\n    if (this.defaultDescriptor) {\n      if (this.defaultDescriptor.writable) {\n        this.defaultDescriptor.value = defaultValue;\n      }\n      Object.defineProperty(this.host, this.name, this.defaultDescriptor);\n      if (this.defaultDescriptor.set) {\n        this.host[this.name] = defaultValue;\n      }\n    } else {\n      delete this.host[this.name];\n      this.host[this.name] = defaultValue;\n    }\n  }\n}\n","import { PropertyDef, BindingDef } from './property-def';\nimport { HostInputManager } from './host-input-manager';\n\nexport class HostManager<TComponent> {\n  static hostManagerMap = new WeakMap<any, HostManager<any>>();\n\n  inputs: Map<string, HostInputManager<TComponent>>;\n  state: any;\n  refCount: number;\n\n  constructor(private host: TComponent) {\n    if (HostManager.hostManagerMap.has(host)) {\n      return HostManager.hostManagerMap.get(host);\n    }\n\n    this.inputs = new Map<string, HostInputManager<TComponent>>();\n    this.state = {};\n    this.refCount = 0;\n\n    HostManager.hostManagerMap.set(host, this);\n  }\n\n  attach(): void {\n    this.refCount++;\n  }\n\n  attachInput(propertyDef: PropertyDef<TComponent>): BindingDef<TComponent> {\n    const hostInputManager = new HostInputManager<TComponent>(this.host, propertyDef.outsidePropName);\n    hostInputManager.attach();\n    this.inputs.set(propertyDef.outsidePropName, hostInputManager);\n    return { ...propertyDef, defaultDescriptor: hostInputManager.defaultDescriptor };\n  }\n\n  getInputManager(bindingDef: BindingDef<TComponent>): HostInputManager<TComponent> {\n    return this.inputs.get(bindingDef.outsidePropName);\n  }\n\n  detachInput(bindingDef: BindingDef<TComponent>): void {\n    const hostInputManager = this.inputs.get(bindingDef.outsidePropName);\n    hostInputManager.detach();\n\n    if (hostInputManager.disposed) {\n      this.inputs.delete(bindingDef.outsidePropName);\n    }\n  }\n\n  detach(): void {\n    this.refCount--;\n\n    if (this.refCount <= 0) {\n      HostManager.hostManagerMap.delete(this.host);\n    }\n  }\n}\n","import {\n  ChangeDetectorRef, ComponentMirror,\n  ComponentRef, createComponent, createEnvironmentInjector, EnvironmentInjector, Injector,\n  isDevMode, reflectComponentType,\n  SimpleChange, SimpleChanges,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { BindingDef, Disposable, PropertyDef, toPropertyDef } from './property-def';\nimport { HostManager } from './host-manager';\nimport {DoCheckHook} from './hooks/do-check-hook';\nimport {SimpleChangesWeakMap, WasChangesBeforeWeakMap} from \"./hooks/on-changes-hook\";\n\nexport interface NgxComponentOutletRefConfig<TComponent> {\n  componentMirror: ComponentMirror<TComponent>;\n  componentRef: ComponentRef<TComponent>;\n  host: TComponent;\n}\n\nexport class NgxComponentOutletRef<TComponent> {\n  componentMirror: ComponentMirror<TComponent>;\n  componentRef: ComponentRef<TComponent>;\n  host: TComponent;\n  context: TComponent = {} as TComponent;\n\n  private changeDetectorRef: ChangeDetectorRef;\n  private attachedInputs: Subscription[] = [];\n  private attachedOutputs: Subscription[] = [];\n  private propertyDefs: PropertyDef<TComponent>[] = [];\n  private bindingDefs: BindingDef<TComponent>[] = [];\n\n  private hostManager: HostManager<TComponent>;\n  private detachLifecycle?: Disposable;\n\n  public static create<TComponent>(\n    componentType: Type<TComponent>,\n    viewContainerRef: ViewContainerRef,\n    injector: Injector,\n    projectableNodes: any[][],\n    host: TComponent,\n  ): NgxComponentOutletRef<TComponent> {\n    const componentMirror: ComponentMirror<TComponent> = reflectComponentType(componentType);\n\n    const environmentInjector = createEnvironmentInjector([], injector as EnvironmentInjector);\n    const componentRef: ComponentRef<TComponent> = createComponent(componentType, {\n      environmentInjector: environmentInjector,\n      projectableNodes\n    });\n\n    const ngxComponentOutletRef = new NgxComponentOutletRef(\n      {\n        componentMirror: componentMirror,\n        componentRef,\n        host,\n      },\n      viewContainerRef,\n    );\n\n    viewContainerRef.insert(componentRef.hostView, viewContainerRef.length);\n\n    return ngxComponentOutletRef;\n  }\n\n  private constructor(\n    config: NgxComponentOutletRefConfig<TComponent>,\n    private viewContainerRef: ViewContainerRef,\n  ) {\n    this.componentMirror = config.componentMirror;\n    this.componentRef = config.componentRef;\n    this.host = config.host;\n    this.changeDetectorRef = this.componentRef.injector.get<ChangeDetectorRef>(\n      ChangeDetectorRef as Type<ChangeDetectorRef>,\n      this.componentRef.changeDetectorRef\n    );\n    this.propertyDefs = this.componentMirror.inputs.map(\n      toPropertyDef(this.context, this.componentRef.instance, this.host)\n    );\n\n    this.attachHost();\n    this.attachInputs();\n    this.attachLifecycle();\n    this.attachOutputs();\n  }\n\n  dispose(): void {\n    this.disposeOutputs();\n    this.disposeInputs();\n    this.detachHost();\n\n    if (this.componentRef) {\n      this.componentRef.destroy();\n      this.componentRef = null;\n    }\n\n    if (this.detachLifecycle) {\n      this.detachLifecycle();\n      this.detachLifecycle = null;\n    }\n  }\n\n  updateContext(context: Partial<TComponent>): void {\n    const contextProps = context ? Object.keys(context) : [];\n    for (const contextPropName of contextProps) {\n      const bindingDef = this.getBindingDef(contextPropName);\n      if (bindingDef) {\n        this.detachHostInput(bindingDef);\n      }\n\n      const propertyDef = this.getPropertyDef(contextPropName);\n      if (propertyDef && this.context[propertyDef.outsidePropName] !== context[contextPropName]) {\n        this.context[propertyDef.outsidePropName] = context[contextPropName];\n      }\n    }\n\n    const unattachedProps = this.propertyDefs.filter(\n      propertyDef =>\n        !(\n          contextProps.indexOf(propertyDef.outsidePropName) > -1 ||\n          this.getBindingDef(propertyDef.outsidePropName)\n        )\n    );\n    for (const propertyDef of unattachedProps) {\n      const bindingDef: BindingDef<TComponent> = this.attachHostInput(propertyDef);\n      this.attachInput(bindingDef);\n    }\n  }\n\n  private getPropertyDef(outsidePropName: string): PropertyDef<TComponent> {\n    return this.propertyDefs.find(_ => _.outsidePropName === outsidePropName);\n  }\n\n  private getBindingDef(outsidePropName: string): BindingDef<TComponent> {\n    return this.bindingDefs.find(_ => _.outsidePropName === outsidePropName);\n  }\n\n  private attachHost(): void {\n    this.hostManager = new HostManager<TComponent>(this.host);\n    this.hostManager.attach();\n  }\n\n  private detachHost(): void {\n    this.hostManager.detach();\n    this.hostManager = null;\n  }\n\n  private attachHostInput(propertyDef: PropertyDef<TComponent>): BindingDef<TComponent> {\n    const bindingDef: BindingDef<TComponent> = this.hostManager.attachInput(propertyDef);\n    this.bindingDefs.push(bindingDef);\n    return bindingDef;\n  }\n\n  private detachHostInput(bindingDef: BindingDef<TComponent>): void {\n    this.hostManager.detachInput(bindingDef);\n    this.bindingDefs = this.bindingDefs.filter(_ => _ !== bindingDef);\n  }\n\n  private attachInputs(): void {\n    this.bindingDefs = [];\n    for (const propertyDef of this.propertyDefs) {\n      const bindingDef: BindingDef<TComponent> = this.attachHostInput(propertyDef);\n      this.attachContextPropertyToComponentInput(bindingDef);\n      this.attachInput(bindingDef);\n    }\n  }\n\n  private attachInput(bindingDef: BindingDef<TComponent>) {\n    const host = this.host;\n    const hostManager = this.hostManager;\n    const context: Partial<TComponent> = this.context;\n    const defaultValue = host[bindingDef.outsidePropName];\n\n    if (typeof defaultValue !== 'undefined') {\n      context[bindingDef.outsidePropName] = defaultValue;\n    }\n\n    const subscription = hostManager.getInputManager(bindingDef).changes.subscribe(value => {\n      context[bindingDef.outsidePropName] = value;\n    });\n\n    this.attachedInputs.push(subscription);\n  }\n\n  private attachContextPropertyToComponentInput(bindingDef: BindingDef<TComponent>): void {\n    const { insidePropName, outsidePropName, defaultDescriptor } = bindingDef;\n    Object.defineProperty(bindingDef.context, outsidePropName, {\n      get: () => {\n        if (defaultDescriptor && defaultDescriptor.get) {\n          return defaultDescriptor.get.call(bindingDef.context);\n        } else {\n          return bindingDef.dynamicContext[insidePropName];\n        }\n      },\n      set: (value: any) => {\n        if (bindingDef.dynamicContext[insidePropName] === value) {\n          return void 0;\n        }\n\n        let simpleChanges: SimpleChanges = SimpleChangesWeakMap.get(bindingDef.dynamicContext);\n\n        if (simpleChanges == null) {\n          simpleChanges = {};\n          SimpleChangesWeakMap.set(bindingDef.dynamicContext, simpleChanges);\n        }\n\n        if (!WasChangesBeforeWeakMap.has(bindingDef.dynamicContext)) {\n          WasChangesBeforeWeakMap.set(bindingDef.dynamicContext, new Map());\n        }\n        const isFirstChange = !WasChangesBeforeWeakMap.get(bindingDef.dynamicContext).get(outsidePropName);\n        WasChangesBeforeWeakMap.get(bindingDef.dynamicContext).set(outsidePropName, true);\n\n        simpleChanges[outsidePropName] = new SimpleChange(\n          bindingDef.dynamicContext[insidePropName],\n          value,\n          isFirstChange\n        );\n\n        if (defaultDescriptor && defaultDescriptor.set) {\n          defaultDescriptor.set.call(bindingDef.hostContext, value);\n        }\n\n        try {\n          bindingDef.dynamicContext[insidePropName] = value;\n        } catch (e) {\n          if (isDevMode()) {\n            const constructorName = (bindingDef.dynamicContext as any).constructor.name;\n            console.log(`You should use get and set descriptors both with dynamic components:\nERROR: not found '${insidePropName}' input, it has getter only, please add setter!\n\n  class ${constructorName} {\n\n    get ${insidePropName}() { ... }\n\n    // Please add that 👇\n    set ${insidePropName}() { ... }\n\n  }`);\n            console.error(e);\n          }\n        }\n        this.changeDetectorRef.markForCheck();\n      },\n    });\n  }\n\n  private attachLifecycle(): void {\n    this.detachLifecycle = DoCheckHook.attach(\n      this.componentRef,\n      this.viewContainerRef,\n    );\n  }\n\n  private disposeInputs(): void {\n    for (const bindingDef of this.bindingDefs) {\n      this.detachHostInput(bindingDef);\n    }\n\n    for (const subscription of this.attachedInputs) {\n      subscription.unsubscribe();\n    }\n\n    this.attachedInputs.splice(0);\n  }\n\n  private attachOutputs(): void {\n    const propertyDefs = this.componentMirror.outputs.map(\n      toPropertyDef(this.context, this.componentRef.instance, this.host)\n    );\n    for (const propertyDef of propertyDefs) {\n      if (propertyDef.outsidePropName in (this.host as object)) {\n        const subscription = this.componentRef.instance[propertyDef.insidePropName].subscribe(\n          this.host[propertyDef.outsidePropName]\n        );\n        this.attachedOutputs.push(subscription);\n      }\n    }\n  }\n\n  private disposeOutputs(): void {\n    for (const subscription of this.attachedOutputs) {\n      subscription.unsubscribe();\n    }\n    this.attachedOutputs.splice(0);\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  EmbeddedViewRef,\n  EventEmitter,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  Type,\n  ViewContainerRef,\n} from '@angular/core';\n\nimport {NgxComponentOutletRef} from './ngx-component-outlet-ref';\n\n@Directive({selector: '[ngxComponentOutlet]'})\nexport class NgxComponentOutletDirective implements OnChanges, OnDestroy {\n  @Input() ngxComponentOutlet: Type<any> | null;\n  @Input() ngxComponentOutletInjector: Injector | null;\n  @Input() ngxComponentOutletContent: any[][] | null;\n  @Input() ngxComponentOutletContext: any | null;\n\n  @Output() ngxComponentOutletActivate = new EventEmitter<any>();\n  @Output() ngxComponentOutletDeactivate = new EventEmitter<any>();\n\n  private ngxComponentOutletRef: NgxComponentOutletRef<any>;\n\n  private _host: any;\n\n  private get host(): any {\n    if (this._host) {\n      return this._host;\n    }\n\n    const {context} = this.changeDetectorRef as EmbeddedViewRef<any>;\n\n    return (this._host = context);\n  }\n\n  private get injector(): Injector {\n    return this.ngxComponentOutletInjector || this.viewContainerRef.injector;\n  }\n\n  constructor(\n    private readonly viewContainerRef: ViewContainerRef,\n    private readonly changeDetectorRef: ChangeDetectorRef\n  ) {\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.ngxComponentOutlet || changes.ngxComponentOutletInjector) {\n      this.destroyNgxComponentOutletRef();\n      this.createNgxComponentOutletRef();\n    }\n\n    if (changes.ngxComponentOutletContext) {\n      this.updateContext();\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroyNgxComponentOutletRef();\n  }\n\n  private updateContext() {\n    if (this.ngxComponentOutletRef) {\n      this.ngxComponentOutletRef.updateContext(this.ngxComponentOutletContext);\n    }\n  }\n\n  private createNgxComponentOutletRef() {\n    if (this.ngxComponentOutlet) {\n      this.ngxComponentOutletRef = NgxComponentOutletRef.create(\n        this.ngxComponentOutlet,\n        this.viewContainerRef,\n        this.injector,\n        this.ngxComponentOutletContent,\n        this.host,\n      );\n      if (this.ngxComponentOutletContext) {\n        this.updateContext();\n      }\n      this.ngxComponentOutletActivate.emit(this.ngxComponentOutletRef.componentRef.instance);\n    }\n  }\n\n  private destroyNgxComponentOutletRef() {\n    if (this.ngxComponentOutletRef) {\n      this.ngxComponentOutletDeactivate.emit(this.ngxComponentOutletRef.componentRef.instance);\n      this.ngxComponentOutletRef.dispose();\n      this.ngxComponentOutletRef = null;\n    }\n  }\n}\n","import { Pipe, PipeTransform, Type } from '@angular/core';\n\n@Pipe({ name: 'resolve', pure: true })\nexport class NgxComponentOutletResolvePipe implements PipeTransform {\n  transform<TEntity, TComponent>(\n    resolver: { resolve: (type: TEntity) => Type<TComponent> },\n    value: TEntity\n  ): Type<TComponent> {\n    return resolver && resolver.resolve(value);\n  }\n}\n","import {NgModule} from '@angular/core';\n\nimport {DoCheckHook} from './hooks/do-check-hook';\nimport {NgxComponentOutletDirective} from './ngx-component-outlet';\nimport {NgxComponentOutletResolvePipe} from './resolver/resolve-pipe';\n\n@NgModule({\n  declarations: [\n    NgxComponentOutletDirective,\n    NgxComponentOutletResolvePipe,\n    DoCheckHook,\n  ],\n  exports: [NgxComponentOutletDirective, NgxComponentOutletResolvePipe],\n})\nexport class NgxdModule {\n}\n","import { Type } from '@angular/core';\nimport { NgxdProvider } from './provider';\n\nexport abstract class NgxdResolver<TType, TComponent> {\n  private config: Map<TType | Type<TType>, Type<TComponent>>;\n\n  protected constructor(providers: NgxdProvider<TType, TComponent>[] = []) {\n    this.config = providers.reduce(\n      (config, provider) => config.set(provider.type, provider.component),\n      new Map()\n    );\n  }\n\n  resolve(type: TType): Type<TComponent> | null {\n    if (type && type.constructor) {\n      return this.config.get(type.constructor as Type<TType>) || this.config.get(type) || null;\n    }\n\n    return this.config.get(type) || null;\n  }\n}\n","import { InjectionToken, Type, ValueProvider } from '@angular/core';\n\nexport abstract class NgxdProvider<TType, TComponent> {\n  type: TType | Type<TType>;\n  component: TComponent;\n}\n\nexport type DynamicFn<TType, TComponent> = (\n  provider: NgxdProvider<TType, TComponent>\n) => ValueProvider;\n\nexport function Dynamic<TType, TComponent>({\n  token,\n}: { token?: InjectionToken<NgxdProvider<TType, TComponent>> } = {}): DynamicFn<TType, TComponent> {\n  return function(provider: NgxdProvider<TType, TComponent>): ValueProvider {\n    return { provide: token, useValue: provider, multi: true };\n  };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}