@keenmate/web-grid 1.0.0-rc09 → 1.0.0-rc11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,7 @@
1
1
  import { WebGrid } from './grid.js';
2
2
  import type { Column, CellValidationState, RowToolbarConfig, ContextMenuItem, RowShortcut, RowChangeDetail, ToolbarClickDetail, RowActionClickDetail, ContextMenuContext, HeaderMenuConfig, HeaderMenuContext, EditTrigger, EditStartSelection, EditorOption, EditorOptions, GridMode, ToggleVisibility, DataRequestDetail, SortState, SortMode, PaginationLabelsCallback, SummaryContentCallback, ValidationTooltipContext, ToolbarPosition, GridLabels, RowLockInfo, RowLockingOptions, RowLockChangeDetail, ColumnResizeDetail, ColumnWidthState, ColumnReorderDetail, ColumnOrderState, FillDragDetail, RangeShortcut } from './types.js';
3
+ import { type ScrollEventManager } from './modules/scroll-events/index.js';
4
+ import { type FocusEventManager } from './modules/focus-events/index.js';
3
5
  import type { GridContext } from './modules/types.js';
4
6
  /**
5
7
  * GridElement - Custom HTML Element for WebGrid
@@ -25,9 +27,7 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
25
27
  private updatePending;
26
28
  isCommittingFromKeyboard: boolean;
27
29
  private isTransitioningCells;
28
- private wheelListenerAdded;
29
30
  private toolbarOutsideClickAdded;
30
- private toolbarScrollListenerAdded;
31
31
  private toolbarMoveInProgress;
32
32
  private toolbarHideTimeout;
33
33
  private toolbarHovered;
@@ -40,6 +40,7 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
40
40
  isUserFiltering: boolean;
41
41
  justSelected: boolean;
42
42
  isOpeningDropdown: boolean;
43
+ isClosingViaToggle: boolean;
43
44
  private isProgrammaticScroll;
44
45
  searchDebounceTimer: ReturnType<typeof setTimeout> | null;
45
46
  searchAbortController: AbortController | null;
@@ -60,8 +61,9 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
60
61
  private headerContextMenuElement;
61
62
  private virtualScrollStart;
62
63
  private virtualScrollEnd;
63
- private scrollListenerAdded;
64
64
  private isLoadingMoreItems;
65
+ readonly scrollEvents: ScrollEventManager;
66
+ readonly focusEvents: FocusEventManager;
65
67
  constructor();
66
68
  connectedCallback(): void;
67
69
  disconnectedCallback(): void;
@@ -69,20 +71,20 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
69
71
  set items(value: T[]);
70
72
  get columns(): Column<T>[];
71
73
  set columns(value: Column<T>[]);
72
- get filterable(): boolean;
73
- set filterable(value: boolean);
74
- get pageable(): boolean;
75
- set pageable(value: boolean);
74
+ get isFilterable(): boolean;
75
+ set isFilterable(value: boolean);
76
+ get isPageable(): boolean;
77
+ set isPageable(value: boolean);
76
78
  get pageSize(): number;
77
79
  set pageSize(value: number);
78
80
  get pageSizes(): number[];
79
81
  set pageSizes(value: number[]);
80
- get striped(): boolean;
81
- set striped(value: boolean);
82
- get hoverable(): boolean;
83
- set hoverable(value: boolean);
84
- get editable(): boolean;
85
- set editable(value: boolean);
82
+ get isStriped(): boolean;
83
+ set isStriped(value: boolean);
84
+ get isHoverable(): boolean;
85
+ set isHoverable(value: boolean);
86
+ get isEditable(): boolean;
87
+ set isEditable(value: boolean);
86
88
  get editTrigger(): EditTrigger;
87
89
  set editTrigger(value: EditTrigger);
88
90
  get editStartSelection(): EditStartSelection;
@@ -91,22 +93,22 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
91
93
  set mode(value: GridMode);
92
94
  get dropdownToggleVisibility(): ToggleVisibility;
93
95
  set dropdownToggleVisibility(value: ToggleVisibility);
94
- get dropdownShowOnFocus(): boolean;
95
- set dropdownShowOnFocus(value: boolean);
96
- get openDropdownOnEnter(): boolean;
97
- set openDropdownOnEnter(value: boolean);
98
- get checkboxAlwaysEditable(): boolean;
99
- set checkboxAlwaysEditable(value: boolean);
100
- get showRowNumbers(): boolean;
101
- set showRowNumbers(value: boolean);
102
- get stickyRowNumbers(): boolean;
103
- set stickyRowNumbers(value: boolean);
96
+ get shouldShowDropdownOnFocus(): boolean;
97
+ set shouldShowDropdownOnFocus(value: boolean);
98
+ get shouldOpenDropdownOnEnter(): boolean;
99
+ set shouldOpenDropdownOnEnter(value: boolean);
100
+ get isCheckboxAlwaysEditable(): boolean;
101
+ set isCheckboxAlwaysEditable(value: boolean);
102
+ get isRowNumbersVisible(): boolean;
103
+ set isRowNumbersVisible(value: boolean);
104
+ get isStickyRowNumbers(): boolean;
105
+ set isStickyRowNumbers(value: boolean);
104
106
  get freezeColumns(): number;
105
107
  set freezeColumns(value: number);
106
108
  get invalidCells(): CellValidationState[];
107
109
  set invalidCells(value: CellValidationState[]);
108
- get showRowToolbar(): boolean;
109
- set showRowToolbar(value: boolean);
110
+ get isRowToolbarVisible(): boolean;
111
+ set isRowToolbarVisible(value: boolean);
110
112
  get rowToolbar(): RowToolbarConfig<T>[];
111
113
  set rowToolbar(value: RowToolbarConfig<T>[]);
112
114
  get toolbarVerticalAlign(): 'top' | 'center' | 'bottom';
@@ -142,16 +144,30 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
142
144
  clearSelection(): void;
143
145
  isRowSelected(rowIndex: number): boolean;
144
146
  getSelectedRowsData(): T[];
145
- get showShortcutsHelp(): boolean;
146
- set showShortcutsHelp(value: boolean);
147
+ copySelectedRowsToClipboard(): Promise<boolean>;
148
+ get cellSelectionMode(): import("./types.js").CellSelectionMode;
149
+ set cellSelectionMode(value: import("./types.js").CellSelectionMode);
150
+ get selectedCellRange(): import("./types.js").CellRange;
151
+ selectCellRange(range: any): void;
152
+ clearCellSelection(): void;
153
+ getSelectedCells(): {
154
+ row: T;
155
+ rowIndex: number;
156
+ colIndex: number;
157
+ field: string;
158
+ value: unknown;
159
+ }[];
160
+ copyCellSelectionToClipboard(): Promise<boolean>;
161
+ get shouldCopyWithHeaders(): boolean;
162
+ set shouldCopyWithHeaders(value: boolean);
163
+ get oncellselectionchange(): (detail: import("./types.js").CellSelectionChangeDetail) => void;
164
+ set oncellselectionchange(value: (detail: import("./types.js").CellSelectionChangeDetail) => void);
165
+ get isShortcutsHelpVisible(): boolean;
166
+ set isShortcutsHelpVisible(value: boolean);
147
167
  get shortcutsHelpPosition(): 'top-right' | 'top-left';
148
168
  set shortcutsHelpPosition(value: 'top-right' | 'top-left');
149
169
  get shortcutsHelpContentCallback(): (() => string) | undefined;
150
170
  set shortcutsHelpContentCallback(value: (() => string) | undefined);
151
- get showRowActions(): boolean;
152
- set showRowActions(value: boolean);
153
- get rowActions(): RowToolbarConfig<T>[];
154
- set rowActions(value: RowToolbarConfig<T>[]);
155
171
  set onrowchange(value: ((detail: RowChangeDetail<T>) => void) | undefined);
156
172
  set onroweditstart(value: ((detail: {
157
173
  row: T;
@@ -212,8 +228,8 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
212
228
  set labels(value: Partial<GridLabels>);
213
229
  get summaryMetadata(): unknown;
214
230
  set summaryMetadata(value: unknown);
215
- get summaryInline(): boolean;
216
- set summaryInline(value: boolean);
231
+ get isSummaryInline(): boolean;
232
+ set isSummaryInline(value: boolean);
217
233
  get idValueMember(): keyof T | undefined;
218
234
  set idValueMember(value: keyof T | undefined);
219
235
  get idValueCallback(): ((row: T) => unknown) | undefined;
@@ -224,12 +240,12 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
224
240
  set onrowlockchange(value: ((detail: RowLockChangeDetail<T>) => void) | undefined);
225
241
  get gridName(): string | null;
226
242
  set gridName(value: string | null);
227
- get persistColumnWidths(): boolean;
228
- set persistColumnWidths(value: boolean);
229
- get allowColumnReorder(): boolean;
230
- set allowColumnReorder(value: boolean);
231
- get persistColumnOrder(): boolean;
232
- set persistColumnOrder(value: boolean);
243
+ get shouldPersistColumnWidths(): boolean;
244
+ set shouldPersistColumnWidths(value: boolean);
245
+ get isColumnReorderAllowed(): boolean;
246
+ set isColumnReorderAllowed(value: boolean);
247
+ get shouldPersistColumnOrder(): boolean;
248
+ set shouldPersistColumnOrder(value: boolean);
233
249
  /**
234
250
  * Try to load persisted state (widths/order) if conditions are met
235
251
  */
