UNPKG

@true-directive/base

Version:

The set of base classes for the TrueDirective Grid

93 lines (92 loc) 4.39 kB
/** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { GridState } from './grid-state.class'; /** * Хранит высоты строк, пересчитывает позиции строк для рендреа * при заданной позиции скролла */ export declare class RowCalculator { private state; private _currentRH; currentScrollPos: number; readonly currentRH: number; private _rowHeights; private _minH; private minH; private GHOST_START; private GHOST_END; TOTAL_HEIGHT: number; private _startRows; private _endRows; private _startH; private _endH; private _extraRows; private _extraH; private ghostMaxH; firstRowDY(): string; firstRowY(): string; /** * Список фантомных строк до и после отображаемых строк * @param pos Позиция фантомных строк (start - в начале таблицы или end - в конце) */ ghostRows(pos: 'start' | 'end' | 'extra'): any[]; /** * Очистка. При любом изменении данных нужно очищать */ clear(): void; /** * Сохранение реальной высоты строки * @param rowCount Общее количество строк * @param index Индекс строки, высота которой сохраняется * @param h Реальная высота строки */ setRowHeight(rowCount: number, index: number, h: number): void; /** * Возврат реальной высоты строки * @param index Индекс строки в списке отображаемых строк * @return Реальная высота строки */ getRowHeight(index: number): number; /** * Возвращает позицию Y строки по заданному индексу * @param ri Заданный индекс */ getRowTop(ri: number): number; /** * Рассчитывает, сколько строк помещается на экране... * @param rowIndex Index of the first rendered row * @param viewPortHeight Высота вьюпорта * @param rc Number of rows * @return upRowCount - количество строк, между заданной и строкой, находящейся на одну страницу выше, * downRowCount - между заданной и строкой, находящейся на одну страницу ниже */ pageCapacity(rowIndex: number, viewPortHeight: number, rc: number): { upRowCount: number; downRowCount: number; }; /** * Calculates render parameters * @param rc Number of rows * @param pos Vertical scroll position * @param viewPortHeight Height of the visible area * @param overWork Сколько дополнительных строк нужно рендерить помимо видимых * @return Информация о рендеринге */ protected renderInfo(rc: number, scrollPos: number, viewPortHeight: number, overWork: any): any; /** * Обновление информации для рендеринга * @param rc Количество строк * @param pos Позиция скролла * @param viewPortHeight Высота видимой области * @param overWork Сколько дополнительных строк нужно рендерить помимо видимых * @return True, если есть изменения и необходимо перерендерить страницу */ updateRenderInfo(rc: number, pos: number, viewPortHeight: number, overWork: any): boolean; trackGhostRowExtra(index: number, data: any): string; trackGhostRowStart(index: number, data: any): string; trackGhostRowEnd(index: number, data: any): string; constructor(state: GridState); }