@gooddata/sdk-ui-pivot 11.2.0-alpha.1 → 11.2.0-alpha.3
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/locales.d.ts.map +1 -1
- package/esm/locales.js +4 -0
- package/esm/locales.js.map +1 -1
- package/esm/next/components/Header/AttributeHeader.d.ts.map +1 -1
- package/esm/next/components/Header/AttributeHeader.js +7 -6
- package/esm/next/components/Header/AttributeHeader.js.map +1 -1
- package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts +1 -2
- package/esm/next/components/Header/EmptyMeasureGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/EmptyMeasureGroupHeader.js +11 -4
- package/esm/next/components/Header/EmptyMeasureGroupHeader.js.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.d.ts +3 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.d.ts.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js +6 -3
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.d.ts +5 -4
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.d.ts.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.js +31 -2
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.js.map +1 -1
- package/esm/next/components/Header/MeasureGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/MeasureGroupHeader.js +5 -3
- 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 +11 -6
- 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 +23 -4
- package/esm/next/components/Header/PivotGroupHeader.js.map +1 -1
- package/esm/next/components/Header/SortIndicator.d.ts +14 -0
- package/esm/next/components/Header/SortIndicator.d.ts.map +1 -0
- package/esm/next/components/Header/SortIndicator.js +8 -0
- package/esm/next/components/Header/SortIndicator.js.map +1 -0
- package/esm/next/constants/agGridDefaultProps.d.ts.map +1 -1
- package/esm/next/constants/agGridDefaultProps.js +2 -0
- package/esm/next/constants/agGridDefaultProps.js.map +1 -1
- package/esm/next/features/aggregations/applyTotalsToExecutionDef.d.ts.map +1 -1
- package/esm/next/features/aggregations/applyTotalsToExecutionDef.js +3 -2
- package/esm/next/features/aggregations/applyTotalsToExecutionDef.js.map +1 -1
- package/esm/next/features/aggregations/ordering.d.ts +17 -0
- package/esm/next/features/aggregations/ordering.d.ts.map +1 -0
- package/esm/next/features/aggregations/ordering.js +21 -0
- package/esm/next/features/aggregations/ordering.js.map +1 -0
- package/esm/next/features/drilling/events.d.ts +9 -0
- package/esm/next/features/drilling/events.d.ts.map +1 -0
- package/esm/next/features/drilling/events.js +14 -0
- package/esm/next/features/drilling/events.js.map +1 -0
- package/esm/next/features/drilling/headerMapping.d.ts +2 -1
- package/esm/next/features/drilling/headerMapping.d.ts.map +1 -1
- package/esm/next/features/drilling/headerMapping.js +1 -1
- package/esm/next/features/drilling/headerMapping.js.map +1 -1
- package/esm/next/features/drilling/intersection.d.ts +7 -0
- package/esm/next/features/drilling/intersection.d.ts.map +1 -1
- package/esm/next/features/drilling/intersection.js +32 -2
- package/esm/next/features/drilling/intersection.js.map +1 -1
- package/esm/next/features/drilling/isDrillable.d.ts +10 -0
- package/esm/next/features/drilling/isDrillable.d.ts.map +1 -1
- package/esm/next/features/drilling/isDrillable.js +45 -1
- package/esm/next/features/drilling/isDrillable.js.map +1 -1
- package/esm/next/features/sorting/agGridSortingApi.d.ts.map +1 -1
- package/esm/next/features/sorting/agGridSortingApi.js +13 -4
- package/esm/next/features/sorting/agGridSortingApi.js.map +1 -1
- package/esm/next/features/sorting/applySortByToColDef.d.ts.map +1 -1
- package/esm/next/features/sorting/applySortByToColDef.js +1 -0
- package/esm/next/features/sorting/applySortByToColDef.js.map +1 -1
- package/esm/next/hooks/header/useHeaderDrilling.d.ts +18 -0
- package/esm/next/hooks/header/useHeaderDrilling.d.ts.map +1 -0
- package/esm/next/hooks/header/useHeaderDrilling.js +74 -0
- package/esm/next/hooks/header/useHeaderDrilling.js.map +1 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.d.ts +15 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.d.ts.map +1 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.js +65 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.js.map +1 -0
- package/esm/next/hooks/header/useHeaderMenu.d.ts +37 -0
- package/esm/next/hooks/header/useHeaderMenu.d.ts.map +1 -0
- package/esm/next/hooks/header/useHeaderMenu.js +65 -0
- package/esm/next/hooks/header/useHeaderMenu.js.map +1 -0
- package/esm/next/hooks/header/useHeaderMenuAggregations.d.ts +15 -0
- package/esm/next/hooks/header/useHeaderMenuAggregations.d.ts.map +1 -0
- package/esm/next/{components/Header/hooks/useHeaderMenuProps.js → hooks/header/useHeaderMenuAggregations.js} +7 -30
- package/esm/next/hooks/header/useHeaderMenuAggregations.js.map +1 -0
- package/esm/next/hooks/header/useHeaderMenuSorting.d.ts +13 -0
- package/esm/next/hooks/header/useHeaderMenuSorting.d.ts.map +1 -0
- package/esm/next/hooks/header/useHeaderMenuSorting.js +69 -0
- package/esm/next/hooks/header/useHeaderMenuSorting.js.map +1 -0
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts +14 -0
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.d.ts.map +1 -0
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.js +43 -0
- package/esm/next/hooks/header/useHeaderMenuTextWrapping.js.map +1 -0
- package/esm/next/hooks/sorting/useSyncSort.d.ts.map +1 -1
- package/esm/next/hooks/sorting/useSyncSort.js +8 -2
- package/esm/next/hooks/sorting/useSyncSort.js.map +1 -1
- package/esm/next/hooks/textWrapping/useGetDefaultTextWrapping.d.ts +1 -1
- package/esm/next/hooks/textWrapping/useGetDefaultTextWrapping.d.ts.map +1 -1
- package/esm/next/hooks/textWrapping/useGetDefaultTextWrapping.js.map +1 -1
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.d.ts +1 -1
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.d.ts.map +1 -1
- package/esm/next/hooks/textWrapping/useUpdateTextWrapping.js.map +1 -1
- package/esm/next/hooks/totals/useUpdateTotals.d.ts.map +1 -1
- package/esm/next/hooks/totals/useUpdateTotals.js +7 -4
- package/esm/next/hooks/totals/useUpdateTotals.js.map +1 -1
- package/esm/next/hooks/useDrillingProps.d.ts.map +1 -1
- package/esm/next/hooks/useDrillingProps.js +2 -5
- package/esm/next/hooks/useDrillingProps.js.map +1 -1
- package/esm/next/types/agGrid.d.ts +8 -0
- package/esm/next/types/agGrid.d.ts.map +1 -1
- package/esm/next/types/agGrid.js +11 -1
- package/esm/next/types/agGrid.js.map +1 -1
- package/esm/next/types/menu.d.ts +12 -0
- package/esm/next/types/menu.d.ts.map +1 -1
- package/esm/next/types/menu.js +1 -0
- package/esm/next/types/menu.js.map +1 -1
- package/package.json +10 -10
- package/styles/css/main.css +19 -1
- package/styles/css/main.css.map +1 -1
- package/styles/css/pivotTableNext.css +19 -1
- package/styles/css/pivotTableNext.css.map +1 -1
- package/styles/scss/pivotTableNext.scss +22 -1
- package/esm/next/components/Header/hooks/useHeaderMenu.d.ts +0 -19
- package/esm/next/components/Header/hooks/useHeaderMenu.d.ts.map +0 -1
- package/esm/next/components/Header/hooks/useHeaderMenu.js +0 -24
- package/esm/next/components/Header/hooks/useHeaderMenu.js.map +0 -1
- package/esm/next/components/Header/hooks/useHeaderMenuProps.d.ts +0 -18
- package/esm/next/components/Header/hooks/useHeaderMenuProps.d.ts.map +0 -1
- package/esm/next/components/Header/hooks/useHeaderMenuProps.js.map +0 -1
- package/esm/next/components/Header/hooks/useHeaderSorting.d.ts +0 -16
- package/esm/next/components/Header/hooks/useHeaderSorting.d.ts.map +0 -1
- package/esm/next/components/Header/hooks/useHeaderSorting.js +0 -48
- package/esm/next/components/Header/hooks/useHeaderSorting.js.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useHeaderDrilling } from "./useHeaderDrilling.js";
|
|
3
|
+
import { useHeaderMenuAggregations } from "./useHeaderMenuAggregations.js";
|
|
4
|
+
import { useHeaderMenuSorting } from "./useHeaderMenuSorting.js";
|
|
5
|
+
import { useHeaderMenuTextWrapping } from "./useHeaderMenuTextWrapping.js";
|
|
6
|
+
/**
|
|
7
|
+
* Hook for header cell components that handles menu item filtering.
|
|
8
|
+
*
|
|
9
|
+
* @param allowAggregations - Whether aggregation menu items should be included
|
|
10
|
+
* @param allowTextWrapping - Whether text wrapping menu items should be included
|
|
11
|
+
* @param measureIdentifiers - Array of measure identifiers for the cell
|
|
12
|
+
* @param pivotAttributeDescriptors - Array of pivot attribute descriptors
|
|
13
|
+
* @param gridApi - Optional ag-grid API for checking current state
|
|
14
|
+
* @returns Filtered menu items and handlers based on permissions
|
|
15
|
+
*/
|
|
16
|
+
export function useHeaderMenu(options, additionalContext, agGridHeaderParams) {
|
|
17
|
+
const { allowAggregations, allowTextWrapping, allowSorting, allowDrilling } = options;
|
|
18
|
+
const { measureIdentifiers, pivotAttributeDescriptors } = additionalContext;
|
|
19
|
+
// Aggregations
|
|
20
|
+
const { aggregationsItems, handleAggregationsItemClick } = useHeaderMenuAggregations(measureIdentifiers, pivotAttributeDescriptors);
|
|
21
|
+
const sanitizedAggregationProps = allowAggregations
|
|
22
|
+
? { aggregationsItems, handleAggregationsItemClick }
|
|
23
|
+
: { aggregationsItems: [], handleAggregationsItemClick: () => { } };
|
|
24
|
+
// Text wrapping
|
|
25
|
+
const { textWrappingItems, handleTextWrappingItemClick } = useHeaderMenuTextWrapping();
|
|
26
|
+
const sanitizedTextWrappingProps = allowTextWrapping
|
|
27
|
+
? { textWrappingItems, handleTextWrappingItemClick }
|
|
28
|
+
: { textWrappingItems: [], handleTextWrappingItemClick: () => { } };
|
|
29
|
+
// Sorting
|
|
30
|
+
const { sortDirection, sortIndex, sortingItems, handleSortingItemClick, handleProgressSort } = useHeaderMenuSorting(agGridHeaderParams);
|
|
31
|
+
const sanitizedSortingProps = allowSorting
|
|
32
|
+
? { sortingItems, sortDirection, sortIndex, handleSortingItemClick, handleProgressSort }
|
|
33
|
+
: {
|
|
34
|
+
sortingItems: [],
|
|
35
|
+
sortDirection: undefined,
|
|
36
|
+
sortIndex: undefined,
|
|
37
|
+
handleSortingItemClick: () => { },
|
|
38
|
+
handleProgressSort: () => { },
|
|
39
|
+
};
|
|
40
|
+
// Drills
|
|
41
|
+
const { handleHeaderDrill, isDrillable } = useHeaderDrilling(agGridHeaderParams);
|
|
42
|
+
const sanitizedDrillingProps = allowDrilling
|
|
43
|
+
? { handleHeaderDrill, isDrillable }
|
|
44
|
+
: { handleHeaderDrill: () => { }, isDrillable: false };
|
|
45
|
+
const handleHeaderClick = (event) => {
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
event.stopPropagation();
|
|
48
|
+
if (allowSorting) {
|
|
49
|
+
handleProgressSort();
|
|
50
|
+
}
|
|
51
|
+
if (allowDrilling) {
|
|
52
|
+
handleHeaderDrill(event);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const hasMenuItems = [...aggregationsItems, ...textWrappingItems, ...sortingItems].length > 0;
|
|
56
|
+
return {
|
|
57
|
+
...sanitizedAggregationProps,
|
|
58
|
+
...sanitizedTextWrappingProps,
|
|
59
|
+
...sanitizedSortingProps,
|
|
60
|
+
...sanitizedDrillingProps,
|
|
61
|
+
handleHeaderClick,
|
|
62
|
+
hasMenuItems,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=useHeaderMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHeaderMenu.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenu.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CACzB,OAKC,EACD,iBAGC,EACD,kBAA6C;IAE7C,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACtF,MAAM,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,GAAG,iBAAiB,CAAC;IAE5E,eAAe;IACf,MAAM,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,GAAG,yBAAyB,CAChF,kBAAkB,EAClB,yBAAyB,CAC5B,CAAC;IAEF,MAAM,yBAAyB,GAAG,iBAAiB;QAC/C,CAAC,CAAC,EAAE,iBAAiB,EAAE,2BAA2B,EAAE;QACpD,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,2BAA2B,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAEvE,gBAAgB;IAChB,MAAM,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAEvF,MAAM,0BAA0B,GAAG,iBAAiB;QAChD,CAAC,CAAC,EAAE,iBAAiB,EAAE,2BAA2B,EAAE;QACpD,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,2BAA2B,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAEvE,UAAU;IACV,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,GACxF,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,YAAY;QACtC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,kBAAkB,EAAE;QACxF,CAAC,CAAC;YACI,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE,SAAS;YACpB,sBAAsB,EAAE,GAAG,EAAE,GAAE,CAAC;YAChC,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;SAC/B,CAAC;IAER,SAAS;IACT,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAEjF,MAAM,sBAAsB,GAAG,aAAa;QACxC,CAAC,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE;QACpC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAE1D,MAAM,iBAAiB,GAAG,CAAC,KAAiC,EAAE,EAAE;QAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,YAAY,EAAE,CAAC;YACf,kBAAkB,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE9F,OAAO;QACH,GAAG,yBAAyB;QAC5B,GAAG,0BAA0B;QAC7B,GAAG,qBAAqB;QACxB,GAAG,sBAAsB;QACzB,iBAAiB;QACjB,YAAY;KACf,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IAttributeDescriptor } from "@gooddata/sdk-model";
|
|
2
|
+
import { IAggregationsSubMenuItem } from "../../types/menu.js";
|
|
3
|
+
/**
|
|
4
|
+
* Hook for header cell components that handles menu items and callbacks.
|
|
5
|
+
*
|
|
6
|
+
* @param measureIdentifiers - Array of measure identifiers for the cell
|
|
7
|
+
* @param pivotAttributeDescriptors - Array of pivot attribute descriptors
|
|
8
|
+
* @param gridApi - Optional ag-grid API for checking current text wrapping state
|
|
9
|
+
* @returns Menu items and callbacks
|
|
10
|
+
*/
|
|
11
|
+
export declare const useHeaderMenuAggregations: (measureIdentifiers: string[], pivotAttributeDescriptors: IAttributeDescriptor[]) => {
|
|
12
|
+
aggregationsItems: import("../../types/menu.js").IAggregationsMenuItem[];
|
|
13
|
+
handleAggregationsItemClick: (item: IAggregationsSubMenuItem) => void;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useHeaderMenuAggregations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHeaderMenuAggregations.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuAggregations.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,oBAAoB,EAOvB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG/D;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,GAClC,oBAAoB,MAAM,EAAE,EAC5B,2BAA2B,oBAAoB,EAAE;;wCAwCN,wBAAwB;CAUtE,CAAC"}
|
|
@@ -2,14 +2,11 @@
|
|
|
2
2
|
import { useIntl } from "react-intl";
|
|
3
3
|
import { isMeasureValueFilter, isRankingFilter, measureValueFilterCondition, } from "@gooddata/sdk-model";
|
|
4
4
|
import { BucketNames, isAttributeColumnDefinition } from "@gooddata/sdk-ui";
|
|
5
|
-
import { messages } from "
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { useUpdateTotals } from "../../../hooks/totals/useUpdateTotals.js";
|
|
11
|
-
import { constructAggregationsMenuItems } from "../utils/constructAggregationsMenuItems.js";
|
|
12
|
-
import { constructTextWrappingMenuItems } from "../utils/constructTextWrappingMenuItems.js";
|
|
5
|
+
import { messages } from "../../../locales.js";
|
|
6
|
+
import { constructAggregationsMenuItems } from "../../components/Header/utils/constructAggregationsMenuItems.js";
|
|
7
|
+
import { useCurrentDataView } from "../../context/CurrentDataViewContext.js";
|
|
8
|
+
import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
|
|
9
|
+
import { useUpdateTotals } from "../totals/useUpdateTotals.js";
|
|
13
10
|
/**
|
|
14
11
|
* Hook for header cell components that handles menu items and callbacks.
|
|
15
12
|
*
|
|
@@ -18,13 +15,11 @@ import { constructTextWrappingMenuItems } from "../utils/constructTextWrappingMe
|
|
|
18
15
|
* @param gridApi - Optional ag-grid API for checking current text wrapping state
|
|
19
16
|
* @returns Menu items and callbacks
|
|
20
17
|
*/
|
|
21
|
-
export const
|
|
18
|
+
export const useHeaderMenuAggregations = (measureIdentifiers, pivotAttributeDescriptors) => {
|
|
22
19
|
const intl = useIntl();
|
|
23
20
|
const { currentDataView } = useCurrentDataView();
|
|
24
21
|
const { config, execution, rows, columns } = usePivotTableProps();
|
|
25
|
-
const { onUpdateTextWrapping } = useUpdateTextWrapping();
|
|
26
22
|
const { onUpdateTotals } = useUpdateTotals();
|
|
27
|
-
const getCurrentTextWrapping = useGetDefaultTextWrapping();
|
|
28
23
|
const { rowTotals, columnTotals } = getTotalsFromExecutionDefinition(execution.definition);
|
|
29
24
|
const tableData = currentDataView?.data().asTable();
|
|
30
25
|
const rowAttributeDescriptors = tableData?.columnDefinitions
|
|
@@ -44,27 +39,9 @@ export const useHeaderMenuProps = (measureIdentifiers, pivotAttributeDescriptors
|
|
|
44
39
|
const currentTotals = item.isColumn ? columnTotals : rowTotals;
|
|
45
40
|
onUpdateTotals(currentTotals, item.totalDefinitions, item.isActive, item.isColumn);
|
|
46
41
|
};
|
|
47
|
-
const currentTextWrapping = getCurrentTextWrapping(gridApi, config.textWrapping);
|
|
48
|
-
const textWrappingItems = constructTextWrappingMenuItems({ textWrapping: currentTextWrapping }, intl);
|
|
49
|
-
const handleTextWrappingItemClick = (item) => {
|
|
50
|
-
const effectiveItem = textWrappingItems.find((i) => i.id === item.id);
|
|
51
|
-
if (!effectiveItem) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const isHeaderItem = effectiveItem.id === "header";
|
|
55
|
-
const newTextWrapping = {
|
|
56
|
-
...currentTextWrapping,
|
|
57
|
-
...(isHeaderItem
|
|
58
|
-
? { wrapHeaderText: !effectiveItem.isActive }
|
|
59
|
-
: { wrapText: !effectiveItem.isActive }),
|
|
60
|
-
};
|
|
61
|
-
onUpdateTextWrapping(newTextWrapping, gridApi);
|
|
62
|
-
};
|
|
63
42
|
return {
|
|
64
43
|
aggregationsItems,
|
|
65
44
|
handleAggregationsItemClick,
|
|
66
|
-
textWrappingItems,
|
|
67
|
-
handleTextWrappingItemClick,
|
|
68
45
|
};
|
|
69
46
|
};
|
|
70
47
|
/**
|
|
@@ -92,4 +69,4 @@ function getTotalsFromBucket(buckets, bucketName) {
|
|
|
92
69
|
const selectedBucket = buckets.find((bucket) => bucket.localIdentifier === bucketName);
|
|
93
70
|
return selectedBucket?.totals ?? [];
|
|
94
71
|
}
|
|
95
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=useHeaderMenuAggregations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHeaderMenuAggregations.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuAggregations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AgGridHeaderParams } from "../../types/agGrid.js";
|
|
2
|
+
import { ISortingMenuItem } from "../../types/menu.js";
|
|
3
|
+
/**
|
|
4
|
+
* Renderer for attribute header.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useHeaderMenuSorting(params: AgGridHeaderParams | null): {
|
|
7
|
+
sortDirection: import("ag-grid-community").SortDirection | undefined;
|
|
8
|
+
sortIndex: number | undefined;
|
|
9
|
+
sortingItems: ISortingMenuItem[];
|
|
10
|
+
handleSortingItemClick: (item: ISortingMenuItem) => void;
|
|
11
|
+
handleProgressSort: () => void;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useHeaderMenuSorting.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useIntl } from "react-intl";
|
|
4
|
+
import { messages } from "../../../locales.js";
|
|
5
|
+
import { getSortModel } from "../../features/sorting/agGridSortingApi.js";
|
|
6
|
+
/**
|
|
7
|
+
* Renderer for attribute header.
|
|
8
|
+
*/
|
|
9
|
+
export function useHeaderMenuSorting(params) {
|
|
10
|
+
const intl = useIntl();
|
|
11
|
+
const colDef = params?.column.getColDef();
|
|
12
|
+
const allowSorting = !!colDef?.sortable;
|
|
13
|
+
// 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 sanitizedSortIndex = sortModel.length > 1 ? sortIndex : undefined; // Show sort index only in case there is multi-sort
|
|
18
|
+
// Direct sort setter for menu interactions
|
|
19
|
+
const handleSetSort = useCallback((direction) => {
|
|
20
|
+
params?.setSort(direction, true);
|
|
21
|
+
}, [params]);
|
|
22
|
+
const sortingItems = allowSorting
|
|
23
|
+
? [
|
|
24
|
+
{
|
|
25
|
+
type: "sorting",
|
|
26
|
+
id: "sort-asc",
|
|
27
|
+
direction: "asc",
|
|
28
|
+
title: intl.formatMessage(messages["sortAscending"]),
|
|
29
|
+
isActive: sortDirection === "asc",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: "sorting",
|
|
33
|
+
id: "sort-desc",
|
|
34
|
+
direction: "desc",
|
|
35
|
+
title: intl.formatMessage(messages["sortDescending"]),
|
|
36
|
+
isActive: sortDirection === "desc",
|
|
37
|
+
},
|
|
38
|
+
]
|
|
39
|
+
: [];
|
|
40
|
+
const handleSortingItemClick = (item) => {
|
|
41
|
+
if (!allowSorting) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (item.direction === sortDirection) {
|
|
45
|
+
handleSetSort(null);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
handleSetSort(item.direction);
|
|
49
|
+
};
|
|
50
|
+
const handleProgressSort = useCallback(() => {
|
|
51
|
+
params?.progressSort(true);
|
|
52
|
+
}, [params]);
|
|
53
|
+
return params
|
|
54
|
+
? {
|
|
55
|
+
sortDirection,
|
|
56
|
+
sortIndex: sanitizedSortIndex,
|
|
57
|
+
sortingItems,
|
|
58
|
+
handleSortingItemClick,
|
|
59
|
+
handleProgressSort,
|
|
60
|
+
}
|
|
61
|
+
: {
|
|
62
|
+
sortDirection: undefined,
|
|
63
|
+
sortIndex: undefined,
|
|
64
|
+
sortingItems: [],
|
|
65
|
+
handleSortingItemClick: () => { },
|
|
66
|
+
handleProgressSort: () => { },
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=useHeaderMenuSorting.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITextWrappingMenuItem } from "../../types/menu.js";
|
|
2
|
+
/**
|
|
3
|
+
* Hook for header cell components that handles menu items and callbacks.
|
|
4
|
+
*
|
|
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
|
|
8
|
+
* @returns Menu items and callbacks
|
|
9
|
+
*/
|
|
10
|
+
export declare const useHeaderMenuTextWrapping: () => {
|
|
11
|
+
textWrappingItems: ITextWrappingMenuItem[];
|
|
12
|
+
handleTextWrappingItemClick: (item: ITextWrappingMenuItem) => void;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useHeaderMenuTextWrapping.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
3
|
+
import { constructTextWrappingMenuItems } from "../../components/Header/utils/constructTextWrappingMenuItems.js";
|
|
4
|
+
import { useAgGridApi } from "../../context/AgGridApiContext.js";
|
|
5
|
+
import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
|
|
6
|
+
import { useGetDefaultTextWrapping } from "../textWrapping/useGetDefaultTextWrapping.js";
|
|
7
|
+
import { useUpdateTextWrapping } from "../textWrapping/useUpdateTextWrapping.js";
|
|
8
|
+
/**
|
|
9
|
+
* Hook for header cell components that handles menu items and callbacks.
|
|
10
|
+
*
|
|
11
|
+
* @param measureIdentifiers - Array of measure identifiers for the cell
|
|
12
|
+
* @param pivotAttributeDescriptors - Array of pivot attribute descriptors
|
|
13
|
+
* @param gridApi - Optional ag-grid API for checking current text wrapping state
|
|
14
|
+
* @returns Menu items and callbacks
|
|
15
|
+
*/
|
|
16
|
+
export const useHeaderMenuTextWrapping = () => {
|
|
17
|
+
const intl = useIntl();
|
|
18
|
+
const { config } = usePivotTableProps();
|
|
19
|
+
const { agGridApi } = useAgGridApi();
|
|
20
|
+
const { onUpdateTextWrapping } = useUpdateTextWrapping();
|
|
21
|
+
const getCurrentTextWrapping = useGetDefaultTextWrapping();
|
|
22
|
+
const currentTextWrapping = getCurrentTextWrapping(agGridApi, config.textWrapping);
|
|
23
|
+
const textWrappingItems = constructTextWrappingMenuItems({ textWrapping: currentTextWrapping }, intl);
|
|
24
|
+
const handleTextWrappingItemClick = (item) => {
|
|
25
|
+
const effectiveItem = textWrappingItems.find((i) => i.id === item.id);
|
|
26
|
+
if (!effectiveItem) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const isHeaderItem = effectiveItem.id === "header";
|
|
30
|
+
const newTextWrapping = {
|
|
31
|
+
...currentTextWrapping,
|
|
32
|
+
...(isHeaderItem
|
|
33
|
+
? { wrapHeaderText: !effectiveItem.isActive }
|
|
34
|
+
: { wrapText: !effectiveItem.isActive }),
|
|
35
|
+
};
|
|
36
|
+
onUpdateTextWrapping(newTextWrapping, agGridApi);
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
textWrappingItems,
|
|
40
|
+
handleTextWrappingItemClick,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=useHeaderMenuTextWrapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHeaderMenuTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/header/useHeaderMenuTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iEAAiE,CAAC;AACjH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IACrC,MAAM,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACzD,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAE3D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC,CAAC;IAEtG,MAAM,2BAA2B,GAAG,CAAC,IAA2B,EAAE,EAAE;QAChE,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,KAAK,QAAQ,CAAC;QACnD,MAAM,eAAe,GAAG;YACpB,GAAG,mBAAmB;YACtB,GAAG,CAAC,YAAY;gBACZ,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC7C,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;SAC/C,CAAC;QAEF,oBAAoB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO;QACH,iBAAiB;QACjB,2BAA2B;KAC9B,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSyncSort.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/sorting/useSyncSort.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"useSyncSort.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/sorting/useSyncSort.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,WAAW,SAmC1B"}
|
|
@@ -16,16 +16,22 @@ export function useSyncSort() {
|
|
|
16
16
|
const { agGridApi } = useAgGridApi();
|
|
17
17
|
useEffect(() => {
|
|
18
18
|
if (agGridApi) {
|
|
19
|
-
const updatedSortModel = sortItemsToSortModel(sortBy, columnDefinitionByColId, columnHeadersPosition);
|
|
19
|
+
const updatedSortModel = sortItemsToSortModel(sortBy, columnDefinitionByColId, columnHeadersPosition).filter(Boolean);
|
|
20
20
|
const currentState = agGridApi.getColumnState();
|
|
21
21
|
const updatedState = currentState.map((col) => {
|
|
22
|
+
const sortModelItem = updatedSortModel.find((sort) => sort.colId === col.colId);
|
|
23
|
+
const sortIndex = sortModelItem ? updatedSortModel.indexOf(sortModelItem) : undefined;
|
|
22
24
|
return {
|
|
23
25
|
...col,
|
|
24
|
-
sort:
|
|
26
|
+
sort: sortModelItem?.sort ?? null,
|
|
27
|
+
// Apply sortIndex to preserve multi-sort order
|
|
28
|
+
...(sortIndex !== undefined && { sortIndex }),
|
|
25
29
|
};
|
|
26
30
|
});
|
|
27
31
|
agGridApi.applyColumnState({
|
|
28
32
|
state: updatedState,
|
|
33
|
+
// Clear sorts for columns not in the sort model
|
|
34
|
+
defaultState: { sort: null },
|
|
29
35
|
});
|
|
30
36
|
}
|
|
31
37
|
}, [agGridApi, sortBy, columnDefinitionByColId, columnHeadersPosition, pushData]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSyncSort.js","sourceRoot":"","sources":["../../../../src/next/hooks/sorting/useSyncSort.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1D,MAAM,EAAE,uBAAuB,EAAE,GAAG,aAAa,EAAE,CAAC;IACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEzC,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,gBAAgB,GAAG,oBAAoB,CACzC,MAAM,EACN,uBAAuB,EACvB,qBAAqB,CACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSyncSort.js","sourceRoot":"","sources":["../../../../src/next/hooks/sorting/useSyncSort.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1D,MAAM,EAAE,uBAAuB,EAAE,GAAG,aAAa,EAAE,CAAC;IACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEzC,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,gBAAgB,GAAG,oBAAoB,CACzC,MAAM,EACN,uBAAuB,EACvB,qBAAqB,CACxB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElB,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChF,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEtF,OAAO;oBACH,GAAG,GAAG;oBACN,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,IAAI;oBACjC,+CAA+C;oBAC/C,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;iBAChD,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,gBAAgB,CAAC;gBACvB,KAAK,EAAE,YAAY;gBACnB,gDAAgD;gBAChD,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aAC/B,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC"}
|
|
@@ -5,5 +5,5 @@ import { ITextWrapping } from "../../types/textWrapping.js";
|
|
|
5
5
|
*
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export declare function useGetDefaultTextWrapping(): (gridApi: AgGridApi |
|
|
8
|
+
export declare function useGetDefaultTextWrapping(): (gridApi: AgGridApi | null, configDefaults?: ITextWrapping) => ITextWrapping;
|
|
9
9
|
//# sourceMappingURL=useGetDefaultTextWrapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetDefaultTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useGetDefaultTextWrapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGetDefaultTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useGetDefaultTextWrapping.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,yBAAyB,cACR,SAAS,GAAG,IAAI,mBAAmB,aAAa,KAAG,aAAa,CAYhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetDefaultTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useGetDefaultTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
|
1
|
+
{"version":3,"file":"useGetDefaultTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useGetDefaultTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAKpC;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACrC,OAAO,WAAW,CAAC,CAAC,OAAyB,EAAE,cAA8B,EAAiB,EAAE;QAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,cAAc,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAEnE,OAAO;YACH,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC,cAAc;YAC9C,QAAQ,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ;SACrC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -19,6 +19,6 @@ import { ITextWrapping } from "../../types/textWrapping.js";
|
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
21
|
export declare function useUpdateTextWrapping(): {
|
|
22
|
-
onUpdateTextWrapping: (newTextWrapping: ITextWrapping, gridApi
|
|
22
|
+
onUpdateTextWrapping: (newTextWrapping: ITextWrapping, gridApi: AgGridApi | null) => void;
|
|
23
23
|
};
|
|
24
24
|
//# sourceMappingURL=useUpdateTextWrapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB;4CAOX,aAAa,
|
|
1
|
+
{"version":3,"file":"useUpdateTextWrapping.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAmB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB;4CAOX,aAAa,WAAW,SAAS,GAAG,IAAI;EA+CjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAC;IACjE,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,MAAM,oBAAoB,GAAG,WAAW,CACpC,CAAC,eAA8B,EAAE,
|
|
1
|
+
{"version":3,"file":"useUpdateTextWrapping.js","sourceRoot":"","sources":["../../../../src/next/hooks/textWrapping/useUpdateTextWrapping.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAEpF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC1C,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,yBAAyB,GAAG,4BAA4B,EAAE,CAAC;IACjE,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,MAAM,oBAAoB,GAAG,WAAW,CACpC,CAAC,eAA8B,EAAE,OAAyB,EAAE,EAAE;QAC1D,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC5C,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;YAExD,0FAA0F;YAC1F,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;gBAE7C,OAAO;oBACH,GAAG,MAAM;oBACT,QAAQ;oBACR,cAAc;oBACd,8EAA8E;oBAC9E,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,cAAc;oBAChC,sFAAsF;oBACtF,KAAK,EAAE,YAAY;iBACtB,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAI,cAAc,EAAE,CAAC;gBACjB,sBAAsB,CAAC,cAAmC,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YAED,iFAAiF;YACjF,yBAAyB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC;gBACL,UAAU,EAAE;oBACR,QAAQ,EAAE;wBACN,YAAY,EAAE,eAAe;qBAChC;iBACJ;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAClF,CAAC;IAEF,OAAO;QACH,oBAAoB;KACvB,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTotals.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/totals/useUpdateTotals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUpdateTotals.d.ts","sourceRoot":"","sources":["../../../../src/next/hooks/totals/useUpdateTotals.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO7C;;;;;GAKG;AACH,wBAAgB,eAAe;oCAIP,MAAM,EAAE,oBAAoB,MAAM,EAAE,YAAY,OAAO,YAAY,OAAO;EAsCjG"}
|
|
@@ -3,6 +3,7 @@ import { useCallback } from "react";
|
|
|
3
3
|
import { isEqual, uniqWith } from "lodash-es";
|
|
4
4
|
import { BucketNames } from "@gooddata/sdk-ui";
|
|
5
5
|
import { usePivotTableProps } from "../../context/PivotTablePropsContext.js";
|
|
6
|
+
import { orderTotals } from "../../features/aggregations/ordering.js";
|
|
6
7
|
import { sanitizeTotals } from "../../features/aggregations/sanitization.js";
|
|
7
8
|
/**
|
|
8
9
|
* Manages totals updates and communicates changes externally.
|
|
@@ -17,20 +18,22 @@ export function useUpdateTotals() {
|
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
// Update total definitions based on current state
|
|
20
|
-
const
|
|
21
|
+
const updatedTotals = isActive
|
|
21
22
|
? currentTotals.filter((total) => !totalDefinitions.some((def) => isEqual(def, total)))
|
|
22
23
|
: uniqWith([...currentTotals, ...totalDefinitions], isEqual);
|
|
24
|
+
// Apply consistent ordering to ensure external consumers receive properly ordered totals
|
|
25
|
+
const orderedTotals = orderTotals(updatedTotals);
|
|
23
26
|
if (isColumn) {
|
|
24
27
|
pushData({
|
|
25
28
|
properties: {
|
|
26
|
-
totals:
|
|
29
|
+
totals: orderedTotals,
|
|
27
30
|
bucketType: BucketNames.COLUMNS,
|
|
28
31
|
},
|
|
29
32
|
});
|
|
30
33
|
}
|
|
31
34
|
else {
|
|
32
|
-
// Sanitize totals for row totals (attribute bucket)
|
|
33
|
-
const sanitizedTotals = sanitizeTotals(execution.definition,
|
|
35
|
+
// Sanitize totals for row totals (attribute bucket) and ensure ordering is maintained
|
|
36
|
+
const sanitizedTotals = orderTotals(sanitizeTotals(execution.definition, orderedTotals));
|
|
34
37
|
pushData({
|
|
35
38
|
properties: {
|
|
36
39
|
totals: sanitizedTotals,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateTotals.js","sourceRoot":"","sources":["../../../../src/next/hooks/totals/useUpdateTotals.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
|
1
|
+
{"version":3,"file":"useUpdateTotals.js","sourceRoot":"","sources":["../../../../src/next/hooks/totals/useUpdateTotals.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAErD,MAAM,cAAc,GAAG,WAAW,CAC9B,CAAC,aAAuB,EAAE,gBAA0B,EAAE,QAAiB,EAAE,QAAiB,EAAE,EAAE;QAC1F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QAED,kDAAkD;QAClD,MAAM,aAAa,GAAG,QAAQ;YAC1B,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACvF,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;QAEjE,yFAAyF;QACzF,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC;gBACL,UAAU,EAAE;oBACR,MAAM,EAAE,aAAa;oBACrB,UAAU,EAAE,WAAW,CAAC,OAAO;iBAClC;aACJ,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,sFAAsF;YACtF,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;YAEzF,QAAQ,CAAC;gBACL,UAAU,EAAE;oBACR,MAAM,EAAE,eAAe;oBACvB,UAAU,EAAE,WAAW,CAAC,SAAS;iBACpC;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CACnC,CAAC;IAEF,OAAO;QACH,cAAc;KACjB,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDrillingProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useDrillingProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDrillingProps.d.ts","sourceRoot":"","sources":["../../../src/next/hooks/useDrillingProps.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAmB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGlE;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,WAAW,KAAK,WAAW,CA0GjF"}
|
|
@@ -4,6 +4,7 @@ import { UnexpectedSdkError, VisualizationTypes, } from "@gooddata/sdk-ui";
|
|
|
4
4
|
import { isEnterKey, isSpaceKey } from "@gooddata/sdk-ui-kit";
|
|
5
5
|
import { useCurrentDataView } from "../context/CurrentDataViewContext.js";
|
|
6
6
|
import { usePivotTableProps } from "../context/PivotTablePropsContext.js";
|
|
7
|
+
import { createCustomDrillEvent } from "../features/drilling/events.js";
|
|
7
8
|
import { createDrillIntersection } from "../features/drilling/intersection.js";
|
|
8
9
|
import { isCellDrillable } from "../features/drilling/isDrillable.js";
|
|
9
10
|
/**
|
|
@@ -49,11 +50,7 @@ export function useDrillingProps() {
|
|
|
49
50
|
drillContext,
|
|
50
51
|
};
|
|
51
52
|
if (onDrill(drillEvent)) {
|
|
52
|
-
|
|
53
|
-
const customEvent = new CustomEvent("drill", {
|
|
54
|
-
detail: drillEvent,
|
|
55
|
-
bubbles: true,
|
|
56
|
-
});
|
|
53
|
+
const customEvent = createCustomDrillEvent(drillEvent);
|
|
57
54
|
event.event?.target?.dispatchEvent(customEvent);
|
|
58
55
|
return true;
|
|
59
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDrillingProps.js","sourceRoot":"","sources":["../../../src/next/hooks/useDrillingProps.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAiB,WAAW,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,EAGH,kBAAkB,EAClB,kBAAkB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAItE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC5B,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACzD,MAAM,EAAE,eAAe,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEjD,MAAM,aAAa,GAAG,WAAW,CAC7B,CACI,KAEoD,EACtD,EAAE;QACA,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAyB,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,CAAC;YACrF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAEzC,+BAA+B;QAC/B,MAAM,YAAY,GAA4B;YAC1C,IAAI,EAAE,kBAAkB,CAAC,KAAK;YAC9B,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,QAAQ;YAClB,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,YAAY,EAAE,uBAAuB,CAAC,MAAyB,EAAE,IAAI,CAAC;SACzE,CAAC;QAEF,uDAAuD;QACvD,MAAM,UAAU,GAAgB;YAC5B,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,YAAY;SACf,CAAC;QAEF,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,
|
|
1
|
+
{"version":3,"file":"useDrillingProps.js","sourceRoot":"","sources":["../../../src/next/hooks/useDrillingProps.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,4 +51,12 @@ export type AgGridHeaderParams = IHeaderParams<AgGridRowData, string | null>;
|
|
|
51
51
|
* @internal
|
|
52
52
|
*/
|
|
53
53
|
export type AgGridHeaderGroupParams = IHeaderGroupParams<AgGridRowData, string | null>;
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
* Checks if the column definition is a column group definition
|
|
57
|
+
*
|
|
58
|
+
* @param colDef - The column definition
|
|
59
|
+
* @returns true if the column definition is a column group definition, false otherwise
|
|
60
|
+
*/
|
|
61
|
+
export declare const isAgGridColumnGroupDef: (colDef: unknown) => colDef is AgGridColumnGroupDef;
|
|
54
62
|
//# sourceMappingURL=agGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agGrid.d.ts","sourceRoot":"","sources":["../../../src/next/types/agGrid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agGrid.d.ts","sourceRoot":"","sources":["../../../src/next/types/agGrid.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EACN,WAAW,EACX,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG;IACjC,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG;IAClF,OAAO,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG;IAC7E,OAAO,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,WAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAEhG;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,OAAO,KAAG,MAAM,IAAI,oBAElE,CAAC"}
|
package/esm/next/types/agGrid.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* Checks if the column definition is a column group definition
|
|
5
|
+
*
|
|
6
|
+
* @param colDef - The column definition
|
|
7
|
+
* @returns true if the column definition is a column group definition, false otherwise
|
|
8
|
+
*/
|
|
9
|
+
export const isAgGridColumnGroupDef = (colDef) => {
|
|
10
|
+
return colDef !== undefined && colDef !== null && colDef.children !== undefined;
|
|
11
|
+
};
|
|
2
12
|
//# sourceMappingURL=agGrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agGrid.js","sourceRoot":"","sources":["../../../src/next/types/agGrid.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"agGrid.js","sourceRoot":"","sources":["../../../src/next/types/agGrid.ts"],"names":[],"mappings":"AAAA,gCAAgC;AA6EhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAAkC,EAAE;IACtF,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAK,MAA+B,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9G,CAAC,CAAC"}
|
package/esm/next/types/menu.d.ts
CHANGED
|
@@ -89,4 +89,16 @@ export interface ITextWrappingMenuItem {
|
|
|
89
89
|
title: string;
|
|
90
90
|
isActive: boolean;
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Sorting menu item. Represents a single sorting option entry.
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
export interface ISortingMenuItem {
|
|
98
|
+
type: "sorting";
|
|
99
|
+
id: string;
|
|
100
|
+
title: string;
|
|
101
|
+
isActive: boolean;
|
|
102
|
+
direction: "asc" | "desc" | null;
|
|
103
|
+
}
|
|
92
104
|
//# sourceMappingURL=menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/next/types/menu.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/next/types/menu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,KAAK;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAE/B;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC"}
|
package/esm/next/types/menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/next/types/menu.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/next/types/menu.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
|