@@ -239,18 +255,18 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
239
255
  set oncolumnresize(value: ((detail: ColumnResizeDetail) => void) | undefined);
240
256
  get oncolumnreorder(): ((detail: ColumnReorderDetail) => void) | undefined;
241
257
  set oncolumnreorder(value: ((detail: ColumnReorderDetail) => void) | undefined);
242
- get onfilldrag(): ((detail: FillDragDetail) => boolean | void) | undefined;
243
- set onfilldrag(value: ((detail: FillDragDetail) => boolean | void) | undefined);
244
- get virtualScroll(): boolean;
245
- set virtualScroll(value: boolean);
258
+ get fillDragCallback(): ((detail: FillDragDetail) => boolean | void) | undefined;
259
+ set fillDragCallback(value: ((detail: FillDragDetail) => boolean | void) | undefined);
260
+ get isVirtualScrollEnabled(): boolean;
261
+ set isVirtualScrollEnabled(value: boolean);
246
262
  get virtualScrollThreshold(): number;
247
263
  set virtualScrollThreshold(value: number);
248
264
  get virtualScrollRowHeight(): number;
249
265
  set virtualScrollRowHeight(value: number);
250
266
  get virtualScrollBuffer(): number;
251
267
  set virtualScrollBuffer(value: number);
252
- get infiniteScroll(): boolean;
253
- set infiniteScroll(value: boolean);
268
+ get isInfiniteScrollEnabled(): boolean;
269
+ set isInfiniteScrollEnabled(value: boolean);
254
270
  get infiniteScrollThreshold(): number;
255
271
  set infiniteScrollThreshold(value: number);
256
272
  get hasMoreItems(): boolean;
@@ -404,6 +420,18 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
404
420
  * Close toolbar and reset move flag
405
421
  */
406
422
  private closeToolbarAndReset;
423
+ /**
424
+ * Close dropdown on scroll - shared logic for container and window scroll
425
+ */
426
+ private handleScrollCloseDropdown;
427
+ /**
428
+ * Handle select trigger blur - cancel edit and restore display mode
429
+ */
430
+ private handleSelectBlur;
431
+ /**
432
+ * Handle combobox/autocomplete blur - commit matched option or raw text
433
+ */
434
+ private handleComboboxBlur;
407
435
  /**
408
436
  * Handle toolbar item click
409
437
  */