@keenmate/web-grid 1.1.0 → 1.2.0-rc02

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.
Files changed (47) hide show
  1. package/README.md +20 -15
  2. package/ai/fill-handle.txt +1 -1
  3. package/ai/frozen-columns.txt +2 -2
  4. package/ai/row-locking.txt +1 -1
  5. package/ai/styling-theming.txt +13 -12
  6. package/component-variables.manifest.json +8 -7
  7. package/dist/grid.d.ts +98 -11
  8. package/dist/logger.d.ts +1 -0
  9. package/dist/modules/click-events/index.d.ts +5 -1
  10. package/dist/modules/contextmenu/index.d.ts +10 -1
  11. package/dist/modules/datepicker/datepicker.d.ts +2 -0
  12. package/dist/modules/rendering/tree-render.d.ts +8 -0
  13. package/dist/perf.d.ts +15 -0
  14. package/dist/types.d.ts +15 -4
  15. package/dist/web-component.d.ts +31 -3
  16. package/dist/web-grid.js +3009 -2411
  17. package/dist/web-grid.umd.js +109 -114
  18. package/package.json +9 -3
  19. package/src/css/animations.css +14 -0
  20. package/src/css/{_cells.css → cells.css} +1 -1
  21. package/src/css/controls.css +3 -0
  22. package/src/css/dark-mode.css +67 -0
  23. package/src/css/{_dialogs.css → dialogs.css} +9 -68
  24. package/src/css/{_dirty-indicator.css → dirty-indicator.css} +37 -37
  25. package/src/css/{_dropdown.css → dropdown.css} +1 -1
  26. package/src/css/{_editors.css → editors.css} +14 -8
  27. package/src/css/floating.css +71 -0
  28. package/src/css/{_freeze.css → freeze.css} +5 -5
  29. package/src/css/{_header.css → header.css} +1 -1
  30. package/src/css/main.css +53 -48
  31. package/src/css/{_navigation.css → navigation.css} +10 -5
  32. package/src/css/{_resize.css → resize.css} +1 -1
  33. package/src/css/{_selection.css → selection.css} +1 -1
  34. package/src/css/{_shortcuts.css → shortcuts.css} +4 -4
  35. package/src/css/{_modifiers.css → states.css} +8 -2
  36. package/src/css/tree.css +71 -0
  37. package/src/css/{_variables.css → variables.css} +55 -42
  38. package/src/css/_dark-mode.css +0 -93
  39. package/src/css/_tree.css +0 -73
  40. /package/src/css/{_cell-selection.css → cell-selection.css} +0 -0
  41. /package/src/css/{_fill-handle.css → fill-handle.css} +0 -0
  42. /package/src/css/{_pagination.css → pagination.css} +0 -0
  43. /package/src/css/{_reorder.css → reorder.css} +0 -0
  44. /package/src/css/{_row-locking.css → row-locking.css} +0 -0
  45. /package/src/css/{_table.css → table.css} +0 -0
  46. /package/src/css/{_toolbar.css → toolbar.css} +0 -0
  47. /package/src/css/{_virtual-scroll.css → virtual-scroll.css} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { WebGrid } from './grid.js';
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, RowFocusDetail } from './types.js';
2
+ import type { Column, CellValidationState, RowToolbarConfig, ContextMenuConfig, 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, RowFocusDetail, PasteMode, BeforePasteDetail } from './types.js';
3
3
  import { DatePicker } from './modules/datepicker/index.js';
4
4
  import { type ScrollEventManager } from './modules/scroll-events/index.js';
5
5
  import { type FocusEventManager } from './modules/focus-events/index.js';
@@ -83,6 +83,13 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
83
83
  set columns(value: Column<T>[]);
84
84
  get isFilterable(): boolean;
85
85
  set isFilterable(value: boolean);
86
+ get onfilterchange(): ((filters: Record<string, string>) => void) | undefined;
87
+ set onfilterchange(value: ((filters: Record<string, string>) => void) | undefined);
88
+ get columnMinWidth(): string | undefined;
89
+ set columnMinWidth(value: string | undefined);
90
+ get filters(): Record<string, string>;
91
+ set filters(value: Record<string, string>);
92
+ setFilter(field: string, value: string): void;
86
93
  get isPageable(): boolean;
87
94
  set isPageable(value: boolean);
88
95
  get pageSize(): number;
