@true-directive/base
Version:
The set of base classes for the TrueDirective Grid
114 lines (113 loc) • 4.78 kB
TypeScript
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { GridSettings } from './grid-settings.class';
import { GridLayout } from './grid-layout.class';
import { CellPosition } from './cell-position.class';
import { CellRange } from './cell-range.class';
import { Column } from './column.class';
import { SelectionMode } from './enums';
/**
* Выделенные данные в таблице.
* Содержит одну ячейку, на которой установлена фокусировка и набор
* прямоугольных областей
*/
export declare class Selection {
private _lastFocusedField;
private _focusedCell;
/**
* Список выделенных областей
*/
readonly ranges: CellRange[];
/**
* Последняя выделенная область
* @return Последняя выделенная область, если есть (иначе null)
*/
private readonly lastRange;
/**
* Позиция ячейки, на которой находится фокус
*/
focusedCell: CellPosition;
/**
* Добавление области в список выделенных областей
* @param range Область
*/
private addRange;
/**
* Очистка выделенного.
*/
private clear;
/**
* Очистка выделенного и излучение события об изменении выделенного
*/
clearAll(): void;
/**
* Начало выделения области пользователем
* @param pos Позиция ячейки, с которой начато выделение
* @param ctrl Нажат ли Ctrl. Если true, то новая область будет добавлена к
* имеющемся. Иначе сначала производится очистка областей.
*/
startSelect(pos: CellPosition, ctrl?: boolean): void;
proceedToSelect(pos: CellPosition, scrollToPos?: boolean): boolean;
/**
* User finished selection
* @param sm Current grid's selectionMode
* @return If selection has been changed
*/
endSelect(sm: SelectionMode): boolean;
/**
* Last position of the last range.
* @return CellPosition
*/
getLastPos(): CellPosition;
cellPosition(row: any, rowIndex: number, fieldName: string, keyField: string): CellPosition;
findRow(rows: any[], row: any, keyField?: string): number;
/**
* Updating indices of the selected rows.
* @param rows Source rows list
* @param resultRows Resulting rows list
* @param keyField Key field name
* @return Returns true if indices was changed
*/
updateSelectionIndices(rows: any[], resultRows: any[], keyField?: string): boolean;
selectRow(layouts: GridLayout[], r: any, ri: number, fieldName?: string, keyField?: string): CellPosition;
selectFirstRow(layouts: GridLayout[], rows: Array<any>): CellPosition;
move(layouts: GridLayout[], // Список частей грида, чтобы можно было переместиться между ними
settings: GridSettings, // Настройки
rows: Array<any>, // Отображаемый список строк
pageCapacity: any, // Количество строк, вмещаемых в страницу
keyEvent: any): CellPosition;
private movePosition;
findField(layouts: GridLayout[], fieldName: string): {
layout: number;
index: number;
};
private nextLayoutField;
private prevLayoutField;
private firstField;
private lastField;
isSingleCellSelected(): boolean;
protected selectionChangedEvent(cp: CellPosition): void;
protected focusChangedEvent(cp: CellPosition): void;
columnIndex(lc: Column[], fieldName: string): number;
/**
* The row containing a focused cell.
*/
readonly focusedRow: any;
/**
* Выделена ли ячейка в заданной позиции ячейки
* @param lc Список колонок (по лэйаутам)
* @param pos Позиция ячейки
* @param st Настройки грида
* @return Да или нет
*/
isSelected(lc: Column[], pos: CellPosition, st: GridSettings): boolean;
/**
* Returns value of column in the focused cell
* @param c Column
* @return Value
*/
focusedValue(c: Column): any;
}