ng-dynamic-component
Version:
> Dynamic components with full life-cycle support for inputs and outputs
1 lines • 3.22 kB
Source Map (JSON)
{"version":3,"file":"ng-dynamic-component-signal-component-io.mjs","sources":["../../../projects/ng-dynamic-component/signal-component-io/src/lib/signal-component-io.ts","../../../projects/ng-dynamic-component/signal-component-io/src/lib/signal-component-io.module.ts","../../../projects/ng-dynamic-component/signal-component-io/src/ng-dynamic-component-signal-component-io.ts"],"sourcesContent":["import { ComponentRef, Injectable } from '@angular/core';\n// @ts-ignore\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { ComponentIO, ComponentInputKey } from 'ng-dynamic-component';\nimport { Observable, isObservable } from 'rxjs';\n\n/** @internal */\n@Injectable()\nexport class SignalComponentIO implements ComponentIO {\n setInput<T, K extends ComponentInputKey<T>>(\n componentRef: ComponentRef<T>,\n name: K,\n value: T[K],\n ): void {\n componentRef.setInput(name, value);\n }\n\n getOutput<T, K extends ComponentInputKey<T>>(\n componentRef: ComponentRef<T>,\n name: K,\n ): Observable<unknown> {\n const output = componentRef.instance[name];\n\n if (isObservable(output)) {\n return output;\n }\n\n if (this.isOutputSignal(output)) {\n return outputToObservable(output);\n }\n\n throw new Error(`Component ${name} is not an output!`);\n }\n\n private isOutputSignal(value: unknown): boolean {\n return value != null && typeof (value as any)['subscribe'] === 'function';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ComponentIO } from 'ng-dynamic-component';\nimport { SignalComponentIO } from './signal-component-io';\n\n/**\n * Enables signal based inputs/outputs support for dynamically rendered components.\n * Import once at the root of your application.\n * @public\n */\n@NgModule({\n providers: [{ provide: ComponentIO, useClass: SignalComponentIO }],\n})\nexport class SignalComponentIoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAMA;MAEa,iBAAiB,CAAA;AAC5B,IAAA,QAAQ,CACN,YAA6B,EAC7B,IAAO,EACP,KAAW,EAAA;AAEX,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACpC;IAED,SAAS,CACP,YAA6B,EAC7B,IAAO,EAAA;QAEP,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE3C,QAAA,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;AACxB,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAC/B,YAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAA,kBAAA,CAAoB,CAAC,CAAC;KACxD;AAEO,IAAA,cAAc,CAAC,KAAc,EAAA;QACnC,OAAO,KAAK,IAAI,IAAI,IAAI,OAAQ,KAAa,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC;KAC3E;;iIA5BU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qIAAjB,iBAAiB,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACHX;;;;AAIG;MAIU,uBAAuB,CAAA;;uIAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;wIAAvB,uBAAuB,EAAA,CAAA,CAAA;wIAAvB,uBAAuB,EAAA,SAAA,EAFvB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,EAAA,CAAA,CAAA;2FAEvD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AACnE,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}