@gooddata/sdk-ui-pivot 11.13.0-alpha.6 → 11.14.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/next/PivotTableNext.d.ts.map +1 -1
- package/esm/next/PivotTableNext.js +16 -5
- package/esm/next/PivotTableNext.js.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.d.ts.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js +13 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js.map +1 -1
- package/esm/next/context/HeaderMenuContext.d.ts +27 -0
- package/esm/next/context/HeaderMenuContext.d.ts.map +1 -0
- package/esm/next/context/HeaderMenuContext.js +28 -0
- package/esm/next/context/HeaderMenuContext.js.map +1 -0
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotTableNext.d.ts","sourceRoot":"","sources":["../../src/next/PivotTableNext.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PivotTableNext.d.ts","sourceRoot":"","sources":["../../src/next/PivotTableNext.tsx"],"names":[],"mappings":"AA+BA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,oBAAoB,2CAKzD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,wBAAwB,2CAkB3E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025 GoodData Corporation
|
|
3
|
-
import { useCallback, useEffect, useMemo } from "react";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
4
4
|
import { AllEnterpriseModule, LicenseManager, ModuleRegistry } from "ag-grid-enterprise";
|
|
5
5
|
import { AgGridReact } from "ag-grid-react";
|
|
6
6
|
import { IntlWrapper } from "@gooddata/sdk-ui";
|
|
@@ -14,6 +14,7 @@ import { AgGridApiProvider, useAgGridApi } from "./context/AgGridApiContext.js";
|
|
|
14
14
|
import { ColumnDefsProvider } from "./context/ColumnDefsContext.js";
|
|
15
15
|
import { CurrentDataViewProvider } from "./context/CurrentDataViewContext.js";
|
|
16
16
|
import { DrillableItemsRefProvider } from "./context/DrillableItemsRefContext.js";
|
|
17
|
+
import { HeaderMenuProvider } from "./context/HeaderMenuContext.js";
|
|
17
18
|
import { InitialExecutionContextProvider } from "./context/InitialExecutionContext.js";
|
|
18
19
|
import { PivotTablePropsProvider, usePivotTableProps } from "./context/PivotTablePropsContext.js";
|
|
19
20
|
import { RuntimeErrorProvider, useRuntimeError } from "./context/RuntimeErrorContext.js";
|
|
@@ -76,7 +77,7 @@ function PivotTableNextWithInitialization() {
|
|
|
76
77
|
return _jsx(ErrorComponent, { error: error });
|
|
77
78
|
}
|
|
78
79
|
const { initialExecutionResult, initialDataView } = result;
|
|
79
|
-
return (_jsx(InitialExecutionContextProvider, { initialExecutionResult: initialExecutionResult, initialDataView: initialDataView, children: _jsx(TableReadyProvider, { children: _jsx(DrillableItemsRefProvider, { children: _jsx(ColumnDefsProvider, { children: _jsx(RenderPivotTableNextAgGrid, {}) }) }) }) }));
|
|
80
|
+
return (_jsx(InitialExecutionContextProvider, { initialExecutionResult: initialExecutionResult, initialDataView: initialDataView, children: _jsx(TableReadyProvider, { children: _jsx(DrillableItemsRefProvider, { children: _jsx(ColumnDefsProvider, { children: _jsx(HeaderMenuProvider, { children: _jsx(RenderPivotTableNextAgGrid, {}) }) }) }) }) }));
|
|
80
81
|
}
|
|
81
82
|
function RenderPivotTableNextAgGrid() {
|
|
82
83
|
const agGridReactProps = useAgGridReactProps();
|
|
@@ -94,9 +95,19 @@ function RenderPivotTableNextAgGrid() {
|
|
|
94
95
|
AllEnterpriseModule,
|
|
95
96
|
]);
|
|
96
97
|
}, []);
|
|
97
|
-
const
|
|
98
|
-
|
|
98
|
+
const isResizingRef = useRef(false);
|
|
99
|
+
// Prevent interactions during column resize
|
|
100
|
+
const stopEventOnResize = (e) => {
|
|
99
101
|
if (e.target?.className?.includes?.("ag-header-cell-resize")) {
|
|
102
|
+
isResizingRef.current = true;
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
e.stopPropagation();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
// Prevent events that happen after a resize operation
|
|
108
|
+
const stopEventAfterResize = (e) => {
|
|
109
|
+
if (isResizingRef.current) {
|
|
110
|
+
isResizingRef.current = false;
|
|
100
111
|
e.preventDefault();
|
|
101
112
|
e.stopPropagation();
|
|
102
113
|
}
|
|
@@ -125,7 +136,7 @@ function RenderPivotTableNextAgGrid() {
|
|
|
125
136
|
return (_jsx("div", { ref: (element) => {
|
|
126
137
|
if (element)
|
|
127
138
|
setContainerWidth(element.clientWidth);
|
|
128
|
-
}, className: b(), style: containerStyle, onMouseDown:
|
|
139
|
+
}, className: b(), style: containerStyle, onMouseDown: stopEventOnResize, onDragStart: stopEventOnResize, onClick: stopEventAfterResize, onBlur: handleBlur, ...getPivotContainerTestIdProps(isReadyForInitialPaint), children: _jsx(AgGridReact, { ...agGridReactProps }, gridKey) }));
|
|
129
140
|
} }));
|
|
130
141
|
}
|
|
131
142
|
//# sourceMappingURL=PivotTableNext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotTableNext.js","sourceRoot":"","sources":["../../src/next/PivotTableNext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAyC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotTableNext.js","sourceRoot":"","sources":["../../src/next/PivotTableNext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Header/HeaderCell/HeaderMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HeaderMenu.d.ts","sourceRoot":"","sources":["../../../../../src/next/components/Header/HeaderCell/HeaderMenu.tsx"],"names":[],"mappings":"AAaA,OAAO,EACH,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC7B,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,uBAAuB,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAClE,uBAAuB,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/D,kBAAkB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAmBD,wBAAgB,UAAU,CAAC,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,mBAA2B,GAC9B,EAAE,gBAAgB,2CAsGlB"}
|
|
@@ -5,6 +5,7 @@ import { useIntl } from "react-intl";
|
|
|
5
5
|
import { Dropdown, UiIcon, UiMenu, useOverlayZIndexWithRegister } from "@gooddata/sdk-ui-kit";
|
|
6
6
|
import { HeaderInteractiveItem, buildUiMenuItems } from "./HeaderMenuComponents.js";
|
|
7
7
|
import { messages } from "../../../../locales.js";
|
|
8
|
+
import { useHeaderMenuContext } from "../../../context/HeaderMenuContext.js";
|
|
8
9
|
import { e } from "../../../features/styling/bem.js";
|
|
9
10
|
import { getPivotHeaderMenuButtonTestIdProps } from "../../../testing/dataTestIdGenerators.js";
|
|
10
11
|
function MenuToggler({ onClick }) {
|
|
@@ -15,6 +16,11 @@ export function HeaderMenu({ aggregationsItems, textWrappingItems, sortingItems,
|
|
|
15
16
|
const intl = useIntl();
|
|
16
17
|
const toggleDropdownRef = useRef(null);
|
|
17
18
|
const prevIsMenuOpenedRef = useRef(isMenuOpened);
|
|
19
|
+
const { activeMenuCloseRef, closeActiveMenu } = useHeaderMenuContext();
|
|
20
|
+
// Register close function when menu is open
|
|
21
|
+
if (isMenuOpened) {
|
|
22
|
+
activeMenuCloseRef.current = () => onMenuOpenedChange(false);
|
|
23
|
+
}
|
|
18
24
|
const uiMenuItems = useMemo(() => buildUiMenuItems(aggregationsItems, textWrappingItems, sortingItems, intl), [aggregationsItems, textWrappingItems, sortingItems, intl]);
|
|
19
25
|
// When isMenuOpened changes from parent and we have the toggle function,
|
|
20
26
|
// use it instead of relying on prop changes alone
|
|
@@ -43,13 +49,19 @@ export function HeaderMenu({ aggregationsItems, textWrappingItems, sortingItems,
|
|
|
43
49
|
const opened = typeof desired === "boolean" ? desired : !isMenuOpened;
|
|
44
50
|
onMenuOpenedChange(opened);
|
|
45
51
|
}, [isMenuOpened, onMenuOpenedChange]);
|
|
52
|
+
// Handle menu button click - close other menus, then toggle this one
|
|
53
|
+
const handleButtonClick = useCallback((e) => {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
closeActiveMenu();
|
|
56
|
+
onMenuOpenedChange(!isMenuOpened);
|
|
57
|
+
}, [isMenuOpened, closeActiveMenu, onMenuOpenedChange]);
|
|
46
58
|
const overlayZIndex = useOverlayZIndexWithRegister();
|
|
47
59
|
return (_jsx("div", { className: e("header-cell-menu-button-wrapper"), children: _jsx(Dropdown, { isOpen: isMenuOpened, onToggle: handleToggle, closeOnEscape: true, closeOnOutsideClick: true, closeOnParentScroll: true, overlayPositionType: "sameAsTarget", alignPoints: [
|
|
48
60
|
{ align: "bl tl", offset: { x: -10, y: 16 } },
|
|
49
61
|
{ align: "br tr", offset: { x: -10, y: 16 } },
|
|
50
62
|
], accessibilityConfig: { triggerRole: "button", popupRole: "dialog" }, overlayZIndex: overlayZIndex, autofocusOnOpen: isKeyboardTriggered, renderButton: ({ toggleDropdown }) => {
|
|
51
63
|
toggleDropdownRef.current = toggleDropdown;
|
|
52
|
-
return _jsx(MenuToggler, { onClick:
|
|
64
|
+
return _jsx(MenuToggler, { onClick: handleButtonClick });
|
|
53
65
|
}, renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(UiMenu, { items: uiMenuItems, onSelect: handleSelect, onClose: closeDropdown, shouldCloseOnSelect: false, containerBottomPadding: "small", ariaAttributes: {
|
|
54
66
|
id: ariaAttributes.id,
|
|
55
67
|
"aria-labelledby": ariaAttributes["aria-labelledby"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderMenu.js","sourceRoot":"","sources":["../../../../../src/next/components/Header/HeaderCell/HeaderMenu.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"HeaderMenu.js","sourceRoot":"","sources":["../../../../../src/next/components/Header/HeaderCell/HeaderMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from "react";
|
|
2
|
+
type CloseMenuFn = () => void;
|
|
3
|
+
interface IHeaderMenuContext {
|
|
4
|
+
/**
|
|
5
|
+
* Ref to store the currently open menu's close function.
|
|
6
|
+
* Set this when a menu opens, it will be called by closeActiveMenu.
|
|
7
|
+
*/
|
|
8
|
+
activeMenuCloseRef: RefObject<CloseMenuFn | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Close the currently active menu (if any).
|
|
11
|
+
*/
|
|
12
|
+
closeActiveMenu: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
* Provider for managing header menu state across the pivot table.
|
|
17
|
+
* Allows closing the active menu when clicking elsewhere in the table.
|
|
18
|
+
*/
|
|
19
|
+
export declare function HeaderMenuProvider({ children }: {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare function useHeaderMenuContext(): IHeaderMenuContext;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=HeaderMenuContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderMenuContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/HeaderMenuContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAkD,MAAM,OAAO,CAAC;AAE7F,KAAK,WAAW,GAAG,MAAM,IAAI,CAAC;AAE9B,UAAU,kBAAkB;IACxB;;;OAGG;IACH,kBAAkB,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAClD;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;CAC/B;AAID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAavE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CAMzD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useCallback, useContext, useRef } from "react";
|
|
4
|
+
const HeaderMenuContext = createContext(undefined);
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
* Provider for managing header menu state across the pivot table.
|
|
8
|
+
* Allows closing the active menu when clicking elsewhere in the table.
|
|
9
|
+
*/
|
|
10
|
+
export function HeaderMenuProvider({ children }) {
|
|
11
|
+
const activeMenuCloseRef = useRef(null);
|
|
12
|
+
const closeActiveMenu = useCallback(() => {
|
|
13
|
+
activeMenuCloseRef.current?.();
|
|
14
|
+
activeMenuCloseRef.current = null;
|
|
15
|
+
}, []);
|
|
16
|
+
return (_jsx(HeaderMenuContext.Provider, { value: { activeMenuCloseRef, closeActiveMenu }, children: children }));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export function useHeaderMenuContext() {
|
|
22
|
+
const context = useContext(HeaderMenuContext);
|
|
23
|
+
if (context === undefined) {
|
|
24
|
+
throw new Error("useHeaderMenuContext must be used within a HeaderMenuProvider");
|
|
25
|
+
}
|
|
26
|
+
return context;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=HeaderMenuContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderMenuContext.js","sourceRoot":"","sources":["../../../src/next/context/HeaderMenuContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAwB,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAgB7F,MAAM,iBAAiB,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAA2B;IACpE,MAAM,kBAAkB,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAE5D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,eAAe,EAAE,YACrE,QAAQ,GACgB,CAChC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-pivot",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.14.0-alpha.0",
|
|
4
4
|
"description": "GoodData.UI SDK - Pivot Table",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"ts-invariant": "^0.7.5",
|
|
44
44
|
"tslib": "2.8.1",
|
|
45
45
|
"uuid": "^11.1.0",
|
|
46
|
-
"@gooddata/sdk-backend-spi": "11.
|
|
47
|
-
"@gooddata/sdk-
|
|
48
|
-
"@gooddata/sdk-
|
|
49
|
-
"@gooddata/sdk-ui-
|
|
50
|
-
"@gooddata/sdk-ui
|
|
51
|
-
"@gooddata/sdk-ui-
|
|
46
|
+
"@gooddata/sdk-backend-spi": "11.14.0-alpha.0",
|
|
47
|
+
"@gooddata/sdk-model": "11.14.0-alpha.0",
|
|
48
|
+
"@gooddata/sdk-ui-kit": "11.14.0-alpha.0",
|
|
49
|
+
"@gooddata/sdk-ui-vis-commons": "11.14.0-alpha.0",
|
|
50
|
+
"@gooddata/sdk-ui": "11.14.0-alpha.0",
|
|
51
|
+
"@gooddata/sdk-ui-theme-provider": "11.14.0-alpha.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@gooddata/stylelint-config": "^5.0.0",
|
|
@@ -91,10 +91,10 @@
|
|
|
91
91
|
"typescript": "5.8.3",
|
|
92
92
|
"vitest": "3.2.4",
|
|
93
93
|
"vitest-dom": "0.1.1",
|
|
94
|
-
"@gooddata/eslint-config": "11.
|
|
95
|
-
"@gooddata/reference-workspace": "11.
|
|
96
|
-
"@gooddata/sdk-backend-base": "11.
|
|
97
|
-
"@gooddata/sdk-backend-mockingbird": "11.
|
|
94
|
+
"@gooddata/eslint-config": "11.14.0-alpha.0",
|
|
95
|
+
"@gooddata/reference-workspace": "11.14.0-alpha.0",
|
|
96
|
+
"@gooddata/sdk-backend-base": "11.14.0-alpha.0",
|
|
97
|
+
"@gooddata/sdk-backend-mockingbird": "11.14.0-alpha.0"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
|
100
100
|
"react": "^18.0.0 || ^19.0.0",
|