UNPKG

@syncfusion/ej2-grids

Version:

Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.

133 lines (132 loc) 3.96 kB
import { IGrid, IRenderer, NotifyArgs } from '../base/interface'; import { ContentRender } from './content-renderer'; import { ServiceLocator } from '../services/service-locator'; import { InterSectionObserver } from '../services/intersection-observer'; /** * @hidden */ export declare class DomVirtualElementHandler { wrapper: HTMLElement; placeholder: HTMLElement; content: HTMLElement; table: HTMLElement; verticalScrollbar: HTMLElement; verticalScrollerContainer: HTMLElement; gridContent: HTMLElement; renderWrapper(height?: number): void; renderPlaceHolder(): void; renderVerticalScrollbar(): void; adjustTable(yValue: number): void; setVirtualHeight(height?: number): void; } /** * @hidden */ export declare class DomVirtualContentRenderer extends ContentRender implements IRenderer { virtualEle: DomVirtualElementHandler; content: HTMLElement; private totalRecords; private rowHeight; private currentScrollTop; private prevScrollTop; private prevStartIndex; /** * @hidden */ currentStartIndex: number; private preventScroll; private locator; private widthServices; private expandedDetailRows; private pendingSelectIndex; private storedVirtualHeight; private rowHeightCache; private dynamicHeightSum; private dynamicRowCount; /** @hidden */ observer: InterSectionObserver; private activeKey; rowIndex: number; cellIndex: number; private isCancel; /** @hidden */ offsets: { [x: number]: number; }; /** @hidden */ offsetKeys: string[]; private actions; private count; private maxPage; private previousPage; private pageSkip; private pageTake; private isNormaledit; private editedRowIndex; private isAdd; /** @hidden */ virtualData: Object; private emptyRowData; private boundActionComplete; private boundActionBegin; constructor(parent: IGrid, locator?: ServiceLocator); renderTable(): void; refreshContentRows(args?: NotifyArgs): void; appendContent(tbody: Element, frag: DocumentFragment, args: NotifyArgs, tableName?: string): void; renderEmpty(tbody: HTMLElement): void; private bindScrollEvents; private domScrollListener; private checkAndFetchCrossPageData; private onEntered; protected onDataReady(e?: NotifyArgs): void; private setDomVirtualPageQuery; /** * @returns {void} * @hidden */ refreshOffsets(): void; private getPageFromIndex; private isAutoRowHeight; private hasRowHeightCallback; private isDynamicHeight; private measureRowHeights; private getAvgRowHeight; private getDataRowIndexByScrollTop; private getStartIndex; private getEndIndex; private getVisibleRowCount; private getBufferRowCount; private initializeRowHeight; private setVirtualDimensions; getRowTopOffset(dataRowIndex: number): number; updateDetailRowHeight(rowIndex: number, isExpand: boolean, detailRowHeight?: number): void; clearExpandedDetailRows(): void; removeEventListeners(): void; destroy(): void; private domVirtualCellFocus; private focusCell; private resetVirtualFocus; private onGroupExpandCollapse; private onApplyDomVirtualRowHeight; private selectVirtualRow; private scrollAfterEdit; private restoreEdit; private restoreAdd; private editActionBegin; private addActionBegin; private getVirtualEditedData; getVirtualData(data: { virtualData: Object; isAdd: boolean; isCancel: boolean; isScroll: boolean; }): void; getVirtualRowIndex(index: number): number; private editCancel; private editSuccess; private updateCurrentViewData; private createEmptyRowdata; private resetIsedit; private resetScrollPosition; private actionComplete; private actionBegin; }