{"version":3,"file":"chunk-fd4huque.js","sources":["node_modules/@rx-angular/template/fesm2022/template-for.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { inject, IterableDiffers, ChangeDetectorRef, NgZone, Injector, ViewContainerRef, ErrorHandler, isSignal, Directive, Input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { coerceObservableWith, coerceDistinctWith } from '@rx-angular/cdk/coercing';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { RxDefaultListViewContext, createListTemplateManager } from '@rx-angular/cdk/template';\nimport { isObservable, ReplaySubject, Subscription } from 'rxjs';\nimport { switchAll, shareReplay } from 'rxjs/operators';\nclass RxForViewContext extends RxDefaultListViewContext {\n rxForOf;\n constructor(item, rxForOf, customProps) {\n super(item, customProps);\n this.rxForOf = rxForOf;\n }\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/api/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/api/rx-for-directive)\n *\n * @docsCategory RxFor\n * @docsPage RxFor\n * @publicApi\n */\nlet RxFor = /*#__PURE__*/(() => {\n class RxFor {\n templateRef;\n /** @internal */\n iterableDiffers = inject(IterableDiffers);\n /** @internal */\n cdRef = inject(ChangeDetectorRef);\n /** @internal */\n ngZone = inject(NgZone);\n /** @internal */\n injector = inject(Injector);\n /** @internal */\n viewContainerRef = inject(ViewContainerRef);\n /** @internal */\n strategyProvider = inject(RxStrategyProvider);\n /** @internal */\n errorHandler = inject(ErrorHandler);\n /** @internal */\n staticValue;\n /** @internal */\n renderStatic = false;\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(toObservable(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 /**\n * @internal\n * A reference to the template that is created for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n * (inspired by @angular/common `ng_for_of.ts`)\n */\n _template;\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 [`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-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 *\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 docs](https://www.rx-angular.io/docs/template/api/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 queries\n */\n 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 docs](https://www.rx-angular.io/docs/template/api/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 patchZone = this.strategyProvider.config.patchZone;\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 = null;\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 /** @internal */\n strategyInput$ = new ReplaySubject(1);\n /** @internal */\n observables$ = new ReplaySubject(1);\n /** @internal */\n _renderCallback;\n /** @internal */\n values$ = this.observables$.pipe(coerceObservableWith(), switchAll(), shareReplay({\n refCount: true,\n bufferSize: 1\n }));\n /** @internal */\n values = null;\n /** @internal */\n strategy$ = this.strategyInput$.pipe(coerceDistinctWith());\n /** @internal */\n listManager;\n /** @internal */\n _subscription = new Subscription();\n /** @internal */\n _trackBy;\n /** @internal */\n _distinctBy = (a, b) => a === b;\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n /** @internal */\n ngOnInit() {\n this._subscription.add(this.values$.subscribe(v => this.values = v));\n this.listManager = createListTemplateManager({\n iterableDiffers: this.iterableDiffers,\n renderSettings: {\n cdRef: this.cdRef,\n strategies: this.strategyProvider.strategies,\n // TODO: move strategyProvider\n defaultStrategyName: this.strategyProvider.primaryStrategy,\n parent: !!this.renderParent,\n patchZone: this.patchZone ? this.ngZone : false,\n errorHandler: this.errorHandler\n },\n templateSettings: {\n viewContainerRef: this.viewContainerRef,\n templateRef: this.template,\n createViewContext: this.createViewContext.bind(this),\n updateViewContext: this.updateViewContext.bind(this)\n },\n trackBy: this._trackBy\n });\n this.listManager.nextStrategy(this.strategy$);\n this._subscription.add(this.listManager.render(this.values$).subscribe(v => this._renderCallback?.next(v)));\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 ɵfac = function RxFor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxFor)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n /** @nocollapse */\n static ɵ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 standalone: true\n });\n }\n return RxFor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxFor, RxForViewContext };\n"],"names":["RxForViewContext","RxDefaultListViewContext","item","rxForOf","customProps","__publicField","RxFor","_RxFor","templateRef","inject","IterableDiffers","ChangeDetectorRef","NgZone","Injector","ViewContainerRef","RxStrategyProvider","ErrorHandler","ReplaySubject","coerceObservableWith","switchAll","shareReplay","coerceDistinctWith","Subscription","a","b","potentialSignalOrObservable","isSignal","toObservable","isObservable","value","strategyName","trackByFnOrKey","i","renderCallback","v","createListTemplateManager","_a","computedContext","view","dir","ctx","__ngFactoryType__","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective"],"mappings":"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","x_google_ignoreList":[0]}