@true-directive/base
Version:
The set of base classes for the TrueDirective Grid
242 lines (241 loc) • 9.44 kB
TypeScript
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { RenderMode, DetectionMode, SelectionMode, EditorShowMode, LazyLoadingMode } from './enums';
import { Column } from './column.class';
import { MenuAction } from './menu-action.class';
import { GridAppearance } from './grid-appearance.class';
/**
* Grid settings
*/
export declare class GridSettings {
/**
* Field's name which allows to identify the specific object.
* You should set this property to avoid loosing grid's selected ranges
* after updating the data.
*/
keyField: string;
/**
* Grid's css-class
*/
readonly appearance: GridAppearance;
readonly sta: GridAppearance;
/**
* Грид запрашивает данные у родительского компонента
* (у обработчика события state.OnDataQuery)
*/
requestData: boolean;
/**
* Единица измерения ширины колонок
*/
widthUnit: string;
/**
* Change detection mode
* Режим проверки изменений. При значении MANUAL необходимо вручную вызывать
* обновление грида после изменения данных.
*/
changeDetectionMode: DetectionMode;
/**
* Режим отрисовки (все данные или только видимые)
*/
renderMode: RenderMode;
/**
* Lazy Loading mode
*/
lazyLoading: LazyLoadingMode;
/**
* Page size
*/
lazyLoadingPageSize: number;
/**
*
*/
lazyLoadingThreshold: number;
/**
* Milliseconds between scrolling and loading
*/
lazyLoadingPause: number;
/**
* Способ выделения ячеек данных
*/
selectionMode: SelectionMode;
/**
* Выделение нескольких ячеек/строк/областей (с удержанием Ctrl key)
*/
multiSelect: boolean;
/**
* Header's word wrap setting
*/
headerWordWrap: boolean;
/**
* Data cell's word wrap setting
*/
dataWordWrap: boolean;
/**
* Data row height in pixels. Можно задать заведомо меньшую высоту, тогда
* высота строки будет такой, чтобы уместить контент. Если высота задана,
* то минимальная высота будет такой.
*/
rowHeight: number;
/**
* Высота строки для грида, который находится в окне фильтров.
* Если не задан, берется rowHeight
*/
private _filterItemRowHeight;
filterItemRowHeight: number;
/**
* Максимальная высота выпадающего списка для редактора EditorSelectTrue.
* Нужно указать с единицей измерения.
*/
maxDropDownHeight: string;
/**
* Внутренний или пользовательский шаблон
*/
customTemplate: boolean;
columnResize: boolean;
columnReorder: boolean;
bandReorder: boolean;
allowSorting: boolean;
allowFilter: boolean;
allowFixedColumns: boolean;
rowDrag: boolean;
/**
* При обнаружении iOS или Android горизонтальный и вертикальный скролл производится
* двумя разными скроллбоксами. Для избежания дерганий.
* Но если скролл по горизонтали не предусмотрен, то лучше отключить эту опцию.
*/
enableTouchScroll: boolean;
showGroupArea: boolean;
showHeader: boolean;
showBands: boolean;
showFooter: boolean;
/**
* Значение чекбокса меняется по клику всей ячейки
*/
checkByCellClick: boolean;
/**
* Показывать счетчик количества rows в группе
*/
showGroupCounts: boolean;
/**
* Группы сколлапсированы по умолчанию
*/
groupCollapseByDefault: boolean;
/**
* Минимальная ширина колонки, доступная при изменении ширины пользователем
* В указанных выше единицах измерения
*/
minColumnWidthOnResize: number;
/**
* Автоматическое растягивание колонок
*/
columnAutoWidth: boolean;
/**
* Ширина отступа при формировании уровней группировки или при отображении
* дочерних items дерева
*/
levelIndent: number;
/**
* Свойство, в которых содержится список дочерних items.
* Если задано, то считается, что грид отображает дерево.
*/
treeChildrenProperty: string;
groupSwitcherIconField: string;
/**
* Шаг автоматической прокрутки при drag-n-drop в пикселах
*/
autoScrollStep: number;
/**
* Интервал автоматической прокрутки при drag-n-drop в миллисекундах
*/
autoScrollInterval: number;
/**
* Способ перехода ячейки в режим редактирования. По умолчанию возможность
* редактирования отключена
*/
editorShowMode: EditorShowMode;
/**
* Активация редактора при нажатии клавиши (не учитываются стрелочные клавиши и RETURN)
*/
editorByKey: boolean;
/**
* Автоматическое принятие изменений, сделанных в редакторе.
* Если true, то изменения принимаются при потере фокуса, при переходе
* на другую ячейку.
* Если false, то изменения принимаются только при нажатии Enter, а в
* остальных случаях отменяются.
*/
editorAutoCommit: boolean;
/**
* Подсветка найденной подстроки общего текстового фильтра. Для подсветки
* используется свойство innerHTML ячейки. При наличии колонок с типом HTML
* могут быть сложности.
*/
searchHighlight: boolean;
/**
* Number of milliseconds between user input of search string and data
* processing. If value set is too low, refresh will occur too often, which
* will lead to subjectively worse perceptual performance.
*/
searchDelay: number;
dataContextMenuActions: MenuAction[];
headerContextMenuActions: MenuAction[];
enableDataContextMenu: boolean;
enableHeaderContextMenu: boolean;
autoFocusAfterEditor: boolean;
/**
* Is row's height fixed?
*/
readonly fixedRowHeight: boolean;
/**
* Minimal settings for dropdown lists
*/
static minimal(autoWidth?: boolean): GridSettings;
/**
* Можно ли выделять прямоугольные области при заданных настройках
*/
canSelectRange(): boolean;
/**
* Ширина правой пустой колонки в заголовке
* @return Ширина с единицей измерения
*/
readonly hdWidth: string;
/**
* Класс ячейки данных
* @return Список классов через пробел
*/
cellClass(col: Column): string;
/**
* Класс ячейки заголовка
*/
headerCellClass(col: Column): string;
/**
* Класс ячейки футера
*/
footerCellClass(col: Column): string;
/**
* Класс ячейки данных с чекбоксом
* @param v Значение
*/
checkboxClass(v?: boolean): string;
/**
* Класс ячейки заголовка с чекбоксом
* @param v Значение (отмечено / не отмечено)
* @return Класс
*/
headerCheckboxClass(v?: boolean): string;
/**
* Ширина отступа одного уровня
* @return Ширина с единицей измерения
*/
readonly levelWidth: string;
/**
* Проверка возможности редактирования ячейки заданной колонки
* @param col Колонка
* @return Можно ли редактировать
*/
canEditColumnCell(col: Column): boolean;
constructor();
}