@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,7 +1,8 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
2
|
import { assertNever } from "@gooddata/sdk-model";
|
|
3
3
|
import { UnexpectedSdkError } from "@gooddata/sdk-ui";
|
|
4
|
-
import { newAttributeColumnLocator, newMeasureColumnLocator, newTotalColumnLocator,
|
|
4
|
+
import { newAttributeColumnLocator, newMeasureColumnLocator, newTotalColumnLocator, } from "../../types/locators.js";
|
|
5
|
+
import { newWidthForAttributeColumn, setNewWidthForSelectedColumns, } from "../../types/resizing.js";
|
|
5
6
|
/**
|
|
6
7
|
* Creates {@link ColumnWidthItem} with specified width for the provided {@link ITableColumnDefinition}.
|
|
7
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createColumnWidthItemForColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/resizing/createColumnWidthItemForColumnDefinition.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,
|
|
1
|
+
{"version":3,"file":"createColumnWidthItemForColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/resizing/createColumnWidthItemForColumnDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ITableColumnDefinition } from "@gooddata/sdk-ui";
|
|
2
|
+
/**
|
|
3
|
+
* Determines if cell text wrapping should be allowed for a given column.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This function implements a performance optimization by disabling cell text wrapping for
|
|
7
|
+
* numeric columns. Numeric values in columns typically don't benefit from
|
|
8
|
+
* text wrapping the same way attribute text values do.
|
|
9
|
+
*
|
|
10
|
+
* Cell wrapping is ALLOWED (returns true) for:
|
|
11
|
+
* - Attribute columns - contain text values that may benefit from wrapping
|
|
12
|
+
* - Measure group header columns - contain measure names (text)
|
|
13
|
+
*
|
|
14
|
+
* Cell wrapping is DISABLED (returns false) for:
|
|
15
|
+
* - Value columns - contain numeric measure values
|
|
16
|
+
* - Subtotal columns - contain numeric subtotal values
|
|
17
|
+
* - Grand total columns - contain numeric grand total values
|
|
18
|
+
* - Measure group value columns - contain numeric values
|
|
19
|
+
*
|
|
20
|
+
* Note: This only affects cell wrapping (wrapText), not header wrapping (wrapHeaderText).
|
|
21
|
+
* Headers can still wrap even when cell wrapping is disabled.
|
|
22
|
+
*
|
|
23
|
+
* @param columnDefinition - The column definition to check
|
|
24
|
+
* @returns true if cell wrapping should be allowed, false if it should be disabled for performance
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare function allowCellWrappingByColumnDefinition(columnDefinition: ITableColumnDefinition): boolean;
|
|
29
|
+
//# sourceMappingURL=allowCellWrappingByColumnDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowCellWrappingByColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/allowCellWrappingByColumnDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mCAAmC,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,OAAO,CAiBrG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* Determines if cell text wrapping should be allowed for a given column.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* This function implements a performance optimization by disabling cell text wrapping for
|
|
7
|
+
* numeric columns. Numeric values in columns typically don't benefit from
|
|
8
|
+
* text wrapping the same way attribute text values do.
|
|
9
|
+
*
|
|
10
|
+
* Cell wrapping is ALLOWED (returns true) for:
|
|
11
|
+
* - Attribute columns - contain text values that may benefit from wrapping
|
|
12
|
+
* - Measure group header columns - contain measure names (text)
|
|
13
|
+
*
|
|
14
|
+
* Cell wrapping is DISABLED (returns false) for:
|
|
15
|
+
* - Value columns - contain numeric measure values
|
|
16
|
+
* - Subtotal columns - contain numeric subtotal values
|
|
17
|
+
* - Grand total columns - contain numeric grand total values
|
|
18
|
+
* - Measure group value columns - contain numeric values
|
|
19
|
+
*
|
|
20
|
+
* Note: This only affects cell wrapping (wrapText), not header wrapping (wrapHeaderText).
|
|
21
|
+
* Headers can still wrap even when cell wrapping is disabled.
|
|
22
|
+
*
|
|
23
|
+
* @param columnDefinition - The column definition to check
|
|
24
|
+
* @returns true if cell wrapping should be allowed, false if it should be disabled for performance
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export function allowCellWrappingByColumnDefinition(columnDefinition) {
|
|
29
|
+
switch (columnDefinition.type) {
|
|
30
|
+
// text values that need wrapping
|
|
31
|
+
case "attribute":
|
|
32
|
+
case "measureGroupHeader":
|
|
33
|
+
return true;
|
|
34
|
+
// values that should not be wrapped
|
|
35
|
+
case "value":
|
|
36
|
+
case "subtotal":
|
|
37
|
+
case "grandTotal":
|
|
38
|
+
case "measureGroupValue":
|
|
39
|
+
return false;
|
|
40
|
+
default:
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=allowCellWrappingByColumnDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowCellWrappingByColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/allowCellWrappingByColumnDefinition.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,mCAAmC,CAAC,gBAAwC;IACxF,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC5B,iCAAiC;QACjC,KAAK,WAAW,CAAC;QACjB,KAAK,oBAAoB;YACrB,OAAO,IAAI,CAAC;QAEhB,oCAAoC;QACpC,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB;YACpB,OAAO,KAAK,CAAC;QAEjB;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC"}
|
|
@@ -3,6 +3,15 @@ import { ITextWrapping } from "../../types/textWrapping.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Applies text wrapping to col def.
|
|
5
5
|
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* This function applies text wrapping settings to a column definition, respecting hierarchy:
|
|
8
|
+
* 1. Per-column overrides (most specific) - apply to specific columns
|
|
9
|
+
* 2. Pivot group overrides (medium specific) - apply to pivot group headers and cascade to leaf columns
|
|
10
|
+
* 3. Global defaults (least specific) - apply to all columns
|
|
11
|
+
*
|
|
12
|
+
* The hierarchy allows pivot group wrapping to affect descendant leaf columns, but individual
|
|
13
|
+
* leaf columns can still override this with their own settings.
|
|
14
|
+
*
|
|
6
15
|
* @internal
|
|
7
16
|
*/
|
|
8
17
|
export declare const applyTextWrappingToColDef: (textWrapping: ITextWrapping) => (colDef: AgGridColumnDef) => AgGridColumnDef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTextWrappingToColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToColDef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyTextWrappingToColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToColDef.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,yBAAyB,GACjC,cAAc,aAAa,MAC3B,QAAQ,eAAe,KAAG,eAuC1B,CAAC"}
|
|
@@ -1,19 +1,45 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { allowCellWrappingByColumnDefinition } from "./allowCellWrappingByColumnDefinition.js";
|
|
3
|
+
import { getColumnTextWrappingItemForColumnDefinition } from "./getColumnTextWrappingItemForColumnDefinition.js";
|
|
4
|
+
import { getPivotGroupTextWrappingItemForColumnDefinition } from "./getPivotGroupTextWrappingItemForColumnDefinition.js";
|
|
1
5
|
/**
|
|
2
6
|
* Applies text wrapping to col def.
|
|
3
7
|
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* This function applies text wrapping settings to a column definition, respecting hierarchy:
|
|
10
|
+
* 1. Per-column overrides (most specific) - apply to specific columns
|
|
11
|
+
* 2. Pivot group overrides (medium specific) - apply to pivot group headers and cascade to leaf columns
|
|
12
|
+
* 3. Global defaults (least specific) - apply to all columns
|
|
13
|
+
*
|
|
14
|
+
* The hierarchy allows pivot group wrapping to affect descendant leaf columns, but individual
|
|
15
|
+
* leaf columns can still override this with their own settings.
|
|
16
|
+
*
|
|
4
17
|
* @internal
|
|
5
18
|
*/
|
|
6
19
|
export const applyTextWrappingToColDef = (textWrapping) => (colDef) => {
|
|
7
|
-
const {
|
|
8
|
-
|
|
20
|
+
const { columnDefinition } = colDef.context;
|
|
21
|
+
if (!columnDefinition) {
|
|
22
|
+
console.error("Column definition is missing in colDef context", { colDef });
|
|
23
|
+
return colDef;
|
|
24
|
+
}
|
|
25
|
+
// Check for direct column override (highest priority)
|
|
26
|
+
const directOverride = getColumnTextWrappingItemForColumnDefinition(columnDefinition, textWrapping.columnOverrides ?? []);
|
|
27
|
+
// Check for pivot group override (medium priority)
|
|
28
|
+
const pivotGroupOverride = getPivotGroupTextWrappingItemForColumnDefinition(columnDefinition, textWrapping.columnOverrides ?? []);
|
|
29
|
+
// Apply hierarchy: direct override > pivot group override > global default
|
|
30
|
+
const wrapText = directOverride?.wrapText ?? pivotGroupOverride?.wrapText ?? textWrapping.wrapText;
|
|
31
|
+
const wrapHeaderText = directOverride?.wrapHeaderText ??
|
|
32
|
+
pivotGroupOverride?.wrapHeaderText ??
|
|
33
|
+
textWrapping.wrapHeaderText;
|
|
34
|
+
// Skip wrapText for some columns (performance optimization)
|
|
35
|
+
const allowCellWrapping = allowCellWrappingByColumnDefinition(columnDefinition);
|
|
36
|
+
const shouldWrapText = !!wrapText && allowCellWrapping;
|
|
37
|
+
return {
|
|
9
38
|
...colDef,
|
|
39
|
+
wrapText: shouldWrapText,
|
|
40
|
+
wrapHeaderText: !!wrapHeaderText,
|
|
41
|
+
autoHeight: shouldWrapText,
|
|
42
|
+
autoHeaderHeight: !!wrapHeaderText,
|
|
10
43
|
};
|
|
11
|
-
if (wrapHeaderText) {
|
|
12
|
-
updatedColDef.wrapHeaderText = true;
|
|
13
|
-
}
|
|
14
|
-
if (wrapText) {
|
|
15
|
-
updatedColDef.wrapText = true;
|
|
16
|
-
}
|
|
17
|
-
return updatedColDef;
|
|
18
44
|
};
|
|
19
45
|
//# sourceMappingURL=applyTextWrappingToColDef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyTextWrappingToColDef.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToColDef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applyTextWrappingToColDef.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,gDAAgD,EAAE,MAAM,uDAAuD,CAAC;AAIzH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAClC,CAAC,YAA2B,EAAE,EAAE,CAChC,CAAC,MAAuB,EAAmB,EAAE;IACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAE5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,sDAAsD;IACtD,MAAM,cAAc,GAAG,4CAA4C,CAC/D,gBAAgB,EAChB,YAAY,CAAC,eAAe,IAAI,EAAE,CACrC,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,gDAAgD,CACvE,gBAAgB,EAChB,YAAY,CAAC,eAAe,IAAI,EAAE,CACrC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,IAAI,kBAAkB,EAAE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC;IAEnG,MAAM,cAAc,GAChB,cAAc,EAAE,cAAc;QAC9B,kBAAkB,EAAE,cAAc;QAClC,YAAY,CAAC,cAAc,CAAC;IAEhC,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,mCAAmC,CAAC,gBAAgB,CAAC,CAAC;IAChF,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IAEvD,OAAO;QACH,GAAG,MAAM;QACT,QAAQ,EAAE,cAAc;QACxB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,UAAU,EAAE,cAAc;QAC1B,gBAAgB,EAAE,CAAC,CAAC,cAAc;KACrC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AgGridColumnGroupDef } from "../../types/agGrid.js";
|
|
2
|
+
import { ITextWrapping } from "../../types/textWrapping.js";
|
|
3
|
+
/**
|
|
4
|
+
* Applies text wrapping to pivot group header definition.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* This function applies text wrapping settings to pivot group headers.
|
|
8
|
+
* It checks if there's a pivot group locator that matches the column definition
|
|
9
|
+
* associated with this group header.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function applyTextWrappingToGroupDef(groupDef: AgGridColumnGroupDef, textWrapping: ITextWrapping): AgGridColumnGroupDef;
|
|
14
|
+
//# sourceMappingURL=applyTextWrappingToGroupDef.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyTextWrappingToGroupDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToGroupDef.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,oBAAoB,EAC9B,YAAY,EAAE,aAAa,GAC5B,oBAAoB,CAqBtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { getPivotGroupTextWrappingItemForColumnDefinition } from "./getPivotGroupTextWrappingItemForColumnDefinition.js";
|
|
3
|
+
/**
|
|
4
|
+
* Applies text wrapping to pivot group header definition.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* This function applies text wrapping settings to pivot group headers.
|
|
8
|
+
* It checks if there's a pivot group locator that matches the column definition
|
|
9
|
+
* associated with this group header.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export function applyTextWrappingToGroupDef(groupDef, textWrapping) {
|
|
14
|
+
const { columnDefinition } = groupDef.context;
|
|
15
|
+
if (!columnDefinition) {
|
|
16
|
+
return groupDef;
|
|
17
|
+
}
|
|
18
|
+
// Check for pivot group override
|
|
19
|
+
const pivotGroupOverride = getPivotGroupTextWrappingItemForColumnDefinition(columnDefinition, textWrapping.columnOverrides ?? []);
|
|
20
|
+
// Apply pivot group override or global default
|
|
21
|
+
const wrapHeaderText = pivotGroupOverride?.wrapHeaderText ?? textWrapping.wrapHeaderText;
|
|
22
|
+
return {
|
|
23
|
+
...groupDef,
|
|
24
|
+
wrapHeaderText: !!wrapHeaderText,
|
|
25
|
+
autoHeaderHeight: !!wrapHeaderText,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=applyTextWrappingToGroupDef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyTextWrappingToGroupDef.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/applyTextWrappingToGroupDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,gDAAgD,EAAE,MAAM,uDAAuD,CAAC;AAIzH;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CACvC,QAA8B,EAC9B,YAA2B;IAE3B,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAE9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,MAAM,kBAAkB,GAAG,gDAAgD,CACvE,gBAAgB,EAChB,YAAY,CAAC,eAAe,IAAI,EAAE,CACrC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,cAAc,GAAG,kBAAkB,EAAE,cAAc,IAAI,YAAY,CAAC,cAAc,CAAC;IAEzF,OAAO;QACH,GAAG,QAAQ;QACX,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,gBAAgB,EAAE,CAAC,CAAC,cAAc;KACrC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ITableColumnDefinition } from "@gooddata/sdk-ui";
|
|
2
|
+
import { IColumnTextWrappingItem } from "../../types/textWrapping.js";
|
|
3
|
+
/**
|
|
4
|
+
* Creates {@link IColumnTextWrappingItem} with specified text wrapping settings for the provided {@link ITableColumnDefinition}.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* For pivot table columns with attribute scopes, this can optionally create a pivot group locator
|
|
8
|
+
* instead of individual column locators. Set `usePivotGroupLocator` to true to target the entire
|
|
9
|
+
* pivot group hierarchy rather than a specific leaf column.
|
|
10
|
+
*
|
|
11
|
+
* @param columnDefinition - The column definition to create a text wrapping item for
|
|
12
|
+
* @param settings - Text wrapping settings (wrapText, wrapHeaderText)
|
|
13
|
+
* @param options - Optional configuration with following fields:
|
|
14
|
+
* options.usePivotGroupLocator - If true, creates a pivot group locator for columns with attribute scopes
|
|
15
|
+
* options.pivotGroupDepth - The depth of the pivot group (0 = topmost). Used to create locators specific to that depth level.
|
|
16
|
+
* options.includeElements - If false, creates locator without element values (matches any element at that attribute level)
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function createColumnTextWrappingItemForColumnDefinition(columnDefinition: ITableColumnDefinition, settings: {
|
|
21
|
+
wrapText?: boolean;
|
|
22
|
+
wrapHeaderText?: boolean;
|
|
23
|
+
}, options?: {
|
|
24
|
+
usePivotGroupLocator?: boolean;
|
|
25
|
+
pivotGroupDepth?: number;
|
|
26
|
+
includeElements?: boolean;
|
|
27
|
+
}): IColumnTextWrappingItem;
|
|
28
|
+
//# sourceMappingURL=createColumnTextWrappingItemForColumnDefinition.d.ts.map
|
package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createColumnTextWrappingItemForColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAO9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+CAA+C,CAC3D,gBAAgB,EAAE,sBAAsB,EACxC,QAAQ,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAClG,uBAAuB,CAiGzB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { assertNever } from "@gooddata/sdk-model";
|
|
3
|
+
import { UnexpectedSdkError } from "@gooddata/sdk-ui";
|
|
4
|
+
import { newAttributeColumnLocator, newMeasureColumnLocator, newTotalColumnLocator, } from "../../types/locators.js";
|
|
5
|
+
/**
|
|
6
|
+
* Creates {@link IColumnTextWrappingItem} with specified text wrapping settings for the provided {@link ITableColumnDefinition}.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* For pivot table columns with attribute scopes, this can optionally create a pivot group locator
|
|
10
|
+
* instead of individual column locators. Set `usePivotGroupLocator` to true to target the entire
|
|
11
|
+
* pivot group hierarchy rather than a specific leaf column.
|
|
12
|
+
*
|
|
13
|
+
* @param columnDefinition - The column definition to create a text wrapping item for
|
|
14
|
+
* @param settings - Text wrapping settings (wrapText, wrapHeaderText)
|
|
15
|
+
* @param options - Optional configuration with following fields:
|
|
16
|
+
* options.usePivotGroupLocator - If true, creates a pivot group locator for columns with attribute scopes
|
|
17
|
+
* options.pivotGroupDepth - The depth of the pivot group (0 = topmost). Used to create locators specific to that depth level.
|
|
18
|
+
* options.includeElements - If false, creates locator without element values (matches any element at that attribute level)
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function createColumnTextWrappingItemForColumnDefinition(columnDefinition, settings, options) {
|
|
23
|
+
const { wrapText, wrapHeaderText } = settings;
|
|
24
|
+
switch (columnDefinition.type) {
|
|
25
|
+
case "attribute": {
|
|
26
|
+
return {
|
|
27
|
+
locators: [
|
|
28
|
+
newAttributeColumnLocator(columnDefinition.attributeDescriptor.attributeHeader.localIdentifier),
|
|
29
|
+
],
|
|
30
|
+
wrapText,
|
|
31
|
+
wrapHeaderText,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
case "value":
|
|
35
|
+
case "subtotal":
|
|
36
|
+
case "grandTotal": {
|
|
37
|
+
const measureScopes = columnDefinition.columnScope.filter((s) => s.type === "measureScope" || s.type === "measureTotalScope");
|
|
38
|
+
const attributeAndTotalScopes = columnDefinition.columnScope.filter((s) => s.type === "attributeScope" || s.type === "attributeTotalScope");
|
|
39
|
+
// If usePivotGroupLocator is true and we have attribute scopes, create group locators
|
|
40
|
+
if (options?.usePivotGroupLocator && attributeAndTotalScopes.length > 0) {
|
|
41
|
+
// Use pivotGroupDepth to determine which attributes belong to THIS pivot group level
|
|
42
|
+
// pivotGroupDepth=0 means topmost level (first attribute), depth=1 means second level, etc.
|
|
43
|
+
const depth = options.pivotGroupDepth ?? attributeAndTotalScopes.length - 1;
|
|
44
|
+
const scopesForThisLevel = attributeAndTotalScopes.slice(0, depth + 1);
|
|
45
|
+
// Only include element values if explicitly requested (default is true for backward compatibility)
|
|
46
|
+
const includeElements = options.includeElements !== false;
|
|
47
|
+
// Create attribute locators for each level in the group
|
|
48
|
+
const locators = scopesForThisLevel.map((s) => {
|
|
49
|
+
const attributeId = s.descriptor.attributeHeader.localIdentifier;
|
|
50
|
+
const element = includeElements
|
|
51
|
+
? s.type === "attributeScope"
|
|
52
|
+
? (s.header.attributeHeaderItem.uri ?? undefined)
|
|
53
|
+
: s.header.totalHeaderItem.type
|
|
54
|
+
: undefined;
|
|
55
|
+
return newAttributeColumnLocator(attributeId, element);
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
locators,
|
|
59
|
+
wrapText,
|
|
60
|
+
wrapHeaderText,
|
|
61
|
+
matchType: "pivotGroup", // Pivot group matching
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Otherwise, create individual column locators (default behavior)
|
|
65
|
+
const measureIds = measureScopes.map((s) => s.descriptor.measureHeaderItem.localIdentifier);
|
|
66
|
+
const attributeAndTotalLocators = attributeAndTotalScopes.map((s) => {
|
|
67
|
+
if (s.type === "attributeScope") {
|
|
68
|
+
return newAttributeColumnLocator(s.descriptor.attributeHeader.localIdentifier, s.header.attributeHeaderItem.uri ?? undefined);
|
|
69
|
+
}
|
|
70
|
+
return newTotalColumnLocator(s.descriptor.attributeHeader.localIdentifier, s.header.totalHeaderItem.type);
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
locators: [
|
|
74
|
+
...attributeAndTotalLocators,
|
|
75
|
+
...measureIds.map((localId) => newMeasureColumnLocator(localId)),
|
|
76
|
+
],
|
|
77
|
+
wrapText,
|
|
78
|
+
wrapHeaderText,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
case "measureGroupHeader":
|
|
82
|
+
case "measureGroupValue": {
|
|
83
|
+
const measureIds = columnDefinition.measureGroupDescriptor.measureGroupHeader.items.map((item) => item.measureHeaderItem.localIdentifier);
|
|
84
|
+
return {
|
|
85
|
+
locators: measureIds.map((localId) => newMeasureColumnLocator(localId)),
|
|
86
|
+
wrapText,
|
|
87
|
+
wrapHeaderText,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
default: {
|
|
91
|
+
assertNever(columnDefinition);
|
|
92
|
+
throw new UnexpectedSdkError(`Unknown column definition: ${JSON.stringify(columnDefinition)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=createColumnTextWrappingItemForColumnDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createColumnTextWrappingItemForColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ITableColumnDefinition } from "@gooddata/sdk-ui";
|
|
2
|
+
import { IColumnTextWrappingItem } from "../../types/textWrapping.js";
|
|
3
|
+
/**
|
|
4
|
+
* Returns {@link IColumnTextWrappingItem} for the provided {@link ITableColumnDefinition} if match is found, undefined otherwise.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function getColumnTextWrappingItemForColumnDefinition(columnDefinition: ITableColumnDefinition, columnTextWrapping: IColumnTextWrappingItem[]): IColumnTextWrappingItem | undefined;
|
|
9
|
+
//# sourceMappingURL=getColumnTextWrappingItemForColumnDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getColumnTextWrappingItemForColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,4CAA4C,CACxD,gBAAgB,EAAE,sBAAsB,EACxC,kBAAkB,EAAE,uBAAuB,EAAE,GAC9C,uBAAuB,GAAG,SAAS,CAKrC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { createColumnTextWrappingItemForColumnDefinition } from "./createColumnTextWrappingItemForColumnDefinition.js";
|
|
3
|
+
import { isColumnTextWrappingItemMatch } from "./isColumnTextWrappingItemMatch.js";
|
|
4
|
+
/**
|
|
5
|
+
* Returns {@link IColumnTextWrappingItem} for the provided {@link ITableColumnDefinition} if match is found, undefined otherwise.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export function getColumnTextWrappingItemForColumnDefinition(columnDefinition, columnTextWrapping) {
|
|
10
|
+
// Settings are not compared for matching, we only need to find the item
|
|
11
|
+
const columnTextWrappingItem = createColumnTextWrappingItemForColumnDefinition(columnDefinition, {});
|
|
12
|
+
return columnTextWrapping?.find((c) => isColumnTextWrappingItemMatch(c, columnTextWrappingItem));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=getColumnTextWrappingItemForColumnDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getColumnTextWrappingItemForColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAE,+CAA+C,EAAE,MAAM,sDAAsD,CAAC;AACvH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAGnF;;;;GAIG;AACH,MAAM,UAAU,4CAA4C,CACxD,gBAAwC,EACxC,kBAA6C;IAE7C,wEAAwE;IACxE,MAAM,sBAAsB,GAAG,+CAA+C,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAErG,OAAO,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ITableColumnDefinition } from "@gooddata/sdk-ui";
|
|
2
|
+
import { IColumnTextWrappingItem } from "../../types/textWrapping.js";
|
|
3
|
+
/**
|
|
4
|
+
* Returns {@link IColumnTextWrappingItem} for pivot group headers that match the provided {@link ITableColumnDefinition}.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* This function checks if the column definition is part of a pivot group hierarchy
|
|
8
|
+
* and returns the most specific matching pivot group text wrapping item.
|
|
9
|
+
*
|
|
10
|
+
* A group override matches if:
|
|
11
|
+
* - The column definition has a column scope with attribute scopes
|
|
12
|
+
* - The attribute locators match the beginning of the column scope (group and descendants)
|
|
13
|
+
* - If elements are specified, they match the corresponding attribute values
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export declare function getPivotGroupTextWrappingItemForColumnDefinition(columnDefinition: ITableColumnDefinition, columnTextWrapping: IColumnTextWrappingItem[]): IColumnTextWrappingItem | undefined;
|
|
18
|
+
//# sourceMappingURL=getPivotGroupTextWrappingItemForColumnDefinition.d.ts.map
|
package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPivotGroupTextWrappingItemForColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gDAAgD,CAC5D,gBAAgB,EAAE,sBAAsB,EACxC,kBAAkB,EAAE,uBAAuB,EAAE,GAC9C,uBAAuB,GAAG,SAAS,CA0GrC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { isAttributeColumnLocator } from "../../types/locators.js";
|
|
3
|
+
/**
|
|
4
|
+
* Returns {@link IColumnTextWrappingItem} for pivot group headers that match the provided {@link ITableColumnDefinition}.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* This function checks if the column definition is part of a pivot group hierarchy
|
|
8
|
+
* and returns the most specific matching pivot group text wrapping item.
|
|
9
|
+
*
|
|
10
|
+
* A group override matches if:
|
|
11
|
+
* - The column definition has a column scope with attribute scopes
|
|
12
|
+
* - The attribute locators match the beginning of the column scope (group and descendants)
|
|
13
|
+
* - If elements are specified, they match the corresponding attribute values
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export function getPivotGroupTextWrappingItemForColumnDefinition(columnDefinition, columnTextWrapping) {
|
|
18
|
+
// Only value, subtotal, and grandTotal columns can be part of pivot groups
|
|
19
|
+
if (columnDefinition.type !== "value" &&
|
|
20
|
+
columnDefinition.type !== "subtotal" &&
|
|
21
|
+
columnDefinition.type !== "grandTotal") {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const columnScope = columnDefinition.columnScope;
|
|
25
|
+
if (!columnScope || columnScope.length === 0) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
// Extract attribute scopes from column scope
|
|
29
|
+
const attributeScopes = columnScope.filter((scope) => scope.type === "attributeScope" || scope.type === "attributeTotalScope");
|
|
30
|
+
if (attributeScopes.length === 0) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
// Find all matching pivot group items (matchType === "pivotGroup")
|
|
34
|
+
const matchingItems = [];
|
|
35
|
+
for (const item of columnTextWrapping) {
|
|
36
|
+
// Skip if not a pivot group match type
|
|
37
|
+
if (item.matchType !== "pivotGroup") {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
// Extract attribute identifiers and elements from locators
|
|
41
|
+
const attributeLocators = item.locators.filter(isAttributeColumnLocator);
|
|
42
|
+
// Check if this item matches the beginning of the column's attribute scopes
|
|
43
|
+
if (attributeLocators.length > attributeScopes.length) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
let matches = true;
|
|
47
|
+
for (let i = 0; i < attributeLocators.length; i++) {
|
|
48
|
+
const scope = attributeScopes[i];
|
|
49
|
+
const locator = attributeLocators[i];
|
|
50
|
+
const expectedIdentifier = locator.attributeLocatorItem.attributeIdentifier;
|
|
51
|
+
// Check if attribute identifier matches
|
|
52
|
+
if (scope.descriptor.attributeHeader.localIdentifier !== expectedIdentifier) {
|
|
53
|
+
matches = false;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
// If element is specified in locator, check if it matches
|
|
57
|
+
const expectedElement = locator.attributeLocatorItem.element;
|
|
58
|
+
if (expectedElement !== undefined) {
|
|
59
|
+
let actualElement;
|
|
60
|
+
if (scope.type === "attributeScope") {
|
|
61
|
+
actualElement = scope.header.attributeHeaderItem.uri ?? null;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// attributeTotalScope
|
|
65
|
+
actualElement = scope.header.totalHeaderItem.type;
|
|
66
|
+
}
|
|
67
|
+
if (actualElement !== expectedElement) {
|
|
68
|
+
matches = false;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (matches) {
|
|
74
|
+
matchingItems.push({
|
|
75
|
+
item,
|
|
76
|
+
matchLength: attributeLocators.length,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Return the most specific match (longest match, then with elements over without)
|
|
81
|
+
if (matchingItems.length === 0) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
matchingItems.sort((a, b) => {
|
|
85
|
+
// First, sort by match length (longer is more specific)
|
|
86
|
+
if (a.matchLength !== b.matchLength) {
|
|
87
|
+
return b.matchLength - a.matchLength;
|
|
88
|
+
}
|
|
89
|
+
// If same length, prefer one with elements (more specific) over one without
|
|
90
|
+
const aAttributeLocators = a.item.locators.filter(isAttributeColumnLocator);
|
|
91
|
+
const bAttributeLocators = b.item.locators.filter(isAttributeColumnLocator);
|
|
92
|
+
// Count how many locators have elements defined
|
|
93
|
+
const aHasElements = aAttributeLocators.filter((loc) => loc.attributeLocatorItem.element !== undefined).length;
|
|
94
|
+
const bHasElements = bAttributeLocators.filter((loc) => loc.attributeLocatorItem.element !== undefined).length;
|
|
95
|
+
return bHasElements - aHasElements;
|
|
96
|
+
});
|
|
97
|
+
return matchingItems[0].item;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=getPivotGroupTextWrappingItemForColumnDefinition.js.map
|
package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPivotGroupTextWrappingItemForColumnDefinition.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IColumnTextWrappingItem } from "../../types/textWrapping.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if two {@link IColumnTextWrappingItem}s match (have the same locators).
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Two text wrapping items match if they have identical locator arrays.
|
|
7
|
+
* This means they target the same column(s) in the pivot table.
|
|
8
|
+
* The actual wrapping settings (wrapText, wrapHeaderText) are not compared.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function isColumnTextWrappingItemMatch(item1: IColumnTextWrappingItem, item2: IColumnTextWrappingItem): boolean;
|
|
13
|
+
//# sourceMappingURL=isColumnTextWrappingItemMatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isColumnTextWrappingItemMatch.d.ts","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/isColumnTextWrappingItemMatch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CACzC,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,uBAAuB,GAC/B,OAAO,CAIT"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { isEqual } from "lodash-es";
|
|
3
|
+
/**
|
|
4
|
+
* Checks if two {@link IColumnTextWrappingItem}s match (have the same locators).
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Two text wrapping items match if they have identical locator arrays.
|
|
8
|
+
* This means they target the same column(s) in the pivot table.
|
|
9
|
+
* The actual wrapping settings (wrapText, wrapHeaderText) are not compared.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export function isColumnTextWrappingItemMatch(item1, item2) {
|
|
14
|
+
// Deep equality check on locator arrays
|
|
15
|
+
// Locators must match exactly in order and content
|
|
16
|
+
return isEqual(item1.locators, item2.locators);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=isColumnTextWrappingItemMatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isColumnTextWrappingItemMatch.js","sourceRoot":"","sources":["../../../../src/next/features/textWrapping/isColumnTextWrappingItemMatch.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CACzC,KAA8B,EAC9B,KAA8B;IAE9B,wCAAwC;IACxC,mDAAmD;IACnD,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -23,7 +23,7 @@ export const createMeasureGroupValueColDef = (columnDefinition) => {
|
|
|
23
23
|
cellStyle: getMeasureCellStyle,
|
|
24
24
|
cellRenderer: metricCellRenderer,
|
|
25
25
|
headerClass: getHeaderCellClassName,
|
|
26
|
-
headerComponent: "
|
|
26
|
+
headerComponent: "EmptyMeasureGroupValueHeader",
|
|
27
27
|
sortable: false,
|
|
28
28
|
};
|
|
29
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureGroupValueColDef.js","sourceRoot":"","sources":["../../../../src/next/features/transposition/measureGroupValueColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CACzC,gBAAyD,EAC1C,EAAE;IACjB,OAAO;QACH,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,mBAAmB,8BAA8B,iBAAiB;QACzE,OAAO,EAAE;YACL,gBAAgB;SACnB;QACD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,qBAAqB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QACzE,CAAC;QACD,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,mBAAmB;QAC9B,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,sBAAsB;QACnC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"measureGroupValueColDef.js","sourceRoot":"","sources":["../../../../src/next/features/transposition/measureGroupValueColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CACzC,gBAAyD,EAC1C,EAAE;IACjB,OAAO;QACH,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,mBAAmB,8BAA8B,iBAAiB;QACzE,OAAO,EAAE;YACL,gBAAgB;SACnB;QACD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,qBAAqB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QACzE,CAAC;QACD,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,mBAAmB;QAC9B,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,sBAAsB;QACnC,eAAe,EAAE,8BAA8B;QAC/C,QAAQ,EAAE,KAAK;KAClB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateAgGridColumnDefs.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/columns/useUpdateAgGridColumnDefs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUpdateAgGridColumnDefs.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/columns/useUpdateAgGridColumnDefs.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,yBAAyB,qBAOhB,eAAe,EAAE,WAAW,SAAS,UA4C7D"}
|