{"version":3,"file":"chunk-mlt0a1cp.js","sources":["node_modules/@rx-angular/cdk/fesm2022/cdk-notifications.mjs","node_modules/@rx-angular/template/fesm2022/template-if.mjs"],"sourcesContent":["import { NEVER, ReplaySubject, Observable, from, isObservable, Subject } from 'rxjs';\nimport { materialize, tap, map, startWith, distinctUntilChanged, switchMap, mergeAll, share } from 'rxjs/operators';\nimport { coerceAllFactory } from '@rx-angular/cdk/coercing';\nfunction toRxErrorNotification(error, value) {\n  return {\n    value,\n    kind: \"error\" /* RxNotificationKind.Error */,\n    hasValue: !!value || false,\n    complete: false,\n    error: error || true\n  };\n}\nfunction toRxSuspenseNotification(value) {\n  return {\n    value,\n    kind: \"suspense\" /* RxNotificationKind.Suspense */,\n    hasValue: !!value || false,\n    complete: false,\n    error: false\n  };\n}\nfunction toRxCompleteNotification(value) {\n  return {\n    value,\n    kind: \"complete\" /* RxNotificationKind.Complete */,\n    hasValue: !!value || false,\n    complete: true,\n    error: false\n  };\n}\nfunction rxMaterialize() {\n  return o$ => o$.pipe(materialize(), tap(({\n    kind,\n    error\n  }) => {\n    // As we dont want to just swallow errors we log them here\n    if (kind === 'E') {\n      console.error(error);\n    }\n  }), map(({\n    value,\n    error,\n    kind,\n    hasValue\n  }) => {\n    const rxNotificationKind = notificationKindToRxNotificationKind(kind);\n    return {\n      value,\n      hasValue,\n      error,\n      kind: rxNotificationKind,\n      complete: rxNotificationKind === \"complete\" /* RxNotificationKind.Complete */\n    };\n  }));\n}\n/**\n * @internal\n *\n * @description\n * This function is here to turn RxJS notification kind values into RxNotification kind names.\n * The main reason for the naming is the RxNotification kind values map directly to the default\n * template names (`suspense`, `next`, `error` `complete`) in the directives of the template package\n */\nfunction notificationKindToRxNotificationKind(kind) {\n  switch (kind) {\n    case 'C':\n      return \"complete\" /* RxNotificationKind.Complete */;\n    case 'E':\n      return \"error\" /* RxNotificationKind.Error */;\n    case 'N':\n    default:\n      return \"next\" /* RxNotificationKind.Next */;\n  }\n}\n\n/**\n * @description\n * Sends value and an initial `undefined` as value With a NEVER.\n * This is needed to render the suspense template and avoid completing (and render the complete template).\n * @param value\n */\nconst emitAndDontComplete = value => NEVER.pipe(startWith(value));\n/**\n * This helper is responsible for turning a stream of materialized notifications\n * (next error, complete as object in the next stream) into an enriched version with an additional suspense\n * notification type.\n *\n * If a notification enters and is of type next we store tne value of `notification.next` as last value emitted.\n * This value is important in the template to show an e.g. error and also have access to the last emitted value of\n * next.\n * The value can be very useful in error or complete messages or to display the old value overlays by a loading spinner\n * in case of the suspense state.\n *\n * If a notification of kind `next` enters and its value is undefined we turn it into a suspense notification\n * If a notification of kind `error`, `complete`, `suspense` enters we take the last value from of a next notification\n * and assign it as new value to the notification\n */\nconst handleSuspenseAndLastValueInNotifications = () => {\n  // Used to store the last value per handleSuspenseAndLastValueInNotifications call\n  let latestNextValue;\n  // returns a projection function with a lastValue cache\n  return notification => {\n    // if it is the notification is of type next we take its value\n    // otherwise we keep the existing last value\n    if (notification.kind === \"next\" /* RxNotificationKind.Next */) {\n      latestNextValue = notification.value;\n    }\n    // If a next notification enters with a value of undefined we turn it into a suspense notification\n    if (notification.kind === \"next\" /* RxNotificationKind.Next */ && notification.value === undefined) {\n      return toRxSuspenseNotification(undefined);\n    }\n    // If a Notification of type error, complete or suspense enters we assign the latest last value to them.\n    // This is needed to access the old value in case of error or complete.\n    // Next notifications will pass as they are.\n    if (notification.kind === \"error\" /* RxNotificationKind.Error */ || notification.kind === \"complete\" /* RxNotificationKind.Complete */ || notification.kind === \"suspense\" /* RxNotificationKind.Suspense */) {\n      notification.value = latestNextValue;\n    }\n    return notification;\n  };\n};\n/**\n * @internal\n *\n * @description\n * This factory function returns an object that can be driven imperatively over a `next` method.\n * Internally it prepares the incoming values for rendering by turning them into \"template notifications\",\n * an extended `ObservableNotification` object used to determine the respective template for values, errors, completing\n *   or suspense states.\n *\n * Internally it handles different edge cases for initial emits. This helps to have or template creation lazy.\n * Also it maps any Observable to RxNotifications. These notifications are bound to the view later and handle the\n *   display of the default template as well as the suspense, error, complete templates.\n */\nfunction createTemplateNotifier() {\n  // A Subject driven from the outside, it can contain Observables, static values null and undefined on purpose of from unassigned properties\n  const observablesSubject = new ReplaySubject(1);\n  let emittedValueOnce = false;\n  const values$ = observablesSubject.pipe(distinctUntilChanged(),\n  // handle static values inc null assignment and new Observable or Promises\n  map(observable$ => {\n    if (isObservableInput(observable$)) {\n      return skipSuspenseIfHasValue(observable$);\n    } else if (isSubscribableInput(observable$)) {\n      return skipSuspenseIfHasValue(mapSubscribableToObservable(observable$));\n    } else if (!emittedValueOnce && observable$ === undefined) {\n      return NEVER;\n    }\n    return emitAndDontComplete(observable$);\n  }), switchMap(o => {\n    return o.pipe(tap(() => emittedValueOnce = true), distinctUntilChanged(), rxMaterialize(), map(handleSuspenseAndLastValueInNotifications()));\n  }));\n  return {\n    next(observable) {\n      observablesSubject.next(observable);\n    },\n    withInitialSuspense(withInitialSuspense) {\n      emittedValueOnce = emittedValueOnce || withInitialSuspense;\n    },\n    values$\n  };\n  /**\n   * @description\n   * returns an observable that starts with an undefined value in case the input\n   * observable$ does not emit a value immediately.\n   * This is needed in order to skip the suspense template when we already know\n   * there will be a next template rendered afterwards\n   * @param observable$\n   */\n  function skipSuspenseIfHasValue(observable$) {\n    return new Observable(subscriber => {\n      let startWithUndefined = true;\n      const inner = from(observable$).subscribe({\n        next: v => {\n          startWithUndefined = false;\n          subscriber.next(v);\n        },\n        error: e => {\n          startWithUndefined = false;\n          subscriber.error(e);\n        },\n        complete: () => subscriber.complete()\n      });\n      if (emittedValueOnce && startWithUndefined) {\n        subscriber.next(undefined);\n      }\n      return () => {\n        inner.unsubscribe();\n      };\n    });\n  }\n}\nfunction isObservableInput(input) {\n  return typeof input?.then === 'function' || isObservable(input);\n}\nfunction isSubscribableInput(input) {\n  return typeof input?.subscribe === 'function';\n}\nfunction mapSubscribableToObservable(input) {\n  return new Observable(subscriber => {\n    const sub = input.subscribe({\n      next: value => subscriber.next(value)\n    });\n    return () => {\n      sub.unsubscribe();\n    };\n  });\n}\n\n/**\n * @internal\n *\n * A factory function returning an object to handle the process of switching templates by Notification channel.\n * You can next a Observable of `RxNotification` multiple times and merge them into the Observable exposed under `trigger$`\n *\n */\nfunction templateTriggerHandling() {\n  const hotFlattened = coerceAllFactory(() => new Subject(), mergeAll());\n  return {\n    next(templateName) {\n      hotFlattened.next(templateName);\n    },\n    trigger$: hotFlattened.values$.pipe(share())\n  };\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { createTemplateNotifier, rxMaterialize, templateTriggerHandling, toRxCompleteNotification, toRxErrorNotification, toRxSuspenseNotification };\n","import * as i0 from '@angular/core';\nimport { inject, ChangeDetectorRef, NgZone, ViewContainerRef, Injector, isSignal, Directive, Input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { coerceAllFactory } from '@rx-angular/cdk/coercing';\nimport { createTemplateNotifier } from '@rx-angular/cdk/notifications';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { RxBaseTemplateNames, createTemplateManager } from '@rx-angular/cdk/template';\nimport { Subscription, ReplaySubject, Subject, merge, NEVER } from 'rxjs';\nimport { mergeAll, map, filter } from 'rxjs/operators';\nconst RxIfTemplateNames = {\n  ...RxBaseTemplateNames,\n  then: 'rxThen',\n  else: 'rxElse'\n};\n\n/**\n * @Directive IfDirective\n * @description\n *\n * The `RxIf` directive is drop-in replacement for the `NgIf` directive, but with additional features.\n * `RxIf` allows you to bind observables directly without having the need of using the `async`\n * pipe in addition.\n *\n * This enables `rxIf` to completely operate on its own without having to interact with `NgZone`\n * or triggering global change detection.\n *\n * Read more about the RxIf directive in the [official\n *   docs](https://www.rx-angular.io/docs/template/api/rx-if-directive).\n *\n * @example\n * <app-item *rxIf=\"show$\"></app-item>\n *\n * @docsCategory RxIf\n * @docsPage RxIf\n * @publicApi\n */\nlet RxIf = /*#__PURE__*/(() => {\n  class RxIf {\n    templateRef;\n    /** @internal */\n    strategyProvider = inject(RxStrategyProvider);\n    /** @internal */\n    cdRef = inject(ChangeDetectorRef);\n    /** @internal */\n    ngZone = inject(NgZone);\n    /** @internal */\n    viewContainerRef = inject(ViewContainerRef);\n    /** @internal */\n    injector = inject(Injector);\n    /** @internal */\n    subscription = new Subscription();\n    /** @internal */\n    _renderObserver;\n    /** @internal */\n    templateManager;\n    /**\n     * @description\n     * The Observable or value to representing the condition.\n     *\n     * @example\n     * showHero = true;\n     * showHero$ = new BehaviorSubject<boolean>(true);\n     *\n     * <ng-container *rxIf=\"showHero\">\n     *   <app-hero></app-hero>\n     * </ng-container>\n     *\n     * <ng-container *rxIf=\"showHero$\">\n     *   <app-hero></app-hero>\n     * </ng-container>\n     *\n     * @param { ObservableInput<T> | T } rxIf\n     */\n    rxIf;\n    /**\n     * @description\n     *\n     * You can change the used `RenderStrategy` by using the `strategy` input of the `*rxIf`. It accepts\n     * an `Observable<RxStrategyNames>` or\n     *   [`RxStrategyNames`](https://github.com/rx-angular/rx-angular/blob/b0630f69017cc1871d093e976006066d5f2005b9/libs/cdk/render-strategies/src/lib/model.ts#L52).\n     *\n     * The default value for strategy is\n     * [`normal`](https://www.rx-angular.io/docs/template/cdk/render-strategies/strategies/concurrent-strategies).\n     *\n     * Read more about this in the\n     * [official docs](https://www.rx-angular.io/docs/template/api/rx-if-directive#use-render-strategies-strategy).\n     *\n     * @example\n     *\n     * \\@Component({\n     *   selector: 'app-root',\n     *   template: `\n     *     <ng-container *rxIf=\"showHero$; strategy: 'userBlocking'\">\n     *       <app-hero></app-hero>\n     *     </ng-container>\n     *\n     *     <ng-container *rxIf=\"showHero$; strategy: strategy$\">\n     *       <app-hero></app-hero>\n     *     </ng-container>\n     *   `\n     * })\n     * export class AppComponent {\n     *   strategy$ = of('immediate');\n     * }\n     *\n     * @param { string | Observable<string> | undefined } strategyName\n     * @see {@link RxStrategyNames}\n     */\n    set strategy(strategyName) {\n      this.strategyHandler.next(strategyName);\n    }\n    /**\n     * @description\n     * Defines the template to be used when the bound value is falsy\n     *\n     * @example\n     * <app-hero *rxIf=\"show$; else: noHero\"></app-hero>\n     * <ng-template #noHero><no-hero></no-hero></ng-template>\n     */\n    else;\n    /**\n     * @description\n     * Defines the template to be used when the bound value is truthy\n     *\n     * @example\n     * <ng-container *rxIf=\"show$; then: hero\"></ng-container>\n     * <ng-template #hero><app-hero></app-hero></ng-template>\n     */\n    then;\n    /**\n     * @description\n     * Defines the template for the suspense state. Will be\n     * shown when the bound Observable is in \"suspense\" state.\n     * Suspense state is active when the current value is undefined or no value\n     * was ever emitted.\n     *\n     * Read more about the reactive context in the\n     * [official docs](https://www.rx-angular.io/docs/template/concepts/reactive-context).\n     *\n     * @example\n     * <app-hero *rxIf=\"show$; suspense: suspenseTemplate\" ></app-hero>\n     * <ng-template #suspenseTemplate>\n     *   <mat-progress-spinner></mat-progress-spinner>\n     * </ng-template>\n     *\n     * @param { TemplateRef<RxIfViewContext> } suspense\n     */\n    suspense;\n    /**\n     * @description\n     * Defines the template for the complete state. Will be\n     * shown when the bound Observable is in \"complete\" state.\n     *\n     * Read more about the reactive context in the\n     * [official docs](https://www.rx-angular.io/docs/template/concepts/reactive-context).\n     *\n     * @example\n     * <app-hero *rxIf=\"show$; complete: completeTemplate\" ></app-hero>\n     * <ng-template #completeTemplate>\n     *   <icon>thumbs_up</icon>\n     * </ng-template>\n     *\n     * @param { TemplateRef<RxIfViewContext> } suspense\n     */\n    complete;\n    /**\n     * @description\n     * Defines the template for the error state. Will be\n     * shown when the bound Observable is in \"error\" state.\n     *\n     * Read more about the reactive context in the\n     * [official docs](https://www.rx-angular.io/docs/template/concepts/reactive-context).\n     *\n     * @example\n     * <app-hero *rxIf=\"show$; error: errorTemplate\" ></app-hero>\n     * <ng-template #errorTemplate>\n     *   <icon>error</icon>\n     * </ng-template>\n     *\n     * @param { TemplateRef<RxIfViewContext> } suspense\n     */\n    error;\n    /**\n     * @description\n     * A trigger to manually set the active template. It accepts a `RxNotificationKind`\n     * which determines what template to display. If no template is given, a context\n     * variable resembling the notification state is put into the `Next`\n     * template of the directive\n     *\n     * @example\n     * <ng-container\n     *  *rxIf=\"\n     *    show$;\n     *    let e = error;\n     *    contextTrigger: contextTrigger$\n     * \">\n     *\n     *   <app-hero></app-hero>\n     *   <error *ngIf=\"e\"></error>\n     * </ng-container>\n     *\n     * // trigger template from component.ts\n     * contextTrigger$.next(RxNotificationKind.error)\n     *\n     * @param { Observable<RxNotificationKind> } contextTrigger\n     * @see {@link RxNotificationKind}\n     */\n    contextTrigger;\n    /**\n     * @description\n     * A trigger to manually activate the default template. It accepts any value,\n     * on emission it will switch to the let directives default template.\n     *\n     * @example\n     * <ng-container\n     *  *rxIf=\"\n     *    show$;\n     *    suspense: suspense\n     *    nextTrigger: nextTrigger$\n     * \">\n     *\n     *   <app-hero></app-hero>\n     * </ng-container>\n     *\n     * <ng-template #suspense><loader></loader></ng-template>\n     *\n     * // trigger template from component.ts\n     * nextTrigger$.next()\n     *\n     * @param { Observable<unknown> } nextTrigger\n     */\n    nextTrigger;\n    /**\n     * @description\n     * A trigger to manually activate the suspense template. It accepts any value,\n     * on emission it will display the suspense template. If no template is given,\n     * the suspense context variable will be set to true instead.\n     *\n     * @example\n     * <ng-container\n     *  *rxIf=\"\n     *    show$;\n     *    let s = suspense;\n     *    suspenseTrigger: suspenseTrigger$\n     * \">\n     *\n     *   <app-hero></app-hero>\n     *   <loader *ngIf=\"s\"></loader>\n     * </ng-container>\n     *\n     *\n     * // trigger template from component.ts\n     * suspenseTrigger$.next()\n     *\n     * @param { Observable<unknown> } suspenseTrigger\n     */\n    suspenseTrigger;\n    /**\n     * @description\n     * A trigger to manually activate the error template. It accepts any value,\n     * on emission it will display the error template. If no template is given,\n     * the error context variable will be set to true instead.\n     *\n     * @example\n     * <ng-container\n     *  *rxIf=\"\n     *    show$;\n     *    let e = error;\n     *    errorTrigger: errorTrigger$\n     * \">\n     *\n     *   <app-hero></app-hero>\n     *   <error *ngIf=\"e\"></error>\n     * </ng-container>\n     *\n     * // trigger template from component.ts\n     * errorTrigger$.next()\n     *\n     * @param { Observable<unknown> } errorTrigger\n     */\n    errorTrigger;\n    /**\n     * @description\n     * A trigger to manually activate the complete template. It accepts any value,\n     * on emission it will display the error template. If no template is given,\n     * the complete context variable will complete set to true instead.\n     *\n     * @example\n     * <ng-container\n     *  *rxIf=\"\n     *    show$;\n     *    let c = complete;\n     *    completeTrigger: completeTrigger$\n     * \">\n     *\n     *   <app-hero></app-hero>\n     *   <done *ngIf=\"c\"></done>\n     * </ng-container>\n     *\n     * // trigger template from component.ts\n     * completeTrigger$.next()\n     *\n     * @param { Observable<unknown> } completeTrigger\n     */\n    completeTrigger;\n    /**\n     * @description\n     *\n     * Structural directives maintain `EmbeddedView`s within a components' template.\n     * Depending on the bound value as well as the configured `RxRenderStrategy`,\n     * updates processed by the `*rxIf` directive might be asynchronous.\n     *\n     * Whenever a template gets inserted into, or removed from, its parent component, the directive has to inform the\n     *   parent in order to update any view- or contentquery (`@ViewChild`, `@ViewChildren`, `@ContentChild`,\n     *   `@ContentChildren`).\n     *\n     * Read more about this in the\n     * [official\n     *   docs](https://www.rx-angular.io/docs/template/api/rx-if-directive#local-strategies-and-view-content-queries-parent).\n     *\n     * @example\n     * \\@Component({\n     *   selector: 'app-root',\n     *   template: `\n     *    <app-component>\n     *      <app-item\n     *        *rxIf=\"\n     *          show$;\n     *          parent: true;\n     *        \"\n     *      >\n     *      </app-item>\n     *    </app-component>\n     *   `\n     * })\n     * export class AppComponent {\n     *   show$ = state.select('showItem');\n     * }\n     *\n     * @param {boolean} renderParent\n     *\n     * @deprecated this flag will be dropped soon, as it is no longer required when using signal based view & content queries\n     */\n    renderParent = this.strategyProvider.config.parent;\n    /**\n     * @description\n     * A flag to control whether `*rxIf` templates are created within `NgZone` or not.\n     * The default value is `true, `*rxIf` will create its `EmbeddedView` inside `NgZone`.\n     *\n     * Event listeners normally trigger zone.\n     * Especially high frequency events can cause performance issues.\n     *\n     * Read more about this in the\n     * [official docs](https://www.rx-angular.io/docs/template/api/let-directive#working-with-event-listeners-patchzone).\n     *\n     * @example\n     * \\@Component({\n     *   selector: 'app-root',\n     *   template: `\n     *    <app-component>\n     *      <app-item\n     *        *rxIf=\"\n     *          show$;\n     *          patchZone: false;\n     *        \"\n     *        (drag)=\"itemDrag($event)\"\n     *      >\n     *      </app-item>\n     *    </app-component>\n     *   `\n     * })\n     * export class AppComponent {\n     *   show$ = state.select('showItem');\n     * }\n     *\n     * @param {boolean} patchZone\n     */\n    patchZone = this.strategyProvider.config.patchZone;\n    /**\n     * @description\n     * A `Subject` which emits whenever `*rxIf` rendered a change to the view.\n     * This enables developers to perform actions when rendering has been done.\n     * The `renderCallback` is useful in situations where you\n     * rely on specific DOM properties like the dimensions of an item after it got rendered.\n     *\n     * The `renderCallback` emits the latest value causing the view to update.\n     *\n     * @example\n     * \\@Component({\n     *   selector: 'app-root',\n     *   template: `\n     *    <app-component>\n     *      <app-item\n     *        *rxIf=\"\n     *          show$;\n     *          renderCallback: rendered;\n     *        \"\n     *      >\n     *      </app-item>\n     *    </app-component>\n     *   `\n     * })\n     * export class AppComponent {\n     *  show$ = state.select('showItem');\n     *  // this emits whenever rxIf finished rendering changes\n     *  rendered = new Subject<boolean>();\n     *\n     *   constructor(elementRef: ElementRef<HTMLElement>) {\n     *     rendered.subscribe(() => {\n     *       // item is rendered, we can access its dom now\n     *     })\n     *   }\n     * }\n     *\n     * @param {Subject<boolean>} callback\n     */\n    set renderCallback(callback) {\n      this._renderObserver = callback;\n    }\n    /** @internal */\n    triggerHandler = new ReplaySubject(1);\n    /** @internal */\n    templateNotifier = createTemplateNotifier();\n    /** @internal */\n    strategyHandler = coerceAllFactory(() => new ReplaySubject(1), mergeAll());\n    /** @internal */\n    rendered$ = new Subject();\n    /** @internal */\n    get thenTemplate() {\n      return this.then ? this.then : this.templateRef;\n    }\n    constructor(templateRef) {\n      this.templateRef = templateRef;\n    }\n    /** @internal */\n    ngOnInit() {\n      this.subscription.add(merge(this.contextTrigger || NEVER, this.nextTrigger?.pipe(map(() => \"next\" /* RxNotificationKind.Next */)) || NEVER, this.suspenseTrigger?.pipe(map(() => \"suspense\" /* RxNotificationKind.Suspense */)) || NEVER, this.completeTrigger?.pipe(map(() => \"complete\" /* RxNotificationKind.Complete */)) || NEVER, this.errorTrigger?.pipe(map(() => \"error\" /* RxNotificationKind.Error */)) || NEVER).pipe(filter(v => !!v)).subscribe(t => this.triggerHandler.next(t)));\n      this.subscription.add(this.templateManager.render(this.templateNotifier.values$).subscribe(n => {\n        this.rendered$.next(n);\n        this._renderObserver?.next(n);\n      }));\n    }\n    /** @internal */\n    ngOnChanges(changes) {\n      if (!this.templateManager) {\n        this._createTemplateManager();\n      }\n      if (changes.then && !changes.then.firstChange) {\n        this.templateManager.addTemplateRef(RxIfTemplateNames.then, this.thenTemplate);\n      }\n      if (changes.else) {\n        this.templateManager.addTemplateRef(RxIfTemplateNames.else, this.else);\n      }\n      if (changes.complete) {\n        this.templateManager.addTemplateRef(RxIfTemplateNames.complete, this.complete);\n      }\n      if (changes.suspense) {\n        this.templateManager.addTemplateRef(RxIfTemplateNames.suspense, this.suspense);\n        this.templateNotifier.withInitialSuspense(!!this.suspense);\n      }\n      if (changes.error) {\n        this.templateManager.addTemplateRef(RxIfTemplateNames.error, this.error);\n      }\n      if (changes.rxIf) {\n        if (isSignal(this.rxIf)) {\n          this.templateNotifier.next(toObservable(this.rxIf, {\n            injector: this.injector\n          }));\n        } else {\n          this.templateNotifier.next(this.rxIf);\n        }\n      }\n    }\n    /** @internal */\n    ngOnDestroy() {\n      this.subscription.unsubscribe();\n    }\n    /** @internal */\n    _createTemplateManager() {\n      const getNextTemplate = value => {\n        return value ? RxIfTemplateNames.then : this.else ? RxIfTemplateNames.else : undefined;\n      };\n      this.templateManager = createTemplateManager({\n        templateSettings: {\n          viewContainerRef: this.viewContainerRef,\n          customContext: rxIf => ({\n            rxIf\n          })\n        },\n        renderSettings: {\n          cdRef: this.cdRef,\n          parent: coerceBooleanProperty(this.renderParent),\n          patchZone: this.patchZone ? this.ngZone : false,\n          defaultStrategyName: this.strategyProvider.primaryStrategy,\n          strategies: this.strategyProvider.strategies\n        },\n        notificationToTemplateName: {\n          [\"suspense\" /* RxNotificationKind.Suspense */]: value => this.suspense ? RxIfTemplateNames.suspense : getNextTemplate(value),\n          [\"next\" /* RxNotificationKind.Next */]: value => getNextTemplate(value),\n          [\"error\" /* RxNotificationKind.Error */]: value => this.error ? RxIfTemplateNames.error : getNextTemplate(value),\n          [\"complete\" /* RxNotificationKind.Complete */]: value => this.complete ? RxIfTemplateNames.complete : getNextTemplate(value)\n        },\n        templateTrigger$: this.triggerHandler\n      });\n      this.templateManager.addTemplateRef(RxIfTemplateNames.then, this.thenTemplate);\n      this.templateManager.nextStrategy(this.strategyHandler.values$);\n    }\n    /** @internal */\n    static rxIfUseIfTypeGuard;\n    /**\n     * Assert the correct type of the expression bound to the `ngIf` input within the template.\n     *\n     * The presence of this static field is a signal to the Ivy template type check compiler that\n     * when the `NgIf` structural directive renders its template, the type of the expression bound\n     * to `ngIf` should be narrowed in some way. For `NgIf`, the binding expression itself is used to\n     * narrow its type, which allows the strictNullChecks feature of TypeScript to work with `NgIf`.\n     */\n    static ngTemplateGuard_rxIf;\n    /**\n     * Asserts the correct type of the context for the template that `NgIf` will render.\n     *\n     * The presence of this method is a signal to the Ivy template type-check compiler that the\n     * `NgIf` structural directive renders its template with a specific context type.\n     */\n    static ngTemplateContextGuard(dir, ctx) {\n      return true;\n    }\n    /** @nocollapse */\n    static Ι΅fac = function RxIf_Factory(__ngFactoryType__) {\n      return new (__ngFactoryType__ || RxIf)(i0.Ι΅Ι΅directiveInject(i0.TemplateRef));\n    };\n    /** @nocollapse */\n    static Ι΅dir = /* @__PURE__ */i0.Ι΅Ι΅defineDirective({\n      type: RxIf,\n      selectors: [[\"\", \"rxIf\", \"\"]],\n      inputs: {\n        rxIf: \"rxIf\",\n        strategy: [0, \"rxIfStrategy\", \"strategy\"],\n        else: [0, \"rxIfElse\", \"else\"],\n        then: [0, \"rxIfThen\", \"then\"],\n        suspense: [0, \"rxIfSuspense\", \"suspense\"],\n        complete: [0, \"rxIfComplete\", \"complete\"],\n        error: [0, \"rxIfError\", \"error\"],\n        contextTrigger: [0, \"rxIfContextTrigger\", \"contextTrigger\"],\n        nextTrigger: [0, \"rxIfNextTrigger\", \"nextTrigger\"],\n        suspenseTrigger: [0, \"rxIfSuspenseTrigger\", \"suspenseTrigger\"],\n        errorTrigger: [0, \"rxIfErrorTrigger\", \"errorTrigger\"],\n        completeTrigger: [0, \"rxIfCompleteTrigger\", \"completeTrigger\"],\n        renderParent: [0, \"rxIfParent\", \"renderParent\"],\n        patchZone: [0, \"rxIfPatchZone\", \"patchZone\"],\n        renderCallback: [0, \"rxIfRenderCallback\", \"renderCallback\"]\n      },\n      standalone: true,\n      features: [i0.Ι΅Ι΅NgOnChangesFeature]\n    });\n  }\n  return RxIf;\n})();\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @internal\n * @description\n * Coerces a data-bound value (typically a string) to a boolean.\n *\n */\nfunction coerceBooleanProperty(value) {\n  return value != null && `${value}` !== 'false';\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxIf, RxIfTemplateNames };\n"],"names":["toRxSuspenseNotification","value","rxMaterialize","o$","materialize","tap","kind","error","map","hasValue","rxNotificationKind","notificationKindToRxNotificationKind","emitAndDontComplete","NEVER","startWith","handleSuspenseAndLastValueInNotifications","latestNextValue","notification","createTemplateNotifier","observablesSubject","ReplaySubject","emittedValueOnce","values$","distinctUntilChanged","observable$","isObservableInput","skipSuspenseIfHasValue","isSubscribableInput","mapSubscribableToObservable","switchMap","o","observable","withInitialSuspense","Observable","subscriber","startWithUndefined","inner","from","v","e","input","isObservable","sub","RxIfTemplateNames","__spreadProps","__spreadValues","RxBaseTemplateNames","RxIf","_RxIf","templateRef","__publicField","inject","RxStrategyProvider","ChangeDetectorRef","NgZone","ViewContainerRef","Injector","Subscription","coerceAllFactory","mergeAll","Subject","strategyName","callback","_a","_b","_c","_d","merge","filter","t","n","changes","isSignal","toObservable","getNextTemplate","createTemplateManager","rxIf","coerceBooleanProperty","dir","ctx","__ngFactoryType__","Ι΅Ι΅directiveInject","TemplateRef","Ι΅Ι΅defineDirective","Ι΅Ι΅NgOnChangesFeature"],"mappings":"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","x_google_ignoreList":[0,1]}