@gooddata/sdk-ui-pivot 11.4.0 → 11.5.0-alpha.2
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/esm/next/PivotTableNext.d.ts.map +1 -1
- package/esm/next/PivotTableNext.js +10 -2
- package/esm/next/PivotTableNext.js.map +1 -1
- package/esm/next/components/Header/AttributeHeader.d.ts.map +1 -1
- package/esm/next/components/Header/AttributeHeader.js +15 -3
- package/esm/next/components/Header/AttributeHeader.js.map +1 -1
- package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts +2 -1
- package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/EmptyMeasureGroupHeader.js +6 -2
- package/esm/next/components/Header/EmptyMeasureGroupHeader.js.map +1 -1
- package/esm/next/components/Header/EmptyMeasureGroupValueHeader.d.ts +8 -0
- package/esm/next/components/Header/EmptyMeasureGroupValueHeader.d.ts.map +1 -0
- package/esm/next/components/Header/EmptyMeasureGroupValueHeader.js +34 -0
- package/esm/next/components/Header/EmptyMeasureGroupValueHeader.js.map +1 -0
- package/esm/next/components/Header/MeasureGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/MeasureGroupHeader.js +21 -2
- package/esm/next/components/Header/MeasureGroupHeader.js.map +1 -1
- package/esm/next/components/Header/MeasureHeader.d.ts.map +1 -1
- package/esm/next/components/Header/MeasureHeader.js +10 -1
- package/esm/next/components/Header/MeasureHeader.js.map +1 -1
- package/esm/next/components/Header/PivotGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/PivotGroupHeader.js +8 -2
- package/esm/next/components/Header/PivotGroupHeader.js.map +1 -1
- package/esm/next/components/Header/utils/constructTextWrappingMenuItems.d.ts +5 -1
- package/esm/next/components/Header/utils/constructTextWrappingMenuItems.d.ts.map +1 -1
- package/esm/next/components/Header/utils/constructTextWrappingMenuItems.js +11 -7
- package/esm/next/components/Header/utils/constructTextWrappingMenuItems.js.map +1 -1
- package/esm/next/constants/agGridDefaultProps.d.ts.map +1 -1
- package/esm/next/constants/agGridDefaultProps.js +1 -0
- package/esm/next/constants/agGridDefaultProps.js.map +1 -1
- package/esm/next/features/data/dataViewToColDefs.d.ts.map +1 -1
- package/esm/next/features/data/dataViewToColDefs.js +17 -1
- package/esm/next/features/data/dataViewToColDefs.js.map +1 -1
- package/esm/next/features/pivoting/columnDefsToPivotGroups.d.ts.map +1 -1
- package/esm/next/features/pivoting/columnDefsToPivotGroups.js +2 -1
- package/esm/next/features/pivoting/columnDefsToPivotGroups.js.map +1 -1
- package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.d.ts.map +1 -1
- package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.js +2 -1
- package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.js.map +1 -1
- package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.d.ts +29 -0
- package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.d.ts.map +1 -0
- package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.js +44 -0
- package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.js.map +1 -0
- package/esm/next/features/textWrapping/applyTextWrappingToColDef.d.ts +9 -0
- package/esm/next/features/textWrapping/applyTextWrappingToColDef.d.ts.map +1 -1
- package/esm/next/features/textWrapping/applyTextWrappingToColDef.js +35 -9
- package/esm/next/features/textWrapping/applyTextWrappingToColDef.js.map +1 -1
- package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.d.ts +14 -0
- package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.d.ts.map +1 -0
- package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.js +28 -0
- package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.js.map +1 -0
- package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.d.ts +28 -0
- package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.d.ts.map +1 -0
- package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.js +96 -0
- package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.js.map +1 -0
- package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.d.ts +9 -0
- package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.d.ts.map +1 -0
- package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.js +14 -0
- package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.js.map +1 -0
- package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.d.ts +18 -0
- package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.d.ts.map +1 -0
- package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js +99 -0
- package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js.map +1 -0
- package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.d.ts +13 -0
- package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.d.ts.map +1 -0
- package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.js +18 -0
- package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.js.map +1 -0
- package/esm/next/features/transposition/measureGroupValueColDef.js +1 -1
- package/esm/next/features/transposition/measureGroupValueColDef.js.map +1 -1
- package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.d.ts.map +1 -1
- package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.js +18 -2
- package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.js.map +1 -1
- package/esm/next/hooks/header/useHeaderDrilling.d.ts +2 -5
- package/esm/next/hooks/header/useHeaderDrilling.d.ts.map +1 -1
- package/esm/next/hooks/header/useHeaderDrilling.js +11 -13
- package/esm/next/hooks/header/useHeaderDrilling.js.map +1 -1
- package/esm/next/hooks/header/useHeaderMenu.d.ts +23 -3
- package/esm/next/hooks/header/useHeaderMenu.d.ts.map +1 -1
- package/esm/next/hooks/header/useHeaderMenu.js +9 -2
- package/esm/next/hooks/header/useHeaderMenu.js.map +1 -1
- package/esm/next/hooks/header/useHeaderMenuSorting.d.ts +2 -2
- package/esm/next/hooks/header/useHeaderMenuSorting.d.ts.map +1 -1
- package/esm/next/hooks/header/useHeaderMenuSorting.js +23 -24
- package/esm/next/hooks/header/useHeaderMenuSorting.js.map +1 -1
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts +6 -5
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts.map +1 -1
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.js +341 -23
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.js.map +1 -1
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.d.ts.map +1 -1
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.js +7 -2
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.js.map +1 -1
- package/esm/next/hooks/useAgGridReactProps.d.ts.map +1 -1
- package/esm/next/hooks/useAgGridReactProps.js +8 -0
- package/esm/next/hooks/useAgGridReactProps.js.map +1 -1
- package/esm/next/hooks/useCellSelectionProps.d.ts +8 -0
- package/esm/next/hooks/useCellSelectionProps.d.ts.map +1 -0
- package/esm/next/hooks/useCellSelectionProps.js +23 -0
- package/esm/next/hooks/useCellSelectionProps.js.map +1 -0
- package/esm/next/hooks/useClearCellSelection.d.ts +7 -0
- package/esm/next/hooks/useClearCellSelection.d.ts.map +1 -0
- package/esm/next/hooks/useClearCellSelection.js +15 -0
- package/esm/next/hooks/useClearCellSelection.js.map +1 -0
- package/esm/next/hooks/useClipboardProps.d.ts +13 -0
- package/esm/next/hooks/useClipboardProps.d.ts.map +1 -0
- package/esm/next/hooks/useClipboardProps.js +46 -0
- package/esm/next/hooks/useClipboardProps.js.map +1 -0
- package/esm/next/hooks/useHeaderComponents.d.ts.map +1 -1
- package/esm/next/hooks/useHeaderComponents.js +4 -1
- package/esm/next/hooks/useHeaderComponents.js.map +1 -1
- package/esm/next/hooks/useInteractionProps.d.ts.map +1 -1
- package/esm/next/hooks/useInteractionProps.js +15 -10
- package/esm/next/hooks/useInteractionProps.js.map +1 -1
- package/esm/next/index.d.ts +4 -2
- package/esm/next/index.d.ts.map +1 -1
- package/esm/next/index.js +2 -1
- package/esm/next/index.js.map +1 -1
- package/esm/next/types/agGrid.d.ts +16 -0
- package/esm/next/types/agGrid.d.ts.map +1 -1
- package/esm/next/types/agGrid.js +22 -0
- package/esm/next/types/agGrid.js.map +1 -1
- package/esm/next/types/cellSelection.d.ts +17 -0
- package/esm/next/types/cellSelection.d.ts.map +1 -0
- package/esm/next/types/cellSelection.js +3 -0
- package/esm/next/types/cellSelection.js.map +1 -0
- package/esm/next/types/locators.d.ts +119 -0
- package/esm/next/types/locators.d.ts.map +1 -0
- package/esm/next/types/locators.js +79 -0
- package/esm/next/types/locators.js.map +1 -0
- package/esm/next/types/public.d.ts +2 -1
- package/esm/next/types/public.d.ts.map +1 -1
- package/esm/next/types/public.js +1 -0
- package/esm/next/types/public.js.map +1 -1
- package/esm/next/types/resizing.d.ts +1 -117
- package/esm/next/types/resizing.d.ts.map +1 -1
- package/esm/next/types/resizing.js +2 -76
- package/esm/next/types/resizing.js.map +1 -1
- package/esm/next/types/textWrapping.d.ts +41 -2
- package/esm/next/types/textWrapping.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1,43 +1,361 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
2
3
|
import { useIntl } from "react-intl";
|
|
3
|
-
import {
|
|
4
|
+
import { isAttributeColumnDefinition, isAttributeScope, isAttributeTotalScope, } from "@gooddata/sdk-ui";
|
|
5
|
+
import { constructTextWrappingMenuItems, } from "../../components/Header/utils/constructTextWrappingMenuItems.js";
|
|
4
6
|
import { useAgGridApi } from "../../context/AgGridApiContext.js";
|
|
5
7
|
import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
+
import { createColumnTextWrappingItemForColumnDefinition } from "../../features/textWrapping/createColumnTextWrappingItemForColumnDefinition.js";
|
|
9
|
+
import { getColumnTextWrappingItemForColumnDefinition } from "../../features/textWrapping/getColumnTextWrappingItemForColumnDefinition.js";
|
|
10
|
+
import { getPivotGroupTextWrappingItemForColumnDefinition } from "../../features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js";
|
|
11
|
+
import { isColumnTextWrappingItemMatch } from "../../features/textWrapping/isColumnTextWrappingItemMatch.js";
|
|
12
|
+
import { isAgGridHeaderGroupParams, } from "../../types/agGrid.js";
|
|
13
|
+
import { isAttributeColumnLocator } from "../../types/locators.js";
|
|
14
|
+
import { useGetAgGridColumns } from "../columns/useGetAgGridColumns.js";
|
|
15
|
+
import { useUpdateAgGridColumnDefs } from "../columns/useUpdateAgGridColumnDefs.js";
|
|
8
16
|
/**
|
|
9
|
-
* Hook for header cell components that handles menu items and callbacks.
|
|
17
|
+
* Hook for header cell components that handles menu items and callbacks for per-column text wrapping.
|
|
10
18
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param gridApi - Optional ag-grid API for checking current text wrapping state
|
|
19
|
+
* @param agGridHeaderParams - ag-grid header or header group params to identify the current column(s)
|
|
20
|
+
* @param options - options to control which text wrapping items to show
|
|
14
21
|
* @returns Menu items and callbacks
|
|
15
22
|
*/
|
|
16
|
-
export const useHeaderMenuTextWrapping = () => {
|
|
23
|
+
export const useHeaderMenuTextWrapping = (agGridHeaderParams, options) => {
|
|
17
24
|
const intl = useIntl();
|
|
18
|
-
const { config } = usePivotTableProps();
|
|
25
|
+
const { config, pushData } = usePivotTableProps();
|
|
19
26
|
const { agGridApi } = useAgGridApi();
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
27
|
+
const getAgGridColumns = useGetAgGridColumns();
|
|
28
|
+
const updateAgGridColumnDefs = useUpdateAgGridColumnDefs();
|
|
29
|
+
// Determine if this is a group header or regular header
|
|
30
|
+
const isGroupHeader = agGridHeaderParams ? isAgGridHeaderGroupParams(agGridHeaderParams) : false;
|
|
31
|
+
// Extract pivot group depth for this header (used for exact depth matching)
|
|
32
|
+
const pivotGroupDepth = useMemo(() => {
|
|
33
|
+
if (!isGroupHeader || !agGridHeaderParams) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return agGridHeaderParams.columnGroup.getColGroupDef()
|
|
37
|
+
?.headerGroupComponentParams?.pivotGroupDepth;
|
|
38
|
+
}, [isGroupHeader, agGridHeaderParams]);
|
|
39
|
+
// Get all column definitions affected by this header (single column or all leaf columns in group)
|
|
40
|
+
const leafColumnDefinitions = useMemo(() => {
|
|
41
|
+
if (!agGridHeaderParams) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
if (isGroupHeader) {
|
|
45
|
+
// Get all leaf columns under this group
|
|
46
|
+
const groupParams = agGridHeaderParams;
|
|
47
|
+
const leafColumns = groupParams.columnGroup.getLeafColumns();
|
|
48
|
+
return leafColumns
|
|
49
|
+
.map((column) => {
|
|
50
|
+
const colDef = column.getColDef();
|
|
51
|
+
return colDef.context?.columnDefinition;
|
|
52
|
+
})
|
|
53
|
+
.filter((def) => def !== undefined);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Regular header - just this column
|
|
57
|
+
const headerParams = agGridHeaderParams;
|
|
58
|
+
const columnDefinition = headerParams.column.getColDef()?.context?.columnDefinition;
|
|
59
|
+
return columnDefinition ? [columnDefinition] : [];
|
|
60
|
+
}
|
|
61
|
+
}, [agGridHeaderParams, isGroupHeader]);
|
|
62
|
+
// Calculate effective wrapping state for this specific header
|
|
63
|
+
const { effectiveWrapText, effectiveWrapHeaderText } = useMemo(() => {
|
|
64
|
+
return calculateEffectiveWrapping(leafColumnDefinitions, isGroupHeader, pivotGroupDepth, config.textWrapping);
|
|
65
|
+
}, [leafColumnDefinitions, isGroupHeader, pivotGroupDepth, config.textWrapping]);
|
|
66
|
+
const textWrappingItems = constructTextWrappingMenuItems({ textWrapping: { wrapText: effectiveWrapText, wrapHeaderText: effectiveWrapHeaderText } }, intl, options);
|
|
67
|
+
const handleTextWrappingItemClick = useCallback((item) => {
|
|
68
|
+
if (leafColumnDefinitions.length === 0 || !agGridApi) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
25
71
|
const effectiveItem = textWrappingItems.find((i) => i.id === item.id);
|
|
26
72
|
if (!effectiveItem) {
|
|
27
73
|
return;
|
|
28
74
|
}
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
75
|
+
// Calculate new wrapping values
|
|
76
|
+
const { newWrapText, newWrapHeaderText } = calculateNewWrappingValues(effectiveItem, effectiveWrapText, effectiveWrapHeaderText);
|
|
77
|
+
// Create overrides for affected columns
|
|
78
|
+
const newOverrides = createOverridesForColumns(leafColumnDefinitions, isGroupHeader, pivotGroupDepth, newWrapText, newWrapHeaderText);
|
|
79
|
+
// Merge and clean up overrides
|
|
80
|
+
const updatedOverrides = mergeAndCleanupOverrides(config.textWrapping?.columnOverrides ?? [], newOverrides, newWrapText, newWrapHeaderText, config.textWrapping?.wrapText, config.textWrapping?.wrapHeaderText);
|
|
81
|
+
// Apply to AG-Grid
|
|
82
|
+
applyTextWrappingToAgGrid(agGridApi, getAgGridColumns, updateAgGridColumnDefs, updatedOverrides, config.textWrapping?.wrapText, config.textWrapping?.wrapHeaderText);
|
|
83
|
+
// Persist to insight
|
|
84
|
+
persistTextWrappingToInsight(pushData, config.textWrapping, updatedOverrides);
|
|
85
|
+
}, [
|
|
86
|
+
leafColumnDefinitions,
|
|
87
|
+
agGridApi,
|
|
88
|
+
textWrappingItems,
|
|
89
|
+
effectiveWrapText,
|
|
90
|
+
effectiveWrapHeaderText,
|
|
91
|
+
config.textWrapping,
|
|
92
|
+
getAgGridColumns,
|
|
93
|
+
updateAgGridColumnDefs,
|
|
94
|
+
pushData,
|
|
95
|
+
isGroupHeader,
|
|
96
|
+
pivotGroupDepth,
|
|
97
|
+
]);
|
|
38
98
|
return {
|
|
39
99
|
textWrappingItems,
|
|
40
100
|
handleTextWrappingItemClick,
|
|
41
101
|
};
|
|
42
102
|
};
|
|
103
|
+
// ============================================================================
|
|
104
|
+
// Helper Functions (Pure, Immutable)
|
|
105
|
+
// ============================================================================
|
|
106
|
+
/**
|
|
107
|
+
* Helper: Filter attribute and total scopes from column scopes
|
|
108
|
+
* @returns New array of filtered scopes
|
|
109
|
+
*/
|
|
110
|
+
function getAttributeScopes(columnDef) {
|
|
111
|
+
if (isAttributeColumnDefinition(columnDef) || !("columnScope" in columnDef)) {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
return columnDef.columnScope.filter((s) => isAttributeScope(s) || isAttributeTotalScope(s));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Helper: Extract element value from a scope at a specific depth
|
|
118
|
+
* @returns Element value or null
|
|
119
|
+
*/
|
|
120
|
+
function getElementFromScope(scope) {
|
|
121
|
+
if (isAttributeScope(scope)) {
|
|
122
|
+
return scope.header.attributeHeaderItem.uri ?? null;
|
|
123
|
+
}
|
|
124
|
+
if (isAttributeTotalScope(scope)) {
|
|
125
|
+
return scope.header.totalHeaderItem.type;
|
|
126
|
+
}
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Helper: Check if leaf columns have different elements at a given depth
|
|
131
|
+
* Returns true if they have different elements (attribute-level group)
|
|
132
|
+
*/
|
|
133
|
+
function hasLeavesWithDifferentElements(leafColumnDefinitions, depth) {
|
|
134
|
+
if (leafColumnDefinitions.length <= 1) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
const firstLeaf = leafColumnDefinitions[0];
|
|
138
|
+
const firstScopes = getAttributeScopes(firstLeaf);
|
|
139
|
+
if (firstScopes.length <= depth) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
const firstElement = getElementFromScope(firstScopes[depth]);
|
|
143
|
+
return leafColumnDefinitions.some((def) => {
|
|
144
|
+
const scopes = getAttributeScopes(def);
|
|
145
|
+
if (scopes.length <= depth)
|
|
146
|
+
return false;
|
|
147
|
+
const element = getElementFromScope(scopes[depth]);
|
|
148
|
+
return element !== firstElement;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Helper: Build expected attribute IDs for a pivot group at a specific depth
|
|
153
|
+
* @returns New array of attribute IDs
|
|
154
|
+
*/
|
|
155
|
+
function getExpectedAttributeIds(columnDef, depth) {
|
|
156
|
+
const scopes = getAttributeScopes(columnDef);
|
|
157
|
+
return scopes
|
|
158
|
+
.slice(0, depth + 1)
|
|
159
|
+
.map((s) => {
|
|
160
|
+
if (isAttributeScope(s) || isAttributeTotalScope(s)) {
|
|
161
|
+
return s.descriptor.attributeHeader.localIdentifier;
|
|
162
|
+
}
|
|
163
|
+
return "";
|
|
164
|
+
})
|
|
165
|
+
.filter((id) => id !== "");
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Helper: Build expected element values for a pivot group at a specific depth
|
|
169
|
+
* @returns New array of element values
|
|
170
|
+
*/
|
|
171
|
+
function getExpectedElements(columnDef, depth) {
|
|
172
|
+
const scopes = getAttributeScopes(columnDef);
|
|
173
|
+
return scopes.slice(0, depth + 1).map((s) => getElementFromScope(s));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Helper: Find an exact depth override for a pivot group
|
|
177
|
+
* @returns Matching override or undefined
|
|
178
|
+
*/
|
|
179
|
+
function findExactDepthOverride(columnOverrides, expectedAttributeIds, expectedElements, expectAttributeLevel) {
|
|
180
|
+
return columnOverrides.find((item) => {
|
|
181
|
+
if (item.matchType !== "pivotGroup") {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
const attributeLocators = item.locators.filter(isAttributeColumnLocator);
|
|
185
|
+
// Must have exactly the same number of attributes (not more, not less)
|
|
186
|
+
if (attributeLocators.length !== expectedAttributeIds.length) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
// Check if identifiers match
|
|
190
|
+
const idsMatch = attributeLocators.every((loc, idx) => loc.attributeLocatorItem.attributeIdentifier === expectedAttributeIds[idx]);
|
|
191
|
+
if (!idsMatch) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
// Check element matching based on what we expect
|
|
195
|
+
const hasElements = attributeLocators.some((loc) => loc.attributeLocatorItem.element !== undefined);
|
|
196
|
+
if (expectAttributeLevel) {
|
|
197
|
+
// We expect attribute-level (no elements), locator must also have no elements
|
|
198
|
+
return !hasElements;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// We expect element-specific, check if elements match
|
|
202
|
+
if (!hasElements) {
|
|
203
|
+
return false; // Locator is attribute-level but we expect element-specific
|
|
204
|
+
}
|
|
205
|
+
return attributeLocators.every((loc, idx) => loc.attributeLocatorItem.element === expectedElements[idx]);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Helper: Calculate effective wrapping state for a header
|
|
211
|
+
* @returns Effective wrapText and wrapHeaderText values
|
|
212
|
+
*/
|
|
213
|
+
function calculateEffectiveWrapping(leafColumnDefinitions, isGroupHeader, pivotGroupDepth, textWrapping) {
|
|
214
|
+
const defaultWrapping = {
|
|
215
|
+
effectiveWrapText: textWrapping?.wrapText,
|
|
216
|
+
effectiveWrapHeaderText: textWrapping?.wrapHeaderText,
|
|
217
|
+
};
|
|
218
|
+
if (leafColumnDefinitions.length === 0) {
|
|
219
|
+
return defaultWrapping;
|
|
220
|
+
}
|
|
221
|
+
// For pivot group headers
|
|
222
|
+
if (isGroupHeader && pivotGroupDepth !== undefined) {
|
|
223
|
+
return calculateEffectiveWrappingForPivotGroup(leafColumnDefinitions, pivotGroupDepth, textWrapping, defaultWrapping);
|
|
224
|
+
}
|
|
225
|
+
// For regular headers
|
|
226
|
+
return calculateEffectiveWrappingForRegularHeader(leafColumnDefinitions[0], textWrapping);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Helper: Calculate effective wrapping for pivot group headers
|
|
230
|
+
*/
|
|
231
|
+
function calculateEffectiveWrappingForPivotGroup(leafColumnDefinitions, pivotGroupDepth, textWrapping, defaultWrapping) {
|
|
232
|
+
const columnDef = leafColumnDefinitions[0];
|
|
233
|
+
const scopes = getAttributeScopes(columnDef);
|
|
234
|
+
if (scopes.length === 0) {
|
|
235
|
+
return defaultWrapping;
|
|
236
|
+
}
|
|
237
|
+
const expectedAttributeIds = getExpectedAttributeIds(columnDef, pivotGroupDepth);
|
|
238
|
+
const expectedElements = getExpectedElements(columnDef, pivotGroupDepth);
|
|
239
|
+
const expectAttributeLevel = hasLeavesWithDifferentElements(leafColumnDefinitions, pivotGroupDepth);
|
|
240
|
+
const exactDepthOverride = findExactDepthOverride(textWrapping?.columnOverrides ?? [], expectedAttributeIds, expectedElements, expectAttributeLevel);
|
|
241
|
+
return {
|
|
242
|
+
effectiveWrapText: exactDepthOverride ? exactDepthOverride.wrapText : textWrapping?.wrapText,
|
|
243
|
+
effectiveWrapHeaderText: exactDepthOverride
|
|
244
|
+
? exactDepthOverride.wrapHeaderText
|
|
245
|
+
: textWrapping?.wrapHeaderText,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Helper: Calculate effective wrapping for regular headers
|
|
250
|
+
*/
|
|
251
|
+
function calculateEffectiveWrappingForRegularHeader(columnDef, textWrapping) {
|
|
252
|
+
const override = getColumnTextWrappingItemForColumnDefinition(columnDef, textWrapping?.columnOverrides ?? []);
|
|
253
|
+
return {
|
|
254
|
+
effectiveWrapText: override?.wrapText ?? textWrapping?.wrapText,
|
|
255
|
+
effectiveWrapHeaderText: override?.wrapHeaderText ?? textWrapping?.wrapHeaderText,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Helper: Calculate new wrapping values based on which menu item was clicked
|
|
260
|
+
* @returns New wrapText and wrapHeaderText values
|
|
261
|
+
*/
|
|
262
|
+
function calculateNewWrappingValues(clickedItem, currentWrapText, currentWrapHeaderText) {
|
|
263
|
+
const isHeaderItem = clickedItem.id === "header";
|
|
264
|
+
return {
|
|
265
|
+
newWrapText: isHeaderItem ? currentWrapText : !clickedItem.isActive,
|
|
266
|
+
newWrapHeaderText: isHeaderItem ? !clickedItem.isActive : currentWrapHeaderText,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Helper: Create text wrapping overrides for columns
|
|
271
|
+
* @returns New array of override items
|
|
272
|
+
*/
|
|
273
|
+
function createOverridesForColumns(leafColumnDefinitions, isGroupHeader, pivotGroupDepth, newWrapText, newWrapHeaderText) {
|
|
274
|
+
// For pivot group headers, create a single pivot group override
|
|
275
|
+
if (isGroupHeader && leafColumnDefinitions.length > 0 && pivotGroupDepth !== undefined) {
|
|
276
|
+
return [
|
|
277
|
+
createColumnTextWrappingItemForColumnDefinition(leafColumnDefinitions[0], { wrapText: newWrapText, wrapHeaderText: newWrapHeaderText }, {
|
|
278
|
+
usePivotGroupLocator: true,
|
|
279
|
+
pivotGroupDepth,
|
|
280
|
+
includeElements: !hasLeavesWithDifferentElements(leafColumnDefinitions, pivotGroupDepth),
|
|
281
|
+
}),
|
|
282
|
+
];
|
|
283
|
+
}
|
|
284
|
+
// For regular headers, create individual column overrides
|
|
285
|
+
return leafColumnDefinitions.map((columnDef) => createColumnTextWrappingItemForColumnDefinition(columnDef, {
|
|
286
|
+
wrapText: newWrapText,
|
|
287
|
+
wrapHeaderText: newWrapHeaderText,
|
|
288
|
+
}));
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Helper: Merge new overrides with existing ones and clean up defaults
|
|
292
|
+
* @returns New array of overrides with unnecessary ones removed
|
|
293
|
+
*/
|
|
294
|
+
function mergeAndCleanupOverrides(existingOverrides, newOverrides, newWrapText, newWrapHeaderText, globalWrapText, globalWrapHeaderText) {
|
|
295
|
+
let updatedOverrides = [...existingOverrides];
|
|
296
|
+
// Merge new overrides (replace matching ones, add new ones)
|
|
297
|
+
newOverrides.forEach((newOverride) => {
|
|
298
|
+
const existingIndex = updatedOverrides.findIndex((o) => isColumnTextWrappingItemMatch(o, newOverride));
|
|
299
|
+
if (existingIndex >= 0) {
|
|
300
|
+
updatedOverrides[existingIndex] = newOverride;
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
updatedOverrides.push(newOverride);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
// Remove overrides if both values match the global default (no actual override needed)
|
|
307
|
+
if (newWrapText === globalWrapText && newWrapHeaderText === globalWrapHeaderText) {
|
|
308
|
+
updatedOverrides = updatedOverrides.filter((o) => !newOverrides.some((newO) => isColumnTextWrappingItemMatch(o, newO)));
|
|
309
|
+
}
|
|
310
|
+
return updatedOverrides;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Helper: Apply text wrapping settings to AG-Grid column definitions
|
|
314
|
+
*/
|
|
315
|
+
function applyTextWrappingToAgGrid(agGridApi, getAgGridColumns, updateAgGridColumnDefs, updatedOverrides, globalWrapText, globalWrapHeaderText) {
|
|
316
|
+
const allColumns = getAgGridColumns(agGridApi);
|
|
317
|
+
if (!allColumns) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
const updatedColDefs = allColumns.map((column) => {
|
|
321
|
+
const colDef = column.getColDef();
|
|
322
|
+
const currentWidth = column.getActualWidth();
|
|
323
|
+
const colColumnDefinition = colDef.context?.columnDefinition;
|
|
324
|
+
if (!colColumnDefinition) {
|
|
325
|
+
return colDef;
|
|
326
|
+
}
|
|
327
|
+
// Get effective wrapping values for this column
|
|
328
|
+
const directOverride = getColumnTextWrappingItemForColumnDefinition(colColumnDefinition, updatedOverrides);
|
|
329
|
+
const pivotGroupOverride = getPivotGroupTextWrappingItemForColumnDefinition(colColumnDefinition, updatedOverrides);
|
|
330
|
+
const colWrapText = directOverride?.wrapText ?? pivotGroupOverride?.wrapText ?? globalWrapText;
|
|
331
|
+
const colWrapHeaderText = directOverride?.wrapHeaderText ?? pivotGroupOverride?.wrapHeaderText ?? globalWrapHeaderText;
|
|
332
|
+
return {
|
|
333
|
+
...colDef,
|
|
334
|
+
wrapText: !!colWrapText,
|
|
335
|
+
wrapHeaderText: !!colWrapHeaderText,
|
|
336
|
+
autoHeight: !!colWrapText,
|
|
337
|
+
autoHeaderHeight: !!colWrapHeaderText,
|
|
338
|
+
width: currentWidth,
|
|
339
|
+
};
|
|
340
|
+
});
|
|
341
|
+
updateAgGridColumnDefs(updatedColDefs, agGridApi);
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Helper: Persist text wrapping configuration to insight
|
|
345
|
+
*/
|
|
346
|
+
function persistTextWrappingToInsight(pushData, currentTextWrapping, updatedOverrides) {
|
|
347
|
+
if (!pushData) {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
pushData({
|
|
351
|
+
properties: {
|
|
352
|
+
controls: {
|
|
353
|
+
textWrapping: {
|
|
354
|
+
...currentTextWrapping,
|
|
355
|
+
columnOverrides: updatedOverrides.length > 0 ? updatedOverrides : undefined,
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
});
|
|
360
|
+
}
|
|
43
361
|
//# sourceMappingURL=useHeaderMenuTextWrapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHeaderMenuTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iEAAiE,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,MAAM,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACzD,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAE3D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC,CAAC;IAEtG,MAAM,2BAA2B,GAAG,CAAC,IAA2B,EAAE,EAAE;QAChE,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC;QACnD,MAAM,eAAe,GAAG;YACpB,GAAG,mBAAmB;YACtB,GAAG,CAAC,YAAY;gBACZ,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7C,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;SAC/C,CAAC;QAEF,oBAAoB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO;QACH,iBAAiB;QACjB,2BAA2B;KAC9B,CAAC;AACN,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"useHeaderMenuTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuTextWrapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUpdateTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB;4CAOX,aAAa,WAAW,SAAS,GAAG,IAAI;EAqDjE"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useCallback } from "react";
|
|
3
3
|
import { useUpdateDefaultTextWrapping } from "./useUpdateDefaultTextWrapping.js";
|
|
4
4
|
import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
|
|
5
|
+
import { allowCellWrappingByColumnDefinition } from "../../features/textWrapping/allowCellWrappingByColumnDefinition.js";
|
|
5
6
|
import { useGetAgGridColumns } from "../columns/useGetAgGridColumns.js";
|
|
6
7
|
import { useUpdateAgGridColumnDefs } from "../columns/useUpdateAgGridColumnDefs.js";
|
|
7
8
|
/**
|
|
@@ -36,12 +37,16 @@ export function useUpdateTextWrapping() {
|
|
|
36
37
|
const updatedColDefs = allColumns?.map((column) => {
|
|
37
38
|
const colDef = column.getColDef();
|
|
38
39
|
const currentWidth = column.getActualWidth();
|
|
40
|
+
const columnDefinition = colDef.context?.columnDefinition;
|
|
41
|
+
// Skip wrapText for some columns (performance optimization)
|
|
42
|
+
const allowCellWrapping = columnDefinition && allowCellWrappingByColumnDefinition(columnDefinition);
|
|
43
|
+
const shouldWrapText = wrapText && allowCellWrapping;
|
|
39
44
|
return {
|
|
40
45
|
...colDef,
|
|
41
|
-
wrapText,
|
|
46
|
+
wrapText: shouldWrapText,
|
|
42
47
|
wrapHeaderText,
|
|
43
48
|
// enable/disable auto sizing only together with wrapping to avoid perf issues
|
|
44
|
-
autoHeight:
|
|
49
|
+
autoHeight: shouldWrapText,
|
|
45
50
|
autoHeaderHeight: wrapHeaderText,
|
|
46
51
|
// preserve current width, otherwise ag-grid will recalculate it and use the stale one
|
|
47
52
|
width: currentWidth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"useUpdateTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,mCAAmC,EAAE,MAAM,oEAAoE,CAAC;AAGzH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAC;IACjE,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,MAAM,oBAAoB,GAAG,WAAW,CACpC,CAAC,eAA8B,EAAE,OAAyB,EAAE,EAAE;QAC1D,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC5C,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;YAExD,0FAA0F;YAC1F,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAE1D,4DAA4D;gBAC5D,MAAM,iBAAiB,GACnB,gBAAgB,IAAI,mCAAmC,CAAC,gBAAgB,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,QAAQ,IAAI,iBAAiB,CAAC;gBAErD,OAAO;oBACH,GAAG,MAAM;oBACT,QAAQ,EAAE,cAAc;oBACxB,cAAc;oBACd,8EAA8E;oBAC9E,UAAU,EAAE,cAAc;oBAC1B,gBAAgB,EAAE,cAAc;oBAChC,sFAAsF;oBACtF,KAAK,EAAE,YAAY;iBACtB,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAI,cAAc,EAAE,CAAC;gBACjB,sBAAsB,CAAC,cAAmC,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YAED,iFAAiF;YACjF,yBAAyB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC;gBACL,UAAU,EAAE;oBACR,QAAQ,EAAE;wBACN,YAAY,EAAE,eAAe;qBAChC;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAClF,CAAC;IAEF,OAAO;QACH,oBAAoB;KACvB,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgGridReactProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useAgGridReactProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAgGridReactProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useAgGridReactProps.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,mBAAmB,gBAoDlC"}
|
|
@@ -5,6 +5,8 @@ import { useVirtualColumnAutoResize } from "./resizing/useVirtualColumnAutoResiz
|
|
|
5
5
|
import { useAfterRenderCallback } from "./useAfterRenderCallback.js";
|
|
6
6
|
import { useAgGridApiProps } from "./useAgGridApiProps.js";
|
|
7
7
|
import { useAutoHeight } from "./useAutoHeight.js";
|
|
8
|
+
import { useCellSelectionProps } from "./useCellSelectionProps.js";
|
|
9
|
+
import { useClipboardProps } from "./useClipboardProps.js";
|
|
8
10
|
import { useColumnDefsProps } from "./useColumnDefsProps.js";
|
|
9
11
|
import { useDataLoadingProps } from "./useDataLoadingProps.js";
|
|
10
12
|
import { useHeaderComponents } from "./useHeaderComponents.js";
|
|
@@ -27,6 +29,8 @@ export function useAgGridReactProps() {
|
|
|
27
29
|
const enhanceWithColumnSizing = useColumnSizingProps();
|
|
28
30
|
const enhanceWithSorting = useSortingProps();
|
|
29
31
|
const enhanceWithInteractions = useInteractionProps();
|
|
32
|
+
const enhanceWithCellSelection = useCellSelectionProps();
|
|
33
|
+
const enhanceWithClipboard = useClipboardProps();
|
|
30
34
|
const enhanceWithTextWrapping = useTextWrappingProps();
|
|
31
35
|
const enhanceWithAutoHeight = useAutoHeight();
|
|
32
36
|
const enhanceWithTheme = useThemeProps();
|
|
@@ -42,6 +46,8 @@ export function useAgGridReactProps() {
|
|
|
42
46
|
enhanceWithColumnSizing,
|
|
43
47
|
enhanceWithSorting,
|
|
44
48
|
enhanceWithInteractions,
|
|
49
|
+
enhanceWithCellSelection,
|
|
50
|
+
enhanceWithClipboard,
|
|
45
51
|
enhanceWithTextWrapping,
|
|
46
52
|
enhanceWithAutoHeight,
|
|
47
53
|
enhanceWithTheme,
|
|
@@ -57,6 +63,8 @@ export function useAgGridReactProps() {
|
|
|
57
63
|
enhanceWithColumnSizing,
|
|
58
64
|
enhanceWithSorting,
|
|
59
65
|
enhanceWithInteractions,
|
|
66
|
+
enhanceWithCellSelection,
|
|
67
|
+
enhanceWithClipboard,
|
|
60
68
|
enhanceWithTextWrapping,
|
|
61
69
|
enhanceWithAutoHeight,
|
|
62
70
|
enhanceWithTheme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgGridReactProps.js","sourceRoot":"","sources":["../../../src/next/hooks/useAgGridReactProps.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IAC/B,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,6BAA6B,GAAG,mBAAmB,EAAE,CAAC;IAC5D,MAAM,qBAAqB,GAAG,kBAAkB,EAAE,CAAC;IACnD,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;IAC/C,MAAM,uBAAuB,GAAG,oBAAoB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,eAAe,EAAE,CAAC;IAC7C,MAAM,uBAAuB,GAAG,mBAAmB,EAAE,CAAC;IACtD,MAAM,uBAAuB,GAAG,oBAAoB,EAAE,CAAC;IACvD,MAAM,qBAAqB,GAAG,aAAa,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACzC,MAAM,2BAA2B,GAAG,mBAAmB,EAAE,CAAC;IAC1D,MAAM,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;IACxD,MAAM,kCAAkC,GAAG,0BAA0B,EAAE,CAAC;IAExE,OAAO,OAAO,CAAc,GAAG,EAAE;QAC7B,OAAO;YACH,oBAAoB;YACpB,6BAA6B;YAC7B,qBAAqB;YACrB,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,uBAAuB;YACvB,uBAAuB;YACvB,qBAAqB;YACrB,gBAAgB;YAChB,2BAA2B;YAC3B,sBAAsB;YACtB,kCAAkC;SACrC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1D,CAAC,EAAE;QACC,oBAAoB;QACpB,6BAA6B;QAC7B,qBAAqB;QACrB,mBAAmB;QACnB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;QACvB,uBAAuB;QACvB,qBAAqB;QACrB,gBAAgB;QAChB,2BAA2B;QAC3B,sBAAsB;QACtB,kCAAkC;KACrC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"useAgGridReactProps.js","sourceRoot":"","sources":["../../../src/next/hooks/useAgGridReactProps.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IAC/B,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,6BAA6B,GAAG,mBAAmB,EAAE,CAAC;IAC5D,MAAM,qBAAqB,GAAG,kBAAkB,EAAE,CAAC;IACnD,MAAM,mBAAmB,GAAG,gBAAgB,EAAE,CAAC;IAC/C,MAAM,uBAAuB,GAAG,oBAAoB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,eAAe,EAAE,CAAC;IAC7C,MAAM,uBAAuB,GAAG,mBAAmB,EAAE,CAAC;IACtD,MAAM,wBAAwB,GAAG,qBAAqB,EAAE,CAAC;IACzD,MAAM,oBAAoB,GAAG,iBAAiB,EAAE,CAAC;IACjD,MAAM,uBAAuB,GAAG,oBAAoB,EAAE,CAAC;IACvD,MAAM,qBAAqB,GAAG,aAAa,EAAE,CAAC;IAC9C,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACzC,MAAM,2BAA2B,GAAG,mBAAmB,EAAE,CAAC;IAC1D,MAAM,sBAAsB,GAAG,sBAAsB,EAAE,CAAC;IACxD,MAAM,kCAAkC,GAAG,0BAA0B,EAAE,CAAC;IAExE,OAAO,OAAO,CAAc,GAAG,EAAE;QAC7B,OAAO;YACH,oBAAoB;YACpB,6BAA6B;YAC7B,qBAAqB;YACrB,mBAAmB;YACnB,uBAAuB;YACvB,kBAAkB;YAClB,uBAAuB;YACvB,wBAAwB;YACxB,oBAAoB;YACpB,uBAAuB;YACvB,qBAAqB;YACrB,gBAAgB;YAChB,2BAA2B;YAC3B,sBAAsB;YACtB,kCAAkC;SACrC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1D,CAAC,EAAE;QACC,oBAAoB;QACpB,6BAA6B;QAC7B,qBAAqB;QACrB,mBAAmB;QACnB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;QACvB,wBAAwB;QACxB,oBAAoB;QACpB,uBAAuB;QACvB,qBAAqB;QACrB,gBAAgB;QAChB,2BAA2B;QAC3B,sBAAsB;QACtB,kCAAkC;KACrC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AgGridProps } from "../types/agGrid.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns ag-grid props with cell selection configuration applied.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function useCellSelectionProps(): (agGridReactProps: AgGridProps) => AgGridProps;
|
|
8
|
+
//# sourceMappingURL=useCellSelectionProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCellSelectionProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useCellSelectionProps.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,CAAC,gBAAgB,EAAE,WAAW,KAAK,WAAW,CAkBtF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { usePivotTableProps } from "../context/PivotTablePropsContext.js";
|
|
4
|
+
/**
|
|
5
|
+
* Returns ag-grid props with cell selection configuration applied.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export function useCellSelectionProps() {
|
|
10
|
+
const { config } = usePivotTableProps();
|
|
11
|
+
const enableCellSelection = config.enableCellSelection ?? true;
|
|
12
|
+
return useCallback((agGridReactProps) => {
|
|
13
|
+
if (enableCellSelection) {
|
|
14
|
+
return agGridReactProps;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
...agGridReactProps,
|
|
18
|
+
cellSelection: false,
|
|
19
|
+
suppressCellFocus: true,
|
|
20
|
+
};
|
|
21
|
+
}, [enableCellSelection]);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useCellSelectionProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCellSelectionProps.js","sourceRoot":"","sources":["../../../src/next/hooks/useCellSelectionProps.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAE/D,OAAO,WAAW,CACd,CAAC,gBAA6B,EAAE,EAAE;QAC9B,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO,gBAAgB,CAAC;QAC5B,CAAC;QAED,OAAO;YACH,GAAG,gBAAgB;YACnB,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,IAAI;SAC1B,CAAC;IACN,CAAC,EACD,CAAC,mBAAmB,CAAC,CACxB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClearCellSelection.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useClearCellSelection.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,IAAI,CAMlD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useAgGridApi } from "../context/AgGridApiContext.js";
|
|
4
|
+
/**
|
|
5
|
+
* Hook that provides a function to clear cell selection in the pivot table.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export function useClearCellSelection() {
|
|
10
|
+
const { agGridApi } = useAgGridApi();
|
|
11
|
+
return useCallback(() => {
|
|
12
|
+
agGridApi?.clearCellSelection();
|
|
13
|
+
}, [agGridApi]);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useClearCellSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClearCellSelection.js","sourceRoot":"","sources":["../../../src/next/hooks/useClearCellSelection.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IAErC,OAAO,WAAW,CAAC,GAAG,EAAE;QACpB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IACpC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AgGridProps } from "../types/agGrid.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns ag-grid props with clipboard processing applied.
|
|
4
|
+
*
|
|
5
|
+
* This hook intercepts the copy operation (Cmd+C / Ctrl+C) to ensure empty values
|
|
6
|
+
* are copied with their display text instead of as empty strings:
|
|
7
|
+
* - Empty attribute values are copied as "(empty value)" or localized equivalent
|
|
8
|
+
* - Empty metric values are copied intentionally as empty
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function useClipboardProps(): (agGridReactProps: AgGridProps) => AgGridProps;
|
|
13
|
+
//# sourceMappingURL=useClipboardProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClipboardProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useClipboardProps.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,CAAC,gBAAgB,EAAE,WAAW,KAAK,WAAW,CA4ClF"}
|