{"version":3,"file":"ngxtension-rx-effect.mjs","sources":["../../../../libs/ngxtension/rx-effect/src/rx-effect.ts","../../../../libs/ngxtension/rx-effect/src/ngxtension-rx-effect.ts"],"sourcesContent":["import type { DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n\tidentity,\n\tObservable,\n\tSubscription,\n\ttap,\n\ttype TapObserver,\n} from 'rxjs';\n\ntype Effect<T> = Partial<TapObserver<T>> | ((value: T) => void);\ntype RxEffectOptions = { destroyRef: DestroyRef };\n\nexport function rxEffect<T>(\n\tsource: Observable<T>,\n\teffect: Effect<T>,\n\toptions?: RxEffectOptions,\n): Subscription;\nexport function rxEffect<T>(\n\tsource: Observable<T>,\n\toptions?: RxEffectOptions,\n): Subscription;\nexport function rxEffect<T>(\n\tsource: Observable<T>,\n\teffectOrOptions?: Effect<T> | RxEffectOptions,\n\toptions?: RxEffectOptions,\n) {\n\tconst effect =\n\t\teffectOrOptions && 'destroyRef' in effectOrOptions\n\t\t\t? undefined\n\t\t\t: effectOrOptions;\n\n\toptions ??= effect ? options : (effectOrOptions as RxEffectOptions);\n\n\treturn source\n\t\t.pipe(\n\t\t\teffect ? tap(effect) : identity,\n\t\t\ttakeUntilDestroyed(options?.destroyRef),\n\t\t)\n\t\t.subscribe();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAsBgB,QAAQ,CACvB,MAAqB,EACrB,eAA6C,EAC7C,OAAyB,EAAA;AAEzB,IAAA,MAAM,MAAM,GACX,eAAe,IAAI,YAAY,IAAI,eAAe;AACjD,UAAE,SAAS;UACT,eAAe,CAAC;IAEpB,OAAO,KAAK,MAAM,GAAG,OAAO,GAAI,eAAmC,CAAC;AAEpE,IAAA,OAAO,MAAM;SACX,IAAI,CACJ,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,EAC/B,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CACvC;AACA,SAAA,SAAS,EAAE,CAAC;AACf;;ACxCA;;AAEG;;;;"}