import { VirtualScrollerPassThrough, ScrollerLazyLoadEvent, ScrollerScrollEvent, ScrollerScrollIndexChangeEvent, ScrollerContentTemplateContext, ScrollerItemTemplateContext, ScrollerLoaderTemplateContext, ScrollerLoaderIconTemplateContext, ScrollerToType } from 'primeng/types/scroller'; export * from 'primeng/types/scroller'; import * as _angular_core from '@angular/core'; import { ElementRef, TemplateRef } from '@angular/core'; import { ScrollerOptions } from 'primeng/api'; import { BaseComponent } from 'primeng/basecomponent'; import * as i1 from 'primeng/bind'; import { Bind } from 'primeng/bind'; import { VoidListener } from 'primeng/ts-helpers'; import { BaseStyle } from 'primeng/base'; import { CSSProperties } from 'primeng/types/shared'; declare class ScrollerStyle extends BaseStyle { name: string; css: string; classes: { root: ({ instance }: { instance: any; }) => (string | { 'p-virtualscroller-inline': any; 'p-virtualscroller-both p-both-scroll': any; 'p-virtualscroller-horizontal p-horizontal-scroll': any; })[]; content: string; spacer: string; loader: ({ instance }: { instance: any; }) => (string | { 'p-virtualscroller-loader-mask': boolean; })[]; loadingIcon: string; }; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * * VirtualScroller is a performant approach to handle huge data efficiently. * * [Live Demo](https://www.primeng.org/scroller/) * * @module scrollerstyle * */ declare enum ScrollerClasses { /** * Class name of the root element */ root = "p-virtualscroller", /** * Class name of the content element */ content = "p-virtualscroller-content", /** * Class name of the spacer element */ spacer = "p-virtualscroller-spacer", /** * Class name of the loader element */ loader = "p-virtualscroller-loader", /** * Class name of the loading icon element */ loadingIcon = "p-virtualscroller-loading-icon" } /** * Scroller is a performance-approach to handle huge data efficiently. * @group Components */ declare class Scroller extends BaseComponent { componentName: string; bindDirectiveInstance: Bind; $pcScroller: Scroller | undefined; hostName: _angular_core.InputSignal; /** * Unique identifier of the element. * @group Props */ id: _angular_core.InputSignal; /** * Inline style of the component. * @group Props */ style: _angular_core.InputSignal; /** * Style class of the element. * @group Props */ styleClass: _angular_core.InputSignal; /** * Index of the element in tabbing order. * @group Props */ tabindex: _angular_core.InputSignal; /** * An array of objects to display. * @group Props */ items: _angular_core.InputSignal; /** * The height/width of item according to orientation. * @group Props */ itemSize: _angular_core.InputSignal; /** * Height of the scroll viewport. * @group Props */ scrollHeight: _angular_core.InputSignal; /** * Width of the scroll viewport. * @group Props */ scrollWidth: _angular_core.InputSignal; /** * The orientation of scrollbar. * @group Props */ orientation: _angular_core.InputSignal<"vertical" | "horizontal" | "both">; /** * Used to specify how many items to load in each load method in lazy mode. * @group Props */ step: _angular_core.InputSignal; /** * Delay in scroll before new data is loaded. * @group Props */ delay: _angular_core.InputSignal; /** * Delay after window's resize finishes. * @group Props */ resizeDelay: _angular_core.InputSignal; /** * Used to append each loaded item to top without removing any items from the DOM. Using very large data may cause the browser to crash. * @group Props */ appendOnly: _angular_core.InputSignal; /** * Specifies whether the scroller should be displayed inline or not. * @group Props */ inline: _angular_core.InputSignal; /** * Defines if data is loaded and interacted with in lazy manner. * @group Props */ lazy: _angular_core.InputSignal; /** * If disabled, the scroller feature is eliminated and the content is displayed directly. * @group Props */ disabled: _angular_core.InputSignal; /** * Used to implement a custom loader instead of using the loader feature in the scroller. * @group Props */ loaderDisabled: _angular_core.InputSignal; /** * Columns to display. * @group Props */ columns: _angular_core.InputSignal; /** * Used to implement a custom spacer instead of using the spacer feature in the scroller. * @group Props */ showSpacer: _angular_core.InputSignal; /** * Defines whether to show loader. * @group Props */ showLoader: _angular_core.InputSignal; /** * Determines how many additional elements to add to the DOM outside of the view. According to the scrolls made up and down, extra items are added in a certain algorithm in the form of multiples of this number. Default value is half the number of items shown in the view. * @group Props */ numToleratedItems: _angular_core.InputSignal; /** * Defines whether the data is loaded. * @group Props */ loading: _angular_core.InputSignal; /** * Defines whether to dynamically change the height or width of scrollable container. * @group Props */ autoSize: _angular_core.InputSignal; /** * Function to optimize the dom operations by delegating to ngForTrackBy, default algoritm checks for object identity. * @group Props */ trackBy: _angular_core.InputSignal; /** * Defines whether to use the scroller feature. The properties of scroller component can be used like an object in it. * @group Props */ options: _angular_core.InputSignal; _id: _angular_core.Signal; _style: _angular_core.Signal; _styleClass: _angular_core.Signal; _tabindex: _angular_core.Signal; _items: _angular_core.Signal; _itemSize: _angular_core.Signal; _scrollHeight: _angular_core.Signal; _scrollWidth: _angular_core.Signal; _orientation: _angular_core.Signal<"vertical" | "horizontal" | "both">; _step: _angular_core.Signal; _delay: _angular_core.Signal; _resizeDelay: _angular_core.Signal; _appendOnly: _angular_core.Signal; _inline: _angular_core.Signal; _lazy: _angular_core.Signal; _disabled: _angular_core.Signal; _loaderDisabled: _angular_core.Signal; _columns: _angular_core.Signal; _showSpacer: _angular_core.Signal; _showLoader: _angular_core.Signal; _numToleratedItems: _angular_core.Signal; _loading: _angular_core.Signal; _autoSize: _angular_core.Signal; _trackBy: _angular_core.Signal; contentStyleClass: _angular_core.Signal; /** * Callback to invoke in lazy mode to load new data. * @param {ScrollerLazyLoadEvent} event - Custom lazy load event. * @group Emits */ onLazyLoad: _angular_core.OutputEmitterRef; /** * Callback to invoke when scroll position changes. * @param {ScrollerScrollEvent} event - Custom scroll event. * @group Emits */ onScroll: _angular_core.OutputEmitterRef; /** * Callback to invoke when scroll position and item's range in view changes. * @param {ScrollerScrollEvent} event - Custom scroll index change event. * @group Emits */ onScrollIndexChange: _angular_core.OutputEmitterRef; elementViewChild: _angular_core.Signal | undefined>; contentViewChild: _angular_core.Signal | undefined>; hostHeight: _angular_core.WritableSignal; /** * Content template of the component. * @param {ScrollerContentTemplateContext} context - content context. * @see {@link ScrollerContentTemplateContext} * @group Templates */ contentTemplate: _angular_core.Signal | undefined>; /** * Item template of the component. * @param {ScrollerItemTemplateContext} context - item context. * @see {@link ScrollerItemTemplateContext} * @group Templates */ itemTemplate: _angular_core.Signal | undefined>; /** * Loader template of the component. * @param {ScrollerLoaderTemplateContext} context - loader context. * @see {@link ScrollerLoaderTemplateContext} * @group Templates */ loaderTemplate: _angular_core.Signal | undefined>; /** * Loader icon template of the component. * @param {ScrollerLoaderIconTemplateContext} context - loader icon context. * @see {@link ScrollerLoaderIconTemplateContext} * @group Templates */ loaderIconTemplate: _angular_core.Signal | undefined>; d_loading: boolean; d_numToleratedItems: any; contentEl: any; vertical: _angular_core.Signal; horizontal: _angular_core.Signal; both: _angular_core.Signal; get loadedItems(): any[]; get loadedRows(): any[]; get loadedColumns(): any; first: any; last: any; page: number; isRangeChanged: boolean; numItemsInViewport: any; lastScrollPos: any; lazyLoadState: any; loaderArr: any[]; spacerStyle: CSSProperties; contentStyle: CSSProperties; scrollTimeout: any; resizeTimeout: any; private _destroyed; initialized: boolean; windowResizeListener: VoidListener; defaultWidth: number | undefined; defaultHeight: number | undefined; defaultContentWidth: number | undefined; defaultContentHeight: number | undefined; _componentStyle: ScrollerStyle; constructor(); readonly loaderIconContext: { options: { styleClass: string; }; }; onInit(): void; onAfterViewInit(): void; onAfterViewChecked(): void; onDestroy(): void; viewInit(): void; init(): void; setContentEl(el?: HTMLElement): void; setInitialState(): void; getElementRef(): ElementRef | undefined; getPageByFirst(first?: any): number; isPageChanged(first?: any): boolean; scrollTo(options: ScrollToOptions): void; scrollToIndex(index: number | number[], behavior?: ScrollBehavior): void; scrollInView(index: number, to: ScrollerToType, behavior?: ScrollBehavior): void; getRenderedRange(): { first: any; last: any; viewport: { first: any; last: any; }; }; calculateNumItems(): { numItemsInViewport: any; numToleratedItems: any; }; calculateOptions(): void; calculateAutoSize(): void; getLast(last?: number, isCols?: boolean): number; getContentPosition(): { left: number; right: number; top: number; bottom: number; x: number; y: number; }; setSize(): void; setSpacerSize(): void; setContentPosition(pos: any): void; onScrollPositionChange(event: Event): { first: number | { rows: number; cols: number; }; last: any; isRangeChanged: boolean; scrollPos: any; }; onScrollChange(event: Event): void; onContainerScroll(event: Event): void; bindResizeListener(): void; unbindResizeListener(): void; onWindowResize(): void; handleEvents(name: string, params: any): any; getContentTemplateContext(): ScrollerContentTemplateContext; getItemTemplateContext(item: any, index: number): ScrollerItemTemplateContext; getLoaderTemplateContext(index: number): { options: any; }; getDisabledContentTemplateContext(): ScrollerContentTemplateContext; getContentOptions(): { contentStyleClass: string; items: any[]; getItemOptions: (index: number) => { index: any; count: number; first: boolean; last: boolean; even: boolean; odd: boolean; }; loading: boolean; getLoaderOptions: (index: number, options?: any) => any; itemSize: any; rows: any[]; columns: any; spacerStyle: CSSProperties; contentStyle: CSSProperties; vertical: boolean; horizontal: boolean; both: boolean; scrollTo: any; scrollToIndex: any; orientation: "vertical" | "horizontal" | "both"; scrollableElement: any; }; getOptions(renderedIndex: number): { index: any; count: number; first: boolean; last: boolean; even: boolean; odd: boolean; }; getLoaderOptions(index: number, extOptions: any): any; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ScrollerModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { Scroller, ScrollerClasses, ScrollerModule, ScrollerStyle };