@gooddata/sdk-ui-pivot 11.4.0-alpha.4 → 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
@@ -6,6 +6,7 @@ import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
6
6
  import { agGridSetColumnDefs } from "../../features/columns/agGridColDefsApi.js";
7
7
  import { agGridSetPivotResultColumns } from "../../features/pivoting/agGridPivotingApi.js";
8
8
  import { columnDefsToPivotGroups } from "../../features/pivoting/columnDefsToPivotGroups.js";
9
+ import { applyTextWrappingToGroupDef } from "../../features/textWrapping/applyTextWrappingToGroupDef.js";
9
10
  /**
10
11
  * Updates column defs in ag-grid, by updated column defs (use this only if you are working with flat column defs).
11
12
  *
@@ -19,13 +20,28 @@ export function useUpdateAgGridColumnDefs() {
19
20
  return useCallback((updatedColDefs, gridApi) => {
20
21
  if (isPivoted) {
21
22
  const groupedColumnDefs = columnDefsToPivotGroups(updatedColDefs, columnHeadersPosition, intl);
23
+ // Apply text wrapping to group definitions recursively
24
+ const applyTextWrappingToTree = (defs) => {
25
+ return defs.map((def) => {
26
+ if ("children" in def && def.children) {
27
+ // This is a group definition
28
+ const updatedGroupDef = applyTextWrappingToGroupDef(def, config.textWrapping ?? {});
29
+ return {
30
+ ...updatedGroupDef,
31
+ children: applyTextWrappingToTree(def.children),
32
+ };
33
+ }
34
+ return def;
35
+ });
36
+ };
37
+ const groupedColumnDefsWithWrapping = applyTextWrappingToTree(groupedColumnDefs);
22
38
  agGridSetPivotResultColumns({
23
- colDefs: groupedColumnDefs,
39
+ colDefs: groupedColumnDefsWithWrapping,
24
40
  }, gridApi);
25
41
  }
26
42
  else {
27
43
  agGridSetColumnDefs({ colDefs: updatedColDefs }, gridApi);
28
44
  }
29
- }, [isPivoted, columnHeadersPosition, intl]);
45
+ }, [isPivoted, columnHeadersPosition, intl, config.textWrapping]);
30
46
  }
31
47
  //# sourceMappingURL=useUpdateAgGridColumnDefs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateAgGridColumnDefs.js","sourceRoot":"","sources":["../../../../src/next/hooks/columns/useUpdateAgGridColumnDefs.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAG7F;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;IACtC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,OAAO,WAAW,CACd,CAAC,cAAiC,EAAE,OAAkB,EAAE,EAAE;QACtD,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,iBAAiB,GAAG,uBAAuB,CAC7C,cAAc,EACd,qBAAqB,EACrB,IAAI,CACP,CAAC;YACF,2BAA2B,CACvB;gBACI,OAAO,EAAE,iBAAiB;aAC7B,EACD,OAAO,CACV,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,mBAAmB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC,EACD,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAC3C,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"useUpdateAgGridColumnDefs.js","sourceRoot":"","sources":["../../../../src/next/hooks/columns/useUpdateAgGridColumnDefs.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAC;AAGzG;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;IACtC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,OAAO,WAAW,CACd,CAAC,cAAiC,EAAE,OAAkB,EAAE,EAAE;QACtD,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,iBAAiB,GAAG,uBAAuB,CAC7C,cAAc,EACd,qBAAqB,EACrB,IAAI,CACP,CAAC;YAEF,uDAAuD;YACvD,MAAM,uBAAuB,GAAG,CAC5B,IAAgD,EACN,EAAE;gBAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACpB,IAAI,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACpC,6BAA6B;wBAC7B,MAAM,eAAe,GAAG,2BAA2B,CAC/C,GAAG,EACH,MAAM,CAAC,YAAY,IAAI,EAAE,CAC5B,CAAC;wBACF,OAAO;4BACH,GAAG,eAAe;4BAClB,QAAQ,EAAE,uBAAuB,CAC7B,GAAG,CAAC,QAAsD,CAC7D;yBACJ,CAAC;oBACN,CAAC;oBACD,OAAO,GAAG,CAAC;gBACf,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YAEjF,2BAA2B,CACvB;gBACI,OAAO,EAAE,6BAA6B;aACzC,EACD,OAAO,CACV,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,mBAAmB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC,EACD,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAChE,CAAC;AACN,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { MouseEvent } from "react";
2
- import { AgGridHeaderParams } from "../../types/agGrid.js";
2
+ import { AgGridHeaderGroupParams, AgGridHeaderParams } from "../../types/agGrid.js";
3
3
  /**
4
4
  * Custom hook that provides header drilling functionality.
5
5
  * Returns a click handler that can be used alongside sorting functionality.
@@ -8,11 +8,8 @@ import { AgGridHeaderParams } from "../../types/agGrid.js";
8
8
  * @returns Object with header drilling functions
9
9
  * @internal
10
10
  */
