UNPKG

@siemens/ngx-datatable

Version:

ngx-datatable is an Angular table grid component for presenting large and complex data.

225 lines (224 loc) 6.37 kB
import { TableColumn, TableColumnProp } from './table-column.type'; export interface SortPropDir { dir: SortDirection | 'desc' | 'asc'; prop: TableColumnProp; } /** * @deprecated The constant `SortDirection` should no longer be used. Instead use the value directly: * ``` * // old * const sortDir: SortDirection = SortDirection.asc; * // new * const sortDir: SortDirection = 'asc'; * ``` */ export declare const SortDirection: { readonly asc: "asc"; readonly desc: "desc"; }; export type SortDirection = (typeof SortDirection)[keyof typeof SortDirection]; export interface SortEvent { column: TableColumn; prevValue: SortDirection | undefined; newValue: SortDirection | undefined; sorts: SortPropDir[]; } /** * @deprecated The constant `SortType` should no longer be used. Instead use the value directly: * ``` * // old * const sortType: SortType = SortType.single; * // new * const sortType: SortType = 'single'; * ``` */ export declare const SortType: { readonly single: "single"; readonly multi: "multi"; }; export type SortType = (typeof SortType)[keyof typeof SortType]; /** * @deprecated The constant `ColumnMode` should no longer be used. Instead use the value directly: * ``` * // old * <ngx-datatable [columnMode]="ColumnMode.force"></ngx-datatable> * // new * <ngx-datatable [columnMode]="'force'"></ngx-datatable> * ``` */ export declare const ColumnMode: { readonly standard: "standard"; readonly flex: "flex"; readonly force: "force"; }; export type ColumnMode = (typeof ColumnMode)[keyof typeof ColumnMode]; export type TreeStatus = 'collapsed' | 'expanded' | 'loading' | 'disabled'; export interface ActivateEvent<TRow> { type: 'checkbox' | 'click' | 'dblclick' | 'keydown' | 'mouseenter'; event: Event; row: TRow; group?: TRow[]; rowHeight?: number; column?: TableColumn; value?: any; cellElement?: HTMLElement; treeStatus?: TreeStatus; cellIndex?: number; rowElement: HTMLElement; } export interface HeaderCellContext { column: TableColumn; sortDir: SortDirection | 'asc' | 'desc' | undefined; sortFn: () => void; allRowsSelected?: boolean; selectFn: () => void; } export interface GroupContext<TRow extends Row = any> { group: Group<TRow>; expanded: boolean; rowIndex: number; } export interface CellContext<TRow extends Row = any> { onCheckboxChangeFn: (event: Event) => void; activateFn: (event: ActivateEvent<TRow>) => void; row: TRow; group?: TRow[]; value: any; column: TableColumn; rowHeight: number; isSelected?: boolean; rowIndex: number; rowInGroupIndex?: number; treeStatus?: TreeStatus; disabled?: boolean; onTreeAction: () => void; expanded?: boolean; } export interface FooterContext { rowCount: number; pageSize: number; selectedCount: number; curPage: number; offset: number; } /** * @deprecated The constant `ContextmenuType` should no longer be used. Instead use the value directly: * ``` * // old * const contextmenuType: ContextmenuType = ContextmenuType.header; * // new * const contextmenuType: ContextmenuType = 'header'; * ``` */ export declare const ContextmenuType: { readonly header: "header"; readonly body: "body"; }; export type ContextmenuType = (typeof ContextmenuType)[keyof typeof ContextmenuType]; /** A Group row */ export interface Group<TRow> { /** The value by which to rows are grouped. */ key: TRow[keyof TRow]; /** All rows that are part of the group. */ value: TRow[]; } /** Type for either a row or a group */ export type RowOrGroup<TRow> = TRow | Group<TRow>; export interface RowDetailContext<TRow extends Row = any> { row: TRow; expanded: boolean; rowIndex: number; disabled?: boolean; } /** * Consumer provided rows should extend this interface * to get access to implicit row properties which are set by the datatable if required. */ export interface Row { [key: TableColumnProp]: any; treeStatus?: TreeStatus; level?: number; } export interface ReorderEvent { column: TableColumn; prevValue: number; newValue: number; } export interface PageEvent { count: number; pageSize: number; /** @deprecated Use {@link pageSize} instead. */ limit: number | undefined; offset: number; sorts: SortPropDir[]; } export interface PagerPageEvent { page: number; } export interface ColumnResizeEvent { column: TableColumn; prevValue: number; newValue: number; } export interface ScrollEvent { offsetY: number; offsetX: number; } export interface GroupToggleEvent<TRow> { type: 'group'; value: Group<TRow>; } export interface AllGroupsToggleEvent { type: 'all'; value: boolean; } export type GroupToggleEvents<TRow> = GroupToggleEvent<TRow> | AllGroupsToggleEvent; export interface DetailToggleEvent<TRow> { type: 'row'; value: TRow; } export interface AllDetailToggleEvent { type: 'all'; value: boolean; } export type DetailToggleEvents<TRow> = DetailToggleEvent<TRow> | AllDetailToggleEvent; /** * @deprecated The constant `SelectionType` should no longer be used. Instead use the value directly: * ``` * // old * <ngx-datatable [selectionType]="SelectionType.multi"></ngx-datatable> * // new * <ngx-datatable [selectionType]="'multi'"></ngx-datatable> * ``` */ export declare const SelectionType: { readonly single: "single"; readonly multi: "multi"; readonly multiClick: "multiClick"; readonly cell: "cell"; readonly checkbox: "checkbox"; }; export type SelectionType = (typeof SelectionType)[keyof typeof SelectionType]; export interface SelectEvent<TRow> { selected: TRow[]; } export interface ContextMenuEventBody<TRow> { event: MouseEvent; type: 'body'; content: RowOrGroup<TRow>; } export interface ContextMenuEvenHeader { event: MouseEvent; type: 'header'; content: TableColumn; } export type ContextMenuEvent<TRow> = ContextMenuEventBody<TRow> | ContextMenuEvenHeader; export type DragEventType = 'drag' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'dragstart' | 'drop'; export interface DragEventData { event: DragEvent; srcElement: HTMLElement; targetElement?: HTMLElement; eventType: DragEventType; dragRow: any; dropRow?: any; }