UNPKG

@true-directive/base

Version:

The set of base classes for the TrueDirective Grid

242 lines (241 loc) 9.44 kB
/** * 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(); }