11
- export declare function useHeaderDrilling(params: AgGridHeaderParams | null): {
11
+ export declare function useHeaderDrilling(params: AgGridHeaderParams | AgGridHeaderGroupParams | null): {
12
12
  handleHeaderDrill: (event: MouseEvent) => boolean;
13
13
  isDrillable: boolean;
14
- } | {
15
- handleHeaderDrill: () => void;
16
- isDrillable: boolean;
17
14
  };
18
15
  //# sourceMappingURL=useHeaderDrilling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderDrilling.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderDrilling.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAwB,MAAM,OAAO,CAAC;AAczD,OAAO,EAAmB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;+BAqBnD,UAAU;;;;;EA+CzB"}
1
+ {"version":3,"file":"useHeaderDrilling.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderDrilling.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAwB,MAAM,OAAO,CAAC;AAczD,OAAO,EAEH,uBAAuB,EACvB,kBAAkB,EAErB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,GAAG,IAAI;+BAwB7E,UAAU;;EA0CzB"}
@@ -6,6 +6,7 @@ import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
6
6
  import { createCustomDrillEvent } from "../../features/drilling/events.js";
7
7
  import { createHeaderDrillIntersection } from "../../features/drilling/intersection.js";
8
8
  import { isHeaderCellDrillable } from "../../features/drilling/isDrillable.js";
9
+ import { isAgGridHeaderParams, } from "../../types/agGrid.js";
9
10
  /**
10
11
  * Custom hook that provides header drilling functionality.
11
12
  * Returns a click handler that can be used alongside sorting functionality.
@@ -17,22 +18,24 @@ import { isHeaderCellDrillable } from "../../features/drilling/isDrillable.js";
17
18
  export function useHeaderDrilling(params) {
18
19
  const { drillableItems, onDrill, config } = usePivotTableProps();
19
20
  const { currentDataView } = useCurrentDataView();
21
+ // Only regular header params support drilling (not group headers)
22
+ const isRegularHeader = isAgGridHeaderParams(params);
20
23
  /**
21
24
  * Check if the header cell is drillable (memoized)
22
25
  */
23
26
  const isDrillable = useMemo(() => {
24
- if (!drillableItems.length || !currentDataView || !params) {
27
+ if (!isRegularHeader || !drillableItems.length || !currentDataView) {
25
28
  return false;
26
29
  }
27
30
  const colDef = params.column.getColDef();
28
31
  return isHeaderCellDrillable(colDef, drillableItems, currentDataView, config.columnHeadersPosition);
29
- }, [drillableItems, currentDataView, params, config.columnHeadersPosition]);
32
+ }, [isRegularHeader, drillableItems, currentDataView, params, config.columnHeadersPosition]);
30
33
  /**
31
34
  * Handle header click for drilling
32
35
  * This function should be called after sorting logic to avoid interference
33
36
  */
