{"version":3,"file":"ngxtension-effect-once-if.mjs","sources":["../../../../libs/ngxtension/effect-once-if/src/effect-once-if.ts","../../../../libs/ngxtension/effect-once-if/src/ngxtension-effect-once-if.ts"],"sourcesContent":["import {\n\tCreateEffectOptions,\n\teffect,\n\tEffectCleanupRegisterFn,\n\tEffectRef,\n\trunInInjectionContext,\n\tuntracked,\n} from '@angular/core';\nimport { assertInjector } from 'ngxtension/assert-injector';\n\nexport function effectOnceIf<T = any>(\n\tcondition: () => T,\n\texecution: (\n\t\tvalueFromCondition: NonNullable<T>,\n\t\tonCleanup: EffectCleanupRegisterFn,\n\t) => void,\n\toptions?: Omit<CreateEffectOptions, 'manualCleanup'>,\n): EffectRef {\n\tconst assertedInjector = assertInjector(effectOnceIf, options?.injector);\n\treturn runInInjectionContext(assertedInjector, () => {\n\t\tconst effectRef = effect((onCleanup) => {\n\t\t\tconst hasCondition = condition();\n\t\t\tif (hasCondition) {\n\t\t\t\tuntracked(() => execution(hasCondition, onCleanup));\n\t\t\t\teffectRef.destroy();\n\t\t\t}\n\t\t}, options);\n\t\treturn effectRef;\n\t});\n}\n\nexport type EffectOnceIfConditionFn<T> = Parameters<typeof effectOnceIf<T>>[0];\nexport type EffectOnceIfExecutionFn<T> = Parameters<typeof effectOnceIf<T>>[1];\nexport type EffectOnceIfOptions<T> = Parameters<typeof effectOnceIf<T>>[2];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAUgB,YAAY,CAC3B,SAAkB,EAClB,SAGS,EACT,OAAoD,EAAA;IAEpD,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzE,IAAA,OAAO,qBAAqB,CAAC,gBAAgB,EAAE,MAAK;AACnD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,SAAS,KAAI;AACtC,YAAA,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;YACjC,IAAI,YAAY,EAAE;gBACjB,SAAS,CAAC,MAAM,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpD,SAAS,CAAC,OAAO,EAAE,CAAC;aACpB;SACD,EAAE,OAAO,CAAC,CAAC;AACZ,QAAA,OAAO,SAAS,CAAC;AAClB,KAAC,CAAC,CAAC;AACJ;;AC7BA;;AAEG;;;;"}