import type { IEventDetail } from '@breadstone/mosaik-elements'; import type { TableBodyCellElement } from '../Components/Selectors/Table/TableBodyCellElement'; import type { TableBodyRowElement } from '../Components/Selectors/Table/TableBodyRowElement'; import type { ITableColumnEditorItem } from '../Components/Selectors/Table/editor/ITableColumnEditorItem'; import type { TableSelectionMode } from '../Types/TableSelectionMode'; import type { TableSelectionType } from '../Types/TableSelectionType'; /** * Represents the event detail for table column sort changed events. * * @public */ export interface ITableSortChangedEventDetail extends IEventDetail { /** * The sort key. */ readonly sortKey?: string; /** * The column being sorted. */ readonly column?: string; /** * The sort direction. */ readonly direction?: 'asc' | 'desc' | 'none'; /** * The sort direction (alias). */ readonly sortDirection?: 'asc' | 'desc' | 'none'; /** * The 1-based sort priority index in multi-sort mode. * `undefined` when the column is not sorted or in single-sort mode. */ readonly sortIndex?: number; /** * All currently active sorts (only populated in multi-sort mode). */ readonly activeSorts?: ReadonlyArray<{ sortKey: string; sortDirection: 'asc' | 'desc'; sortIndex: number; }>; } /** * Event fired when table sort changes. * * @public */ export type TableSortChangedEvent = CustomEvent; /** * Represents the event detail for table columns changed events. * * @public */ export interface ITableColumnsChangedEventDetail extends IEventDetail { /** * The visible columns. */ readonly columns: string | ReadonlyArray; } /** * Event fired when table columns change. * * @public */ export type TableColumnsChangedEvent = CustomEvent; /** * Represents the event detail for table selection changed events. * * @public */ export interface ITableSelectionChangedEventDetail extends IEventDetail { /** * The active selection mode at the time of the event. */ readonly selectionMode: TableSelectionMode; /** * The active selection type at the time of the event. */ readonly selectionType: TableSelectionType; /** * The currently selected rows (when selectionType is 'row'). */ readonly selectedRows: ReadonlyArray; /** * The currently selected cells (when selectionType is 'cell'). */ readonly selectedCells: ReadonlyArray; } /** * Event fired when table selection changes. * * @public */ export type TableSelectionChangedEvent = CustomEvent; /** * Represents the event detail for table column resized events. * * @public */ export interface ITableColumnResizedEventDetail extends IEventDetail { /** * The index of the resized column. */ readonly columnIndex: number; /** * The new width of the column in pixels. */ readonly width: number; } /** * Event fired when a table column is resized. * * @public */ export type TableColumnResizedEvent = CustomEvent; /** * Represents the event detail for table choose columns events. * * @public */ export interface ITableChooseColumnsEventDetail extends IEventDetail { /** * The column items available for editing. */ readonly columns: ReadonlyArray; } /** * Event fired when the choose columns action is requested. * * @public */ export type TableChooseColumnsEvent = CustomEvent; /** * Represents the event detail for table column editor changed events. * * @public */ export interface ITableColumnEditorChangedEventDetail extends IEventDetail { /** * The updated column items after editing. */ readonly columns: ReadonlyArray; } /** * Event fired when column editor changes are applied. * * @public */ export type TableColumnEditorChangedEvent = CustomEvent; /** * Event fired when the column editor is dismissed. * * @public */ export type TableColumnEditorDismissedEvent = CustomEvent; /** * Event fired when the data table column editor is opened. * * @public */ export type DataTableEditorOpenedEvent = CustomEvent; /** * Event fired when the data table column editor is closed. * * @public */ export type DataTableEditorClosedEvent = CustomEvent; declare global { interface HTMLElementEventMap { columnsChanged: TableColumnsChangedEvent; tableSortChanged: TableSortChangedEvent; tableColumnsChanged: TableColumnsChangedEvent; tableColumnResized: TableColumnResizedEvent; tableChooseColumns: TableChooseColumnsEvent; tableColumnEditorChanged: TableColumnEditorChangedEvent; tableColumnEditorDismissed: TableColumnEditorDismissedEvent; tableRequestChooseColumns: CustomEvent; tableSelectionChanged: TableSelectionChangedEvent; dataTableEditorOpened: DataTableEditorOpenedEvent; dataTableEditorClosed: DataTableEditorClosedEvent; } } //# sourceMappingURL=TableEvents.d.ts.map