@progress/kendo-react-data-tools 13.3.0-develop.2 → 13.3.0-develop.4
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.
- package/dist/cdn/js/kendo-react-datatools.js +1 -1
- package/index.d.mts +231 -9
- package/index.d.ts +231 -9
- package/index.js +1 -1
- package/index.mjs +175 -168
- package/navigation/TableKeyboardNavigation.js +1 -1
- package/navigation/TableKeyboardNavigation.mjs +38 -47
- package/navigation/stackedKeyboardNavigation.js +8 -0
- package/navigation/stackedKeyboardNavigation.mjs +73 -0
- package/navigation/utils.js +1 -1
- package/navigation/utils.mjs +113 -93
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +10 -10
package/index.d.mts
CHANGED
|
@@ -214,11 +214,11 @@ export declare interface ClipboardDataEvent {
|
|
|
214
214
|
*/
|
|
215
215
|
type: ClipboardActionType;
|
|
216
216
|
/**
|
|
217
|
-
* Represents the native [ClipboardEvent](
|
|
217
|
+
* Represents the native [ClipboardEvent](https://www.telerik.com/kendo-react-ui/components/grid/api/gridcellssettings)
|
|
218
218
|
*/
|
|
219
219
|
nativeEvent?: ClipboardEvent;
|
|
220
220
|
/**
|
|
221
|
-
* All the Grid columns. It takes value of type of [ColumnBaseProps](
|
|
221
|
+
* All the Grid columns. It takes value of type of [ColumnBaseProps](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnbaseprops)<[CellProps](https://www.telerik.com/kendo-react-ui/components/datatools/api/cellprops)>[]
|
|
222
222
|
*/
|
|
223
223
|
columns: ColumnBaseProps[];
|
|
224
224
|
/**
|
|
@@ -509,7 +509,7 @@ export declare const ColumnMenuNumericFilter: React_2.FunctionComponent<ColumnMe
|
|
|
509
509
|
* ColumnMenuDateFilter and ColumnMenuBooleanFilter components.
|
|
510
510
|
*
|
|
511
511
|
* The text field of each operator object will be resolved according to the
|
|
512
|
-
* [localization messages](
|
|
512
|
+
* [localization messages](https://www.telerik.com/kendo-react-ui/components/datatools/globalization#toc-messages).
|
|
513
513
|
*/
|
|
514
514
|
export declare class ColumnMenuOperators {
|
|
515
515
|
/**
|
|
@@ -1259,7 +1259,7 @@ export declare interface FieldSettings {
|
|
|
1259
1259
|
}
|
|
1260
1260
|
|
|
1261
1261
|
/**
|
|
1262
|
-
* Represents the [KendoReact Filter component](
|
|
1262
|
+
* Represents the [KendoReact Filter component](https://www.telerik.com/kendo-react-ui/components/datatools/filter).
|
|
1263
1263
|
*/
|
|
1264
1264
|
export declare class Filter extends React_2.Component<FilterProps> {
|
|
1265
1265
|
/**
|
|
@@ -1731,11 +1731,132 @@ export declare type GroupState = {
|
|
|
1731
1731
|
parents?: GroupState[];
|
|
1732
1732
|
};
|
|
1733
1733
|
|
|
1734
|
+
/**
|
|
1735
|
+
* Handles navigation keys (arrows, PageUp/Down, Home/End) during editing.
|
|
1736
|
+
* Blocks ALL navigation keys during incell editing per specification.
|
|
1737
|
+
*
|
|
1738
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1739
|
+
* - **Incell**: ALL navigation keys are BLOCKED
|
|
1740
|
+
* - **Inline**: Arrow Up/Down are blocked (can't navigate to other rows)
|
|
1741
|
+
* - **Not editing**: Navigation keys work normally
|
|
1742
|
+
*
|
|
1743
|
+
* Based on specification: "ALL navigation keys are blocked when cell is editing"
|
|
1744
|
+
*
|
|
1745
|
+
* @param event - The keyboard event
|
|
1746
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1747
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1748
|
+
* @returns true if the event was blocked
|
|
1749
|
+
*
|
|
1750
|
+
* @hidden
|
|
1751
|
+
*/
|
|
1752
|
+
export declare const handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1753
|
+
|
|
1734
1754
|
/**
|
|
1735
1755
|
* @hidden
|
|
1736
1756
|
*/
|
|
1737
1757
|
declare type handler = (prevIndex: number, nextIndex: number, nativeEvent: any) => void;
|
|
1738
1758
|
|
|
1759
|
+
/**
|
|
1760
|
+
* Handles Enter key press on a stacked cell.
|
|
1761
|
+
* Behavior varies based on edit mode.
|
|
1762
|
+
*
|
|
1763
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1764
|
+
* - **Incell**: Enter confirms edit, saves changes, and closes cell
|
|
1765
|
+
* - **Inline**: Enter moves to next field (does NOT save)
|
|
1766
|
+
* - **Not editing**: Transitions from Cursor mode to Content mode
|
|
1767
|
+
*
|
|
1768
|
+
* Based on specification: "Enter or F2 while in Cursor Mode: Activates Content mode for the current cell"
|
|
1769
|
+
*
|
|
1770
|
+
* @param event - The keyboard event
|
|
1771
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1772
|
+
* @param target - The event target element
|
|
1773
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1774
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1775
|
+
* @returns true if the event was handled
|
|
1776
|
+
*
|
|
1777
|
+
* @hidden
|
|
1778
|
+
*/
|
|
1779
|
+
export declare const handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* Handles Escape key press on a stacked cell.
|
|
1783
|
+
* Behavior varies based on edit mode.
|
|
1784
|
+
*
|
|
1785
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1786
|
+
* - **Incell**: Escape cancels edit, discards changes, and closes cell
|
|
1787
|
+
* - **Inline**: Escape cancels editing, closes row, and discards changes
|
|
1788
|
+
* - **Not editing**: Exits Content mode and returns to Cursor mode
|
|
1789
|
+
*
|
|
1790
|
+
* Based on specification: "Escape Key: Exits Content mode and returns to Cursor mode"
|
|
1791
|
+
*
|
|
1792
|
+
* @param event - The keyboard event
|
|
1793
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1794
|
+
* @param onEscape - Optional callback to invoke when Escape is handled (resets cell entered state)
|
|
1795
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1796
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1797
|
+
* @returns true if the event was handled
|
|
1798
|
+
*
|
|
1799
|
+
* @hidden
|
|
1800
|
+
*/
|
|
1801
|
+
export declare const handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1802
|
+
|
|
1803
|
+
/**
|
|
1804
|
+
* Handles Tab key navigation within a stacked cell row.
|
|
1805
|
+
* Implements focus trap pattern to keep navigation within the current row card.
|
|
1806
|
+
* Tab/Shift+Tab navigates between stacked cells, stopping at row boundaries.
|
|
1807
|
+
*
|
|
1808
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1809
|
+
* - **Incell**: Tab saves current cell and moves to next editable cell
|
|
1810
|
+
* - **Inline**: Tab navigates between fields within the editing row
|
|
1811
|
+
* - **Not editing**: Standard stacked cell navigation with focus trap
|
|
1812
|
+
*
|
|
1813
|
+
* Based on specification: "Tab is THE mechanism for navigating between stacked cells within a row"
|
|
1814
|
+
* and "Trap focus within the current row card: Prevent Tab from leaving the row at boundaries"
|
|
1815
|
+
*
|
|
1816
|
+
* @param event - The keyboard event
|
|
1817
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1818
|
+
* @param target - The event target element
|
|
1819
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1820
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1821
|
+
* @returns true if the event was handled and should stop propagation
|
|
1822
|
+
*
|
|
1823
|
+
* @hidden
|
|
1824
|
+
*/
|
|
1825
|
+
export declare const handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
|
|
1826
|
+
|
|
1827
|
+
/**
|
|
1828
|
+
* Main handler for stacked cell keyboard navigation.
|
|
1829
|
+
* Implements the navigation pattern described in the specifications:
|
|
1830
|
+
*
|
|
1831
|
+
* Specifications:
|
|
1832
|
+
* - STACKED_LAYOUT_KEYBOARD_NAVIGATION.md: Navigation modes and focus trap
|
|
1833
|
+
* - EDIT_MODE_KEYBOARD_NAVIGATION.md: Edit mode behaviors
|
|
1834
|
+
*
|
|
1835
|
+
* Navigation Flow:
|
|
1836
|
+
* - Tab/Shift+Tab: Navigate between stacked cells within the row (focus trapped)
|
|
1837
|
+
* - Enter/F2: Transition from Cursor mode to Content mode (focus first element)
|
|
1838
|
+
* - Escape: Exit Content mode, return to Cursor mode (focus row container)
|
|
1839
|
+
*
|
|
1840
|
+
* Mode Transitions:
|
|
1841
|
+
* - Cursor Mode: Cell wrapper is focused, arrow keys navigate rows
|
|
1842
|
+
* - Content Mode: Focusable element inside cell is focused, Tab navigates cells
|
|
1843
|
+
*
|
|
1844
|
+
* Focus Trap:
|
|
1845
|
+
* Tab navigation is trapped within the current row card. At boundaries:
|
|
1846
|
+
* - First cell + Shift+Tab: Stay on first cell (stopPropagation)
|
|
1847
|
+
* - Last cell + Tab: Stay on last cell (stopPropagation)
|
|
1848
|
+
*
|
|
1849
|
+
* Edit Mode Behaviors:
|
|
1850
|
+
* - **Incell**: All navigation keys blocked, Tab saves and moves, Enter saves, Escape cancels
|
|
1851
|
+
* - **Inline**: Up/Down blocked, Tab between fields, Enter to next field, Escape cancels
|
|
1852
|
+
* - **Not editing**: Normal navigation
|
|
1853
|
+
*
|
|
1854
|
+
* @param options - Navigation options
|
|
1855
|
+
*
|
|
1856
|
+
* @hidden
|
|
1857
|
+
*/
|
|
1858
|
+
export declare const handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
|
|
1859
|
+
|
|
1739
1860
|
/**
|
|
1740
1861
|
* @hidden
|
|
1741
1862
|
*/
|
|
@@ -2102,7 +2223,7 @@ export declare interface NumericFilterProps extends TextFilterProps {
|
|
|
2102
2223
|
* Represents the operators for the TextFilter, NumericFilter, DateFilter and BooleanFilter components.
|
|
2103
2224
|
*
|
|
2104
2225
|
* The text field of each operator object will be resolved according to the
|
|
2105
|
-
* [localization messages](
|
|
2226
|
+
* [localization messages](https://www.telerik.com/kendo-react-ui/components/datatools/globalization#toc-messages).
|
|
2106
2227
|
*/
|
|
2107
2228
|
export declare class Operators {
|
|
2108
2229
|
/**
|
|
@@ -2862,6 +2983,102 @@ export declare type SortSettings = boolean | (ColumnSortSettings & {
|
|
|
2862
2983
|
mode?: 'single' | 'multiple';
|
|
2863
2984
|
});
|
|
2864
2985
|
|
|
2986
|
+
/**
|
|
2987
|
+
* Keyboard navigation utilities for stacked layout cells.
|
|
2988
|
+
*
|
|
2989
|
+
* Implements the navigation pattern specified in STACKED_LAYOUT_KEYBOARD_NAVIGATION.md:
|
|
2990
|
+
*
|
|
2991
|
+
* ## Key Behaviors
|
|
2992
|
+
*
|
|
2993
|
+
* 1. **Tab Navigation** - PRIMARY mechanism for navigating between stacked cells:
|
|
2994
|
+
* - Tab: Move to next stacked cell in the row
|
|
2995
|
+
* - Shift+Tab: Move to previous stacked cell in the row
|
|
2996
|
+
* - Focus is TRAPPED within the row card (stopPropagation at boundaries)
|
|
2997
|
+
*
|
|
2998
|
+
* 2. **Enter/F2 Keys** - Transition from Cursor mode to Content mode:
|
|
2999
|
+
* - Focuses the first focusable element within the cell
|
|
3000
|
+
* - Enables interaction with cell content (inputs, buttons, etc.)
|
|
3001
|
+
*
|
|
3002
|
+
* 3. **Escape Key** - Exit Content mode, return to Cursor mode:
|
|
3003
|
+
* - Returns focus to the row-level container
|
|
3004
|
+
* - Resets cell entered state
|
|
3005
|
+
*
|
|
3006
|
+
* ## Navigation Modes
|
|
3007
|
+
*
|
|
3008
|
+
* - **Cursor Mode**: Cell wrapper is focused, user can navigate rows with arrow keys
|
|
3009
|
+
* - **Content Mode**: Focusable element inside cell is focused, user can interact with content
|
|
3010
|
+
*
|
|
3011
|
+
* ## Critical Notes
|
|
3012
|
+
*
|
|
3013
|
+
* - Horizontal (Left/Right) arrow navigation is DISABLED in stacked mode
|
|
3014
|
+
* - Vertical (Up/Down) arrow navigation moves between rows, not cells
|
|
3015
|
+
* - Tab/Shift+Tab stops at row boundaries (prevents leaving the row)
|
|
3016
|
+
* - Each row card is treated as a single navigable unit
|
|
3017
|
+
*
|
|
3018
|
+
* @module stackedKeyboardNavigation
|
|
3019
|
+
* @see STACKED_LAYOUT_KEYBOARD_NAVIGATION.md for complete specification
|
|
3020
|
+
*
|
|
3021
|
+
* @hidden
|
|
3022
|
+
*/
|
|
3023
|
+
/**
|
|
3024
|
+
* Options for handling stacked cell keyboard navigation.
|
|
3025
|
+
*
|
|
3026
|
+
* @hidden
|
|
3027
|
+
*/
|
|
3028
|
+
export declare interface StackedKeyboardNavigationOptions {
|
|
3029
|
+
/**
|
|
3030
|
+
* The keyboard event to handle.
|
|
3031
|
+
*/
|
|
3032
|
+
event: React.KeyboardEvent<HTMLElement>;
|
|
3033
|
+
/**
|
|
3034
|
+
* The cell element (the stacked cell wrapper div).
|
|
3035
|
+
*/
|
|
3036
|
+
cellElement: HTMLElement;
|
|
3037
|
+
/**
|
|
3038
|
+
* Optional callback to invoke after handling the keyboard event.
|
|
3039
|
+
*/
|
|
3040
|
+
onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;
|
|
3041
|
+
/**
|
|
3042
|
+
* Optional callback to invoke when Escape is pressed (to update row entered state).
|
|
3043
|
+
*/
|
|
3044
|
+
onEscape?: () => void;
|
|
3045
|
+
/**
|
|
3046
|
+
* Optional callback to invoke when exiting edit mode (e.g., on Escape in incell mode).
|
|
3047
|
+
* This should trigger the Grid's onEditChange to update the edit descriptor.
|
|
3048
|
+
*/
|
|
3049
|
+
onExitEdit?: () => void;
|
|
3050
|
+
/**
|
|
3051
|
+
* Optional callback to invoke when Tab is pressed in incell edit mode.
|
|
3052
|
+
* Called with the direction (1 for Tab, -1 for Shift+Tab) to move to next/previous cell.
|
|
3053
|
+
* Should handle transitioning edit state from current cell to next/previous cell.
|
|
3054
|
+
*/
|
|
3055
|
+
onTabToNextCell?: (direction: number) => void;
|
|
3056
|
+
/**
|
|
3057
|
+
* Whether the cell is currently in edit mode.
|
|
3058
|
+
* When true, applies edit mode keyboard navigation rules.
|
|
3059
|
+
*/
|
|
3060
|
+
isInEdit?: boolean;
|
|
3061
|
+
/**
|
|
3062
|
+
* The edit mode of the grid: 'incell', 'inline', or 'dialog'.
|
|
3063
|
+
* Determines which keyboard navigation rules apply during editing.
|
|
3064
|
+
*/
|
|
3065
|
+
editMode?: 'incell' | 'inline' | 'dialog';
|
|
3066
|
+
}
|
|
3067
|
+
|
|
3068
|
+
/**
|
|
3069
|
+
* Exported stacked keyboard navigation utilities.
|
|
3070
|
+
*
|
|
3071
|
+
* @hidden
|
|
3072
|
+
*/
|
|
3073
|
+
export declare const stackedKeyboardNavigationTools: {
|
|
3074
|
+
handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
|
|
3075
|
+
handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
|
|
3076
|
+
handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3077
|
+
handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3078
|
+
handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3079
|
+
isNavigationKey: (key: string) => boolean;
|
|
3080
|
+
};
|
|
3081
|
+
|
|
2865
3082
|
/**
|
|
2866
3083
|
* @hidden
|
|
2867
3084
|
*/
|
|
@@ -3187,6 +3404,11 @@ export declare const tableKeyboardNavigationTools: {
|
|
|
3187
3404
|
elementToFocus: string | null | undefined;
|
|
3188
3405
|
};
|
|
3189
3406
|
getClosestCellNavId: (element: HTMLElement) => string | null;
|
|
3407
|
+
getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
|
|
3408
|
+
getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
|
|
3409
|
+
getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
|
|
3410
|
+
getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
|
|
3411
|
+
focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
|
|
3190
3412
|
};
|
|
3191
3413
|
|
|
3192
3414
|
/** @hidden */
|
|
@@ -3333,10 +3555,10 @@ export declare interface TreeColumnBaseProps<C = CellProps, H = HeaderCellProps,
|
|
|
3333
3555
|
*/
|
|
3334
3556
|
children?: TreeColumnBaseProps<C, H, F>[];
|
|
3335
3557
|
/**
|
|
3336
|
-
* The column menu component. Pass the [ColumnMenuTextColumn](
|
|
3337
|
-
* [ColumnMenuNumericColumn](
|
|
3338
|
-
* [ColumnMenuDateColumn](
|
|
3339
|
-
* [ColumnMenuBooleanColumn](
|
|
3558
|
+
* The column menu component. Pass the [ColumnMenuTextColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenutextcolumn),
|
|
3559
|
+
* [ColumnMenuNumericColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenunumericcolumn),
|
|
3560
|
+
* [ColumnMenuDateColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenudatecolumn),
|
|
3561
|
+
* [ColumnMenuBooleanColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenubooleancolumn)
|
|
3340
3562
|
* or a custom component base on the type of the column data.
|
|
3341
3563
|
*/
|
|
3342
3564
|
columnMenu?: React.ComponentType<ColumnMenuProps>;
|
package/index.d.ts
CHANGED
|
@@ -214,11 +214,11 @@ export declare interface ClipboardDataEvent {
|
|
|
214
214
|
*/
|
|
215
215
|
type: ClipboardActionType;
|
|
216
216
|
/**
|
|
217
|
-
* Represents the native [ClipboardEvent](
|
|
217
|
+
* Represents the native [ClipboardEvent](https://www.telerik.com/kendo-react-ui/components/grid/api/gridcellssettings)
|
|
218
218
|
*/
|
|
219
219
|
nativeEvent?: ClipboardEvent;
|
|
220
220
|
/**
|
|
221
|
-
* All the Grid columns. It takes value of type of [ColumnBaseProps](
|
|
221
|
+
* All the Grid columns. It takes value of type of [ColumnBaseProps](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnbaseprops)<[CellProps](https://www.telerik.com/kendo-react-ui/components/datatools/api/cellprops)>[]
|
|
222
222
|
*/
|
|
223
223
|
columns: ColumnBaseProps[];
|
|
224
224
|
/**
|
|
@@ -509,7 +509,7 @@ export declare const ColumnMenuNumericFilter: React_2.FunctionComponent<ColumnMe
|
|
|
509
509
|
* ColumnMenuDateFilter and ColumnMenuBooleanFilter components.
|
|
510
510
|
*
|
|
511
511
|
* The text field of each operator object will be resolved according to the
|
|
512
|
-
* [localization messages](
|
|
512
|
+
* [localization messages](https://www.telerik.com/kendo-react-ui/components/datatools/globalization#toc-messages).
|
|
513
513
|
*/
|
|
514
514
|
export declare class ColumnMenuOperators {
|
|
515
515
|
/**
|
|
@@ -1259,7 +1259,7 @@ export declare interface FieldSettings {
|
|
|
1259
1259
|
}
|
|
1260
1260
|
|
|
1261
1261
|
/**
|
|
1262
|
-
* Represents the [KendoReact Filter component](
|
|
1262
|
+
* Represents the [KendoReact Filter component](https://www.telerik.com/kendo-react-ui/components/datatools/filter).
|
|
1263
1263
|
*/
|
|
1264
1264
|
export declare class Filter extends React_2.Component<FilterProps> {
|
|
1265
1265
|
/**
|
|
@@ -1731,11 +1731,132 @@ export declare type GroupState = {
|
|
|
1731
1731
|
parents?: GroupState[];
|
|
1732
1732
|
};
|
|
1733
1733
|
|
|
1734
|
+
/**
|
|
1735
|
+
* Handles navigation keys (arrows, PageUp/Down, Home/End) during editing.
|
|
1736
|
+
* Blocks ALL navigation keys during incell editing per specification.
|
|
1737
|
+
*
|
|
1738
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1739
|
+
* - **Incell**: ALL navigation keys are BLOCKED
|
|
1740
|
+
* - **Inline**: Arrow Up/Down are blocked (can't navigate to other rows)
|
|
1741
|
+
* - **Not editing**: Navigation keys work normally
|
|
1742
|
+
*
|
|
1743
|
+
* Based on specification: "ALL navigation keys are blocked when cell is editing"
|
|
1744
|
+
*
|
|
1745
|
+
* @param event - The keyboard event
|
|
1746
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1747
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1748
|
+
* @returns true if the event was blocked
|
|
1749
|
+
*
|
|
1750
|
+
* @hidden
|
|
1751
|
+
*/
|
|
1752
|
+
export declare const handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1753
|
+
|
|
1734
1754
|
/**
|
|
1735
1755
|
* @hidden
|
|
1736
1756
|
*/
|
|
1737
1757
|
declare type handler = (prevIndex: number, nextIndex: number, nativeEvent: any) => void;
|
|
1738
1758
|
|
|
1759
|
+
/**
|
|
1760
|
+
* Handles Enter key press on a stacked cell.
|
|
1761
|
+
* Behavior varies based on edit mode.
|
|
1762
|
+
*
|
|
1763
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1764
|
+
* - **Incell**: Enter confirms edit, saves changes, and closes cell
|
|
1765
|
+
* - **Inline**: Enter moves to next field (does NOT save)
|
|
1766
|
+
* - **Not editing**: Transitions from Cursor mode to Content mode
|
|
1767
|
+
*
|
|
1768
|
+
* Based on specification: "Enter or F2 while in Cursor Mode: Activates Content mode for the current cell"
|
|
1769
|
+
*
|
|
1770
|
+
* @param event - The keyboard event
|
|
1771
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1772
|
+
* @param target - The event target element
|
|
1773
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1774
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1775
|
+
* @returns true if the event was handled
|
|
1776
|
+
*
|
|
1777
|
+
* @hidden
|
|
1778
|
+
*/
|
|
1779
|
+
export declare const handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* Handles Escape key press on a stacked cell.
|
|
1783
|
+
* Behavior varies based on edit mode.
|
|
1784
|
+
*
|
|
1785
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1786
|
+
* - **Incell**: Escape cancels edit, discards changes, and closes cell
|
|
1787
|
+
* - **Inline**: Escape cancels editing, closes row, and discards changes
|
|
1788
|
+
* - **Not editing**: Exits Content mode and returns to Cursor mode
|
|
1789
|
+
*
|
|
1790
|
+
* Based on specification: "Escape Key: Exits Content mode and returns to Cursor mode"
|
|
1791
|
+
*
|
|
1792
|
+
* @param event - The keyboard event
|
|
1793
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1794
|
+
* @param onEscape - Optional callback to invoke when Escape is handled (resets cell entered state)
|
|
1795
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1796
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1797
|
+
* @returns true if the event was handled
|
|
1798
|
+
*
|
|
1799
|
+
* @hidden
|
|
1800
|
+
*/
|
|
1801
|
+
export declare const handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
1802
|
+
|
|
1803
|
+
/**
|
|
1804
|
+
* Handles Tab key navigation within a stacked cell row.
|
|
1805
|
+
* Implements focus trap pattern to keep navigation within the current row card.
|
|
1806
|
+
* Tab/Shift+Tab navigates between stacked cells, stopping at row boundaries.
|
|
1807
|
+
*
|
|
1808
|
+
* Edit Mode Behaviors (EDIT_MODE_KEYBOARD_NAVIGATION.md):
|
|
1809
|
+
* - **Incell**: Tab saves current cell and moves to next editable cell
|
|
1810
|
+
* - **Inline**: Tab navigates between fields within the editing row
|
|
1811
|
+
* - **Not editing**: Standard stacked cell navigation with focus trap
|
|
1812
|
+
*
|
|
1813
|
+
* Based on specification: "Tab is THE mechanism for navigating between stacked cells within a row"
|
|
1814
|
+
* and "Trap focus within the current row card: Prevent Tab from leaving the row at boundaries"
|
|
1815
|
+
*
|
|
1816
|
+
* @param event - The keyboard event
|
|
1817
|
+
* @param cellElement - The stacked cell wrapper element
|
|
1818
|
+
* @param target - The event target element
|
|
1819
|
+
* @param isInEdit - Whether the cell/row is in edit mode
|
|
1820
|
+
* @param editMode - The edit mode ('incell', 'inline', or 'dialog')
|
|
1821
|
+
* @returns true if the event was handled and should stop propagation
|
|
1822
|
+
*
|
|
1823
|
+
* @hidden
|
|
1824
|
+
*/
|
|
1825
|
+
export declare const handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
|
|
1826
|
+
|
|
1827
|
+
/**
|
|
1828
|
+
* Main handler for stacked cell keyboard navigation.
|
|
1829
|
+
* Implements the navigation pattern described in the specifications:
|
|
1830
|
+
*
|
|
1831
|
+
* Specifications:
|
|
1832
|
+
* - STACKED_LAYOUT_KEYBOARD_NAVIGATION.md: Navigation modes and focus trap
|
|
1833
|
+
* - EDIT_MODE_KEYBOARD_NAVIGATION.md: Edit mode behaviors
|
|
1834
|
+
*
|
|
1835
|
+
* Navigation Flow:
|
|
1836
|
+
* - Tab/Shift+Tab: Navigate between stacked cells within the row (focus trapped)
|
|
1837
|
+
* - Enter/F2: Transition from Cursor mode to Content mode (focus first element)
|
|
1838
|
+
* - Escape: Exit Content mode, return to Cursor mode (focus row container)
|
|
1839
|
+
*
|
|
1840
|
+
* Mode Transitions:
|
|
1841
|
+
* - Cursor Mode: Cell wrapper is focused, arrow keys navigate rows
|
|
1842
|
+
* - Content Mode: Focusable element inside cell is focused, Tab navigates cells
|
|
1843
|
+
*
|
|
1844
|
+
* Focus Trap:
|
|
1845
|
+
* Tab navigation is trapped within the current row card. At boundaries:
|
|
1846
|
+
* - First cell + Shift+Tab: Stay on first cell (stopPropagation)
|
|
1847
|
+
* - Last cell + Tab: Stay on last cell (stopPropagation)
|
|
1848
|
+
*
|
|
1849
|
+
* Edit Mode Behaviors:
|
|
1850
|
+
* - **Incell**: All navigation keys blocked, Tab saves and moves, Enter saves, Escape cancels
|
|
1851
|
+
* - **Inline**: Up/Down blocked, Tab between fields, Enter to next field, Escape cancels
|
|
1852
|
+
* - **Not editing**: Normal navigation
|
|
1853
|
+
*
|
|
1854
|
+
* @param options - Navigation options
|
|
1855
|
+
*
|
|
1856
|
+
* @hidden
|
|
1857
|
+
*/
|
|
1858
|
+
export declare const handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
|
|
1859
|
+
|
|
1739
1860
|
/**
|
|
1740
1861
|
* @hidden
|
|
1741
1862
|
*/
|
|
@@ -2102,7 +2223,7 @@ export declare interface NumericFilterProps extends TextFilterProps {
|
|
|
2102
2223
|
* Represents the operators for the TextFilter, NumericFilter, DateFilter and BooleanFilter components.
|
|
2103
2224
|
*
|
|
2104
2225
|
* The text field of each operator object will be resolved according to the
|
|
2105
|
-
* [localization messages](
|
|
2226
|
+
* [localization messages](https://www.telerik.com/kendo-react-ui/components/datatools/globalization#toc-messages).
|
|
2106
2227
|
*/
|
|
2107
2228
|
export declare class Operators {
|
|
2108
2229
|
/**
|
|
@@ -2862,6 +2983,102 @@ export declare type SortSettings = boolean | (ColumnSortSettings & {
|
|
|
2862
2983
|
mode?: 'single' | 'multiple';
|
|
2863
2984
|
});
|
|
2864
2985
|
|
|
2986
|
+
/**
|
|
2987
|
+
* Keyboard navigation utilities for stacked layout cells.
|
|
2988
|
+
*
|
|
2989
|
+
* Implements the navigation pattern specified in STACKED_LAYOUT_KEYBOARD_NAVIGATION.md:
|
|
2990
|
+
*
|
|
2991
|
+
* ## Key Behaviors
|
|
2992
|
+
*
|
|
2993
|
+
* 1. **Tab Navigation** - PRIMARY mechanism for navigating between stacked cells:
|
|
2994
|
+
* - Tab: Move to next stacked cell in the row
|
|
2995
|
+
* - Shift+Tab: Move to previous stacked cell in the row
|
|
2996
|
+
* - Focus is TRAPPED within the row card (stopPropagation at boundaries)
|
|
2997
|
+
*
|
|
2998
|
+
* 2. **Enter/F2 Keys** - Transition from Cursor mode to Content mode:
|
|
2999
|
+
* - Focuses the first focusable element within the cell
|
|
3000
|
+
* - Enables interaction with cell content (inputs, buttons, etc.)
|
|
3001
|
+
*
|
|
3002
|
+
* 3. **Escape Key** - Exit Content mode, return to Cursor mode:
|
|
3003
|
+
* - Returns focus to the row-level container
|
|
3004
|
+
* - Resets cell entered state
|
|
3005
|
+
*
|
|
3006
|
+
* ## Navigation Modes
|
|
3007
|
+
*
|
|
3008
|
+
* - **Cursor Mode**: Cell wrapper is focused, user can navigate rows with arrow keys
|
|
3009
|
+
* - **Content Mode**: Focusable element inside cell is focused, user can interact with content
|
|
3010
|
+
*
|
|
3011
|
+
* ## Critical Notes
|
|
3012
|
+
*
|
|
3013
|
+
* - Horizontal (Left/Right) arrow navigation is DISABLED in stacked mode
|
|
3014
|
+
* - Vertical (Up/Down) arrow navigation moves between rows, not cells
|
|
3015
|
+
* - Tab/Shift+Tab stops at row boundaries (prevents leaving the row)
|
|
3016
|
+
* - Each row card is treated as a single navigable unit
|
|
3017
|
+
*
|
|
3018
|
+
* @module stackedKeyboardNavigation
|
|
3019
|
+
* @see STACKED_LAYOUT_KEYBOARD_NAVIGATION.md for complete specification
|
|
3020
|
+
*
|
|
3021
|
+
* @hidden
|
|
3022
|
+
*/
|
|
3023
|
+
/**
|
|
3024
|
+
* Options for handling stacked cell keyboard navigation.
|
|
3025
|
+
*
|
|
3026
|
+
* @hidden
|
|
3027
|
+
*/
|
|
3028
|
+
export declare interface StackedKeyboardNavigationOptions {
|
|
3029
|
+
/**
|
|
3030
|
+
* The keyboard event to handle.
|
|
3031
|
+
*/
|
|
3032
|
+
event: React.KeyboardEvent<HTMLElement>;
|
|
3033
|
+
/**
|
|
3034
|
+
* The cell element (the stacked cell wrapper div).
|
|
3035
|
+
*/
|
|
3036
|
+
cellElement: HTMLElement;
|
|
3037
|
+
/**
|
|
3038
|
+
* Optional callback to invoke after handling the keyboard event.
|
|
3039
|
+
*/
|
|
3040
|
+
onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;
|
|
3041
|
+
/**
|
|
3042
|
+
* Optional callback to invoke when Escape is pressed (to update row entered state).
|
|
3043
|
+
*/
|
|
3044
|
+
onEscape?: () => void;
|
|
3045
|
+
/**
|
|
3046
|
+
* Optional callback to invoke when exiting edit mode (e.g., on Escape in incell mode).
|
|
3047
|
+
* This should trigger the Grid's onEditChange to update the edit descriptor.
|
|
3048
|
+
*/
|
|
3049
|
+
onExitEdit?: () => void;
|
|
3050
|
+
/**
|
|
3051
|
+
* Optional callback to invoke when Tab is pressed in incell edit mode.
|
|
3052
|
+
* Called with the direction (1 for Tab, -1 for Shift+Tab) to move to next/previous cell.
|
|
3053
|
+
* Should handle transitioning edit state from current cell to next/previous cell.
|
|
3054
|
+
*/
|
|
3055
|
+
onTabToNextCell?: (direction: number) => void;
|
|
3056
|
+
/**
|
|
3057
|
+
* Whether the cell is currently in edit mode.
|
|
3058
|
+
* When true, applies edit mode keyboard navigation rules.
|
|
3059
|
+
*/
|
|
3060
|
+
isInEdit?: boolean;
|
|
3061
|
+
/**
|
|
3062
|
+
* The edit mode of the grid: 'incell', 'inline', or 'dialog'.
|
|
3063
|
+
* Determines which keyboard navigation rules apply during editing.
|
|
3064
|
+
*/
|
|
3065
|
+
editMode?: 'incell' | 'inline' | 'dialog';
|
|
3066
|
+
}
|
|
3067
|
+
|
|
3068
|
+
/**
|
|
3069
|
+
* Exported stacked keyboard navigation utilities.
|
|
3070
|
+
*
|
|
3071
|
+
* @hidden
|
|
3072
|
+
*/
|
|
3073
|
+
export declare const stackedKeyboardNavigationTools: {
|
|
3074
|
+
handleStackedKeyboardNavigation: (options: StackedKeyboardNavigationOptions) => void;
|
|
3075
|
+
handleStackedCellTabNavigation: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog', onTabToNextCell?: ((direction: number) => void) | undefined) => boolean;
|
|
3076
|
+
handleStackedCellEnterKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, target: HTMLElement, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3077
|
+
handleStackedCellEscapeKey: (event: React.KeyboardEvent<HTMLElement>, cellElement: HTMLElement, onEscape?: () => void, onExitEdit?: () => void, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3078
|
+
handleNavigationKeysInEditMode: (event: React.KeyboardEvent<HTMLElement>, isInEdit?: boolean, editMode?: 'incell' | 'inline' | 'dialog') => boolean;
|
|
3079
|
+
isNavigationKey: (key: string) => boolean;
|
|
3080
|
+
};
|
|
3081
|
+
|
|
2865
3082
|
/**
|
|
2866
3083
|
* @hidden
|
|
2867
3084
|
*/
|
|
@@ -3187,6 +3404,11 @@ export declare const tableKeyboardNavigationTools: {
|
|
|
3187
3404
|
elementToFocus: string | null | undefined;
|
|
3188
3405
|
};
|
|
3189
3406
|
getClosestCellNavId: (element: HTMLElement) => string | null;
|
|
3407
|
+
getStackedCellWrapper: (target: HTMLElement) => HTMLElement | null;
|
|
3408
|
+
getStackedCellFocusableElements: (cellElement: HTMLElement) => HTMLElement[];
|
|
3409
|
+
getNextStackedCell: (currentCell: HTMLElement, direction: 'next' | 'prev') => HTMLElement | null;
|
|
3410
|
+
getStackedCellContainer: (stackedCell: HTMLElement) => HTMLElement | null;
|
|
3411
|
+
focusStackedCellElement: (cellElement: HTMLElement, preferredIndex?: number) => void;
|
|
3190
3412
|
};
|
|
3191
3413
|
|
|
3192
3414
|
/** @hidden */
|
|
@@ -3333,10 +3555,10 @@ export declare interface TreeColumnBaseProps<C = CellProps, H = HeaderCellProps,
|
|
|
3333
3555
|
*/
|
|
3334
3556
|
children?: TreeColumnBaseProps<C, H, F>[];
|
|
3335
3557
|
/**
|
|
3336
|
-
* The column menu component. Pass the [ColumnMenuTextColumn](
|
|
3337
|
-
* [ColumnMenuNumericColumn](
|
|
3338
|
-
* [ColumnMenuDateColumn](
|
|
3339
|
-
* [ColumnMenuBooleanColumn](
|
|
3558
|
+
* The column menu component. Pass the [ColumnMenuTextColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenutextcolumn),
|
|
3559
|
+
* [ColumnMenuNumericColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenunumericcolumn),
|
|
3560
|
+
* [ColumnMenuDateColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenudatecolumn),
|
|
3561
|
+
* [ColumnMenuBooleanColumn](https://www.telerik.com/kendo-react-ui/components/datatools/api/columnmenubooleancolumn)
|
|
3340
3562
|
* or a custom component base on the type of the column data.
|
|
3341
3563
|
*/
|
|
3342
3564
|
columnMenu?: React.ComponentType<ColumnMenuProps>;
|
package/index.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./pager/Pager.js"),
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("./pager/Pager.js"),D=require("./drag/ColumnResize.js"),p=require("./drag/ColumnResizer.js"),_=require("./drag/CommonDragLogic.js"),N=require("./drag/DragClue.js"),S=require("./drag/DropClue.js"),e=require("./utils/data-operations.js"),s=require("./utils/group-operations.js"),b=require("./navigation/hooks.js"),t=require("./navigation/constants.js"),F=require("./navigation/NavigatableSettings.js"),O=require("./navigation/TableKeyboardNavigation.js"),I=require("./navigation/TableKeyboardNavigationContext.js"),R=require("./navigation/utils.js"),n=require("./navigation/stackedKeyboardNavigation.js"),q=require("./selection/TableSelection.js"),d=require("./selection/constants.js"),o=require("./selection/utils.js"),B=require("./editing/utils.js"),m=require("./editing/editReducer.js"),x=require("./detail-expansion/utils.js"),C=require("./detail-expansion/expandReducer.js"),i=require("./group-expansion/groupExpandReducer.js"),K=require("./clipboard/clipboard.service.js"),r=require("./clipboard/common.js"),y=require("./data-source/use-data-source.js"),v=require("./data-source/use-remote-data-source.js"),L=require("./data-source/use-odata-data-source.js"),M=require("./filteringCells/FilterComponent.js"),P=require("./filteringCells/BooleanFilter.js"),H=require("./filteringCells/DateFilter.js"),V=require("./filteringCells/NumericFilter.js"),h=require("./filteringCells/TextFilter.js"),Y=require("./header/ColumnProps.js"),T=require("./header/FilterRow.js"),f=require("./header/Header.js"),U=require("./header/HeaderCell.js"),G=require("./header/HeaderRow.js"),k=require("./header/HeaderSelectionCell.js"),w=require("./header/SortSettings.js"),a=require("./header/utils/index.js"),z=require("./header/HeaderThElement.js"),X=require("./header/HeaderTdElement.js"),$=require("./virtualization/columns.js"),W=require("./filter/filters/TextFilter.js"),Z=require("./filter/filters/NumericFilter.js"),j=require("./filter/filters/DateFilter.js"),J=require("./filter/filters/BooleanFilter.js"),Q=require("./filter/filters/EnumFilter.js"),ee=require("./filter/Expression.js"),E=require("./filter/Filter.js"),te=require("./filter/Group.js"),c=require("./filter/operators.js"),l=require("./columnmenu/ColumnMenu.js"),g=require("./columnmenu/ColumnMenuFilterForm.js"),re=require("./columnmenu/ColumnMenuFilterLogic.js"),u=require("./columnmenu/ColumnMenuFilters.js"),oe=require("./columnmenu/ColumnMenuItem.js"),ae=require("./columnmenu/ColumnMenuOperators.js");exports.Pager=A.Pager;exports.ColumnResize=D.ColumnResize;exports.ColumnResizer=p.ColumnResizer;exports.CommonDragLogic=_.CommonDragLogic;exports.DragClue=N.DragClue;exports.DropClue=S.DropClue;exports.combineFilters=e.combineFilters;exports.createDataTree=e.createDataTree;exports.extendDataItem=e.extendDataItem;exports.filterBy=e.filterBy;exports.flatData=e.flatData;exports.getItemPath=e.getItemPath;exports.getSearchFromString=e.getSearchFromString;exports.getStringFromSearch=e.getStringFromSearch;exports.modifySubItems=e.modifySubItems;exports.moveTreeItem=e.moveTreeItem;exports.orderBy=e.orderBy;exports.removeItems=e.removeItems;exports.treeToFlat=e.treeToFlat;exports.getGroupIds=s.getGroupIds;exports.setExpandedState=s.setExpandedState;exports.setGroupIds=s.setGroupIds;exports.useTableKeyboardNavigation=b.useTableKeyboardNavigation;exports.KEYBOARD_NAV_CANCEL_BUTTON_CLASS=t.KEYBOARD_NAV_CANCEL_BUTTON_CLASS;exports.KEYBOARD_NAV_DATA_BODY=t.KEYBOARD_NAV_DATA_BODY;exports.KEYBOARD_NAV_DATA_HEADER=t.KEYBOARD_NAV_DATA_HEADER;exports.KEYBOARD_NAV_DATA_ID=t.KEYBOARD_NAV_DATA_ID;exports.KEYBOARD_NAV_DATA_LEVEL=t.KEYBOARD_NAV_DATA_LEVEL;exports.KEYBOARD_NAV_DATA_SCOPE=t.KEYBOARD_NAV_DATA_SCOPE;exports.KEYBOARD_NAV_DATA_ZONE=t.KEYBOARD_NAV_DATA_ZONE;exports.KEYBOARD_NAV_EDIT_BUTTON_CLASS=t.KEYBOARD_NAV_EDIT_BUTTON_CLASS;exports.KEYBOARD_NAV_FILTER_COL_SUFFIX=t.KEYBOARD_NAV_FILTER_COL_SUFFIX;exports.tableKeyboardNavigationBodyAttributes=t.tableKeyboardNavigationBodyAttributes;exports.tableKeyboardNavigationHeaderAttributes=t.tableKeyboardNavigationHeaderAttributes;exports.tableKeyboardNavigationScopeAttributes=t.tableKeyboardNavigationScopeAttributes;exports.NavigatableMode=F.NavigatableMode;exports.tableKeyboardNavigation=O.tableKeyboardNavigation;exports.TableKeyboardNavigationContext=I.TableKeyboardNavigationContext;exports.tableKeyboardNavigationTools=R.tableKeyboardNavigationTools;exports.handleNavigationKeysInEditMode=n.handleNavigationKeysInEditMode;exports.handleStackedCellEnterKey=n.handleStackedCellEnterKey;exports.handleStackedCellEscapeKey=n.handleStackedCellEscapeKey;exports.handleStackedCellTabNavigation=n.handleStackedCellTabNavigation;exports.handleStackedKeyboardNavigation=n.handleStackedKeyboardNavigation;exports.stackedKeyboardNavigationTools=n.stackedKeyboardNavigationTools;exports.TableSelection=q.TableSelection;exports.TABLE_COL_INDEX_ATTRIBUTE=d.TABLE_COL_INDEX_ATTRIBUTE;exports.TABLE_PREVENT_SELECTION_ELEMENT=d.TABLE_PREVENT_SELECTION_ELEMENT;exports.TABLE_ROW_INDEX_ATTRIBUTE=d.TABLE_ROW_INDEX_ATTRIBUTE;exports.closestTagName=o.closestTagName;exports.getColumnIndex=o.getColumnIndex;exports.getOffset=o.getOffset;exports.getRowIndex=o.getRowIndex;exports.getSelectedState=o.getSelectedState;exports.getSelectedStateFromKeyDown=o.getSelectedStateFromKeyDown;exports.getSelectionOptions=o.getSelectionOptions;exports.isInNonSelectable=o.isInNonSelectable;exports.relativeContextElement=o.relativeContextElement;exports.setSelectedState=o.setSelectedState;exports.getEditableOptions=B.getEditableOptions;exports.EDIT_ACTION=m.EDIT_ACTION;exports.editReducer=m.editReducer;exports.getDetailExpandableOptions=x.getDetailExpandableOptions;exports.DETAIL_EXPAND_ACTION=C.DETAIL_EXPAND_ACTION;exports.detailExpandReducer=C.detailExpandReducer;exports.GROUP_EXPAND_ACTION=i.GROUP_EXPAND_ACTION;exports.findGroupExpand=i.findGroupExpand;exports.flatToTree=i.flatToTree;exports.getGroupExpandableOptions=i.getGroupExpandableOptions;exports.groupExpandReducer=i.groupExpandReducer;exports.isExpanded=i.isExpanded;exports.ClipboardService=K.ClipboardService;exports.ClipboardActionType=r.ClipboardActionType;exports.addHeaders=r.addHeaders;exports.getClipboardData=r.getClipboardData;exports.getClipboardItemsToPaste=r.getClipboardItemsToPaste;exports.getClipboardText=r.getClipboardText;exports.getItemsToPaste=r.getItemsToPaste;exports.getItemsToUpdateOnPaste=r.getItemsToUpdateOnPaste;exports.getPastedItems=r.getPastedItems;exports.getPreviouslyCopiedItemsData=r.getPreviouslyCopiedItemsData;exports.getSelectedItems=r.getSelectedItems;exports.itemToString=r.itemToString;exports.populateClipboardData=r.populateClipboardData;exports.useDataSource=y.useDataSource;exports.useRemoteDataSource=v.useRemoteDataSource;exports.useODataDataSource=L.useODataDataSource;exports.createFilterComponent=M.createFilterComponent;exports.BooleanFilterCell=P.BooleanFilterCell;exports.DateFilterCell=H.DateFilterCell;exports.NumericFilterCell=V.NumericFilterCell;exports.TextFilterCell=h.TextFilterCell;exports.ColumnDefaultProps=Y.ColumnDefaultProps;exports.FILTER_ROW_CLASS=T.FILTER_ROW_CLASS;exports.FilterRow=T.FilterRow;exports.Header=f.Header;exports.HeaderCell=U.HeaderCell;exports.HeaderRow=G.HeaderRow;exports.HeaderSelectionCell=k.HeaderSelectionCell;exports.normalize=w.normalize;exports.getIndex=a.getIndex;exports.isRtl=a.isRtl;exports.mapColumns=a.mapColumns;exports.nextColumn=a.nextColumn;exports.readColumns=a.readColumns;exports.updateLeft=a.updateLeft;exports.updateRight=a.updateRight;exports.HeaderThElement=z.HeaderThElement;exports.HeaderTdElement=X.HeaderTdElement;exports.tableColumnsVirtualization=$.tableColumnsVirtualization;exports.TextFilter=W.TextFilter;exports.NumericFilter=Z.NumericFilter;exports.DateFilter=j.DateFilter;exports.BooleanFilter=J.BooleanFilter;exports.EnumFilter=Q.EnumFilter;exports.Expression=ee.Expression;exports.Filter=E.Filter;exports.selectors=E.selectors;exports.Group=te.Group;exports.Operators=c.Operators;exports.stringOperator=c.stringOperator;exports.unaryOperator=c.unaryOperator;exports.ColumnMenuBooleanColumn=l.ColumnMenuBooleanColumn;exports.ColumnMenuDateColumn=l.ColumnMenuDateColumn;exports.ColumnMenuNumericColumn=l.ColumnMenuNumericColumn;exports.ColumnMenuTextColumn=l.ColumnMenuTextColumn;exports.ColumnMenuFilterForm=g.ColumnMenuFilterForm;exports.ColumnMenuForm=g.ColumnMenuForm;exports.ColumnMenuFilterLogic=re.ColumnMenuFilterLogic;exports.ColumnMenuBooleanFilter=u.ColumnMenuBooleanFilter;exports.ColumnMenuDateFilter=u.ColumnMenuDateFilter;exports.ColumnMenuNumericFilter=u.ColumnMenuNumericFilter;exports.ColumnMenuTextFilter=u.ColumnMenuTextFilter;exports.ColumnMenuItem=oe.ColumnMenuItem;exports.ColumnMenuOperators=ae.ColumnMenuOperators;
|