{"version":3,"file":"chunk-jkcyaxb1.js","sources":["node_modules/@rx-angular/template/fesm2022/template-for.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { inject, IterableDiffers, InjectionToken, isSignal, ChangeDetectorRef, NgZone, Injector, ViewContainerRef, ErrorHandler, Directive, Input } from '@angular/core';\nimport { coerceObservableWith, coerceDistinctWith } from '@rx-angular/cdk/coercing';\nimport { toObservableMicrotaskInternal } from '@rx-angular/cdk/internals/core';\nimport { RxStrategyProvider, onStrategy } from '@rx-angular/cdk/render-strategies';\nimport { isObservable, ReplaySubject, Subscription, combineLatest, concat, of } from 'rxjs';\nimport { switchAll, shareReplay, startWith, switchMap, ignoreElements, map, catchError } from 'rxjs/operators';\nimport { RxDefaultListViewContext, createListTemplateManager, RxLiveCollection, reconcile } from '@rx-angular/cdk/template';\nclass RxForViewContext extends RxDefaultListViewContext {\n constructor(item, rxForOf, customProps) {\n super(item, customProps);\n this.rxForOf = rxForOf;\n }\n}\nconst LEGACY_RXFOR_RECONCILIATION_FACTORY = () => {\n const iterableDiffers = inject(IterableDiffers);\n return options => {\n const {\n values$,\n strategy$,\n viewContainerRef,\n template,\n strategyProvider,\n errorHandler,\n createViewContext,\n updateViewContext,\n cdRef,\n trackBy,\n parent,\n patchZone\n } = options;\n const listManager = createListTemplateManager({\n iterableDiffers: iterableDiffers,\n renderSettings: {\n cdRef: cdRef,\n strategies: strategyProvider.strategies,\n // TODO: move strategyProvider\n defaultStrategyName: strategyProvider.primaryStrategy,\n parent,\n patchZone,\n errorHandler\n },\n templateSettings: {\n viewContainerRef,\n templateRef: template,\n createViewContext,\n updateViewContext\n },\n trackBy\n });\n listManager.nextStrategy(strategy$);\n return listManager.render(values$);\n };\n};\nfunction provideLegacyRxForReconciliation() {\n return {\n provide: INTERNAL_RX_FOR_RECONCILER_TOKEN,\n useFactory: LEGACY_RXFOR_RECONCILIATION_FACTORY\n };\n}\n\n/** @internal */\nconst INTERNAL_RX_FOR_RECONCILER_TOKEN = new InjectionToken('rx-for-reconciler', {\n providedIn: 'root',\n factory: LEGACY_RXFOR_RECONCILIATION_FACTORY\n});\nfunction injectReconciler() {\n return inject(INTERNAL_RX_FOR_RECONCILER_TOKEN);\n}\n\n/**\n * @Directive RxFor\n *\n * @description\n *\n * The most common way to render lists in angular is by using the `*ngFor` structural directive. `*ngFor` is able\n * to take an arbitrary list of data and repeat a defined template per item of the list. However, it can\n * only do it synchronously.\n *\n * Compared to the `NgFor`, `RxFor` treats each child template as single renderable unit.\n * The change detection of the child templates get prioritized, scheduled and executed by\n * leveraging `RenderStrategies` under the hood.\n * This technique enables non-blocking rendering of lists and can be referred to as `concurrent mode`.\n *\n * Read more about this in the [strategies\n * section](https://www.rx-angular.io/docs/template/rx-for-directive#rxfor-with-concurrent-strategies).\n *\n * Furthermore, `RxFor` provides hooks to react to rendered items in form of a `renderCallback: Subject`.\n *\n * Together with the `RxRenderStrategies`, this makes the rendering behavior extremely versatile\n * and transparent for the developer.\n * Each instance of `RxFor` can be configured to render with different settings.\n *\n * Read more in the [official docs](https://www.rx-angular.io/docs/template/rx-for-directive)\n *\n * @docsCategory RxFor\n * @docsPage RxFor\n * @publicApi\n */\nlet RxFor = /*#__PURE__*/(() => {\n class RxFor {\n /**\n * @description\n * The iterable input\n *\n * @example\n * \n * \n * \n *\n * @param { Observable<(U & NgIterable) | undefined | null>\n * | Signal<(U & NgIterable) | undefined | null>\n * | (U & NgIterable)\n * | null\n * | undefined } potentialSignalOrObservable\n */\n set rxForOf(potentialSignalOrObservable) {\n if (isSignal(potentialSignalOrObservable)) {\n this.staticValue = undefined;\n this.renderStatic = false;\n this.observables$.next(toObservableMicrotaskInternal(potentialSignalOrObservable, {\n injector: this.injector\n }));\n } else if (!isObservable(potentialSignalOrObservable)) {\n this.staticValue = potentialSignalOrObservable;\n this.renderStatic = true;\n } else {\n this.staticValue = undefined;\n this.renderStatic = false;\n this.observables$.next(potentialSignalOrObservable);\n }\n }\n set rxForTemplate(value) {\n this._template = value;\n }\n /**\n * @description\n *\n * You can change the used `RenderStrategy` by using the `strategy` input of the `*rxFor`. 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/rx-for-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 = 'low';\n * strategy$ = of('immediate');\n * }\n *\n * @param {string | Observable | undefined} strategyName\n * @see {@link strategies}\n */\n set rxForStrategy(strategyName) {\n this.strategyInput$.next(strategyName);\n }\n /**\n * @description\n * A function or key that defines how to track changes for items in the iterable.\n *\n * When items are added, moved, or removed in the iterable,\n * the directive must re-render the appropriate DOM nodes.\n * To minimize churn in the DOM, only nodes that have changed\n * are re-rendered.\n *\n * By default, rxFor assumes that the object instance identifies the node in the iterable (equality check `===`).\n * When a function or key is supplied, rxFor uses the result to identify the item node.\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * }\n *\n * // OR\n *\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * trackItem = (idx, item) => item.id;\n * }\n *\n * @param trackByFnOrKey\n */\n set trackBy(trackByFnOrKey) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && trackByFnOrKey != null && typeof trackByFnOrKey !== 'string' && typeof trackByFnOrKey !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(trackByFnOrKey)}.`);\n }\n if (trackByFnOrKey == null) {\n this._trackBy = this.defaultTrackBy;\n } else {\n this._trackBy = typeof trackByFnOrKey !== 'function' ? (i, a) => a[trackByFnOrKey] : trackByFnOrKey;\n }\n }\n /**\n * @description\n * A `Subject` which emits whenever *rxFor finished rendering a set changes to the view.\n * This enables developers to perform actions when a list has finished rendering.\n * The `renderCallback` is useful in situations where you rely on specific DOM properties like the `height` a\n * table after all items got rendered.\n * It is also possible to use the renderCallback in order to determine if a view should be visible or not. This\n * way developers can hide a list as long as it has not finished rendering.\n *\n * The result of the `renderCallback` will contain the currently rendered set of items in the iterable.\n *\n * @example\n * \\Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$: Observable = itemService.getItems();\n * trackItem = (idx, item) => item.id;\n * // this emits whenever rxFor finished rendering changes\n * itemsRendered = new Subject();\n *\n * constructor(elementRef: ElementRef) {\n * itemsRendered.subscribe(() => {\n * // items are rendered, we can now scroll\n * elementRef.scrollTo({bottom: 0});\n * })\n * }\n * }\n *\n * @param {Subject} renderCallback\n */\n set renderCallback(renderCallback) {\n this._renderCallback = renderCallback;\n }\n get template() {\n return this._template || this.templateRef;\n }\n constructor(templateRef) {\n this.templateRef = templateRef;\n /** @internal */\n this.cdRef = inject(ChangeDetectorRef);\n /** @internal */\n this.ngZone = inject(NgZone);\n /** @internal */\n this.injector = inject(Injector);\n /** @internal */\n this.viewContainerRef = inject(ViewContainerRef);\n /** @internal */\n this.strategyProvider = inject(RxStrategyProvider);\n /** @internal */\n this.errorHandler = inject(ErrorHandler);\n /** @internal */\n this.renderStatic = false;\n /**\n * @description\n *\n * When local rendering strategies are used, we need to treat view and content queries in a\n * special way.\n * To make `*rxFor` in such situations, a certain mechanism is implemented to\n * execute change detection on the parent (`parent`).\n *\n * This is required if your components state is dependent on its view or content children:\n *\n * - `@ViewChild`\n * - `@ViewChildren`\n * - `@ContentChild`\n * - `@ContentChildren`\n *\n * Read more about this in the\n * [official\n * docs](https://www.rx-angular.io/docs/template/rx-for-directive#local-strategies-and-view-content-queries-parent).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\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\n * queries\n */\n this.renderParent = this.strategyProvider.config.parent;\n /**\n * @description\n *\n * A flag to control whether *rxFor templates are created within `NgZone` or not.\n * The default value is `true, `*rxFor` will create it's `EmbeddedViews` inside `NgZone`.\n *\n * Event listeners normally trigger zone. Especially high frequently events cause performance issues.\n *\n * Read more about this in the\n * [official\n * docs](https://www.rx-angular.io/docs/template/rx-for-directive#working-with-event-listeners-patchzone).\n *\n * @example\n * \\@Component({\n * selector: 'app-root',\n * template: `\n * \n * \n *
{{ item.name }}
\n * \n *
\n * `\n * })\n * export class AppComponent {\n * items$ = itemService.getItems();\n * }\n *\n * @param {boolean} patchZone\n */\n this.patchZone = this.strategyProvider.config.patchZone;\n this.defaultTrackBy = (i, item) => item;\n /** @internal */\n this.strategyInput$ = new ReplaySubject(1);\n /** @internal */\n this.observables$ = new ReplaySubject(1);\n /** @internal */\n this.values$ = this.observables$.pipe(coerceObservableWith(), switchAll(), shareReplay({\n refCount: true,\n bufferSize: 1\n }));\n /** @internal */\n this.values = null;\n /** @internal */\n this.strategy$ = this.strategyInput$.pipe(coerceDistinctWith());\n /** @internal */\n this._subscription = new Subscription();\n /** @internal */\n this._trackBy = this.defaultTrackBy;\n /** @internal */\n this._distinctBy = (a, b) => a === b;\n this.reconciler = injectReconciler();\n }\n /** @internal */\n ngOnInit() {\n this._subscription.add(this.values$.subscribe(v => this.values = v));\n this._subscription.add(this.reconciler({\n values$: this.values$,\n strategy$: this.strategy$,\n viewContainerRef: this.viewContainerRef,\n template: this.template,\n strategyProvider: this.strategyProvider,\n errorHandler: this.errorHandler,\n cdRef: this.cdRef,\n trackBy: this._trackBy,\n createViewContext: this.createViewContext.bind(this),\n updateViewContext: this.updateViewContext.bind(this),\n parent: !!this.renderParent,\n patchZone: this.patchZone ? this.ngZone : undefined\n }).subscribe(values => this._renderCallback?.next(values)));\n }\n /** @internal */\n createViewContext(item, computedContext) {\n return new RxForViewContext(item, this.values, computedContext);\n }\n /** @internal */\n updateViewContext(item, view, computedContext) {\n view.context.updateContext(computedContext);\n view.context.rxForOf = this.values;\n view.context.$implicit = item;\n }\n /** @internal */\n ngDoCheck() {\n if (this.renderStatic) {\n this.observables$.next(this.staticValue);\n }\n }\n /** @internal */\n ngOnDestroy() {\n this._subscription.unsubscribe();\n this.viewContainerRef.clear();\n }\n /** @internal */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function RxFor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxFor)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RxFor,\n selectors: [[\"\", \"rxFor\", \"\", \"rxForOf\", \"\"]],\n inputs: {\n rxForOf: \"rxForOf\",\n rxForTemplate: \"rxForTemplate\",\n rxForStrategy: \"rxForStrategy\",\n renderParent: [0, \"rxForParent\", \"renderParent\"],\n patchZone: [0, \"rxForPatchZone\", \"patchZone\"],\n trackBy: [0, \"rxForTrackBy\", \"trackBy\"],\n renderCallback: [0, \"rxForRenderCallback\", \"renderCallback\"]\n }\n });\n }\n }\n return RxFor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction provideExperimentalRxForReconciliation() {\n return {\n provide: INTERNAL_RX_FOR_RECONCILER_TOKEN,\n useFactory: () => options => {\n const {\n values$,\n strategy$,\n viewContainerRef,\n template,\n strategyProvider,\n errorHandler,\n createViewContext,\n updateViewContext,\n cdRef,\n trackBy,\n parent,\n patchZone\n } = options;\n const liveCollection = new RxLiveCollection(viewContainerRef, template, strategyProvider, createViewContext, updateViewContext);\n return combineLatest([values$, strategy$.pipe(startWith(strategyProvider.primaryStrategy))]).pipe(switchMap(([iterable, strategyName]) => {\n if (iterable == null) {\n iterable = [];\n }\n if (!iterable[Symbol.iterator]) {\n throw new Error(`Error trying to diff '${iterable}'. Only arrays and iterables are allowed`);\n }\n const strategy = strategyProvider.strategies[strategyName] ? strategyName : strategyProvider.primaryStrategy;\n liveCollection.reset();\n reconcile(liveCollection, iterable, trackBy);\n liveCollection.updateIndexes();\n return liveCollection.flushQueue(strategy).pipe(o$ => parent && liveCollection.needHostUpdate ? concat(o$, onStrategy(null, strategyProvider.strategies[strategy], (_, work, options) => {\n work(cdRef, options.scope);\n }, {\n scope: cdRef.context ?? cdRef,\n ngZone: patchZone\n }).pipe(ignoreElements())) : o$, map(() => iterable));\n }), catchError(e => {\n errorHandler.handleError(e);\n return of(null);\n }));\n }\n };\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxFor, RxForViewContext, provideExperimentalRxForReconciliation, provideLegacyRxForReconciliation };\n"],"names":["RxForViewContext","RxDefaultListViewContext","item","rxForOf","customProps","LEGACY_RXFOR_RECONCILIATION_FACTORY","iterableDiffers","inject","IterableDiffers","options","values$","strategy$","viewContainerRef","template","strategyProvider","errorHandler","createViewContext","updateViewContext","cdRef","trackBy","parent","patchZone","listManager","createListTemplateManager","INTERNAL_RX_FOR_RECONCILER_TOKEN","InjectionToken","injectReconciler","RxFor","_RxFor","potentialSignalOrObservable","isSignal","toObservableMicrotaskInternal","isObservable","value","strategyName","trackByFnOrKey","i","a","renderCallback","templateRef","ChangeDetectorRef","NgZone","Injector","ViewContainerRef","RxStrategyProvider","ErrorHandler","ReplaySubject","coerceObservableWith","switchAll","shareReplay","coerceDistinctWith","Subscription","b","v","values","_a","computedContext","view","dir","ctx","__ngFactoryType__","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective"],"mappings":"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","x_google_ignoreList":[0]}