UNPKG

@true-directive/base

Version:

The set of base classes for the TrueDirective Grid

114 lines (113 loc) 4.78 kB
/** * 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; }