{"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 * \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(true);\n *\n * \n * \n * \n *\n * \n * \n * \n *\n * @param { ObservableInput | 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` 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 * \n * \n * \n *\n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * strategy$ = of('immediate');\n * }\n *\n * @param { string | Observable | 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 * \n * \n */\n else;\n /**\n * @description\n * Defines the template to be used when the bound value is truthy\n *\n * @example\n * \n * \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 * \n * \n * \n * \n *\n * @param { TemplateRef } 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 * \n * \n * thumbs_up\n * \n *\n * @param { TemplateRef } 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 * \n * \n * error\n * \n *\n * @param { TemplateRef } 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 * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * contextTrigger$.next(RxNotificationKind.error)\n *\n * @param { Observable } 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 * \n *\n * \n * \n *\n * \n *\n * // trigger template from component.ts\n * nextTrigger$.next()\n *\n * @param { Observable } 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 * \n *\n * \n * \n * \n *\n *\n * // trigger template from component.ts\n * suspenseTrigger$.next()\n *\n * @param { Observable } 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 * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * errorTrigger$.next()\n *\n * @param { Observable } 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 * \n *\n * \n * \n * \n *\n * // trigger template from component.ts\n * completeTrigger$.next()\n *\n * @param { Observable } 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 * \n * \n * \n * \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 * \n * \n * \n * \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 * \n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * show$ = state.select('showItem');\n * // this emits whenever rxIf finished rendering changes\n * rendered = new Subject();\n *\n * constructor(elementRef: ElementRef) {\n * rendered.subscribe(() => {\n * // item is rendered, we can access its dom now\n * })\n * }\n * }\n *\n * @param {Subject} 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]}