34
37
  const handleHeaderDrill = useCallback((event) => {
35
- if (!onDrill || !isDrillable || !currentDataView || !params) {
38
+ if (!isRegularHeader || !onDrill || !isDrillable || !currentDataView) {
36
39
  return false;
37
40
  }
38
41
  const colDef = params.column.getColDef();
@@ -60,15 +63,10 @@ export function useHeaderDrilling(params) {
60
63
  return true;
61
64
  }
62
65
  return false;
63
- }, [onDrill, isDrillable, params, currentDataView]);
64
- return params
65
- ? {
66
- handleHeaderDrill,
67
- isDrillable,
68
- }
69
- : {
70
- handleHeaderDrill: () => { },
71
- isDrillable: false,
72
- };
66
+ }, [isRegularHeader, onDrill, isDrillable, params, currentDataView]);
67
+ return {
68
+ handleHeaderDrill,
69
+ isDrillable,
70
+ };
73
71
  }
74
72
  //# sourceMappingURL=useHeaderDrilling.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderDrilling.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderDrilling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHeaderDrilling.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderDrilling.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { MouseEvent } from "react";
2
2
  import { IAttributeDescriptor } from "@gooddata/sdk-model";
3
- import { AgGridHeaderParams } from "../../types/agGrid.js";
3
+ import { AgGridHeaderGroupParams, AgGridHeaderParams } from "../../types/agGrid.js";
4
4
  /**
5
5
  * Hook for header cell components that handles menu item filtering.
6
6
  *
7
7
  * @param allowAggregations - Whether aggregation menu items should be included
8
8
  * @param allowTextWrapping - Whether text wrapping menu items should be included
9
+ * @param allowSorting - Whether sorting menu items should be included
10
+ * @param allowDrilling - Whether drilling menu items should be included
11
+ * @param includeHeaderWrapping - Whether header wrapping menu items should be included
12
+ * @param includeCellWrapping - Whether cell wrapping menu items should be included
9
13
  * @param measureIdentifiers - Array of measure identifiers for the cell
10
14
  * @param pivotAttributeDescriptors - Array of pivot attribute descriptors
11
15
  * @param gridApi - Optional ag-grid API for checking current state
@@ -16,13 +20,29 @@ export declare function useHeaderMenu(options: {
16
20
  allowTextWrapping: boolean;
17
21
  allowSorting: boolean;
18
22
  allowDrilling: boolean;
23
+ includeHeaderWrapping: boolean;
24
+ includeCellWrapping: boolean;
19
25
  }, additionalContext: {
20
26
  measureIdentifiers: string[];
21
27
  pivotAttributeDescriptors: IAttributeDescriptor[];
22
- }, agGridHeaderParams: AgGridHeaderParams | null): {
28
+ }, agGridHeaderParams: AgGridHeaderParams | AgGridHeaderGroupParams | null): {
23
29
  handleHeaderClick: (event: MouseEvent<HTMLDivElement>) => void;
24
30
  hasMenuItems: boolean;
25
- handleHeaderDrill: ((event: MouseEvent) => boolean) | (() => void);
31
+ handleHeaderDrill: (event: MouseEvent) => boolean;
32
+ isDrillable: boolean;
33
+ sortingItems: import("../../types/menu.js").ISortingMenuItem[];
34
+ sortDirection: import("ag-grid-community").SortDirection | undefined;
35
+ sortIndex: number | undefined;
36
+ handleSortingItemClick: (item: import("../../types/menu.js").ISortingMenuItem) => void;
37
+ handleProgressSort: () => void;
38
+ textWrappingItems: import("../../types/menu.js").ITextWrappingMenuItem[];
39
+ handleTextWrappingItemClick: (item: import("../../types/menu.js").ITextWrappingMenuItem) => void;
40
+ aggregationsItems: import("../../types/menu.js").IAggregationsMenuItem[];
41
+ handleAggregationsItemClick: (item: import("../../types/menu.js").IAggregationsSubMenuItem) => void;
42
+ } | {
43
+ handleHeaderClick: (event: MouseEvent<HTMLDivElement>) => void;
44
+ hasMenuItems: boolean;
45
+ handleHeaderDrill: () => void;
26
46
  isDrillable: boolean;
27
47
  sortingItems: import("../../types/menu.js").ISortingMenuItem[];
28
48
  sortDirection: import("ag-grid-community").SortDirection | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderMenu.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CACzB,OAAO,EAAE;IACL,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CAC1B,EACD,iBAAiB,EAAE;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,yBAAyB,EAAE,oBAAoB,EAAE,CAAC;CACrD,EACD,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;+BA2CX,UAAU,CAAC,cAAc,CAAC;;;;;;;;;;;;;EA4B/D"}
1
+ {"version":3,"file":"useHeaderMenu.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEpF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CACzB,OAAO,EAAE;IACL,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAChC,EACD,iBAAiB,EAAE;IACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,yBAAyB,EAAE,oBAAoB,EAAE,CAAC;CACrD,EACD,kBAAkB,EAAE,kBAAkB,GAAG,uBAAuB,GAAG,IAAI;+BAqDrC,UAAU,CAAC,cAAc,CAAC;;;;;;;;;;;;;;+BAA1B,UAAU,CAAC,cAAc,CAAC;;;;;;;;;;;;;EA4B/D"}
@@ -8,13 +8,17 @@ import { useHeaderMenuTextWrapping } from "./useHeaderMenuTextWrapping.js";
8
8
  *
9
9
  * @param allowAggregations - Whether aggregation menu items should be included
10
10
  * @param allowTextWrapping - Whether text wrapping menu items should be included
11
+ * @param allowSorting - Whether sorting menu items should be included
12
+ * @param allowDrilling - Whether drilling menu items should be included
13
+ * @param includeHeaderWrapping - Whether header wrapping menu items should be included
14
+ * @param includeCellWrapping - Whether cell wrapping menu items should be included
11
15
  * @param measureIdentifiers - Array of measure identifiers for the cell
12
16
  * @param pivotAttributeDescriptors - Array of pivot attribute descriptors
13
17
  * @param gridApi - Optional ag-grid API for checking current state
14
18
  * @returns Filtered menu items and handlers based on permissions
15
19
  */
