@true-directive/base
Version:
The set of base classes for the TrueDirective Grid
93 lines (92 loc) • 4.39 kB
TypeScript
/**
* 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);
}