@progress/kendo-react-data-tools 13.3.0 → 13.4.0-develop.1

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 (105) hide show
  1. package/clipboard/clipboard.service.d.ts +20 -0
  2. package/clipboard/common.d.ts +188 -0
  3. package/columnmenu/ColumnMenu.d.ts +90 -0
  4. package/columnmenu/ColumnMenuFilterForm.d.ts +25 -0
  5. package/columnmenu/ColumnMenuFilterLogic.d.ts +10 -0
  6. package/columnmenu/ColumnMenuFilterLogic.mjs +4 -4
  7. package/columnmenu/ColumnMenuFilters.d.ts +31 -0
  8. package/columnmenu/ColumnMenuItem.d.ts +39 -0
  9. package/columnmenu/ColumnMenuOperators.d.ts +72 -0
  10. package/columnmenu/index.d.ts +13 -0
  11. package/data-source/use-data-source.d.ts +224 -0
  12. package/data-source/use-odata-data-source.d.ts +41 -0
  13. package/data-source/use-remote-data-source.d.ts +411 -0
  14. package/detail-expansion/TableExpandableSettings.d.ts +12 -0
  15. package/detail-expansion/expandReducer.d.ts +31 -0
  16. package/detail-expansion/utils.d.ts +10 -0
  17. package/dist/cdn/js/kendo-react-datatools.js +1 -1
  18. package/drag/ColumnDraggable.d.ts +37 -0
  19. package/drag/ColumnResize.d.ts +39 -0
  20. package/drag/ColumnResizer.d.ts +35 -0
  21. package/drag/CommonDragLogic.d.ts +45 -0
  22. package/drag/DragClue.d.ts +29 -0
  23. package/drag/DropClue.d.ts +26 -0
  24. package/editing/TableEditableSettings.d.ts +24 -0
  25. package/editing/editReducer.d.ts +62 -0
  26. package/editing/utils.d.ts +12 -0
  27. package/filter/Expression.d.ts +53 -0
  28. package/filter/Expression.js +1 -1
  29. package/filter/Expression.mjs +10 -11
  30. package/filter/FieldSettings.d.ts +37 -0
  31. package/filter/Filter.d.ts +139 -0
  32. package/filter/Group.d.ts +64 -0
  33. package/filter/Group.js +1 -1
  34. package/filter/Group.mjs +7 -7
  35. package/filter/filters/BooleanFilter.d.ts +50 -0
  36. package/filter/filters/DateFilter.d.ts +33 -0
  37. package/filter/filters/EnumFilter.d.ts +50 -0
  38. package/filter/filters/NumericFilter.d.ts +40 -0
  39. package/filter/filters/TextFilter.d.ts +47 -0
  40. package/filter/filters/index.d.ts +12 -0
  41. package/filter/index.d.ts +13 -0
  42. package/filter/operators.d.ts +80 -0
  43. package/filteringCells/BooleanFilter.d.ts +15 -0
  44. package/filteringCells/DateFilter.d.ts +15 -0
  45. package/filteringCells/FilterCellProps.d.ts +42 -0
  46. package/filteringCells/FilterComponent.d.ts +24 -0
  47. package/filteringCells/FilterComponentProps.d.ts +30 -0
  48. package/filteringCells/FilterOperator.d.ts +20 -0
  49. package/filteringCells/NumericFilter.d.ts +15 -0
  50. package/filteringCells/TextFilter.d.ts +15 -0
  51. package/filteringCells/index.d.ts +15 -0
  52. package/group-expansion/TableGroupExpandableSettings.d.ts +12 -0
  53. package/group-expansion/groupExpandReducer.d.ts +46 -0
  54. package/header/CellProps.d.ts +83 -0
  55. package/header/ColumnProps.d.ts +167 -0
  56. package/header/FilterRow.d.ts +32 -0
  57. package/header/Header.d.ts +26 -0
  58. package/header/HeaderCell.d.ts +54 -0
  59. package/header/HeaderRow.d.ts +44 -0
  60. package/header/HeaderSelectionCell.d.ts +19 -0
  61. package/header/HeaderTdElement.d.ts +42 -0
  62. package/header/HeaderThElement.d.ts +42 -0
  63. package/header/SortSettings.d.ts +33 -0
  64. package/header/index.d.ts +18 -0
  65. package/header/utils/index.d.ts +90 -0
  66. package/index.d.mts +43 -3741
  67. package/index.d.ts +43 -3741
  68. package/messages/index.d.ts +397 -0
  69. package/navigation/NavigatableSettings.d.ts +25 -0
  70. package/navigation/TableKeyboardNavigation.d.ts +95 -0
  71. package/navigation/TableKeyboardNavigation.mjs +13 -13
  72. package/navigation/TableKeyboardNavigationContext.d.ts +13 -0
  73. package/navigation/TableKeyboardNavigationContextType.d.ts +14 -0
  74. package/navigation/TableKeyboardNavigationStateType.d.ts +17 -0
  75. package/navigation/constants.d.ts +61 -0
  76. package/navigation/hooks.d.ts +19 -0
  77. package/navigation/hooks.mjs +3 -3
  78. package/navigation/stackedKeyboardNavigation.d.ts +217 -0
  79. package/navigation/utils.d.ts +329 -0
  80. package/navigation/utils.mjs +5 -5
  81. package/package-metadata.d.ts +12 -0
  82. package/package-metadata.js +1 -1
  83. package/package-metadata.mjs +10 -16
  84. package/package.json +10 -10
  85. package/pager/Pager.d.ts +10 -0
  86. package/pager/Pager.js +1 -1
  87. package/pager/Pager.mjs +64 -66
  88. package/pager/PagerInput.d.ts +29 -0
  89. package/pager/PagerNumericButtons.d.ts +28 -0
  90. package/pager/PagerNumericButtons.js +1 -1
  91. package/pager/PagerNumericButtons.mjs +15 -17
  92. package/pager/PagerPageSizes.d.ts +36 -0
  93. package/pager/models/index.d.ts +178 -0
  94. package/pager/utils.d.ts +66 -0
  95. package/selection/TableSelectableSettings.d.ts +38 -0
  96. package/selection/TableSelection.d.ts +25 -0
  97. package/selection/constants.d.ts +13 -0
  98. package/selection/events.d.ts +101 -0
  99. package/selection/utils.d.ts +70 -0
  100. package/utils/DataItemWrapper.d.ts +17 -0
  101. package/utils/SearchField.d.ts +24 -0
  102. package/utils/data-operations.d.ts +107 -0
  103. package/utils/group-operations.d.ts +36 -0
  104. package/virtualization/columns.d.ts +24 -0
  105. package/virtualization/index.d.ts +8 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * @hidden
