UNPKG

cheetah-grid

Version:

Cheetah Grid is a high performance grid engine that works on canvas

159 lines (145 loc) 4.33 kB
/* eslint-disable camelcase */ import type { CellAddress, CellRange, FieldDef } from "./grid"; import type { AnyFunction } from "./base"; import type { ColumnDefine } from "../ListGrid"; export type KeyboardEventListener = (e: KeyboardEvent) => void; export type AnyListener = AnyFunction; export type EventListenerId = number; export type BeforeSelectedCellEvent = CellAddress & { selected: false; after: CellAddress; }; export type AfterSelectedCellEvent = CellAddress & { selected: true; before: CellAddress; }; export type SelectedCellEvent = | BeforeSelectedCellEvent | AfterSelectedCellEvent; export type MouseCellEvent = CellAddress & { event: MouseEvent; }; export type TouchCellEvent = CellAddress & { event: TouchEvent; }; export type KeydownEvent = { keyCode: number; event: KeyboardEvent; stopCellMoving(): void; }; export interface PasteRangeBoxValues { readonly colCount: number; readonly rowCount: number; getCellValue(offsetCol: number, offsetRow: number): string; } export type PasteCellEvent = CellAddress & { value: string; normalizeValue: string; multi: boolean; rangeBoxValues: PasteRangeBoxValues; event: ClipboardEvent; }; export type InputCellEvent = CellAddress & { value: string; }; export type DeleteCellEvent = CellAddress & { event: KeyboardEvent; }; export type ScrollEvent = { event: Event; }; export type ModifyStatusEditableinputCellEvent = CellAddress & { input: HTMLInputElement; }; export type MousePointerCellEvent = CellAddress & { related?: CellAddress; event: Pick<MouseEvent, "clientX" | "clientY" | "pageX" | "pageY">; }; export interface DrawGridEventHandlersEventMap { selected_cell: [SelectedCellEvent, boolean]; click_cell: [MouseCellEvent]; dblclick_cell: [MouseCellEvent]; mouseenter_cell: [MousePointerCellEvent]; mouseleave_cell: [MousePointerCellEvent]; mouseover_cell: [MousePointerCellEvent]; mouseout_cell: [MousePointerCellEvent]; mousemove_cell: [MouseCellEvent]; mousedown_cell: [MouseCellEvent]; mouseup_cell: [MouseCellEvent]; contextmenu_cell: [MouseCellEvent]; touchstart_cell: [TouchCellEvent]; dbltap_cell: [TouchCellEvent]; keydown: [KeydownEvent]; paste_cell: [PasteCellEvent]; input_cell: [InputCellEvent]; delete_cell: [DeleteCellEvent]; scroll: [ScrollEvent]; editableinput_cell: [CellAddress]; modify_status_editableinput_cell: [ModifyStatusEditableinputCellEvent]; focus_grid: [FocusEvent]; blur_grid: [FocusEvent]; resize_column: [{ col: number }]; copydata: [CellRange]; } export interface DrawGridEventHandlersReturnMap { selected_cell: void; click_cell: void; dblclick_cell: void; mouseenter_cell: void; mouseleave_cell: void; mouseover_cell: void; mouseout_cell: void; mousemove_cell: void; mousedown_cell: boolean; mouseup_cell: void; contextmenu_cell: void; touchstart_cell: void; dbltap_cell: void; keydown: void; paste_cell: void; input_cell: void; delete_cell: void; scroll: void; editableinput_cell: boolean | void; modify_status_editableinput_cell: void; focus_grid: void; blur_grid: void; resize_column: void; copydata: string; } export type ChangedValueCellEvent<T> = CellAddress & { record: T; field: FieldDef<T>; // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any; // eslint-disable-next-line @typescript-eslint/no-explicit-any oldValue: any; }; export type ChangedHeaderValueCellEvent = CellAddress & { field: string; // eslint-disable-next-line @typescript-eslint/no-explicit-any value: any; // eslint-disable-next-line @typescript-eslint/no-explicit-any oldValue: any; }; export type PasteRejectedValuesEvent<T> = { detail: (CellAddress & { record: T | undefined; define: ColumnDefine<T>; pasteValue: string; })[]; }; export interface ListGridEventHandlersEventMap<T> extends DrawGridEventHandlersEventMap { before_change_value: [ChangedValueCellEvent<T>]; changed_value: [ChangedValueCellEvent<T>]; changed_header_value: [ChangedHeaderValueCellEvent]; rejected_paste_values: [PasteRejectedValuesEvent<T>]; } export interface ListGridEventHandlersReturnMap extends DrawGridEventHandlersReturnMap { before_change_value: void; changed_value: void; changed_header_value: void; rejected_paste_values: void; }