16
20
  export function useHeaderMenu(options, additionalContext, agGridHeaderParams) {
17
- const { allowAggregations, allowTextWrapping, allowSorting, allowDrilling } = options;
21
+ const { allowAggregations, allowTextWrapping, allowSorting, allowDrilling, includeHeaderWrapping, includeCellWrapping, } = options;
18
22
  const { measureIdentifiers, pivotAttributeDescriptors } = additionalContext;
19
23
  // Aggregations
20
24
  const { aggregationsItems, handleAggregationsItemClick } = useHeaderMenuAggregations(measureIdentifiers, pivotAttributeDescriptors);
@@ -22,7 +26,10 @@ export function useHeaderMenu(options, additionalContext, agGridHeaderParams) {
22
26
  ? { aggregationsItems, handleAggregationsItemClick }
23
27
  : { aggregationsItems: [], handleAggregationsItemClick: () => { } };
24
28
  // Text wrapping
25
- const { textWrappingItems, handleTextWrappingItemClick } = useHeaderMenuTextWrapping();
29
+ const { textWrappingItems, handleTextWrappingItemClick } = useHeaderMenuTextWrapping(agGridHeaderParams, {
30
+ includeHeaderWrapping,
31
+ includeCellWrapping,
32
+ });
26
33
  const sanitizedTextWrappingProps = allowTextWrapping
27
34
  ? { textWrappingItems, handleTextWrappingItemClick }
28
35
  : { textWrappingItems: [], handleTextWrappingItemClick: () => { } };
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderMenu.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHeaderMenu.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenu.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { AgGridHeaderParams } from "../../types/agGrid.js";
1
+ import { AgGridHeaderGroupParams, AgGridHeaderParams } from "../../types/agGrid.js";
2
2
  import { ISortingMenuItem } from "../../types/menu.js";
3
3
  /**
4
4
  * Renderer for attribute header.
5
5
  */
6
- export declare function useHeaderMenuSorting(params: AgGridHeaderParams | null): {
6
+ export declare function useHeaderMenuSorting(params: AgGridHeaderParams | AgGridHeaderGroupParams | null): {
7
7
  sortDirection: import("ag-grid-community").SortDirection | undefined;
8
8
  sortIndex: number | undefined;
9
9
  sortingItems: ISortingMenuItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderMenuSorting.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuSorting.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;;;;mCAsC5B,gBAAgB;;EAgCzD"}
1
+ {"version":3,"file":"useHeaderMenuSorting.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuSorting.ts"],"names":[],"mappings":"AAQA,OAAO,EAEH,uBAAuB,EACvB,kBAAkB,EAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,GAAG,IAAI;;;;mCA6CjF,gBAAgB;;EA4B9B"}
@@ -3,22 +3,27 @@ import { useCallback } from "react";
3
3
  import { useIntl } from "react-intl";
4
4
  import { messages } from "../../../locales.js";
5
5
  import { getSortModel } from "../../features/sorting/agGridSortingApi.js";
6
+ import { isAgGridHeaderParams, } from "../../types/agGrid.js";
6
7
  /**
7
8
  * Renderer for attribute header.
8
9
  */
9
10
  export function useHeaderMenuSorting(params) {
10
11
  const intl = useIntl();
11
- const colDef = params?.column.getColDef();
12
+ // Only regular header params support sorting (not group headers)
13
+ const isRegularHeader = isAgGridHeaderParams(params);
14
+ const colDef = isRegularHeader ? params.column.getColDef() : undefined;
12
15
  const allowSorting = !!colDef?.sortable;
13
16
  // Get current sort state for styling
14
- const sortDirection = params?.column.getSort();
15
- const sortModel = params ? getSortModel(params.api) : [];
16
- const sortIndex = params?.column.getSortIndex() ?? undefined;
17
+ const sortDirection = isRegularHeader ? params.column.getSort() : undefined;
18
+ const sortModel = isRegularHeader ? getSortModel(params.api) : [];
19
+ const sortIndex = isRegularHeader ? (params.column.getSortIndex() ?? undefined) : undefined;
17
20
  const sanitizedSortIndex = sortModel.length > 1 ? sortIndex : undefined; // Show sort index only in case there is multi-sort
18
21
  // Direct sort setter for menu interactions
19
22
  const handleSetSort = useCallback((direction) => {
20
- params?.setSort(direction, true);
21
- }, [params]);
23
+ if (isRegularHeader) {
24
+ params.setSort(direction, true);
25
+ }
26
+ }, [params, isRegularHeader]);
22
27
  const sortingItems = allowSorting
23
28
  ? [
24
29
  {
@@ -37,7 +42,7 @@ export function useHeaderMenuSorting(params) {
37
42
  },
38
43
  ]
39
44
  : [];
40
- const handleSortingItemClick = (item) => {
45
+ const handleSortingItemClick = useCallback((item) => {
41
46
  if (!allowSorting) {
42
47
  return;
43
48
  }
@@ -46,24 +51,18 @@ export function useHeaderMenuSorting(params) {
46
51
  return;
47
52
  }
48
53
  handleSetSort(item.direction);
49
- };
54
+ }, [allowSorting, sortDirection, handleSetSort]);
50
55
  const handleProgressSort = useCallback(() => {
51
- params?.progressSort(true);
52
- }, [params]);
53
- return params
54
- ? {
55
- sortDirection,
56
- sortIndex: sanitizedSortIndex,
57
- sortingItems,
58
- handleSortingItemClick,
59
- handleProgressSort,
56
+ if (isRegularHeader) {
57
+ params.progressSort(true);
60
58
  }
61
- : {
62
- sortDirection: undefined,
63
- sortIndex: undefined,
64
- sortingItems: [],
65
- handleSortingItemClick: () => { },
66
- handleProgressSort: () => { },
67
- };
59
+ }, [params, isRegularHeader]);
60
+ return {
61
+ sortDirection,
62
+ sortIndex: sanitizedSortIndex,
63
+ sortingItems,
64
+ handleSortingItemClick,
65
+ handleProgressSort,
66
+ };
68
67
  }
69
68
  //# sourceMappingURL=useHeaderMenuSorting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderMenuSorting.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuSorting.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAI1E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAiC;IAClE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,SAAS,EAA4B,CAAC;IACpE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;IAExC,qCAAqC;IACrC,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;IAC7D,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,mDAAmD;IAE5H,2CAA2C;IAC3C,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,SAAgC,EAAE,EAAE;QACjC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,MAAM,YAAY,GAAuB,YAAY;QACjD,CAAC,CAAC;YACI;gBACI,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,UAAU;gBACd,SAAS,EAAE,KAAK;gBAChB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACpD,QAAQ,EAAE,aAAa,KAAK,KAAK;aACpC;YACD;gBACI,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,WAAW;gBACf,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACrD,QAAQ,EAAE,aAAa,KAAK,MAAM;aACrC;SACJ;QACH,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,sBAAsB,GAAG,CAAC,IAAsB,EAAE,EAAE;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACX,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,MAAM;QACT,CAAC,CAAC;YACI,aAAa;YACb,SAAS,EAAE,kBAAkB;YAC7B,YAAY;YACZ,sBAAsB;YACtB,kBAAkB;SACrB;QACH,CAAC,CAAC;YACI,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,EAAE;YAChB,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;YAChC,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;SAC/B,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"useHeaderMenuSorting.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuSorting.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
+ import { ITextWrappingMenuOptions } from "../../components/Header/utils/constructTextWrappingMenuItems.js";
2
+ import { AgGridHeaderGroupParams, AgGridHeaderParams } from "../../types/agGrid.js";
1
3
  import { ITextWrappingMenuItem } from "../../types/menu.js";
2
4
  /**
3
- * Hook for header cell components that handles menu items and callbacks.
5
+ * Hook for header cell components that handles menu items and callbacks for per-column text wrapping.
4
6
  *
5
- * @param measureIdentifiers - Array of measure identifiers for the cell
6
- * @param pivotAttributeDescriptors - Array of pivot attribute descriptors
7
- * @param gridApi - Optional ag-grid API for checking current text wrapping state
7
+ * @param agGridHeaderParams - ag-grid header or header group params to identify the current column(s)
8
+ * @param options - options to control which text wrapping items to show
8
9
  * @returns Menu items and callbacks
9
10
  */
10
- export declare const useHeaderMenuTextWrapping: () => {
11
+ export declare const useHeaderMenuTextWrapping: (agGridHeaderParams: AgGridHeaderParams | AgGridHeaderGroupParams | null, options?: ITextWrappingMenuOptions) => {
11
12
  textWrappingItems: ITextWrappingMenuItem[];
12
13
  handleTextWrappingItemClick: (item: ITextWrappingMenuItem) => void;
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useHeaderMenuTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuTextWrapping.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI5D;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;wCAUS,qBAAqB;CAsBnE,CAAC"}
1
+ {"version":3,"file":"useHeaderMenuTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuTextWrapping.ts"],"names":[],"mappings":"AAeA,OAAO,EACH,wBAAwB,EAE3B,MAAM,iEAAiE,CAAC;AAOzE,OAAO,EAGH,uBAAuB,EACvB,kBAAkB,EAErB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAK5D;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAClC,oBAAoB,kBAAkB,GAAG,uBAAuB,GAAG,IAAI,EACvE,UAAU,wBAAwB;;wCA6DvB,qBAAqB;CAoEnC,CAAC"}