10
+ */
11
+ export declare const KEYBOARD_NAV_DATA_LEVEL = "data-keyboardnavlevel";
12
+ /**
13
+ * @hidden
14
+ */
15
+ export declare const KEYBOARD_NAV_DATA_SCOPE = "data-keyboardnavscope";
16
+ /**
17
+ * @hidden
18
+ */
19
+ export declare const KEYBOARD_NAV_DATA_HEADER = "data-keyboardnavheader";
20
+ /**
21
+ * @hidden
22
+ */
23
+ export declare const KEYBOARD_NAV_DATA_BODY = "data-keyboardnavbody";
24
+ /**
25
+ * @hidden
26
+ */
27
+ export declare const KEYBOARD_NAV_DATA_ID = "data-keyboardnavid";
28
+ /**
29
+ * @hidden
30
+ */
31
+ export declare const KEYBOARD_NAV_DATA_ZONE = "data-keyboardnavzone";
32
+ /**
33
+ * @hidden
34
+ */
35
+ export declare const KEYBOARD_NAV_FILTER_COL_SUFFIX = "_filter";
36
+ /**
37
+ * @hidden
38
+ */
39
+ export declare const KEYBOARD_NAV_CANCEL_BUTTON_CLASS = "k-grid-cancel-command";
40
+ /**
41
+ * @hidden
42
+ */
43
+ export declare const KEYBOARD_NAV_EDIT_BUTTON_CLASS = "k-grid-edit-command";
44
+ /**
45
+ * @hidden
46
+ */
47
+ export declare const tableKeyboardNavigationScopeAttributes: {
48
+ "data-keyboardnavscope": boolean;
49
+ };
50
+ /**
51
+ * @hidden
52
+ */
53
+ export declare const tableKeyboardNavigationHeaderAttributes: {
54
+ "data-keyboardnavheader": boolean;
55
+ };
56
+ /**
57
+ * @hidden
58
+ */
59
+ export declare const tableKeyboardNavigationBodyAttributes: {
60
+ "data-keyboardnavbody": boolean;
61
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * @hidden
10
+ */
11
+ export declare const useTableKeyboardNavigation: (elementId: string, navigatable?: boolean) => {
12
+ tabIndex?: undefined;
13
+ "data-keyboardnavlevel"?: undefined;
14
+ "data-keyboardnavid"?: undefined;
15
+ } | {
16
+ tabIndex: number;
17
+ "data-keyboardnavlevel": number;
18
+ "data-keyboardnavid": string;
19
+ };
@@ -7,14 +7,14 @@
7
7
  */
8
8
  "use client";
9
9
  import * as e from "react";
10
- import { KEYBOARD_NAV_DATA_LEVEL as r, KEYBOARD_NAV_DATA_ID as i } from "./constants.mjs";
10
+ import { KEYBOARD_NAV_DATA_ID as r, KEYBOARD_NAV_DATA_LEVEL as i } from "./constants.mjs";
11
11
  import { TableKeyboardNavigationContext as n } from "./TableKeyboardNavigationContext.mjs";
12
12
  const v = (o, a) => {
13
13
  const t = e.useContext(n);
14
14
  return !t || !o || a === !1 ? {} : {
15
15
  tabIndex: t && t.activeId && t.activeId === o ? 0 : -1,
16
- [r]: t.level,
17
- [i]: o
16
+ [i]: t.level,
17
+ [r]: o
18
18
  };
19
19
  };
20
20
  export {
@@ -0,0 +1,217 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * Keyboard navigation utilities for stacked layout cells.
10
+ *
11
+ * Implements the navigation pattern specified in STACKED_LAYOUT_KEYBOARD_NAVIGATION.md:
12
+ *
13
+ * ## Key Behaviors
14
+ *
15
+ * 1. **Tab Navigation** - PRIMARY mechanism for navigating between stacked cells:
16
+ * - Tab: Move to next stacked cell in the row
17
+ * - Shift+Tab: Move to previous stacked cell in the row
18
+ * - Focus is TRAPPED within the row card (stopPropagation at boundaries)
19
+ *
20
+ * 2. **Enter/F2 Keys** - Transition from Cursor mode to Content mode:
21
+ * - Focuses the first focusable element within the cell
22
+ * - Enables interaction with cell content (inputs, buttons, etc.)
23
+ *
24
+ * 3. **Escape Key** - Exit Content mode, return to Cursor mode:
25
+ * - Returns focus to the row-level container
26
+ * - Resets cell entered state
27
+ *
28
+ * ## Navigation Modes
29
+ *
30
+ * - **Cursor Mode**: Cell wrapper is focused, user can navigate rows with arrow keys
31
+ * - **Content Mode**: Focusable element inside cell is focused, user can interact with content
32
+ *
33
+ * ## Critical Notes
34
+ *
35
+ * - Horizontal (Left/Right) arrow navigation is DISABLED in stacked mode
36
+ * - Vertical (Up/Down) arrow navigation moves between rows, not cells
37
+ * - Tab/Shift+Tab stops at row boundaries (prevents leaving the row)
38
+ * - Each row card is treated as a single navigable unit
39
+ *
40
+ * @module stackedKeyboardNavigation
41
+ * @see STACKED_LAYOUT_KEYBOARD_NAVIGATION.md for complete specification
42
+ *
43
+ * @hidden
44
+ */
45
+ /**
46
+ * Options for handling stacked cell keyboard navigation.
47
+ *
48
+ * @hidden
49
+ */
50
+ export interface StackedKeyboardNavigationOptions {
51
+ /**
52
+ * The keyboard event to handle.
53
+ */
54
+ event: React.KeyboardEvent<HTMLElement>;
55
+ /**
56
+ * The cell element (the stacked cell wrapper div).
57
+ */
58
+ cellElement: HTMLElement;
59
+ /**
60
+ * Optional callback to invoke after handling the keyboard event.
61
+ */
62
+ onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;
63
+ /**
64
+ * Optional callback to invoke when Escape is pressed (to update row entered state).
65
+ */
66
+ onEscape?: () => void;
67
+ /**
68
+ * Optional callback to invoke when exiting edit mode (e.g., on Escape in incell mode).
69
+ * This should trigger the Grid's onEditChange to update the edit descriptor.
70
+ */
71
+ onExitEdit?: () => void;
72
+ /**
73
+ * Optional callback to invoke when Tab is pressed in incell edit mode.
74
+ * Called with the direction (1 for Tab, -1 for Shift+Tab) to move to next/previous cell.
75
+ * Should handle transitioning edit state from current cell to next/previous cell.
76
+ */
77
+ onTabToNextCell?: (direction: number) => void;
78
+ /**
79
+ * Whether the cell is currently in edit mode.
80
+ * When true, applies edit mode keyboard navigation rules.
81
+ */
82
+ isInEdit?: boolean;
83
+ /**
84
+ * The edit mode of the grid: 'incell', 'inline', or 'dialog'.
85
+ * Determines which keyboard navigation rules apply during editing.
86
+ */
87
+ editMode?: 'incell' | 'inline' | 'dialog';
88
+ }
89
+ /**
90
+ * Handles Tab key navigation within a stacked cell row.
91
+ * Implements focus trap pattern to keep navigation within the current row card.
92
+ * Tab/Shift+Tab navigates between stacked cells, stopping at row boundaries.
93
+ *
94
+ * Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
95
+ * - **Incell**: Tab saves current cell and moves to next editable cell
96
+ * - **Inline**: Tab navigates between fields within the editing row
97
+ * - **Not editing**: Standard stacked cell navigation with focus trap
98
+ *
99
+ * Based on specification: "Tab is THE mechanism for navigating between stacked cells within a row"
100
+ * and "Trap focus within the current row card: Prevent Tab from leaving the row at boundaries"
101
+ *
102
+ * @param event - The keyboard event
103
+ * @param cellElement - The stacked cell wrapper element
104
+ * @param target - The event target element
105
+ * @param isInEdit - Whether the cell/row is in edit mode
106
+ * @param editMode - The edit mode ('incell', 'inline', or 'dialog')
107
+ * @returns true if the event was handled and should stop propagation
108
+ *
109
+ * @hidden
110
+ */
111
+ export declare const handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
112
+ /**
113
+ * Handles Enter key press on a stacked cell.
114
+ * Behavior varies based on edit mode.
115
+ *
116
+ * Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
117
+ * - **Incell**: Enter confirms edit, saves changes, and closes cell
118
+ * - **Inline**: Enter moves to next field (does NOT save)
119
+ * - **Not editing**: Transitions from Cursor mode to Content mode
120
+ *
121
+ * Based on specification: "Enter or F2 while in Cursor Mode: Activates Content mode for the current cell"
122
+ *
123
+ * @param event - The keyboard event
124
+ * @param cellElement - The stacked cell wrapper element
125
+ * @param target - The event target element
126
+ * @param isInEdit - Whether the cell/row is in edit mode
127
+ * @param editMode - The edit mode ('incell', 'inline', or 'dialog')
128
+ * @returns true if the event was handled
129
+ *
130
+ * @hidden
131
+ */
132
+ export declare const handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
133
+ /**
134
+ * Handles Escape key press on a stacked cell.
135
+ * Behavior varies based on edit mode.
136
+ *
137
+ * Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
138
+ * - **Incell**: Escape cancels edit, discards changes, and closes cell
139
+ * - **Inline**: Escape cancels editing, closes row, and discards changes
140
+ * - **Not editing**: Exits Content mode and returns to Cursor mode
141
+ *
142
+ * Based on specification: "Escape Key: Exits Content mode and returns to Cursor mode"
143
+ *
144
+ * @param event - The keyboard event
145
+ * @param cellElement - The stacked cell wrapper element
146
+ * @param onEscape - Optional callback to invoke when Escape is handled (resets cell entered state)
147
+ * @param isInEdit - Whether the cell/row is in edit mode
148
+ * @param editMode - The edit mode ('incell', 'inline', or 'dialog')
149
+ * @returns true if the event was handled
150
+ *
151
+ * @hidden
152
+ */
153
+ export declare const handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
154
+ /**
155
+ * Handles navigation keys (arrows, PageUp/Down, Home/End) during editing.
156
+ * Blocks ALL navigation keys during incell editing per specification.
157
+ *
158
+ * Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
159
+ * - **Incell**: ALL navigation keys are BLOCKED
160
+ * - **Inline**: Arrow Up/Down are blocked (can't navigate to other rows)
161
+ * - **Not editing**: Navigation keys work normally
162
+ *
163
+ * Based on specification: "ALL navigation keys are blocked when cell is editing"
164
+ *
165
+ * @param event - The keyboard event
166
+ * @param isInEdit - Whether the cell/row is in edit mode
167
+ * @param editMode - The edit mode ('incell', 'inline', or 'dialog')
168
+ * @returns true if the event was blocked
169
+ *
170
+ * @hidden
171
+ */
172
+ export declare const handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
173
+ /**
174
+ * Main handler for stacked cell keyboard navigation.
175
+ * Implements the navigation pattern described in the specifications:
176
+ *
177
+ * Specifications:
178
+ * - STACKED_LAYOUT_KEYBOARD_NAVIGATION.md: Navigation modes and focus trap
179
+ * - EDIT_MODE_KEYBOARD_NAVIGATION.md: Edit mode behaviors
180
+ *
181
+ * Navigation Flow:
182
+ * - Tab/Shift+Tab: Navigate between stacked cells within the row (focus trapped)
183
+ * - Enter/F2: Transition from Cursor mode to Content mode (focus first element)
184
+ * - Escape: Exit Content mode, return to Cursor mode (focus row container)
185
+ *
186
+ * Mode Transitions:
187
+ * - Cursor Mode: Cell wrapper is focused, arrow keys navigate rows
188
+ * - Content Mode: Focusable element inside cell is focused, Tab navigates cells
189
+ *
190
+ * Focus Trap:
191
+ * Tab navigation is trapped within the current row card. At boundaries:
192
+ * - First cell + Shift+Tab: Stay on first cell (stopPropagation)
193
+ * - Last cell + Tab: Stay on last cell (stopPropagation)
194
+ *
195
+ * Edit Mode Behaviors:
196
+ * - **Incell**: All navigation keys blocked, Tab saves and moves, Enter saves, Escape cancels
197
+ * - **Inline**: Up/Down blocked, Tab between fields, Enter to next field, Escape cancels
198
+ * - **Not editing**: Normal navigation
199
+ *
200
+ * @param options - Navigation options
201
+ *
202
+ * @hidden
203
+ */
204
+ export declare const handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
205
+ /**
206
+ * Exported stacked keyboard navigation utilities.
207
+ *
208
+ * @hidden
209
+ */
210
+ export declare const stackedKeyboardNavigationTools: {
211
+ handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
212
+ handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
213
+ handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
214
+ handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
215
+ handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
216
+ isNavigationKey: (key: string) => boolean;
217
+ };
@@ -0,0 +1,329 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { TableKeyboardNavigationContextType } from './TableKeyboardNavigationContextType.js';
9
+ import { TableKeyboardNavigationStateType } from './TableKeyboardNavigationStateType.js';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare const generateNavigatableId: (navigationId: string, idPrefix: string, type?: 'column' | 'cell' | 'group' | 'expand' | 'nodata') => string;
14
+ /**
15
+ * @hidden
16
+ */
17
+ export declare const getNavigatableLevel: (element: Element | null) => number | undefined;
18
+ /**
19
+ * @hidden
20
+ */
21
+ export declare const getNavigatableId: (element: Element | null) => string | undefined;
22
+ /**
23
+ * @hidden
24
+ */
25
+ export declare const isNavigatable: (element: Element | null) => boolean;
26
+ /**
27
+ * @hidden
28
+ */
29
+ export declare const getNavigatableElement: (scope: HTMLElement, options?: {
30
+ level: number;
31
+ }) => HTMLElement;
32
+ /**
33
+ * @hidden
34
+ */
35
+ export declare const getClosestNavigatableElement: (target: HTMLElement) => Element | null;
36
+ /**
37
+ * @hidden
38
+ */
39
+ export declare const getActiveNavDataElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
40
+ /**
41
+ * @hidden
42
+ */
43
+ export declare const getClosestScope: (target: HTMLElement) => Element | null;
44
+ /**
45
+ * @hidden
46
+ */
47
+ export declare const getClosestCancelButton: (target: HTMLElement) => Element | null | undefined;
48
+ /**
49
+ * @hidden
50
+ */
51
+ export declare const getRemoveButtonByAriaRowIndex: (ariaRowIndex: number) => Element | null;
52
+ /**
53
+ * @hidden
54
+ */
55
+ export declare const getTableCellByKeyboardNavId: (navId: string) => Element | null;
56
+ /**
57
+ * @hidden
58
+ */
59
+ export declare const getRowAriaRowIndex: (target: HTMLElement) => undefined;
60
+ /**
61
+ * @hidden
62
+ */
63
+ declare function waitForElementToBeVisible(selector: string, parentElement: Element | null, timeout?: number): Promise<boolean | Element>;
64
+ /**
65
+ * @hidden
66
+ */
67
+ export declare const getClosestEditButton: (target: HTMLElement) => Promise<boolean | Element>;
68
+ /**
69
+ * @hidden
70
+ */
71
+ export declare const getParentCell: (target: HTMLElement) => Element | null;
72
+ /**
73
+ * @hidden
74
+ */
75
+ export declare const getHeaderElement: (scope: HTMLElement) => Element | null;
76
+ /**
77
+ * @hidden
78
+ */
79
+ export declare const getBodyElement: (scope: HTMLElement) => Element | null;
80
+ /**
81
+ * @hidden
82
+ */
83
+ export declare const getNoRecordsElement: (scope: HTMLElement) => Element | null;
84
+ /**
85
+ * @hidden
86
+ */
87
+ export declare const focusFirstEditor: (newEditableRow: Element) => void;
88
+ /**
89
+ * @hidden
90
+ */
91
+ export declare const focusFirstDataElement: (options: {
92
+ scope?: HTMLElement;
93
+ contextStateRef: {
94
+ current?: TableKeyboardNavigationContextType;
95
+ };
96
+ navigationStateRef: {
97
+ current?: TableKeyboardNavigationStateType;
98
+ };
99
+ }, event?: any) => void;
100
+ /**
101
+ * @hidden
102
+ */
103
+ export declare const getFocusableElements: (scope: HTMLElement, options?: {
104
+ focusable: boolean;
105
+ }) => Element[];
106
+ /**
107
+ * @hidden
108
+ */
109
+ export declare const getNavigatableElements: (scope: HTMLElement | null, options?: {
110
+ level: number;
111
+ }) => any[];
112
+ /**
113
+ * @hidden
114
+ */
115
+ export declare const filterNavigatableElements: (options?: {
116
+ level: number;
117
+ }) => (element: HTMLElement) => boolean;
118
+ /**
119
+ * @hidden
120
+ */
121
+ export declare const focusElement: (options: {
122
+ elementForFocus: HTMLElement;
123
+ prevElement?: HTMLElement;
124
+ contextStateRef: {
125
+ current?: TableKeyboardNavigationContextType;
126
+ };
127
+ event?: any;
128
+ }) => void;
129
+ /**
130
+ * @hidden
131
+ */
132
+ export declare const getIdPrefix: (navigationStateRef: {
133
+ current?: TableKeyboardNavigationStateType;
134
+ }) => string;
135
+ /**
136
+ * @hidden
137
+ */
138
+ export declare const findNextIdByRowIndex: (initialRowIndex: number, cellIndex: number, elementId: string | undefined, matrix: string[][], isReverse: boolean) => [
139
+ string,
140
+ [
141
+ number,
142
+ number
143
+ ]
144
+ ] | [
145
+ ];
146
+ /**
147
+ * @hidden
148
+ */
149
+ export declare const findNextIdByCellIndex: (rowIndex: number, initialCellIndex: number, elementId: string | undefined, matrix: string[][], isReverse: boolean) => [
150
+ string,
151
+ [
152
+ number,
153
+ number
154
+ ]
155
+ ] | [
156
+ ];
157
+ /**
158
+ * @hidden
159
+ */
160
+ export declare const findId: (navigationMatrix: string[][], cellId?: string) => number[] | undefined;
161
+ /**
162
+ * @hidden
163
+ */
164
+ export declare const getPrevEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
165
+ prevCell: "" | Element | null | undefined;
166
+ elementToFocus: string | null | undefined;
167
+ };
168
+ /**
169
+ * @hidden
170
+ */
171
+ export declare const getNextEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
172
+ nextCell: "" | Element | null | undefined;
173
+ elementToFocus: string | null | undefined;
174
+ };
175
+ /**
176
+ * @hidden
177
+ */
178
+ export declare const getNextNavigationIndex: (navigationStateRef: {
179
+ current?: TableKeyboardNavigationStateType;
180
+ }) => number;
181
+ /**
182
+ * @hidden
183
+ */
184
+ export declare const getFirstDataCell: (navigationMatrix: string[][]) => string | undefined;
185
+ /**
186
+ * @hidden
187
+ */
188
+ export declare const getLastDataCell: (navigationMatrix: string[][]) => string | undefined;
189
+ /**
190
+ * @hidden
191
+ */
192
+ export declare const getFirstRowDataCell: (navigationMatrix: string[][], rowIndex: number) => string;
193
+ /**
194
+ * @hidden
195
+ */
196
+ export declare const getLastRowDataCell: (navigationMatrix: string[][], rowIndex: number) => string;
197
+ /**
198
+ * @hidden
199
+ */
200
+ export declare const getFilterColumnId: (columnId: string) => string;
201
+ /**
202
+ * @hidden
203
+ */
204
+ export declare const getCurrentIdIndexes: (navigationStateRef: {
205
+ current?: TableKeyboardNavigationStateType | undefined;
206
+ }, matrix: string[][], elementId: string | undefined) => number[] | undefined;
207
+ /**
208
+ * @hidden
209
+ */
210
+ export declare const getClosestCellNavId: (element: HTMLElement) => string | null;
211
+ /**
212
+ * Gets the parent stacked cell wrapper element.
213
+ *
214
+ * @hidden
215
+ */
216
+ export declare const getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
217
+ /**
218
+ * Gets all focusable elements within a stacked cell.
219
+ *
220
+ * @hidden
221
+ */
222
+ export declare const getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
223
+ /**
224
+ * Finds the next stacked cell sibling in the specified direction.
225
+ *
226
+ * @hidden
227
+ */
228
+ export declare const getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
229
+ /**
230
+ * Gets the table cell (td) that contains the stacked cells.
231
+ *
232
+ * @hidden
233
+ */
234
+ export declare const getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
235
+ /**
236
+ * Focuses an element within a stacked cell, or the cell itself if no focusable found.
237
+ *
238
+ * @hidden
239
+ */
240
+ export declare const focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
241
+ /**
242
+ * @hidden
243
+ */
244
+ export declare const tableKeyboardNavigationTools: {
245
+ generateNavigatableId: (navigationId: string, idPrefix: string, type?: 'column' | 'cell' | 'group' | 'expand' | 'nodata') => string;
246
+ getNavigatableId: (element: Element | null) => string | undefined;
247
+ getNavigatableLevel: (element: Element | null) => number | undefined;
248
+ getNavigatableElement: (scope: HTMLElement, options?: {
249
+ level: number;
250
+ }) => HTMLElement;
251
+ getClosestNavigatableElement: (target: HTMLElement) => Element | null;
252
+ getActiveNavDataElement: (scope: HTMLElement, activeId?: string) => HTMLElement;
253
+ getClosestScope: (target: HTMLElement) => Element | null;
254
+ getHeaderElement: (scope: HTMLElement) => Element | null;
255
+ getBodyElement: (scope: HTMLElement) => Element | null;
256
+ getFocusableElements: (scope: HTMLElement, options?: {
257
+ focusable: boolean;
258
+ }) => Element[];
259
+ getNavigatableElements: (scope: HTMLElement | null, options?: {
260
+ level: number;
261
+ }) => any[];
262
+ filterNavigatableElements: (options?: {
263
+ level: number;
264
+ }) => (element: HTMLElement) => boolean;
265
+ focusElement: (options: {
266
+ elementForFocus: HTMLElement;
267
+ prevElement?: HTMLElement;
268
+ contextStateRef: {
269
+ current?: TableKeyboardNavigationContextType;
270
+ };
271
+ event?: any;
272
+ }) => void;
273
+ getIdPrefix: (navigationStateRef: {
274
+ current?: TableKeyboardNavigationStateType;
275
+ }) => string;
276
+ isNavigatable: (element: Element | null) => boolean;
277
+ findNextIdByRowIndex: (initialRowIndex: number, cellIndex: number, elementId: string | undefined, matrix: string[][], isReverse: boolean) => [
278
+ string,
279
+ [
280
+ number,
281
+ number
282
+ ]
283
+ ] | [
284
+ ];
285
+ findNextIdByCellIndex: (rowIndex: number, initialCellIndex: number, elementId: string | undefined, matrix: string[][], isReverse: boolean) => [
286
+ string,
287
+ [
288
+ number,
289
+ number
290
+ ]
291
+ ] | [
292
+ ];
293
+ findId: (navigationMatrix: string[][], cellId?: string) => number[] | undefined;
294
+ getNextNavigationIndex: (navigationStateRef: {
295
+ current?: TableKeyboardNavigationStateType;
296
+ }) => number;
297
+ getFilterColumnId: (columnId: string) => string;
298
+ focusFirstDataElement: (options: {
299
+ scope?: HTMLElement;
300
+ contextStateRef: {
301
+ current?: TableKeyboardNavigationContextType;
302
+ };
303
+ navigationStateRef: {
304
+ current?: TableKeyboardNavigationStateType;
305
+ };
306
+ }, event?: any) => void;
307
+ getClosestCancelButton: (target: HTMLElement) => Element | null | undefined;
308
+ getClosestEditButton: (target: HTMLElement) => Promise<boolean | Element>;
309
+ getRowAriaRowIndex: (target: HTMLElement) => undefined;
310
+ getRemoveButtonByAriaRowIndex: (ariaRowIndex: number) => Element | null;
311
+ getTableCellByKeyboardNavId: (navId: string) => Element | null;
312
+ getParentCell: (target: HTMLElement) => Element | null;
313
+ waitForElementToBeVisible: typeof waitForElementToBeVisible;
314
+ getNextEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
315
+ nextCell: "" | Element | null | undefined;
316
+ elementToFocus: string | null | undefined;
317
+ };
318
+ getPrevEditableCell: (currentIdIndexes: number[], columns: any[], elementId: string | undefined, matrix: string[][]) => {
319
+ prevCell: "" | Element | null | undefined;
320
+ elementToFocus: string | null | undefined;
321
+ };
322
+ getClosestCellNavId: (element: HTMLElement) => string | null;
323
+ getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
324
+ getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
325
+ getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
326
+ getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
327
+ focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
328
+ };
329
+ export {};
@@ -6,7 +6,7 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { FOCUSABLE_ELEMENTS as A, TABBABLE_ELEMENTS as k } from "@progress/kendo-react-common";
9
- import { KEYBOARD_NAV_DATA_LEVEL as f, KEYBOARD_NAV_DATA_ID as g, KEYBOARD_NAV_DATA_SCOPE as D, KEYBOARD_NAV_CANCEL_BUTTON_CLASS as B, KEYBOARD_NAV_EDIT_BUTTON_CLASS as w, KEYBOARD_NAV_DATA_HEADER as h, KEYBOARD_NAV_DATA_BODY as T, KEYBOARD_NAV_FILTER_COL_SUFFIX as $ } from "./constants.mjs";
9
+ import { KEYBOARD_NAV_EDIT_BUTTON_CLASS as D, KEYBOARD_NAV_CANCEL_BUTTON_CLASS as B, KEYBOARD_NAV_FILTER_COL_SUFFIX as w, KEYBOARD_NAV_DATA_ID as g, KEYBOARD_NAV_DATA_LEVEL as f, KEYBOARD_NAV_DATA_BODY as h, KEYBOARD_NAV_DATA_HEADER as T, KEYBOARD_NAV_DATA_SCOPE as $ } from "./constants.mjs";
10
10
  const F = (e, t, r = "cell") => `${t}_${e}_${r}`, q = (e) => {
11
11
  if (e)
12
12
  return parseInt(e.getAttribute(f) || "", 10);
@@ -15,7 +15,7 @@ const F = (e, t, r = "cell") => `${t}_${e}_${r}`, q = (e) => {
15
15
  return;
16
16
  const t = e.getAttribute(g);
17
17
  return t || void 0;
18
- }, E = (e) => e ? !!e.getAttribute(g) : !1, L = (e, t = { level: 0 }) => e.querySelector(`[${f}='${t.level}']`), x = (e) => e && e.parentElement && e.parentElement.closest(`[${f}]`), I = (e, t) => e.querySelector(`[${g}='${t}']`), O = (e) => e && e.parentElement && e.parentElement.closest(`[${D}]`), R = (e) => {
18
+ }, E = (e) => e ? !!e.getAttribute(g) : !1, L = (e, t = { level: 0 }) => e.querySelector(`[${f}='${t.level}']`), x = (e) => e && e.parentElement && e.parentElement.closest(`[${f}]`), I = (e, t) => e.querySelector(`[${g}='${t}']`), O = (e) => e && e.parentElement && e.parentElement.closest(`[${$}]`), R = (e) => {
19
19
  var r;
20
20
  const t = ((r = e == null ? void 0 : e.parentElement) == null ? void 0 : r.closest(".k-grid-edit-row")) || null;
21
21
  return t == null ? void 0 : t.querySelector("." + B);
@@ -47,8 +47,8 @@ async function p(e, t, r = 5e3) {
47
47
  const Y = async (e) => {
48
48
  var n;
49
49
  const t = ((n = e == null ? void 0 : e.parentElement) == null ? void 0 : n.closest(".k-grid-edit-row")) || null;
50
- return await p("." + w, t);
51
- }, P = (e) => (e == null ? void 0 : e.closest(".k-table-td")) || null, U = (e) => e.querySelector(`[${h}]`), W = (e) => e.querySelector(`[${T}]`), ue = (e) => e.querySelector(".k-grid-norecords"), ae = (e) => {
50
+ return await p("." + D, t);
51
+ }, P = (e) => (e == null ? void 0 : e.closest(".k-table-td")) || null, U = (e) => e.querySelector(`[${T}]`), W = (e) => e.querySelector(`[${h}]`), ue = (e) => e.querySelector(".k-grid-norecords"), ae = (e) => {
52
52
  const t = e.querySelector(".k-grid-edit-cell"), r = t == null ? void 0 : t.querySelector("input");
53
53
  r ? r.focus() : t && t.firstChild.focus();
54
54
  }, j = (e, t) => {
@@ -140,7 +140,7 @@ const Y = async (e) => {
140
140
  nextCell: l && l[0] && a(l[0]),
141
141
  elementToFocus: l && l[0] && ((o = a(l[0])) == null ? void 0 : o.getAttribute("role"))
142
142
  };
143
- }, Q = (e) => e.current ? e.current.navigationMatrix.length : 0, Z = (e) => e.flat().find((t) => t.endsWith("cell")), de = (e) => e.flat().reverse().find((t) => t.endsWith("cell")), fe = (e, t) => e[t][0], Ee = (e, t) => Array.from(e[t]).reverse()[0], ee = (e) => e ? `${e}${$}` : "", be = (e, t, r) => {
143
+ }, Q = (e) => e.current ? e.current.navigationMatrix.length : 0, Z = (e) => e.flat().find((t) => t.endsWith("cell")), de = (e) => e.flat().reverse().find((t) => t.endsWith("cell")), fe = (e, t) => e[t][0], Ee = (e, t) => Array.from(e[t]).reverse()[0], ee = (e) => e ? `${e}${w}` : "", be = (e, t, r) => {
144
144
  var l;
145
145
  let n;
146
146
  if ((l = e.current) != null && l.prevNavigationIndexes) {