@progress/kendo-react-grid 13.3.0-develop.9 → 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.
- package/BasePDFExport.d.ts +31 -0
- package/Grid.d.ts +129 -0
- package/GridClientContextReader.d.ts +17 -0
- package/GridClientWrapper.d.ts +32 -0
- package/GridClientWrapper.js +1 -1
- package/GridClientWrapper.mjs +21 -25
- package/GridColumn.d.ts +51 -0
- package/GridComponent.d.ts +14 -0
- package/GridComponent.js +1 -1
- package/GridComponent.mjs +35 -35
- package/GridPdfExportButton.d.ts +18 -0
- package/GridSearchBox.d.ts +27 -0
- package/GridState.d.ts +30 -0
- package/GridToolbar.d.ts +48 -0
- package/ScrollMode.d.ts +8 -0
- package/StatusBar.d.ts +59 -0
- package/VirtualScroll.d.ts +45 -0
- package/cells/GridDetailHierarchyCell.d.ts +16 -0
- package/cells/GridFilterCell.d.ts +10 -0
- package/cells/GridFilterCell.mjs +4 -4
- package/cells/datacell/GridCell.d.ts +15 -0
- package/cells/datacell/GridCellServer.d.ts +15 -0
- package/cells/datacell/GridCellServerContainer.d.ts +11 -0
- package/cells/datacell/useCellClientTdProps.d.ts +69 -0
- package/cells/datacell/utils.d.ts +20 -0
- package/cells/detailcell/GridDetailCell.d.ts +23 -0
- package/cells/detailcell/GridDetailCellServer.d.ts +11 -0
- package/cells/detailcell/GridDetailCellServerContainer.d.ts +12 -0
- package/cells/detailcell/useDetailCellClientTdProps.d.ts +23 -0
- package/cells/detailcell/utils.d.ts +19 -0
- package/cells/editcell/GridEditCell.d.ts +15 -0
- package/cells/editcell/GridEditCellEditor.d.ts +11 -0
- package/cells/editcell/GridEditCellServer.d.ts +15 -0
- package/cells/editcell/GridEditCellServerContainer.d.ts +11 -0
- package/cells/editcell/useEditCellClientTdProps.d.ts +25 -0
- package/cells/editcell/utils.d.ts +19 -0
- package/cells/groupcell/GridGroupCell.d.ts +15 -0
- package/cells/groupcell/GridGroupCellServer.d.ts +15 -0
- package/cells/groupcell/GridGroupCellServerContainer.d.ts +12 -0
- package/cells/groupcell/GridGroupCellToggle.d.ts +13 -0
- package/cells/groupcell/useGroupCellClientTdProps.d.ts +41 -0
- package/cells/groupcell/utils.d.ts +22 -0
- package/cells/hierarchycell/GridHierarchyCell.d.ts +15 -0
- package/cells/hierarchycell/GridHierarchyCellServer.d.ts +15 -0
- package/cells/hierarchycell/GridHierarchyCellServerContainer.d.ts +11 -0
- package/cells/hierarchycell/GridHierarchyCellToggle.d.ts +13 -0
- package/cells/hierarchycell/GridHierarchyCellToggle.mjs +2 -2
- package/cells/hierarchycell/useHierarchyCellClientTdProps.d.ts +32 -0
- package/cells/hierarchycell/utils.d.ts +20 -0
- package/cells/hooks.d.ts +25 -0
- package/cells/rowreordercell/GridRowReorderCell.d.ts +15 -0
- package/cells/rowreordercell/GridRowReorderCellServer.d.ts +15 -0
- package/cells/rowreordercell/GridRowReorderCellServerContainer.d.ts +11 -0
- package/cells/rowreordercell/useRowReorderCellClientTdProps.d.ts +27 -0
- package/cells/rowreordercell/utils.d.ts +15 -0
- package/cells/selectioncell/GridSelectionCell.d.ts +15 -0
- package/cells/selectioncell/GridSelectionCellInput.d.ts +13 -0
- package/cells/selectioncell/GridSelectionCellServer.d.ts +15 -0
- package/cells/selectioncell/GridSelectionCellServerContainer.d.ts +11 -0
- package/cells/selectioncell/useSelectionCellClientTdProps.d.ts +25 -0
- package/cells/selectioncell/utils.d.ts +25 -0
- package/codemods/v11/cell-render.js +2 -9
- package/codemods/v11/column-cell.js +2 -9
- package/codemods/v11/column-filter-cell.js +2 -9
- package/codemods/v11/column-footer-cell.js +2 -9
- package/codemods/v11/column-header-cell.js +2 -9
- package/codemods/v11/detail-expand-state.js +2 -9
- package/codemods/v11/edit-state.js +2 -9
- package/codemods/v11/filter-cell-render.js +2 -9
- package/codemods/v11/group-expand-state.js +2 -9
- package/codemods/v11/header-cell-render.js +2 -9
- package/codemods/v11/index.js +0 -7
- package/codemods/v11/row-render.js +2 -9
- package/codemods/v11/selection-state.js +2 -9
- package/codemods/v11/utils.js +2 -9
- package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +58 -0
- package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
- package/columnMenu/GridColumnMenuCheckboxFilter.mjs +0 -1
- package/columnMenu/GridColumnMenuColumnsChooser.d.ts +30 -0
- package/columnMenu/GridColumnMenuColumnsList.d.ts +34 -0
- package/columnMenu/GridColumnMenuFilter.d.ts +101 -0
- package/columnMenu/GridColumnMenuFilterCell.d.ts +29 -0
- package/columnMenu/GridColumnMenuFilterUI.d.ts +13 -0
- package/columnMenu/GridColumnMenuGroup.d.ts +61 -0
- package/columnMenu/GridColumnMenuGroup.mjs +3 -3
- package/columnMenu/GridColumnMenuItem.d.ts +48 -0
- package/columnMenu/GridColumnMenuItemContent.d.ts +22 -0
- package/columnMenu/GridColumnMenuItemGroup.d.ts +18 -0
- package/columnMenu/GridColumnMenuSort.d.ts +67 -0
- package/columnMenu/GridColumnMenuWrapper.d.ts +33 -0
- package/columnMenu/GridColumnMenuWrapper.mjs +5 -5
- package/columnMenu/adaptiveContent/GridActionSheetFooter.d.ts +26 -0
- package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.d.ts +27 -0
- package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.mjs +4 -4
- package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.d.ts +32 -0
- package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.mjs +3 -3
- package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.d.ts +12 -0
- package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.js +1 -1
- package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.mjs +4 -4
- package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.d.ts +27 -0
- package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.mjs +8 -8
- package/columnMenu/adaptiveContext/GridColumnMenuAdaptiveContext.d.ts +23 -0
- package/components/GridContainerElementContainer.d.ts +12 -0
- package/components/GridDragClue.d.ts +12 -0
- package/components/GridDraggableRowsContainer.d.ts +20 -0
- package/components/GridDropClue.d.ts +12 -0
- package/components/GridEditDialog.d.ts +22 -0
- package/components/GridEditDialog.mjs +1 -1
- package/components/GridElementContainer.d.ts +14 -0
- package/components/GridLoader.d.ts +17 -0
- package/components/PagerContainer.d.ts +12 -0
- package/components/VirtualScrollHeightContainer.d.ts +12 -0
- package/components/colGroup/GridColGroup.d.ts +12 -0
- package/components/icons/reorder-row-svg.d.ts +12 -0
- package/components/noRecords/GridNoRecords.d.ts +31 -0
- package/components/noRecords/GridNoRecordsContainer.d.ts +15 -0
- package/components/noRecords/GridNoRecordsContainer.mjs +1 -1
- package/components/table/GridTable.d.ts +12 -0
- package/components/table/GridTableBody.d.ts +12 -0
- package/components/table/GridTableScrollable.d.ts +12 -0
- package/components/utils.d.ts +21 -0
- package/constants/index.d.ts +15 -0
- package/constants/index.mjs +2 -2
- package/contextMenu/GridContextMenu.d.ts +205 -0
- package/contextMenu/GridContextMenu.mjs +19 -19
- package/contextMenu/enums.d.ts +36 -0
- package/dist/cdn/js/kendo-react-grid.js +1 -1
- package/drag/ColumnDraggable.d.ts +26 -0
- package/drag/ColumnResize.d.ts +47 -0
- package/drag/CommonDragLogic.d.ts +50 -0
- package/drag/GroupingIndicator.d.ts +26 -0
- package/drag/GroupingIndicator.js +1 -1
- package/drag/GroupingIndicator.mjs +20 -20
- package/filterCommon.d.ts +86 -0
- package/footer/Footer.d.ts +38 -0
- package/footer/Footer.js +1 -1
- package/footer/Footer.mjs +9 -9
- package/footer/FooterCell.d.ts +19 -0
- package/footer/FooterRow.d.ts +23 -0
- package/footer/client/FooterCellContainer.d.ts +12 -0
- package/header/FilterRow.d.ts +35 -0
- package/header/GridHeaderCell.d.ts +48 -0
- package/header/GridHeaderSelectionCell.d.ts +13 -0
- package/header/GroupPanel.d.ts +23 -0
- package/header/GroupPanel.js +1 -1
- package/header/GroupPanel.mjs +11 -11
- package/header/Header.d.ts +44 -0
- package/header/Header.js +1 -1
- package/header/Header.mjs +1 -1
- package/header/HeaderRow.d.ts +45 -0
- package/header/client/GridFilterCellContainer.d.ts +12 -0
- package/header/client/GridFilterCellElementContainer.d.ts +12 -0
- package/header/client/GridHeaderCellContainer.d.ts +12 -0
- package/header/client/GridHeaderCellElementContainer.d.ts +12 -0
- package/header/client/GridHeaderRowContainer.d.ts +16 -0
- package/header/client/GridHeaderRowReorderCell.d.ts +12 -0
- package/header/client/HeaderCellResizer.d.ts +11 -0
- package/header/client/HeaderRowDraggable.d.ts +11 -0
- package/index.d.mts +84 -5356
- package/index.d.ts +84 -5356
- package/interfaces/ColumnType.d.ts +13 -0
- package/interfaces/CompositeHighlightDescriptor.d.ts +29 -0
- package/interfaces/GridAIAssistantCommand.d.ts +110 -0
- package/interfaces/GridAICommands.d.ts +60 -0
- package/interfaces/GridCellProps.d.ts +112 -0
- package/interfaces/GridCellRenderModel.d.ts +15 -0
- package/interfaces/GridCellsSettings.d.ts +366 -0
- package/interfaces/GridColSpanProps.d.ts +21 -0
- package/interfaces/GridColumnChildrenProps.d.ts +18 -0
- package/interfaces/GridColumnMenuBaseProps.d.ts +21 -0
- package/interfaces/GridColumnMenuColumnProps.d.ts +32 -0
- package/interfaces/GridColumnMenuColumnsChooserBaseProps.d.ts +22 -0
- package/interfaces/GridColumnMenuFilterBaseProps.d.ts +31 -0
- package/interfaces/GridColumnMenuFilterUIProps.d.ts +38 -0
- package/interfaces/GridColumnMenuGroupBaseProps.d.ts +26 -0
- package/interfaces/GridColumnMenuProps.d.ts +24 -0
- package/interfaces/GridColumnMenuSortBaseProps.d.ts +27 -0
- package/interfaces/GridColumnProps.d.ts +230 -0
- package/interfaces/GridColumnState.d.ts +52 -0
- package/interfaces/GridDataType.d.ts +12 -0
- package/interfaces/GridDetailExpandableSettings.d.ts +11 -0
- package/interfaces/GridDetailRowProps.d.ts +20 -0
- package/interfaces/GridEditDialogProps.d.ts +30 -0
- package/interfaces/GridEditableSettings.d.ts +16 -0
- package/interfaces/GridFilterCellProps.d.ts +67 -0
- package/interfaces/GridFilterOperator.d.ts +13 -0
- package/interfaces/GridFilterOperators.d.ts +56 -0
- package/interfaces/GridFooterCellProps.d.ts +29 -0
- package/interfaces/GridGroupExpandableSettings.d.ts +22 -0
- package/interfaces/GridGroupableSettings.d.ts +25 -0
- package/interfaces/GridHeaderCellProps.d.ts +23 -0
- package/interfaces/GridHighlightDescriptor.d.ts +16 -0
- package/interfaces/GridNoRecordsProps.d.ts +16 -0
- package/interfaces/GridProps.d.ts +1083 -0
- package/interfaces/GridReorderDropDir.d.ts +11 -0
- package/interfaces/GridRowProps.d.ts +75 -0
- package/interfaces/GridRowReorderSettings.d.ts +25 -0
- package/interfaces/GridRowSpannableSettings.d.ts +21 -0
- package/interfaces/GridRowType.d.ts +16 -0
- package/interfaces/GridRowsSettings.d.ts +57 -0
- package/interfaces/GridSelectableSettings.d.ts +25 -0
- package/interfaces/GridSortSettings.d.ts +26 -0
- package/interfaces/GridStackedLayoutSettings.d.ts +60 -0
- package/interfaces/GridToolbarProps.d.ts +17 -0
- package/interfaces/VirtualScrollInterface.d.ts +29 -0
- package/interfaces/events.d.ts +357 -0
- package/interfaces/index.d.ts +15 -0
- package/messages/index.d.ts +365 -0
- package/messages/messagesMap.d.ts +14 -0
- package/package-metadata.d.ts +12 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +10 -16
- package/package.json +17 -17
- package/paging/GridPagerSettings.d.ts +89 -0
- package/paging/Page.d.ts +20 -0
- package/rows/GridDetailRow.d.ts +41 -0
- package/rows/GridDetailRowRenderer.d.ts +48 -0
- package/rows/GridRow.d.ts +13 -0
- package/rows/GridRowRenderer.d.ts +47 -0
- package/sortCommon.d.ts +20 -0
- package/stacked/GridStackedCell.d.ts +67 -0
- package/stacked/GridStackedDetailToggle.d.ts +20 -0
- package/stacked/GridStackedDetailToggle.mjs +2 -2
- package/stacked/GridStackedRow.d.ts +214 -0
- package/stacked/StackedModeComponents.d.ts +45 -0
- package/stacked/StackedModeRow.d.ts +46 -0
- package/toolbar-tools/GridToolbarAIAssistant.d.ts +246 -0
- package/toolbar-tools/GridToolbarCheckboxFilter.d.ts +89 -0
- package/toolbar-tools/GridToolbarCheckboxFilter.js +1 -1
- package/toolbar-tools/GridToolbarCheckboxFilter.mjs +0 -1
- package/toolbar-tools/GridToolbarColumnsChooser.d.ts +55 -0
- package/toolbar-tools/GridToolbarFilter.d.ts +72 -0
- package/toolbar-tools/GridToolbarFilter.mjs +5 -5
- package/toolbar-tools/GridToolbarGroup.d.ts +55 -0
- package/toolbar-tools/GridToolbarSeparator.d.ts +21 -0
- package/toolbar-tools/GridToolbarSort.d.ts +55 -0
- package/toolbar-tools/GridToolbarSpacer.d.ts +21 -0
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.d.ts +35 -0
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.mjs +3 -3
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.d.ts +33 -0
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.mjs +3 -3
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.d.ts +34 -0
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.mjs +3 -3
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarGroup.d.ts +26 -0
- package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.d.ts +27 -0
- package/toolbar-tools/adaptiveContext/GridToolbarAdaptiveContext.d.ts +23 -0
- package/toolbar-tools/ai-tool/GridAIPrompt.d.ts +160 -0
- package/utils/GridContext.d.ts +12 -0
- package/utils/_clientModule.d.ts +11 -0
- package/utils/_serverModule.d.ts +12 -0
- package/utils/handleAIResponse.d.ts +221 -0
- package/utils/index.d.ts +185 -0
- package/utils/index.js +1 -1
- package/utils/index.mjs +2 -2
- package/utils/premium.d.ts +31 -0
- package/utils/virtualColumns.d.ts +18 -0
|
@@ -0,0 +1,221 @@
|
|
|
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 { AxiosResponse } from 'axios';
|
|
9
|
+
import { CompositeFilterDescriptor, GroupDescriptor, SortDescriptor } from '@progress/kendo-data-query';
|
|
10
|
+
import { GridColumnState, GridHandle } from '../interfaces/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Represents the grid state that can be controlled externally.
|
|
13
|
+
* This interface contains all the stateful properties that can be modified through AI commands.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const [gridState, setGridState] = useState<GridAIState>({
|
|
18
|
+
* sort: [],
|
|
19
|
+
* filter: undefined,
|
|
20
|
+
* group: [],
|
|
21
|
+
* columnsState: initialColumns,
|
|
22
|
+
* skip: 0,
|
|
23
|
+
* take: 20
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export interface GridAIState {
|
|
28
|
+
/**
|
|
29
|
+
* The current sort descriptors applied to the grid.
|
|
30
|
+
* Array of sort objects defining field and direction.
|
|
31
|
+
*/
|
|
32
|
+
sort?: SortDescriptor[];
|
|
33
|
+
/**
|
|
34
|
+
* The current filter descriptor applied to the grid.
|
|
35
|
+
* Composite filter defining logic and filter array.
|
|
36
|
+
*/
|
|
37
|
+
filter?: CompositeFilterDescriptor;
|
|
38
|
+
/**
|
|
39
|
+
* The current group descriptors applied to the grid.
|
|
40
|
+
* Array of group objects defining field and aggregates.
|
|
41
|
+
*/
|
|
42
|
+
group?: GroupDescriptor[];
|
|
43
|
+
/**
|
|
44
|
+
* The current column state including visibility, width, order, and lock status.
|
|
45
|
+
* Array of column state objects.
|
|
46
|
+
*/
|
|
47
|
+
columnsState?: GridColumnState[];
|
|
48
|
+
/**
|
|
49
|
+
* The number of items to skip for pagination.
|
|
50
|
+
* Zero-based index for the first item to display.
|
|
51
|
+
*/
|
|
52
|
+
skip?: number;
|
|
53
|
+
/**
|
|
54
|
+
* The number of items to take (page size) for pagination.
|
|
55
|
+
* Number of items to display per page.
|
|
56
|
+
*/
|
|
57
|
+
take?: number;
|
|
58
|
+
/**
|
|
59
|
+
* The highlight descriptor for highlighting cells/rows in the grid.
|
|
60
|
+
* Object with dataItemKey as keys, values can be boolean (whole row) or number array (specific cells).
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* highlight: {
|
|
65
|
+
* '1': true, // Highlight entire row with dataItemKey = 1
|
|
66
|
+
* '2': [0, 1, 2] // Highlight cells at column indices 0, 1, 2 in row with dataItemKey = 2
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
highlight?: any;
|
|
71
|
+
/**
|
|
72
|
+
* The select descriptor for selecting cells/rows in the grid.
|
|
73
|
+
* Object with dataItemKey as keys, values can be boolean (whole row) or number array (specific cells).
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* select: {
|
|
78
|
+
* '1': true, // Select entire row with dataItemKey = 1
|
|
79
|
+
* '2': [0, 1] // Select cells at column indices 0 and 1 in row with dataItemKey = 2
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
select?: any;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Represents the result of processing an AI response.
|
|
87
|
+
* Contains the updated grid state and any messages to display.
|
|
88
|
+
*/
|
|
89
|
+
export interface GridAIResponseResult {
|
|
90
|
+
/**
|
|
91
|
+
* The updated grid state after processing AI commands.
|
|
92
|
+
* Spread this into your Grid component props.
|
|
93
|
+
*/
|
|
94
|
+
state: GridAIState;
|
|
95
|
+
/**
|
|
96
|
+
* Array of user-friendly messages describing what changes were made.
|
|
97
|
+
* Can be displayed to users as feedback.
|
|
98
|
+
*/
|
|
99
|
+
messages: string[];
|
|
100
|
+
/**
|
|
101
|
+
* Indicates whether the AI triggered a PDF export.
|
|
102
|
+
* Handle this separately as it's an action, not state.
|
|
103
|
+
*/
|
|
104
|
+
shouldExportPdf: boolean;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Processes an AI response and returns the updated grid state.
|
|
108
|
+
* This is a pure function that takes the current state and AI response,
|
|
109
|
+
* and returns a new state object with all the changes applied.
|
|
110
|
+
*
|
|
111
|
+
* @param response - The axios response from the AI service containing commands
|
|
112
|
+
* @param currentState - The current grid state
|
|
113
|
+
* @param gridRef - Reference to grid methods (getTotal, getLeafDataItems, exportAsPdf)
|
|
114
|
+
* @returns Object containing the new state, messages, and export flag
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```tsx
|
|
118
|
+
* const App = () => {
|
|
119
|
+
* const [gridState, setGridState] = useState<GridAIState>({
|
|
120
|
+
* sort: [],
|
|
121
|
+
* filter: undefined,
|
|
122
|
+
* group: [],
|
|
123
|
+
* columnsState: initialColumns,
|
|
124
|
+
* skip: 0,
|
|
125
|
+
* take: 20
|
|
126
|
+
* });
|
|
127
|
+
* const gridRef = useRef<GridHandle>(null);
|
|
128
|
+
*
|
|
129
|
+
* const handleAIRequest = async (prompt: string) => {
|
|
130
|
+
* const response = await axios.post('/api/ai/grid', { prompt, columns: gridState.columnsState });
|
|
131
|
+
* const result = handleAIResponse(response, gridState, gridRef.current);
|
|
132
|
+
*
|
|
133
|
+
* // Update state with AI changes
|
|
134
|
+
* setGridState(result.state);
|
|
135
|
+
*
|
|
136
|
+
* // Handle PDF export if requested
|
|
137
|
+
* if (result.shouldExportPdf && gridRef.current) {
|
|
138
|
+
* gridRef.current.exportAsPdf();
|
|
139
|
+
* }
|
|
140
|
+
*
|
|
141
|
+
* // Show messages to user
|
|
142
|
+
* console.log(result.messages);
|
|
143
|
+
* };
|
|
144
|
+
*
|
|
145
|
+
* return (
|
|
146
|
+
* <Grid
|
|
147
|
+
* ref={gridRef}
|
|
148
|
+
* data={data}
|
|
149
|
+
* {...gridState}
|
|
150
|
+
* onSortChange={(e) => setGridState(prev => ({ ...prev, sort: e.sort }))}
|
|
151
|
+
* onFilterChange={(e) => setGridState(prev => ({ ...prev, filter: e.filter }))}
|
|
152
|
+
* onGroupChange={(e) => setGridState(prev => ({ ...prev, group: e.group }))}
|
|
153
|
+
* onColumnsStateChange={(e) => setGridState(prev => ({ ...prev, columnsState: e.columnsState }))}
|
|
154
|
+
* onPageChange={(e) => setGridState(prev => ({ ...prev, skip: e.page.skip, take: e.page.take }))}
|
|
155
|
+
* />
|
|
156
|
+
* );
|
|
157
|
+
* };
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export declare function handleAIResponse(response: AxiosResponse<any>, currentState: GridAIState, gridRef: Pick<GridHandle, 'getLeafDataItems' | 'getTotal' | 'exportAsPdf' | 'props'> | null): GridAIResponseResult;
|
|
161
|
+
/**
|
|
162
|
+
* Handles sort command by merging new sort with existing sorts.
|
|
163
|
+
*
|
|
164
|
+
* @hidden
|
|
165
|
+
*/
|
|
166
|
+
declare const handleSortCommand: (commandSort: SortDescriptor | SortDescriptor[], currentSort?: SortDescriptor[]) => SortDescriptor[];
|
|
167
|
+
/**
|
|
168
|
+
* Handles filter command by combining new filter with existing filters.
|
|
169
|
+
*
|
|
170
|
+
* @hidden
|
|
171
|
+
*/
|
|
172
|
+
declare const handleFilterCommand: (commandFilter: CompositeFilterDescriptor, currentFilter?: CompositeFilterDescriptor) => CompositeFilterDescriptor | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Handles group command by merging new group with existing groups.
|
|
175
|
+
*
|
|
176
|
+
* @hidden
|
|
177
|
+
*/
|
|
178
|
+
declare const handleGroupCommand: (commandGroup: GroupDescriptor | GroupDescriptor[], currentGroup?: GroupDescriptor[]) => GroupDescriptor[];
|
|
179
|
+
/**
|
|
180
|
+
* Handles column visibility change.
|
|
181
|
+
*
|
|
182
|
+
* @hidden
|
|
183
|
+
*/
|
|
184
|
+
declare const handleColumnVisibility: (columnId: string, hidden: boolean, columnsState: GridColumnState[]) => GridColumnState[];
|
|
185
|
+
/**
|
|
186
|
+
* Handles column resize.
|
|
187
|
+
*
|
|
188
|
+
* @hidden
|
|
189
|
+
*/
|
|
190
|
+
declare const handleColumnResize: (columnId: string, newWidth: string, columnsState: GridColumnState[]) => GridColumnState[];
|
|
191
|
+
/**
|
|
192
|
+
* Handles column reorder.
|
|
193
|
+
*
|
|
194
|
+
* @hidden
|
|
195
|
+
*/
|
|
196
|
+
declare const handleColumnReorder: (columnId: string, position: number, columnsState: GridColumnState[]) => GridColumnState[];
|
|
197
|
+
/**
|
|
198
|
+
* Handles column lock/unlock.
|
|
199
|
+
*
|
|
200
|
+
* @hidden
|
|
201
|
+
*/
|
|
202
|
+
declare const handleColumnLock: (columnId: string, locked: boolean, columnsState: GridColumnState[]) => GridColumnState[];
|
|
203
|
+
/**
|
|
204
|
+
* Handles page change by calculating new skip/take values.
|
|
205
|
+
*
|
|
206
|
+
* @hidden
|
|
207
|
+
*/
|
|
208
|
+
declare const handlePageChange: (gridRef: Pick<GridHandle, 'getLeafDataItems' | 'getTotal' | 'exportAsPdf' | 'props'>, targetPage: number, currentSkip?: number, currentTake?: number) => {
|
|
209
|
+
skip: number;
|
|
210
|
+
take: number;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Handles page size change by recalculating skip/take values.
|
|
214
|
+
*
|
|
215
|
+
* @hidden
|
|
216
|
+
*/
|
|
217
|
+
declare const handlePageSizeChange: (pageSize: number, currentSkip?: number, currentTake?: number) => {
|
|
218
|
+
skip: number;
|
|
219
|
+
take: number;
|
|
220
|
+
};
|
|
221
|
+
export { handleSortCommand, handleFilterCommand, handleGroupCommand, handleColumnVisibility, handleColumnResize, handleColumnReorder, handleColumnLock, handlePageChange, handlePageSizeChange };
|
package/utils/index.d.ts
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
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 { GridProps } from '../interfaces/GridProps.js';
|
|
9
|
+
import { ExtendedColumnProps } from '../GridColumn.js';
|
|
10
|
+
import { DataResult, GroupDescriptor, SortDescriptor } from '@progress/kendo-data-query';
|
|
11
|
+
import { GridRowType } from '../interfaces/GridRowType.js';
|
|
12
|
+
import { GridColumnProps } from '../interfaces/GridColumnProps.js';
|
|
13
|
+
import { DetailExpandDescriptor, GroupExpandDescriptor, GroupState } from '@progress/kendo-react-data-tools';
|
|
14
|
+
import { GridCellsSettings } from '../interfaces/GridCellsSettings.js';
|
|
15
|
+
import { GridContextMenuItemNames } from '../contextMenu/enums.js';
|
|
16
|
+
import { GridDetailExpandableSettings } from '../interfaces/GridDetailExpandableSettings.js';
|
|
17
|
+
import { GridCellProps } from '../interfaces/GridCellProps.js';
|
|
18
|
+
import { GridRowSpannableSettings } from '../interfaces/GridRowSpannableSettings.js';
|
|
19
|
+
import { GridRowReorderSettings } from '../interfaces/GridRowReorderSettings.js';
|
|
20
|
+
import { GridColumnState } from '../interfaces/GridColumnState.js';
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
/**
|
|
23
|
+
* @hidden
|
|
24
|
+
*/
|
|
25
|
+
export declare function getNestedValue(fieldName: string | undefined, dataItem: any): any;
|
|
26
|
+
/**
|
|
27
|
+
* @hidden
|
|
28
|
+
*/
|
|
29
|
+
export interface DataItemWrapper {
|
|
30
|
+
dataItem: any;
|
|
31
|
+
rowType: GridRowType;
|
|
32
|
+
level: number;
|
|
33
|
+
expanded: boolean;
|
|
34
|
+
dataIndex: number;
|
|
35
|
+
group?: GroupState;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @hidden
|
|
39
|
+
*/
|
|
40
|
+
export declare function flatData(output: Array<DataItemWrapper>, input: Array<any>, footer: 'always' | 'visible' | 'none', dataIndex: {
|
|
41
|
+
index: number;
|
|
42
|
+
}, groupDefined: boolean, expand?: DetailExpandDescriptor, groupExpand?: GroupExpandDescriptor[], defaultGroupExpand?: boolean, dataItemKey?: string, level?: number, parentGroup?: GroupState | undefined): number;
|
|
43
|
+
/**
|
|
44
|
+
* @hidden
|
|
45
|
+
*/
|
|
46
|
+
export declare function syncLockedColumns(columns: Array<{
|
|
47
|
+
locked?: boolean;
|
|
48
|
+
index: number;
|
|
49
|
+
}>, columnsState: GridColumnState[]): void;
|
|
50
|
+
/**
|
|
51
|
+
* @hidden
|
|
52
|
+
*/
|
|
53
|
+
export declare const getColSpan: (column: GridColumnProps, dataItem: any) => number;
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
*/
|
|
57
|
+
export declare function checkPropCompatibility(props: GridProps): void;
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
*/
|
|
61
|
+
export declare function mapColumns(columns: Array<{
|
|
62
|
+
parentIndex: number;
|
|
63
|
+
rowSpan: number;
|
|
64
|
+
depth: number;
|
|
65
|
+
kFirst?: boolean;
|
|
66
|
+
children: any[];
|
|
67
|
+
headerColSpan: number;
|
|
68
|
+
width?: string | number;
|
|
69
|
+
locked?: boolean;
|
|
70
|
+
index: number;
|
|
71
|
+
left: number;
|
|
72
|
+
right: number;
|
|
73
|
+
rightBorder: boolean;
|
|
74
|
+
ariaColumnIndex: number;
|
|
75
|
+
}>, columnsState: GridColumnState[], changedColumnLength?: boolean): number[][];
|
|
76
|
+
/**
|
|
77
|
+
* @hidden
|
|
78
|
+
*/
|
|
79
|
+
export declare function readColumns(elements: (React.ReactNode | React.ReactElement | GridColumnProps)[], columnsState: GridColumnState[], idInfo: {
|
|
80
|
+
prevId: number;
|
|
81
|
+
idPrefix: string;
|
|
82
|
+
}, depth?: number, parentHidden?: boolean): ExtendedColumnProps[];
|
|
83
|
+
/**
|
|
84
|
+
* @hidden
|
|
85
|
+
*/
|
|
86
|
+
export declare const getDataAsArray: (data: any[] | DataResult | null | undefined) => any[];
|
|
87
|
+
/**
|
|
88
|
+
* @hidden
|
|
89
|
+
*/
|
|
90
|
+
export declare function autoGenerateColumns(data: any[] | DataResult | null | undefined, group: GroupDescriptor[] | undefined, expandable: GridDetailExpandableSettings, idInfo: {
|
|
91
|
+
prevId: number;
|
|
92
|
+
idPrefix: string;
|
|
93
|
+
}): ExtendedColumnProps[];
|
|
94
|
+
/**
|
|
95
|
+
* @hidden
|
|
96
|
+
*/
|
|
97
|
+
export declare const footerColumns: (columns: ExtendedColumnProps[]) => ExtendedColumnProps[];
|
|
98
|
+
/**
|
|
99
|
+
* @hidden
|
|
100
|
+
*/
|
|
101
|
+
export declare const getColumnWidth: (column: ExtendedColumnProps) => string | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* @hidden
|
|
104
|
+
*/
|
|
105
|
+
export declare const isSorted: (field: string | undefined, sort?: SortDescriptor[]) => boolean | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* @hidden
|
|
108
|
+
*/
|
|
109
|
+
export declare const sanitizeColumns: (columns: ExtendedColumnProps[]) => GridColumnProps[];
|
|
110
|
+
/**
|
|
111
|
+
* @hidden
|
|
112
|
+
*/
|
|
113
|
+
export declare const clientColumn: (column: ExtendedColumnProps) => ExtendedColumnProps;
|
|
114
|
+
/**
|
|
115
|
+
* @hidden
|
|
116
|
+
*/
|
|
117
|
+
export declare const getColumnState: (column: ExtendedColumnProps) => GridColumnState;
|
|
118
|
+
/**
|
|
119
|
+
* @hidden
|
|
120
|
+
*/
|
|
121
|
+
export declare const getColumnsState: (columns: ExtendedColumnProps[]) => GridColumnState[];
|
|
122
|
+
/**
|
|
123
|
+
* @hidden
|
|
124
|
+
*/
|
|
125
|
+
export declare const getFlatColumnsState: (state: GridColumnState[]) => GridColumnState[];
|
|
126
|
+
/**
|
|
127
|
+
* @hidden
|
|
128
|
+
*/
|
|
129
|
+
export declare const firefox: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* @hidden
|
|
132
|
+
*/
|
|
133
|
+
export declare const firefoxMaxHeight = 17895697;
|
|
134
|
+
/**
|
|
135
|
+
* @hidden
|
|
136
|
+
*/
|
|
137
|
+
export declare const getDefaultHeadContextMenuItems: (options: {
|
|
138
|
+
pdf?: boolean;
|
|
139
|
+
sortable?: boolean;
|
|
140
|
+
selectable?: boolean;
|
|
141
|
+
editable?: boolean;
|
|
142
|
+
reorderable?: boolean;
|
|
143
|
+
clipboard?: boolean;
|
|
144
|
+
}) => GridContextMenuItemNames[];
|
|
145
|
+
/**
|
|
146
|
+
* @hidden
|
|
147
|
+
*/
|
|
148
|
+
export declare const getDefaultBodyContextMenuItems: (options: {
|
|
149
|
+
pdf?: boolean;
|
|
150
|
+
sortable?: boolean;
|
|
151
|
+
selectable?: boolean;
|
|
152
|
+
editable?: boolean;
|
|
153
|
+
rowReorderable?: boolean;
|
|
154
|
+
clipboard?: boolean;
|
|
155
|
+
}) => GridContextMenuItemNames[];
|
|
156
|
+
/**
|
|
157
|
+
* @hidden
|
|
158
|
+
*/
|
|
159
|
+
export declare const resolveCells: (gridCells?: GridCellsSettings, columnCells?: GridCellsSettings) => GridCellsSettings | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* @hidden
|
|
162
|
+
*/
|
|
163
|
+
export declare const isRowReorderEnabled: (rowReorderable?: GridRowReorderSettings | boolean) => boolean;
|
|
164
|
+
/**
|
|
165
|
+
* @hidden
|
|
166
|
+
*/
|
|
167
|
+
export declare const isClient: () => boolean;
|
|
168
|
+
/**
|
|
169
|
+
* @hidden
|
|
170
|
+
*/
|
|
171
|
+
export declare const isClientReference: (component: any) => boolean;
|
|
172
|
+
/**
|
|
173
|
+
* @hidden
|
|
174
|
+
*/
|
|
175
|
+
export declare const getClientCellProps: (props: GridCellProps) => GridCellProps;
|
|
176
|
+
/**
|
|
177
|
+
* @hidden
|
|
178
|
+
*/
|
|
179
|
+
export declare const getRowSpanOptions: (rowSpannable?: boolean | GridRowSpannableSettings) => Required<GridRowSpannableSettings>;
|
|
180
|
+
/** @hidden */
|
|
181
|
+
export declare const getReactElement: (children: React.ReactElement<any> | undefined) => React.ReactElement<any>;
|
|
182
|
+
/** @hidden */
|
|
183
|
+
export declare const cloneReactElement: (children: React.ReactElement<any>, props: any) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
|
184
|
+
/** @hidden */
|
|
185
|
+
export declare const calcRowHeight: (tableBody: HTMLTableSectionElement | null) => number;
|
package/utils/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 G=require("react"),v=require("../GridColumn.js"),w=require("@progress/kendo-data-query"),y=require("@progress/kendo-react-data-tools"),O=require("./_serverModule.js"),T=require("./_clientModule.js"),l=require("../contextMenu/enums.js"),H=require("@progress/kendo-react-common");function j(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const M=j(G);function q(e,t){const a=(e!=null?e:"").split(".");let r=t;return a.forEach(n=>{r=r?r[n]:void 0}),r}function N(e,t,a,r,n,d,h,i,s,f=0,o){var c;let x=f;for(let g=0;g<t.length;g++){let C;if(!n||t[g].value===void 0||t[g].items===void 0){e[e.length]={dataIndex:r.index,dataItem:t[g],rowType:"data",level:f,group:o,expanded:(c=s?!!(d!=null&&d[w.getter(s)(t[g])]):!1)!=null?c:!1},r.index++;continue}else{let S;o!=null&&o.parents?S=[{field:o.field,value:o.value},...o.parents]:o?S=[o]:S=[],C={field:t[g].field,value:t[g].value,parents:S}}x=Math.max(x,f+1);let I=!1;const b=y.findGroupExpand(h||[],C);b?I=b.expanded!==!1:I=i!==!1,e[e.length]={dataIndex:-1,dataItem:t[g],level:f,group:C,rowType:"groupHeader",expanded:I},I&&(C.expanded=I,x=Math.max(N(e,t[g].items,a,r,n,d,h,i,s,f+1,C),x)),(a==="always"||I&&a==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[g],rowType:"groupFooter",level:f,expanded:I})}return x}function R(e,t){for(let a=0;a<e.length;a++){const r=e[a];if(!r.locked){const n=t[r.index];n&&(r.locked=n.locked)}}}const u=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1;function B(e,t,a){const r=[[]];let n=0;for(let i=e.length-1;i>=0;i--)n=Math.max(n,e[i].depth),e[i].headerColSpan=e[i].headerColSpan||1,e[i].children.length>0&&(e[i].headerColSpan=e[i].children.reduce((s,f)=>f.hidden?s:s+f.headerColSpan,0));const d=[];let h=1;return e.forEach((i,s)=>{r[i.depth]=r[i.depth]||[];let f=!1;r[i.depth].length===0&&(h<=1?h=1+(i.children.length>0?0:n-i.depth):(h--,f=!0)),i.rowSpan=1+(i.children.length>0?0:n-i.depth),i.kFirst=f,i.index=r[i.depth].length,r[i.depth].push(s),i.ariaColumnIndex=d[i.depth]?d[i.depth]+1:1;for(let o=i.depth;o<i.depth+i.rowSpan;o++)d[o]=(d[o]||0)+i.headerColSpan}),R(e,t),y.updateLeft(r,e,a),y.updateRight(r,e,a),r}function p(e,t,a,r=0,n=!1){const d=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((i,s)=>{i=i.props?i.props:i;const f=i.id?i.id:y.tableKeyboardNavigationTools.generateNavigatableId(`${a.prevId++}`,a.idPrefix,"column"),o=H.canUseDOM&&i.media&&window.matchMedia?!window.matchMedia(i.media).matches:!1,x=n||o||i.hidden,c=t==null?void 0:t.find(C=>C.id===f),g=p(i.children,(c==null?void 0:c.children)||[],a,r+1,x);d.push(Object.assign({depth:r},v.gridDefaultProps,g.length?{cell:()=>null,filterCell:()=>null}:{},i,{id:f,declarationIndex:d.length,children:g,headerColSpan:0,rowSpan:0,columnType:i.columnType||"data",colSpan:i.colSpan||1,isAccessible:!0,hidden:x,left:null,right:null,rowSpannable:i.rowSpannable},c?{width:c.width,orderIndex:c.orderIndex}:{}))});const h=(i,s)=>i.orderIndex===s.orderIndex?i.declarationIndex-s.declarationIndex:(i.orderIndex||0)-(s.orderIndex||0);if(d.sort(h),r===0){const i=[],s=(f,o)=>f.forEach(x=>{x.parentIndex=o,s(x.children,i.push(x)-1)});return s(d,-1),i}return d}const D=e=>Array.isArray(e)?e:e?e.data:[];function z(e,t,a,r){const n=D(e),d=[];if(n.length>0){let h=n[0];if(t)for(let s=0;s<t.length;s++)h=h.items&&h.items[0];Object.getOwnPropertyNames(h).forEach(s=>{s!==a.column&&d.push(Object.assign({id:y.tableKeyboardNavigationTools.generateNavigatableId(`${r.prevId++}`,r.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0},v.gridDefaultProps,{field:s}))})}return d}const _=(e,t)=>{var r;let a=e[t.parentIndex];for(;a;){if((r=a.cells)!=null&&r.footerCell)return!0;a=e[a.parentIndex]}return!1},L=e=>e.filter(t=>{var a;return _(e,t)?!1:!!((a=t.cells)!=null&&a.footerCell)||!(t.children&&t.children.length>0)}),$=e=>{let t=e.width;return typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.minResizableWidth)&&(e==null?void 0:e.width)<(e==null?void 0:e.minResizableWidth)&&(t=e==null?void 0:e.minResizableWidth),typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.minWidth)&&(e==null?void 0:e.width)<(e==null?void 0:e.minWidth)?t=e==null?void 0:e.minWidth:typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.maxWidth)&&(e==null?void 0:e.width)>(e==null?void 0:e.maxWidth)&&(t=e==null?void 0:e.maxWidth),t!==void 0?Math.floor(parseFloat(t.toString()))+"px":void 0},V=(e,t)=>t&&t.filter(a=>a.field===e).length>0,E=e=>(e.sort((t,a)=>t.declarationIndex-a.declarationIndex),e.map(t=>{const{declarationIndex:a,parentIndex:r,depth:n,headerColSpan:d,rowSpan:h,index:i,kFirst:s,children:f,...o}=t;return f.length?{children:E(f),...o}:o})),W=e=>{const{cells:t,rowSpannable:a,defaultCell:r,...n}=e;return e.children.length?{...n,children:e.children.map(W)}:n},F=e=>({id:e.id,field:e.field,title:e.title,width:e.width,orderIndex:e.orderIndex,hidden:!1,minWidth:e.minWidth,maxWidth:e.maxWidth,children:e.children?k(e.children):null}),k=e=>e.map(F),P=e=>{const t=[],a=r=>r==null?void 0:r.forEach(n=>{t.push(n),a(n.children)});return a(e),t},K=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),Q=17895697,U=e=>{let t=[];return e.sortable&&(t=t.concat([l.GridContextMenuItemNames.sortAsc,l.GridContextMenuItemNames.sortDesc])),e.pdf&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.exportPDF])),t},J=e=>{let t=[];return e.clipboard&&(t=t.concat([l.GridContextMenuItemNames.copySelection,l.GridContextMenuItemNames.copySelectionNoHeaders,l.GridContextMenuItemNames.paste])),e.editable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.create,l.GridContextMenuItemNames.edit,l.GridContextMenuItemNames.delete])),e.selectable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.select])),e.rowReorderable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.reorderRow])),e.pdf&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.exportPDF])),t},X=(e,t)=>{if(!(!e&&!t))return t?e?{...e,...t,select:{...e.select||{},...t.select||{}},hierarchy:{...e.hierarchy||{},...t.hierarchy||{}},group:{...e.group||{},...t.group||{}},edit:{...e.edit||{},...t.edit||{}}}:t:e},Y=e=>{var a;return typeof e=="object"?(a=e.enabled)!=null?a:!0:e!=null?e:!1},Z=()=>O.ServerFragment===T.ClientFragment,m=e=>!!(e&&e.$$typeof===Symbol.for("react.client.reference")),ee=e=>({id:e.id,ariaColumnIndex:e.ariaColumnIndex,isSelected:e.isSelected,isHighlighted:e.isHighlighted,isInEdit:e.isInEdit,isSorted:e.isSorted,isAlt:e.isAlt,expanded:e.expanded,className:e.className,style:e.style,field:e.field,dataItem:e.dataItem,format:e.format,colSpan:e.colSpan,dataIndex:e.dataIndex,columnIndex:e.columnIndex,columnsCount:e.columnsCount,rowType:e.rowType,level:e.level,editor:e.editor,locked:e.locked,isRtl:e.isRtl,rowDataIndex:e.rowDataIndex,columnPosition:e.columnPosition,group:e.group}),te=e=>{var r,n;const t=typeof e=="object"?(r=e.enabled)!=null?r:!0:e!=null?e:!1,a=typeof e=="object"?(n=e.valueGetter)!=null?n:(d,h)=>w.getter(h)(d):(d,h)=>w.getter(h)(d);return{enabled:t,valueGetter:a}},A=e=>{var t;return M.isValidElement(e)?e:(t=M.Children.toArray(e))==null?void 0:t[0]},ie=(e,t)=>{const a=A(e);return a?M.cloneElement(a,t):null},ae=e=>{let t=0;if(e){const a=e.insertRow(0),r=a.insertCell(0);r.textContent=" ",t=a.getBoundingClientRect().height,e.deleteRow(0)}return t};exports.autoGenerateColumns=z;exports.calcRowHeight=ae;exports.clientColumn=W;exports.cloneReactElement=ie;exports.firefox=K;exports.firefoxMaxHeight=Q;exports.flatData=N;exports.footerColumns=L;exports.getClientCellProps=ee;exports.getColSpan=u;exports.getColumnState=F;exports.getColumnWidth=$;exports.getColumnsState=k;exports.getDataAsArray=D;exports.getDefaultBodyContextMenuItems=J;exports.getDefaultHeadContextMenuItems=U;exports.getFlatColumnsState=P;exports.getNestedValue=q;exports.getReactElement=A;exports.getRowSpanOptions=te;exports.isClient=Z;exports.isClientReference=m;exports.isRowReorderEnabled=Y;exports.isSorted=V;exports.mapColumns=B;exports.readColumns=p;exports.resolveCells=X;exports.sanitizeColumns=E;exports.syncLockedColumns=R;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react"),v=require("../GridColumn.js"),w=require("@progress/kendo-data-query"),y=require("@progress/kendo-react-data-tools"),O=require("./_serverModule.js"),T=require("./_clientModule.js"),l=require("../contextMenu/enums.js"),H=require("@progress/kendo-react-common");function j(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const M=j(G);function q(e,t){const a=(e!=null?e:"").split(".");let r=t;return a.forEach(n=>{r=r?r[n]:void 0}),r}function N(e,t,a,r,n,d,h,i,s,f=0,o){var c;let x=f;for(let g=0;g<t.length;g++){let C;if(!n||t[g].value===void 0||t[g].items===void 0){e[e.length]={dataIndex:r.index,dataItem:t[g],rowType:"data",level:f,group:o,expanded:(c=s?!!(d!=null&&d[w.getter(s)(t[g])]):!1)!=null?c:!1},r.index++;continue}else{let S;o!=null&&o.parents?S=[{field:o.field,value:o.value},...o.parents]:o?S=[o]:S=[],C={field:t[g].field,value:t[g].value,parents:S}}x=Math.max(x,f+1);let I=!1;const b=y.findGroupExpand(h||[],C);b?I=b.expanded!==!1:I=i!==!1,e[e.length]={dataIndex:-1,dataItem:t[g],level:f,group:C,rowType:"groupHeader",expanded:I},I&&(C.expanded=I,x=Math.max(N(e,t[g].items,a,r,n,d,h,i,s,f+1,C),x)),(a==="always"||I&&a==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[g],rowType:"groupFooter",level:f,expanded:I})}return x}function R(e,t){for(let a=0;a<e.length;a++){const r=e[a];if(!r.locked){const n=t[r.index];n&&(r.locked=n.locked)}}}const u=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1;function B(e,t,a){const r=[[]];let n=0;for(let i=e.length-1;i>=0;i--)n=Math.max(n,e[i].depth),e[i].headerColSpan=e[i].headerColSpan||1,e[i].children.length>0&&(e[i].headerColSpan=e[i].children.reduce((s,f)=>f.hidden?s:s+f.headerColSpan,0));const d=[];let h=1;return e.forEach((i,s)=>{r[i.depth]=r[i.depth]||[];let f=!1;r[i.depth].length===0&&(h<=1?h=1+(i.children.length>0?0:n-i.depth):(h--,f=!0)),i.rowSpan=1+(i.children.length>0?0:n-i.depth),i.kFirst=f,i.index=r[i.depth].length,r[i.depth].push(s),i.ariaColumnIndex=d[i.depth]?d[i.depth]+1:1;for(let o=i.depth;o<i.depth+i.rowSpan;o++)d[o]=(d[o]||0)+i.headerColSpan}),R(e,t),y.updateLeft(r,e,a),y.updateRight(r,e,a),r}function p(e,t,a,r=0,n=!1){const d=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((i,s)=>{i=i.props?i.props:i;const f=i.id?i.id:y.tableKeyboardNavigationTools.generateNavigatableId(`${a.prevId++}`,a.idPrefix,"column"),o=H.canUseDOM&&i.media&&window.matchMedia?!window.matchMedia(i.media).matches:!1,x=n||o||i.hidden,c=t==null?void 0:t.find(C=>C.id===f),g=p(i.children,(c==null?void 0:c.children)||[],a,r+1,x);d.push(Object.assign({depth:r},v.gridDefaultProps,g.length?{cell:()=>null,filterCell:()=>null}:{},i,{id:f,declarationIndex:d.length,children:g,headerColSpan:0,rowSpan:0,columnType:i.columnType||"data",colSpan:i.colSpan||1,isAccessible:!0,hidden:x,left:null,right:null,rowSpannable:i.rowSpannable},c?{width:c.width,orderIndex:c.orderIndex}:{}))});const h=(i,s)=>i.orderIndex===s.orderIndex?i.declarationIndex-s.declarationIndex:(i.orderIndex||0)-(s.orderIndex||0);if(d.sort(h),r===0){const i=[],s=(f,o)=>f.forEach(x=>{x.parentIndex=o,s(x.children,i.push(x)-1)});return s(d,-1),i}return d}const D=e=>Array.isArray(e)?e:e?e.data:[];function z(e,t,a,r){const n=D(e),d=[];if(n.length>0){let h=n[0];if(t)for(let s=0;s<t.length;s++)h=h.items&&h.items[0];Object.getOwnPropertyNames(h).forEach(s=>{s!==a.column&&d.push(Object.assign({id:y.tableKeyboardNavigationTools.generateNavigatableId(`${r.prevId++}`,r.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0},v.gridDefaultProps,{field:s}))})}return d}const _=(e,t)=>{var r;let a=e[t.parentIndex];for(;a;){if((r=a.cells)!=null&&r.footerCell)return!0;a=e[a.parentIndex]}return!1},L=e=>e.filter(t=>{var a;return _(e,t)?!1:!!((a=t.cells)!=null&&a.footerCell)||!(t.children&&t.children.length>0)}),$=e=>{let t=e.width;return typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.minResizableWidth)&&(e==null?void 0:e.width)<(e==null?void 0:e.minResizableWidth)&&(t=e==null?void 0:e.minResizableWidth),typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.minWidth)&&(e==null?void 0:e.width)<(e==null?void 0:e.minWidth)?t=e==null?void 0:e.minWidth:typeof(e==null?void 0:e.width)=="number"&&(e!=null&&e.maxWidth)&&(e==null?void 0:e.width)>(e==null?void 0:e.maxWidth)&&(t=e==null?void 0:e.maxWidth),t!==void 0?Math.floor(parseFloat(t.toString()))+"px":void 0},V=(e,t)=>t&&t.filter(a=>a.field===e).length>0,E=e=>(e.sort((t,a)=>t.declarationIndex-a.declarationIndex),e.map(t=>{const{declarationIndex:a,parentIndex:r,depth:n,headerColSpan:d,rowSpan:h,index:i,kFirst:s,children:f,...o}=t;return f.length?{children:E(f),...o}:o})),W=e=>{const{cells:t,rowSpannable:a,defaultCell:r,...n}=e;return e.children.length?{...n,children:e.children.map(W)}:n},F=e=>({id:e.id,field:e.field,title:e.title,width:e.width,orderIndex:e.orderIndex,hidden:!1,minWidth:e.minWidth,maxWidth:e.maxWidth,children:e.children?k(e.children):null}),k=e=>e.map(F),P=e=>{const t=[],a=r=>r==null?void 0:r.forEach(n=>{t.push(n),a(n.children)});return a(e),t},K=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),Q=17895697,U=e=>{let t=[];return e.sortable&&(t=t.concat([l.GridContextMenuItemNames.sortAsc,l.GridContextMenuItemNames.sortDesc])),e.pdf&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.exportPDF])),t},J=e=>{let t=[];return e.clipboard&&(t=t.concat([l.GridContextMenuItemNames.copySelection,l.GridContextMenuItemNames.copySelectionNoHeaders,l.GridContextMenuItemNames.paste])),e.editable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.create,l.GridContextMenuItemNames.edit,l.GridContextMenuItemNames.delete])),e.selectable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.select])),e.rowReorderable&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.reorderRow])),e.pdf&&(t.length&&(t=t.concat([l.GridContextMenuItemNames.separator])),t=t.concat([l.GridContextMenuItemNames.exportPDF])),t},X=(e,t)=>{if(!(!e&&!t))return t?e?{...e,...t,select:{...e.select||{},...t.select||{}},hierarchy:{...e.hierarchy||{},...t.hierarchy||{}},group:{...e.group||{},...t.group||{}},edit:{...e.edit||{},...t.edit||{}}}:t:e},Y=e=>{var a;return typeof e=="object"?(a=e.enabled)!=null?a:!0:e!=null?e:!1},Z=()=>O.ServerFragment===T.ClientFragment,m=e=>!!(e&&e.$$typeof===Symbol.for("react.client.reference")),ee=e=>({id:e.id,ariaColumnIndex:e.ariaColumnIndex,isSelected:e.isSelected,isHighlighted:e.isHighlighted,isInEdit:e.isInEdit,isSorted:e.isSorted,isAlt:e.isAlt,expanded:e.expanded,className:e.className,style:e.style,field:e.field,dataItem:e.dataItem,format:e.format,colSpan:e.colSpan,dataIndex:e.dataIndex,columnIndex:e.columnIndex,columnsCount:e.columnsCount,rowType:e.rowType,level:e.level,editor:e.editor,locked:e.locked,isRtl:e.isRtl,rowDataIndex:e.rowDataIndex,columnPosition:e.columnPosition,group:e.group}),te=e=>{var r,n;const t=typeof e=="object"?(r=e.enabled)!=null?r:!0:e!=null?e:!1,a=typeof e=="object"?(n=e.valueGetter)!=null?n:((d,h)=>w.getter(h)(d)):(d,h)=>w.getter(h)(d);return{enabled:t,valueGetter:a}},A=e=>{var t;return M.isValidElement(e)?e:(t=M.Children.toArray(e))==null?void 0:t[0]},ie=(e,t)=>{const a=A(e);return a?M.cloneElement(a,t):null},ae=e=>{let t=0;if(e){const a=e.insertRow(0),r=a.insertCell(0);r.textContent=" ",t=a.getBoundingClientRect().height,e.deleteRow(0)}return t};exports.autoGenerateColumns=z;exports.calcRowHeight=ae;exports.clientColumn=W;exports.cloneReactElement=ie;exports.firefox=K;exports.firefoxMaxHeight=Q;exports.flatData=N;exports.footerColumns=L;exports.getClientCellProps=ee;exports.getColSpan=u;exports.getColumnState=F;exports.getColumnWidth=$;exports.getColumnsState=k;exports.getDataAsArray=D;exports.getDefaultBodyContextMenuItems=J;exports.getDefaultHeadContextMenuItems=U;exports.getFlatColumnsState=P;exports.getNestedValue=q;exports.getReactElement=A;exports.getRowSpanOptions=te;exports.isClient=Z;exports.isClientReference=m;exports.isRowReorderEnabled=Y;exports.isSorted=V;exports.mapColumns=B;exports.readColumns=p;exports.resolveCells=X;exports.sanitizeColumns=E;exports.syncLockedColumns=R;
|
package/utils/index.mjs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import * as C from "react";
|
|
9
9
|
import { gridDefaultProps as p } from "../GridColumn.mjs";
|
|
10
10
|
import { getter as S } from "@progress/kendo-data-query";
|
|
11
|
-
import { findGroupExpand as W,
|
|
11
|
+
import { findGroupExpand as W, tableKeyboardNavigationTools as b, updateLeft as F, updateRight as R } from "@progress/kendo-react-data-tools";
|
|
12
12
|
import { ServerFragment as D } from "./_serverModule.mjs";
|
|
13
13
|
import { ClientFragment as E } from "./_clientModule.mjs";
|
|
14
14
|
import { GridContextMenuItemNames as o } from "../contextMenu/enums.mjs";
|
|
@@ -292,7 +292,7 @@ const j = (e, t) => {
|
|
|
292
292
|
group: e.group
|
|
293
293
|
}), se = (e) => {
|
|
294
294
|
var a, d;
|
|
295
|
-
const t = typeof e == "object" ? (a = e.enabled) != null ? a : !0 : e != null ? e : !1, r = typeof e == "object" ? (d = e.valueGetter) != null ? d : (n, l) => S(l)(n) : (n, l) => S(l)(n);
|
|
295
|
+
const t = typeof e == "object" ? (a = e.enabled) != null ? a : !0 : e != null ? e : !1, r = typeof e == "object" ? (d = e.valueGetter) != null ? d : ((n, l) => S(l)(n)) : (n, l) => S(l)(n);
|
|
296
296
|
return { enabled: t, valueGetter: r };
|
|
297
297
|
}, $ = (e) => {
|
|
298
298
|
var t;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { GridColumnProps } from '../interfaces/GridColumnProps.js';
|
|
9
|
+
import { GridComponentProps } from '../interfaces/GridProps.js';
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare const isPremiumGridByProps: (props: GridComponentProps) => {
|
|
14
|
+
[key: string]: boolean;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export declare const isPremiumGridByColumns: (columns: GridColumnProps[]) => {
|
|
20
|
+
[key: string]: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @hidden
|
|
24
|
+
*/
|
|
25
|
+
export declare const isPremiumGridByComponents: (props: GridComponentProps) => {
|
|
26
|
+
[key: string]: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
export declare const gridPremiumFeatures: (props: GridComponentProps, columns: GridColumnProps[]) => string[];
|
|
@@ -0,0 +1,18 @@
|
|
|
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 { ExtendedColumnProps } from '../GridColumn.js';
|
|
9
|
+
import { GridCellRenderModel } from '../interfaces/GridCellRenderModel.js';
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare function getVirtualCellsToRender(args: {
|
|
14
|
+
cellModels: GridCellRenderModel[];
|
|
15
|
+
columns: ExtendedColumnProps[];
|
|
16
|
+
tableViewPortWidth: number;
|
|
17
|
+
scrollLeft: number;
|
|
18
|
+
}): GridCellRenderModel[];
|