@nova-ui/bits
Version:
SolarWinds Nova Framework
43 lines (42 loc) • 2.1 kB
TypeScript
import { ListRange } from "@angular/cdk/collections";
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
import { MonoTypeOperatorFunction, Observable } from "rxjs";
import { IFilter, IFilterPub } from "./data-source/public-api";
import { IVirtualPageConfig, IVirtualViewportResetOptions } from "./public-api";
import * as i0 from "@angular/core";
/**
* <example-url>./../examples/index.html#/common/virtual-viewport-manager</example-url>
*/
export declare class VirtualViewportManager implements IFilterPub {
private _viewportRef;
private _currentPageRange;
private _pageSize;
/**
* Entry point for VirtualViewportManager
* @param viewportRef - CDK Viewport reference on which you want to perform observations
* @returns self (VirtualViewportManager)
*/
setViewport(viewportRef: CdkVirtualScrollViewport): VirtualViewportManager;
get currentPageRange(): Readonly<ListRange>;
/**
* Observes the changes of viewport and emits when current range has been rendered
* and a new one should be loaded
* @param config accepts and IVirtualPageConfig which contains page observer's configuration
* It is requiring pageSize prop to be set to delegate responsibility of pagination to ViewportManager
* @returns Stream of pages with fixed size
*/
observeNextPage$(config: IVirtualPageConfig): Observable<ListRange>;
getFilters(): IFilter<ListRange>;
/**
* Resetting viewportManager to initial state
* @param options In case VirtualViewportManager is used along with filters (sorting, search...)
* we can prevent default behaviour of emitting firstPageEvent and let user to set first batch of data
* @returns void
*/
reset(options?: IVirtualViewportResetOptions): void;
private updateCurrentPage;
private checkViewportUntilValid;
protected mapToPageSize(pageSize: number): MonoTypeOperatorFunction<ListRange>;
static ɵfac: i0.ɵɵFactoryDeclaration<VirtualViewportManager, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<VirtualViewportManager>;
}