@@ -97,10 +104,14 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
97
104
  set isHoverable(value: boolean);
98
105
  get isEditable(): boolean;
99
106
  set isEditable(value: boolean);
107
+ get isRowEditable(): boolean | ((row: T) => boolean) | undefined;
108
+ set isRowEditable(value: boolean | ((row: T) => boolean) | undefined);
100
109
  get editTrigger(): EditTrigger;
101
110
  set editTrigger(value: EditTrigger);
102
111
  get editStartSelection(): EditStartSelection;
103
112
  set editStartSelection(value: EditStartSelection);
113
+ get shouldCommitOnClickAway(): boolean;
114
+ set shouldCommitOnClickAway(value: boolean);
104
115
  get mode(): GridMode;
105
116
  set mode(value: GridMode);
106
117
  get dropdownToggleVisibility(): ToggleVisibility;
@@ -151,8 +162,8 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
151
162
  set toolbarBtnMinWidth(value: string | undefined);
152
163
  get inlineActionsTitle(): string;
153
164
  set inlineActionsTitle(value: string);
154
- get contextMenu(): ContextMenuItem<T>[] | undefined;
155
- set contextMenu(value: ContextMenuItem<T>[] | undefined);
165
+ get contextMenu(): ContextMenuConfig<T>[] | undefined;
166
+ set contextMenu(value: ContextMenuConfig<T>[] | undefined);
156
167
  get contextMenuXOffset(): number;
157
168
  set contextMenuXOffset(value: number);
158
169
  get contextMenuYOffset(): number;
@@ -196,6 +207,8 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
196
207
  set newRowIndicator(value: string);
197
208
  get createEmptyRowCallback(): () => T | Promise<T>;
198
209
  set createEmptyRowCallback(value: () => T | Promise<T>);
210
+ get idMember(): string | null;
211
+ set idMember(value: string | null);
199
212
  get treePathMember(): string | null;
200
213
  set treePathMember(value: string | null);
201
214
  get treeLevelMember(): string | null;
@@ -251,6 +264,7 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
251
264
  set validationTooltipCallback(value: ((context: ValidationTooltipContext<T>) => string | null) | undefined);
252
265
  set ontoolbarclick(value: ((detail: ToolbarClickDetail<T>) => void) | undefined);
253
266
  set onrowaction(value: ((detail: RowActionClickDetail<T>) => void) | undefined);
267
+ get oncontextmenuopen(): ((context: ContextMenuContext<T>) => void) | undefined;
254
268
  set oncontextmenuopen(value: ((context: ContextMenuContext<T>) => void) | undefined);
255
269
  get ondatarequest(): ((detail: DataRequestDetail) => void) | undefined;
256
270
  set ondatarequest(value: ((detail: DataRequestDetail) => void) | undefined);
@@ -343,6 +357,12 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
343
357
  set infiniteScrollThreshold(value: number);
344
358
  get hasMoreItems(): boolean;
345
359
  set hasMoreItems(value: boolean);
360
+ get onbeforepaste(): ((detail: BeforePasteDetail<T>) => void) | undefined;
361
+ set onbeforepaste(value: ((detail: BeforePasteDetail<T>) => void) | undefined);
362
+ get pasteMode(): PasteMode;
363
+ set pasteMode(value: PasteMode);
364
+ get shouldValidateOnPaste(): boolean;
365
+ set shouldValidateOnPaste(value: boolean);
346
366
  get displayItems(): T[];
347
367
  get totalPages(): number;
348
368
  get isNavigateMode(): boolean;
@@ -434,6 +454,14 @@ export declare class GridElement<T = unknown> extends HTMLElement implements Gri
434
454
  * Clear all selections (cell range, row, column) and their visual borders
435
455
  */
436
456
  private clearAllSelections;
457
+ /**
458
+ * Called from cell-transition click handlers in place of grid.cancelEdit().
459
+ * Reads the in-progress editor value and commits it (Excel-like) when
460
+ * shouldCommitOnClickAway is true; falls back to cancel when false or when
461
+ * the editor DOM can't be read. Must be called BEFORE renderCell wipes
462
+ * the editor element.
463
+ */
464
+ private commitOrCancelEditOnTransition;
437
465
  /**
438
466
  * Surgically update row focus visual (add/remove wg__row--focused class)
439
467
  * Avoids full re-render to preserve cell focus