@gooddata/sdk-ui-pivot 11.4.0 → 11.5.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/esm/next/PivotTableNext.d.ts.map +1 -1
  2. package/esm/next/PivotTableNext.js +10 -2
  3. package/esm/next/PivotTableNext.js.map +1 -1
  4. package/esm/next/components/Header/AttributeHeader.d.ts.map +1 -1
  5. package/esm/next/components/Header/AttributeHeader.js +15 -3
  6. package/esm/next/components/Header/AttributeHeader.js.map +1 -1
  7. package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts +2 -1
  8. package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts.map +1 -1
  9. package/esm/next/components/Header/EmptyMeasureGroupHeader.js +6 -2
  10. package/esm/next/components/Header/EmptyMeasureGroupHeader.js.map +1 -1
  11. package/esm/next/components/Header/EmptyMeasureGroupValueHeader.d.ts +8 -0
  12. package/esm/next/components/Header/EmptyMeasureGroupValueHeader.d.ts.map +1 -0
  13. package/esm/next/components/Header/EmptyMeasureGroupValueHeader.js +34 -0
  14. package/esm/next/components/Header/EmptyMeasureGroupValueHeader.js.map +1 -0
  15. package/esm/next/components/Header/MeasureGroupHeader.d.ts.map +1 -1
  16. package/esm/next/components/Header/MeasureGroupHeader.js +21 -2
  17. package/esm/next/components/Header/MeasureGroupHeader.js.map +1 -1
  18. package/esm/next/components/Header/MeasureHeader.d.ts.map +1 -1
  19. package/esm/next/components/Header/MeasureHeader.js +10 -1
  20. package/esm/next/components/Header/MeasureHeader.js.map +1 -1
  21. package/esm/next/components/Header/PivotGroupHeader.d.ts.map +1 -1
  22. package/esm/next/components/Header/PivotGroupHeader.js +8 -2
  23. package/esm/next/components/Header/PivotGroupHeader.js.map +1 -1
  24. package/esm/next/components/Header/utils/constructTextWrappingMenuItems.d.ts +5 -1
  25. package/esm/next/components/Header/utils/constructTextWrappingMenuItems.d.ts.map +1 -1
  26. package/esm/next/components/Header/utils/constructTextWrappingMenuItems.js +11 -7
  27. package/esm/next/components/Header/utils/constructTextWrappingMenuItems.js.map +1 -1
  28. package/esm/next/constants/agGridDefaultProps.d.ts.map +1 -1
  29. package/esm/next/constants/agGridDefaultProps.js +1 -0
  30. package/esm/next/constants/agGridDefaultProps.js.map +1 -1
  31. package/esm/next/features/data/dataViewToColDefs.d.ts.map +1 -1
  32. package/esm/next/features/data/dataViewToColDefs.js +17 -1
  33. package/esm/next/features/data/dataViewToColDefs.js.map +1 -1
  34. package/esm/next/features/pivoting/columnDefsToPivotGroups.d.ts.map +1 -1
  35. package/esm/next/features/pivoting/columnDefsToPivotGroups.js +2 -1
  36. package/esm/next/features/pivoting/columnDefsToPivotGroups.js.map +1 -1
  37. package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.d.ts.map +1 -1
  38. package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.js +2 -1
  39. package/esm/next/features/resizing/createColumnWidthItemForColumnDefinition.js.map +1 -1
  40. package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.d.ts +29 -0
  41. package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.d.ts.map +1 -0
  42. package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.js +44 -0
  43. package/esm/next/features/textWrapping/allowCellWrappingByColumnDefinition.js.map +1 -0
  44. package/esm/next/features/textWrapping/applyTextWrappingToColDef.d.ts +9 -0
  45. package/esm/next/features/textWrapping/applyTextWrappingToColDef.d.ts.map +1 -1
  46. package/esm/next/features/textWrapping/applyTextWrappingToColDef.js +35 -9
  47. package/esm/next/features/textWrapping/applyTextWrappingToColDef.js.map +1 -1
  48. package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.d.ts +14 -0
  49. package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.d.ts.map +1 -0
  50. package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.js +28 -0
  51. package/esm/next/features/textWrapping/applyTextWrappingToGroupDef.js.map +1 -0
  52. package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.d.ts +28 -0
  53. package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.d.ts.map +1 -0
  54. package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.js +96 -0
  55. package/esm/next/features/textWrapping/createColumnTextWrappingItemForColumnDefinition.js.map +1 -0
  56. package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.d.ts +9 -0
  57. package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.d.ts.map +1 -0
  58. package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.js +14 -0
  59. package/esm/next/features/textWrapping/getColumnTextWrappingItemForColumnDefinition.js.map +1 -0
  60. package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.d.ts +18 -0
  61. package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.d.ts.map +1 -0
  62. package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js +99 -0
  63. package/esm/next/features/textWrapping/getPivotGroupTextWrappingItemForColumnDefinition.js.map +1 -0
  64. package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.d.ts +13 -0
  65. package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.d.ts.map +1 -0
  66. package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.js +18 -0
  67. package/esm/next/features/textWrapping/isColumnTextWrappingItemMatch.js.map +1 -0
  68. package/esm/next/features/transposition/measureGroupValueColDef.js +1 -1
  69. package/esm/next/features/transposition/measureGroupValueColDef.js.map +1 -1
  70. package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.d.ts.map +1 -1
  71. package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.js +18 -2
  72. package/esm/next/hooks/columns/useUpdateAgGridColumnDefs.js.map +1 -1
  73. package/esm/next/hooks/header/useHeaderDrilling.d.ts +2 -5
  74. package/esm/next/hooks/header/useHeaderDrilling.d.ts.map +1 -1
  75. package/esm/next/hooks/header/useHeaderDrilling.js +11 -13
  76. package/esm/next/hooks/header/useHeaderDrilling.js.map +1 -1
  77. package/esm/next/hooks/header/useHeaderMenu.d.ts +23 -3
  78. package/esm/next/hooks/header/useHeaderMenu.d.ts.map +1 -1
  79. package/esm/next/hooks/header/useHeaderMenu.js +9 -2
  80. package/esm/next/hooks/header/useHeaderMenu.js.map +1 -1
  81. package/esm/next/hooks/header/useHeaderMenuSorting.d.ts +2 -2
  82. package/esm/next/hooks/header/useHeaderMenuSorting.d.ts.map +1 -1
  83. package/esm/next/hooks/header/useHeaderMenuSorting.js +23 -24
  84. package/esm/next/hooks/header/useHeaderMenuSorting.js.map +1 -1
  85. package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts +6 -5
  86. package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts.map +1 -1
  87. package/esm/next/hooks/header/useHeaderMenuTextWrapping.js +341 -23
  88. package/esm/next/hooks/header/useHeaderMenuTextWrapping.js.map +1 -1
  89. package/esm/next/hooks/textWrapping/useUpdateTextWrapping.d.ts.map +1 -1
  90. package/esm/next/hooks/textWrapping/useUpdateTextWrapping.js +7 -2
  91. package/esm/next/hooks/textWrapping/useUpdateTextWrapping.js.map +1 -1
  92. package/esm/next/hooks/useAgGridReactProps.d.ts.map +1 -1
  93. package/esm/next/hooks/useAgGridReactProps.js +8 -0
  94. package/esm/next/hooks/useAgGridReactProps.js.map +1 -1
  95. package/esm/next/hooks/useCellSelectionProps.d.ts +8 -0
  96. package/esm/next/hooks/useCellSelectionProps.d.ts.map +1 -0
  97. package/esm/next/hooks/useCellSelectionProps.js +23 -0
  98. package/esm/next/hooks/useCellSelectionProps.js.map +1 -0
  99. package/esm/next/hooks/useClearCellSelection.d.ts +7 -0
  100. package/esm/next/hooks/useClearCellSelection.d.ts.map +1 -0
  101. package/esm/next/hooks/useClearCellSelection.js +15 -0
  102. package/esm/next/hooks/useClearCellSelection.js.map +1 -0
  103. package/esm/next/hooks/useClipboardProps.d.ts +13 -0
  104. package/esm/next/hooks/useClipboardProps.d.ts.map +1 -0
  105. package/esm/next/hooks/useClipboardProps.js +46 -0
  106. package/esm/next/hooks/useClipboardProps.js.map +1 -0
  107. package/esm/next/hooks/useHeaderComponents.d.ts.map +1 -1
  108. package/esm/next/hooks/useHeaderComponents.js +4 -1
  109. package/esm/next/hooks/useHeaderComponents.js.map +1 -1
  110. package/esm/next/hooks/useInteractionProps.d.ts.map +1 -1
  111. package/esm/next/hooks/useInteractionProps.js +15 -10
  112. package/esm/next/hooks/useInteractionProps.js.map +1 -1
  113. package/esm/next/index.d.ts +4 -2
  114. package/esm/next/index.d.ts.map +1 -1
  115. package/esm/next/index.js +2 -1
  116. package/esm/next/index.js.map +1 -1
  117. package/esm/next/types/agGrid.d.ts +16 -0
  118. package/esm/next/types/agGrid.d.ts.map +1 -1
  119. package/esm/next/types/agGrid.js +22 -0
  120. package/esm/next/types/agGrid.js.map +1 -1
  121. package/esm/next/types/cellSelection.d.ts +17 -0
  122. package/esm/next/types/cellSelection.d.ts.map +1 -0
  123. package/esm/next/types/cellSelection.js +3 -0
  124. package/esm/next/types/cellSelection.js.map +1 -0
  125. package/esm/next/types/locators.d.ts +119 -0
  126. package/esm/next/types/locators.d.ts.map +1 -0
  127. package/esm/next/types/locators.js +79 -0
  128. package/esm/next/types/locators.js.map +1 -0
  129. package/esm/next/types/public.d.ts +2 -1
  130. package/esm/next/types/public.d.ts.map +1 -1
  131. package/esm/next/types/public.js +1 -0
  132. package/esm/next/types/public.js.map +1 -1
  133. package/esm/next/types/resizing.d.ts +1 -117
  134. package/esm/next/types/resizing.d.ts.map +1 -1
  135. package/esm/next/types/resizing.js +2 -76
  136. package/esm/next/types/resizing.js.map +1 -1
  137. package/esm/next/types/textWrapping.d.ts +41 -2
  138. package/esm/next/types/textWrapping.d.ts.map +1 -1
  139. 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, newWidthForAttributeColumn, setNewWidthForSelectedColumns, } from "../../types/resizing.js";
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":"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"}
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":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACjC,cAAc,aAAa,MAC3B,QAAQ,eAAe,KAAG,eAa1B,CAAC"}
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 { wrapHeaderText, wrapText } = textWrapping;
8
- const updatedColDef = {
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":"AAIA;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAClC,CAAC,YAA2B,EAAE,EAAE,CAChC,CAAC,MAAuB,EAAmB,EAAE;IACzC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAClD,MAAM,aAAa,GAAG;QAClB,GAAG,MAAM;KACZ,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACjB,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACxC,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACX,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC"}
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
@@ -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
@@ -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
@@ -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: "EmptyMeasureGroupHeader",
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,yBAAyB;QAC1C,QAAQ,EAAE,KAAK;KAClB,CAAC;AACN,CAAC,CAAC"}
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":"AAUA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,yBAAyB,qBAOhB,eAAe,EAAE,WAAW,SAAS,UAmB7D"}
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"}