@rx-angular/template
Version:
**Fully** Reactive Component Template Rendering in Angular. @rx-angular/template aims to be a reflection of Angular's built in renderings just reactive.
32 lines (31 loc) • 1.15 kB
TypeScript
import { EmbeddedViewRef, IterableChanges } from '@angular/core';
import { RxListViewContext } from '@rx-angular/cdk/template';
import { TemplateSettings } from './model';
export interface RxVirtualListChange<T, C> {
index?: number;
view?: EmbeddedViewRef<C>;
item: T;
}
export type RxVirtualListChanges<T, C> = [
number,
() => RxVirtualListChange<T, C>,
boolean?
][];
/**
* @internal
*
* An object that holds methods needed to introduce actions to a list e.g. move, remove, insert
*/
export interface RxVirtualListTemplateManager<T, C> {
getListChanges(changes: IterableChanges<T>, items: T[], renderCount: number, adjustIndexWith: number): [RxVirtualListChanges<T, C>, boolean];
setItemCount(itemCount: number): void;
detach(): void;
}
/**
* @internal
*
* Factory that returns a `ListTemplateManager` for the passed params.
*
* @param templateSettings
*/
export declare function createVirtualListTemplateManager<C extends RxListViewContext<T>, T>({ viewContainerRef, templateRef, createViewContext, updateViewContext, templateCacheSize, }: TemplateSettings<T, C, any>): RxVirtualListTemplateManager<T, C>;