{"version":3,"file":"rxjs-interop.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/take_until_destroyed.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/output_from_observable.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/output_to_observable.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/to_observable.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/to_signal.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/pending_until_event.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/packages/core/rxjs-interop/src/rx_resource.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {assertInInjectionContext, DestroyRef, inject} from '../../src/core';\nimport {MonoTypeOperatorFunction, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/**\n * Operator which completes the Observable when the calling context (component, directive, service,\n * etc) is destroyed.\n *\n * @param destroyRef optionally, the `DestroyRef` representing the current context. This can be\n *     passed explicitly to use `takeUntilDestroyed` outside of an [injection\n * context](guide/di/dependency-injection-context). Otherwise, the current `DestroyRef` is injected.\n *\n * @see [Unsubscribing with takeUntilDestroyed](ecosystem/rxjs-interop/take-until-destroyed)\n *\n * @publicApi 19.0\n */\nexport function takeUntilDestroyed<T>(destroyRef?: DestroyRef): MonoTypeOperatorFunction<T> {\n  if (!destroyRef) {\n    ngDevMode && assertInInjectionContext(takeUntilDestroyed);\n    destroyRef = inject(DestroyRef);\n  }\n\n  const destroyed$ = new Observable<void>((subscriber) => {\n    if (destroyRef.destroyed) {\n      subscriber.next();\n      return;\n    }\n    const unregisterFn = destroyRef.onDestroy(subscriber.next.bind(subscriber));\n    return unregisterFn;\n  });\n\n  return <T>(source: Observable<T>) => {\n    return source.pipe(takeUntil(destroyed$));\n  };\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  assertInInjectionContext,\n  DestroyRef,\n  inject,\n  OutputOptions,\n  OutputRef,\n  OutputRefSubscription,\n  ɵRuntimeError,\n  ɵRuntimeErrorCode,\n} from '../../src/core';\nimport {Observable} from 'rxjs';\n\nimport {takeUntilDestroyed} from './take_until_destroyed';\n\n/**\n * Implementation of `OutputRef` that emits values from\n * an RxJS observable source.\n *\n * @internal\n */\nclass OutputFromObservableRef<T> implements OutputRef<T> {\n  private destroyed = false;\n\n  destroyRef = inject(DestroyRef);\n\n  constructor(private source: Observable<T>) {\n    this.destroyRef.onDestroy(() => {\n      this.destroyed = true;\n    });\n  }\n\n  subscribe(callbackFn: (value: T) => void): OutputRefSubscription {\n    if (this.destroyed) {\n      throw new ɵRuntimeError(\n        ɵRuntimeErrorCode.OUTPUT_REF_DESTROYED,\n        ngDevMode &&\n          'Unexpected subscription to destroyed `OutputRef`. ' +\n            'The owning directive/component is destroyed.',\n      );\n    }\n\n    // Stop yielding more values when the directive/component is already destroyed.\n    const subscription = this.source.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({\n      next: (value) => callbackFn(value),\n    });\n\n    return {\n      unsubscribe: () => subscription.unsubscribe(),\n    };\n  }\n}\n\n/**\n * Declares an Angular output that is using an RxJS observable as a source\n * for events dispatched to parent subscribers.\n *\n * The behavior for an observable as source is defined as followed:\n *    1. New values are forwarded to the Angular output (next notifications).\n *    2. Errors notifications are not handled by Angular. You need to handle these manually.\n *       For example by using `catchError`.\n *    3. Completion notifications stop the output from emitting new values.\n *\n * @usageNotes\n * Initialize an output in your directive by declaring a\n * class field and initializing it with the `outputFromObservable()` function.\n *\n * ```ts\n * @Directive({..})\n * export class MyDir {\n *   nameChange$ = <some-observable>;\n *   nameChange = outputFromObservable(this.nameChange$);\n * }\n * ```\n * @see [RxJS interop with component and directive outputs](ecosystem/rxjs-interop/output-interop)\n *\n * @publicApi 19.0\n */\nexport function outputFromObservable<T>(\n  observable: Observable<T>,\n  opts?: OutputOptions,\n): OutputRef<T> {\n  ngDevMode && assertInInjectionContext(outputFromObservable);\n  return new OutputFromObservableRef<T>(observable);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {OutputRef, ɵgetOutputDestroyRef} from '../../src/core';\nimport {Observable} from 'rxjs';\n\n/**\n * Converts an Angular output declared via `output()` or `outputFromObservable()`\n * to an observable.\n * It creates an observable that represents the stream of \"events firing\" in an output.\n *\n * You can subscribe to the output via `Observable.subscribe` then.\n *\n * @see [RxJS interop with component and directive outputs](ecosystem/rxjs-interop/output-interop)\n *\n * @publicApi 19.0\n */\nexport function outputToObservable<T>(ref: OutputRef<T>): Observable<T> {\n  const destroyRef = ɵgetOutputDestroyRef(ref);\n\n  return new Observable<T>((observer) => {\n    // Complete the observable upon directive/component destroy.\n    // Note: May be `undefined` if an `EventEmitter` is declared outside\n    // of an injection context.\n    const unregisterOnDestroy = destroyRef?.onDestroy(() => observer.complete());\n\n    const subscription = ref.subscribe((v) => observer.next(v));\n    return () => {\n      subscription.unsubscribe();\n      unregisterOnDestroy?.();\n    };\n  });\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  assertInInjectionContext,\n  DestroyRef,\n  effect,\n  inject,\n  Injector,\n  Signal,\n  untracked,\n} from '../../src/core';\nimport {Observable, ReplaySubject} from 'rxjs';\n\n/**\n * Options for `toObservable`.\n *\n * @publicApi 20.0\n */\nexport interface ToObservableOptions {\n  /**\n   * The `Injector` to use when creating the underlying `effect` which watches the signal.\n   *\n   * If this isn't specified, the current [injection context](guide/di/dependency-injection-context)\n   * will be used.\n   */\n  injector?: Injector;\n}\n\n/**\n * Exposes the value of an Angular `Signal` as an RxJS `Observable`.\n * As it reflects a state, the observable will always emit the latest value upon subscription.\n *\n * The signal's value will be propagated into the `Observable`'s subscribers using an `effect`.\n *\n * `toObservable` must be called in an injection context unless an injector is provided via options.\n *\n * @see [RxJS interop with Angular signals](ecosystem/rxjs-interop)\n * @see [Create an RxJS Observable from a signal with toObservable](ecosystem/rxjs-interop#create-an-rxjs-observable-from-a-signal-with-toobservable)\n *\n * @publicApi 20.0\n */\nexport function toObservable<T>(source: Signal<T>, options?: ToObservableOptions): Observable<T> {\n  if (ngDevMode && !options?.injector) {\n    assertInInjectionContext(toObservable);\n  }\n  const injector = options?.injector ?? inject(Injector);\n  const subject = new ReplaySubject<T>(1);\n\n  const watcher = effect(\n    () => {\n      let value: T;\n      try {\n        value = source();\n      } catch (err) {\n        untracked(() => subject.error(err));\n        return;\n      }\n      untracked(() => subject.next(value));\n    },\n    {injector, manualCleanup: true},\n  );\n\n  injector.get(DestroyRef).onDestroy(() => {\n    watcher.destroy();\n    subject.complete();\n  });\n\n  return subject.asObservable();\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  assertInInjectionContext,\n  assertNotInReactiveContext,\n  computed,\n  DestroyRef,\n  inject,\n  Injector,\n  signal,\n  Signal,\n  WritableSignal,\n  ɵRuntimeError,\n  ɵRuntimeErrorCode,\n} from '../../src/core';\nimport {ValueEqualityFn} from '../../primitives/signals';\nimport {Observable, Subscribable} from 'rxjs';\n\n/**\n * Options for `toSignal`.\n *\n * @publicApi 20.0\n */\nexport interface ToSignalOptions<T> {\n  /**\n   * Initial value for the signal produced by `toSignal`.\n   *\n   * This will be the value of the signal until the observable emits its first value.\n   */\n  initialValue?: unknown;\n\n  /**\n   * Whether to require that the observable emits synchronously when `toSignal` subscribes.\n   *\n   * If this is `true`, `toSignal` will assert that the observable produces a value immediately upon\n   * subscription. Setting this option removes the need to either deal with `undefined` in the\n   * signal type or provide an `initialValue`, at the cost of a runtime error if this requirement is\n   * not met.\n   */\n  requireSync?: boolean;\n\n  /**\n   * `Injector` which will provide the `DestroyRef` used to clean up the Observable subscription.\n   *\n   * If this is not provided, a `DestroyRef` will be retrieved from the current [injection\n   * context](guide/di/dependency-injection-context), unless manual cleanup is requested.\n   */\n  injector?: Injector;\n\n  /**\n   * Whether the subscription should be automatically cleaned up (via `DestroyRef`) when\n   * `toSignal`'s creation context is destroyed.\n   *\n   * If manual cleanup is enabled, then `DestroyRef` is not used, and the subscription will persist\n   * until the `Observable` itself completes.\n   */\n  manualCleanup?: boolean;\n\n  /**\n   * A comparison function which defines equality for values emitted by the observable.\n   *\n   * Equality comparisons are executed against the initial value if one is provided.\n   */\n  equal?: ValueEqualityFn<T>;\n\n  /**\n   * A debug name for the signal. Used in Angular DevTools to identify the signal.\n   */\n  debugName?: string;\n}\n\n// Base case: no options -> `undefined` in the result type.\nexport function toSignal<T>(source: Observable<T> | Subscribable<T>): Signal<T | undefined>;\n// Options with `undefined` initial value and no `requiredSync` -> `undefined`.\nexport function toSignal<T>(\n  source: Observable<T> | Subscribable<T>,\n  options: NoInfer<ToSignalOptions<T | undefined>> & {\n    initialValue?: undefined;\n    requireSync?: false;\n  },\n): Signal<T | undefined>;\n// Options with `null` initial value -> `null`.\nexport function toSignal<T>(\n  source: Observable<T> | Subscribable<T>,\n  options: NoInfer<ToSignalOptions<T | null>> & {initialValue?: null; requireSync?: false},\n): Signal<T | null>;\n// Options with `undefined` initial value and `requiredSync` -> strict result type.\nexport function toSignal<T>(\n  source: Observable<T> | Subscribable<T>,\n  options: NoInfer<ToSignalOptions<T>> & {initialValue?: undefined; requireSync: true},\n): Signal<T>;\n// Options with a more specific initial value type.\nexport function toSignal<T, const U extends T>(\n  source: Observable<T> | Subscribable<T>,\n  options: NoInfer<ToSignalOptions<T | U>> & {initialValue: U; requireSync?: false},\n): Signal<T | U>;\n\n/**\n * Get the current value of an `Observable` as a reactive `Signal`.\n *\n * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced\n * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always\n * have the most recent value emitted by the subscription, and will throw an error if the\n * `Observable` errors.\n *\n * With `requireSync` set to `true`, `toSignal` will assert that the `Observable` produces a value\n * immediately upon subscription. No `initialValue` is needed in this case, and the returned signal\n * does not include an `undefined` type.\n *\n * By default, the subscription will be automatically cleaned up when the current [injection\n * context](guide/di/dependency-injection-context) is destroyed. For example, when `toSignal` is\n * called during the construction of a component, the subscription will be cleaned up when the\n * component is destroyed. If an injection context is not available, an explicit `Injector` can be\n * passed instead.\n *\n * If the subscription should persist until the `Observable` itself completes, the `manualCleanup`\n * option can be specified instead, which disables the automatic subscription teardown. No injection\n * context is needed in this configuration as well.\n *\n * @see [RxJS interop with Angular signals](ecosystem/rxjs-interop)\n */\nexport function toSignal<T, U = undefined>(\n  source: Observable<T> | Subscribable<T>,\n  options?: ToSignalOptions<T | U> & {initialValue?: U},\n): Signal<T | U> {\n  typeof ngDevMode !== 'undefined' &&\n    ngDevMode &&\n    assertNotInReactiveContext(\n      toSignal,\n      'Invoking `toSignal` causes new subscriptions every time. ' +\n        'Consider moving `toSignal` outside of the reactive context and read the signal value where needed.',\n    );\n\n  const requiresCleanup = !options?.manualCleanup;\n\n  if (ngDevMode && requiresCleanup && !options?.injector) {\n    assertInInjectionContext(toSignal);\n  }\n\n  const cleanupRef = requiresCleanup\n    ? (options?.injector?.get(DestroyRef) ?? inject(DestroyRef))\n    : null;\n\n  const equal = makeToSignalEqual(options?.equal);\n\n  // Note: T is the Observable value type, and U is the initial value type. They don't have to be\n  // the same - the returned signal gives values of type `T`.\n  let state: WritableSignal<State<T | U>>;\n  if (options?.requireSync) {\n    // Initially the signal is in a `NoValue` state.\n    state = signal(\n      {kind: StateKind.NoValue},\n      {equal, ...(ngDevMode ? createDebugNameObject(options?.debugName, 'state') : undefined)},\n    );\n  } else {\n    // If an initial value was passed, use it. Otherwise, use `undefined` as the initial value.\n    state = signal<State<T | U>>(\n      {kind: StateKind.Value, value: options?.initialValue as U},\n      {equal, ...(ngDevMode ? createDebugNameObject(options?.debugName, 'state') : undefined)},\n    );\n  }\n\n  let destroyUnregisterFn: (() => void) | undefined;\n\n  // Note: This code cannot run inside a reactive context (see assertion above). If we'd support\n  // this, we would subscribe to the observable outside of the current reactive context, avoiding\n  // that side-effect signal reads/writes are attribute to the current consumer. The current\n  // consumer only needs to be notified when the `state` signal changes through the observable\n  // subscription. Additional context (related to async pipe):\n  // https://github.com/angular/angular/pull/50522.\n  const sub = source.subscribe({\n    next: (value) => state.set({kind: StateKind.Value, value}),\n    error: (error) => {\n      state.set({kind: StateKind.Error, error});\n      destroyUnregisterFn?.();\n    },\n    complete: () => {\n      destroyUnregisterFn?.();\n    },\n    // Completion of the Observable is meaningless to the signal. Signals don't have a concept of\n    // \"complete\".\n  });\n\n  if (options?.requireSync && state().kind === StateKind.NoValue) {\n    throw new ɵRuntimeError(\n      ɵRuntimeErrorCode.REQUIRE_SYNC_WITHOUT_SYNC_EMIT,\n      (typeof ngDevMode === 'undefined' || ngDevMode) &&\n        '`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.',\n    );\n  }\n\n  // Unsubscribe when the current context is destroyed, if requested.\n  destroyUnregisterFn = cleanupRef?.onDestroy(sub.unsubscribe.bind(sub));\n\n  // The actual returned signal is a `computed` of the `State` signal, which maps the various states\n  // to either values or errors.\n  return computed(\n    () => {\n      const current = state();\n      switch (current.kind) {\n        case StateKind.Value:\n          return current.value;\n        case StateKind.Error:\n          throw current.error;\n        case StateKind.NoValue:\n          // This shouldn't really happen because the error is thrown on creation.\n          throw new ɵRuntimeError(\n            ɵRuntimeErrorCode.REQUIRE_SYNC_WITHOUT_SYNC_EMIT,\n            (typeof ngDevMode === 'undefined' || ngDevMode) &&\n              '`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.',\n          );\n      }\n    },\n    {\n      equal: options?.equal,\n      ...(ngDevMode ? createDebugNameObject(options?.debugName, 'source') : undefined),\n    },\n  );\n}\n\nfunction makeToSignalEqual<T>(\n  userEquality: ValueEqualityFn<T> = Object.is,\n): ValueEqualityFn<State<T>> {\n  return (a, b) =>\n    a.kind === StateKind.Value && b.kind === StateKind.Value && userEquality(a.value, b.value);\n}\n\n/**\n * Creates a debug name object for an internal toSignal signal.\n */\nfunction createDebugNameObject(\n  toSignalDebugName: string | undefined,\n  internalSignalDebugName: string,\n): {debugName?: string} {\n  return {\n    debugName: `toSignal${toSignalDebugName ? '#' + toSignalDebugName : ''}.${internalSignalDebugName}`,\n  };\n}\n\nconst enum StateKind {\n  NoValue,\n  Value,\n  Error,\n}\n\ninterface NoValueState {\n  kind: StateKind.NoValue;\n}\n\ninterface ValueState<T> {\n  kind: StateKind.Value;\n  value: T;\n}\n\ninterface ErrorState {\n  kind: StateKind.Error;\n  error: unknown;\n}\n\ntype State<T> = NoValueState | ValueState<T> | ErrorState;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {assertInInjectionContext, PendingTasks, inject, Injector} from '../../src/core';\nimport {MonoTypeOperatorFunction, Observable} from 'rxjs';\n\n/**\n * Operator which makes the application unstable until the observable emits, completes, errors, or is unsubscribed.\n *\n * Use this operator in observables whose subscriptions are important for rendering and should be included in SSR serialization.\n *\n * @param injector The `Injector` to use during creation. If this is not provided, the current injection context will be used instead (via `inject`).\n *\n * @developerPreview 20.0\n */\nexport function pendingUntilEvent<T>(injector?: Injector): MonoTypeOperatorFunction<T> {\n  if (injector === undefined) {\n    ngDevMode && assertInInjectionContext(pendingUntilEvent);\n    injector = inject(Injector);\n  }\n  const taskService = injector.get(PendingTasks);\n\n  return (sourceObservable) => {\n    return new Observable<T>((originalSubscriber) => {\n      // create a new task on subscription\n      const removeTask = taskService.add();\n\n      let cleanedUp = false;\n      function cleanupTask() {\n        if (cleanedUp) {\n          return;\n        }\n\n        removeTask();\n        cleanedUp = true;\n      }\n\n      const innerSubscription = sourceObservable.subscribe({\n        next: (v) => {\n          originalSubscriber.next(v);\n          cleanupTask();\n        },\n        complete: () => {\n          originalSubscriber.complete();\n          cleanupTask();\n        },\n        error: (e) => {\n          originalSubscriber.error(e);\n          cleanupTask();\n        },\n      });\n      innerSubscription.add(() => {\n        originalSubscriber.unsubscribe();\n        cleanupTask();\n      });\n      return innerSubscription;\n    });\n  };\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Observable, Subscription} from 'rxjs';\nimport {\n  assertInInjectionContext,\n  BaseResourceOptions,\n  resource,\n  ResourceLoaderParams,\n  ResourceRef,\n  ResourceStreamItem,\n  Signal,\n  signal,\n  ɵRuntimeError,\n  ɵRuntimeErrorCode,\n} from '../../src/core';\nimport {encapsulateResourceError} from '../../src/resource/resource';\nimport {promiseWithResolvers} from '../../src/util/promise_with_resolvers';\n\n/**\n * Like `ResourceOptions` but uses an RxJS-based `loader`.\n *\n * @publicApi 22.0\n */\nexport interface RxResourceOptions<T, R> extends BaseResourceOptions<T, R> {\n  stream: (params: ResourceLoaderParams<R>) => Observable<T>;\n}\n\n/**\n * Like `resource` but uses an RxJS based `loader` which maps the request to an `Observable` of the\n * resource's value.\n *\n * @see [Using rxResource for async data](ecosystem/rxjs-interop#using-rxresource-for-async-data)\n *\n * @publicApi 22.0\n */\nexport function rxResource<T, R>(\n  opts: RxResourceOptions<T, R> & {defaultValue: NoInfer<T>},\n): ResourceRef<T>;\n\n/**\n * Like `resource` but uses an RxJS based `loader` which maps the request to an `Observable` of the\n * resource's value.\n *\n * @publicApi 22.0\n */\nexport function rxResource<T, R>(opts: RxResourceOptions<T, R>): ResourceRef<T | undefined>;\nexport function rxResource<T, R>(opts: RxResourceOptions<T, R>): ResourceRef<T | undefined> {\n  if (ngDevMode && !opts?.injector) {\n    assertInInjectionContext(rxResource);\n  }\n  return resource<T, R>({\n    ...opts,\n    loader: undefined,\n    stream: (params) => {\n      let sub: Subscription | undefined;\n\n      // `abort` can fire synchronously while the subscription is not initialized yet.\n      // Use this flag to unsubscribe immediately once `sub` exists.\n      let aborted = false;\n\n      // Start off stream as undefined.\n      const stream = signal<ResourceStreamItem<T>>({value: undefined as T});\n      const {resolve, promise} = promiseWithResolvers<Signal<ResourceStreamItem<T>>>();\n      let hasResolved = false;\n\n      function resolveOnce(): void {\n        if (!hasResolved) {\n          hasResolved = true;\n          resolve(stream);\n        }\n      }\n\n      // Track the abort listener so it can be removed if the Observable completes (as a memory\n      // optimization).\n      const onAbort = () => {\n        aborted = true;\n        sub?.unsubscribe();\n        // Remove the listener immediately since unsubscribe won't trigger the subscription's\n        // error/complete handlers. This ensures the promise resolves and PendingTask is released.\n        params.abortSignal.removeEventListener('abort', onAbort);\n        // Resolve the promise with the current stream state if it hasn't been resolved yet.\n        // This ensures the PendingTask created for this request is released.\n        resolveOnce();\n      };\n      params.abortSignal.addEventListener('abort', onAbort);\n\n      function send(value: ResourceStreamItem<T>): void {\n        stream.set(value);\n        resolveOnce();\n      }\n\n      const streamFn = opts.stream;\n      if (streamFn === undefined) {\n        throw new ɵRuntimeError(\n          ɵRuntimeErrorCode.MUST_PROVIDE_STREAM_OPTION,\n          ngDevMode && `Must provide \\`stream\\` option.`,\n        );\n      }\n\n      sub = streamFn(params).subscribe({\n        next: (value) => send({value}),\n        error: (error: unknown) => {\n          send({error: encapsulateResourceError(error)});\n          params.abortSignal.removeEventListener('abort', onAbort);\n        },\n        complete: () => {\n          if (!hasResolved) {\n            send({\n              error: new ɵRuntimeError(\n                ɵRuntimeErrorCode.RESOURCE_COMPLETED_BEFORE_PRODUCING_VALUE,\n                ngDevMode && 'Resource completed before producing a value',\n              ),\n            });\n          }\n          params.abortSignal.removeEventListener('abort', onAbort);\n        },\n      });\n\n      if (aborted) {\n        sub.unsubscribe();\n      }\n\n      if (hasResolved) {\n        return stream;\n      }\n\n      return promise;\n    },\n  });\n}\n"],"names":["ɵRuntimeError","ɵgetOutputDestroyRef"],"mappings":"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"}