@tanstack/angular-virtual
Version:
Headless UI for virtualizing scrollable elements in Angular
24 lines (23 loc) • 1.41 kB
text/typescript
import { Injector, ElementRef } from '@angular/core';
import { PartialKeys, VirtualizerOptions } from '@tanstack/virtual-core';
import { AngularVirtualizer } from './types.cjs';
export * from '@tanstack/virtual-core';
export * from './types.cjs';
export type AngularVirtualizerOptions<TScrollElement extends Element | Window, TItemElement extends Element> = VirtualizerOptions<TScrollElement, TItemElement> & {
/**
* Whether to flush the DOM using `ApplicationRef.tick()`
* @default true
* */
useApplicationRefTick?: boolean;
};
export type AngularExtensionOptions = {
/**
* The injector to use for the virtualizer.
* @default inject(Injector)
*/
injector?: Injector;
};
export declare function injectVirtualizer<TScrollElement extends Element, TItemElement extends Element>(options: () => PartialKeys<Omit<AngularVirtualizerOptions<TScrollElement, TItemElement>, 'getScrollElement'>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'> & {
scrollElement: ElementRef<TScrollElement> | TScrollElement | undefined;
}): AngularVirtualizer<TScrollElement, TItemElement>;
export declare function injectWindowVirtualizer<TItemElement extends Element>(options: () => PartialKeys<AngularVirtualizerOptions<Window, TItemElement>, 'getScrollElement' | 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>): AngularVirtualizer<Window, TItemElement>;