@gooddata/sdk-ui-pivot 11.12.0-alpha.2 → 11.12.0-alpha.4
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/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +2 -0
- package/esm/locales.js.map +1 -1
- package/esm/next/PivotTableNext.d.ts.map +1 -1
- package/esm/next/PivotTableNext.js +27 -7
- package/esm/next/PivotTableNext.js.map +1 -1
- package/esm/next/PivotTableNextPluggable.d.ts.map +1 -1
- package/esm/next/PivotTableNextPluggable.js +1 -0
- package/esm/next/PivotTableNextPluggable.js.map +1 -1
- package/esm/next/components/AvoidResizeFlickering.d.ts +5 -1
- package/esm/next/components/AvoidResizeFlickering.d.ts.map +1 -1
- package/esm/next/components/AvoidResizeFlickering.js +12 -2
- package/esm/next/components/AvoidResizeFlickering.js.map +1 -1
- package/esm/next/components/Cell/AttributeCell.d.ts +1 -1
- package/esm/next/components/Cell/AttributeCell.d.ts.map +1 -1
- package/esm/next/components/Cell/AttributeCell.js.map +1 -1
- package/esm/next/components/Cell/MetricCell.d.ts +1 -1
- package/esm/next/components/Cell/MetricCell.d.ts.map +1 -1
- package/esm/next/components/Cell/MetricCell.js.map +1 -1
- package/esm/next/components/Cell/TransposedMetricCell.d.ts +1 -1
- package/esm/next/components/Cell/TransposedMetricCell.d.ts.map +1 -1
- package/esm/next/components/Cell/TransposedMetricCell.js.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.d.ts.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js +2 -2
- package/esm/next/components/Header/HeaderCell/HeaderMenu.js.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.d.ts +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.d.ts.map +1 -1
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.js +3 -3
- package/esm/next/components/Header/HeaderCell/HeaderMenuComponents.js.map +1 -1
- package/esm/next/components/Header/PivotGroupHeader.d.ts.map +1 -1
- package/esm/next/components/Header/PivotGroupHeader.js +4 -2
- package/esm/next/components/Header/PivotGroupHeader.js.map +1 -1
- package/esm/next/constants/agGridDefaultProps.d.ts.map +1 -1
- package/esm/next/constants/agGridDefaultProps.js +4 -1
- package/esm/next/constants/agGridDefaultProps.js.map +1 -1
- package/esm/next/context/ColumnDefsContext.d.ts.map +1 -1
- package/esm/next/context/ColumnDefsContext.js +5 -3
- package/esm/next/context/ColumnDefsContext.js.map +1 -1
- package/esm/next/context/DrillableItemsRefContext.d.ts +23 -0
- package/esm/next/context/DrillableItemsRefContext.d.ts.map +1 -0
- package/esm/next/context/DrillableItemsRefContext.js +33 -0
- package/esm/next/context/DrillableItemsRefContext.js.map +1 -0
- package/esm/next/context/RuntimeErrorContext.d.ts +13 -0
- package/esm/next/context/RuntimeErrorContext.d.ts.map +1 -0
- package/esm/next/context/RuntimeErrorContext.js +23 -0
- package/esm/next/context/RuntimeErrorContext.js.map +1 -0
- package/esm/next/context/TableReadyContext.d.ts +36 -0
- package/esm/next/context/TableReadyContext.d.ts.map +1 -0
- package/esm/next/context/TableReadyContext.js +59 -0
- package/esm/next/context/TableReadyContext.js.map +1 -0
- package/esm/next/features/columns/applyAllFeaturesToColDef.d.ts +3 -2
- package/esm/next/features/columns/applyAllFeaturesToColDef.d.ts.map +1 -1
- package/esm/next/features/columns/applyAllFeaturesToColDef.js +3 -3
- package/esm/next/features/columns/applyAllFeaturesToColDef.js.map +1 -1
- package/esm/next/features/columns/attributeColDef.d.ts +2 -2
- package/esm/next/features/columns/attributeColDef.d.ts.map +1 -1
- package/esm/next/features/columns/attributeColDef.js +2 -9
- package/esm/next/features/columns/attributeColDef.js.map +1 -1
- package/esm/next/features/columns/createColDef.d.ts +2 -2
- package/esm/next/features/columns/createColDef.d.ts.map +1 -1
- package/esm/next/features/columns/createColDef.js +7 -7
- package/esm/next/features/columns/createColDef.js.map +1 -1
- package/esm/next/features/columns/measureColDef.d.ts +2 -2
- package/esm/next/features/columns/measureColDef.d.ts.map +1 -1
- package/esm/next/features/columns/measureColDef.js +3 -9
- package/esm/next/features/columns/measureColDef.js.map +1 -1
- package/esm/next/features/data/createServerSideDataSource.d.ts +3 -2
- package/esm/next/features/data/createServerSideDataSource.d.ts.map +1 -1
- package/esm/next/features/data/createServerSideDataSource.js +15 -3
- package/esm/next/features/data/createServerSideDataSource.js.map +1 -1
- package/esm/next/features/data/dataViewToColDefs.d.ts +3 -2
- package/esm/next/features/data/dataViewToColDefs.d.ts.map +1 -1
- package/esm/next/features/data/dataViewToColDefs.js +3 -3
- package/esm/next/features/data/dataViewToColDefs.js.map +1 -1
- package/esm/next/features/drilling/applyCellRenderingToColDef.d.ts +15 -0
- package/esm/next/features/drilling/applyCellRenderingToColDef.d.ts.map +1 -0
- package/esm/next/features/drilling/applyCellRenderingToColDef.js +39 -0
- package/esm/next/features/drilling/applyCellRenderingToColDef.js.map +1 -0
- package/esm/next/features/pagination/utils.d.ts +29 -0
- package/esm/next/features/pagination/utils.d.ts.map +1 -0
- package/esm/next/features/pagination/utils.js +38 -0
- package/esm/next/features/pagination/utils.js.map +1 -0
- package/esm/next/features/styling/cell.d.ts +2 -23
- package/esm/next/features/styling/cell.d.ts.map +1 -1
- package/esm/next/features/styling/cell.js.map +1 -1
- package/esm/next/features/styling/icons.d.ts +2 -0
- package/esm/next/features/styling/icons.d.ts.map +1 -1
- package/esm/next/features/styling/icons.js +10 -0
- package/esm/next/features/styling/icons.js.map +1 -1
- package/esm/next/features/transposition/attributeHeaderColDef.d.ts +2 -2
- package/esm/next/features/transposition/attributeHeaderColDef.d.ts.map +1 -1
- package/esm/next/features/transposition/attributeHeaderColDef.js +3 -9
- package/esm/next/features/transposition/attributeHeaderColDef.js.map +1 -1
- package/esm/next/features/transposition/measureGroupValueColDef.d.ts +2 -2
- package/esm/next/features/transposition/measureGroupValueColDef.d.ts.map +1 -1
- package/esm/next/features/transposition/measureGroupValueColDef.js +3 -7
- package/esm/next/features/transposition/measureGroupValueColDef.js.map +1 -1
- package/esm/next/features/transposition/totalHeaderColDef.d.ts +2 -2
- package/esm/next/features/transposition/totalHeaderColDef.d.ts.map +1 -1
- package/esm/next/features/transposition/totalHeaderColDef.js +3 -7
- package/esm/next/features/transposition/totalHeaderColDef.js.map +1 -1
- package/esm/next/hooks/drilling/useSyncDrillableItems.d.ts +9 -0
- package/esm/next/hooks/drilling/useSyncDrillableItems.d.ts.map +1 -0
- package/esm/next/hooks/drilling/useSyncDrillableItems.js +27 -0
- package/esm/next/hooks/drilling/useSyncDrillableItems.js.map +1 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.d.ts.map +1 -1
- package/esm/next/hooks/header/useHeaderGroupDrilling.js +6 -0
- package/esm/next/hooks/header/useHeaderGroupDrilling.js.map +1 -1
- package/esm/next/hooks/init/useInitExecutionResult.d.ts.map +1 -1
- package/esm/next/hooks/init/useInitExecutionResult.js +3 -1
- package/esm/next/hooks/init/useInitExecutionResult.js.map +1 -1
- package/esm/next/hooks/resizing/useInitialAutoResizeVisibility.d.ts +9 -1
- package/esm/next/hooks/resizing/useInitialAutoResizeVisibility.d.ts.map +1 -1
- package/esm/next/hooks/resizing/useInitialAutoResizeVisibility.js +17 -5
- package/esm/next/hooks/resizing/useInitialAutoResizeVisibility.js.map +1 -1
- package/esm/next/hooks/useAfterRenderCallback.d.ts +3 -1
- package/esm/next/hooks/useAfterRenderCallback.d.ts.map +1 -1
- package/esm/next/hooks/useAfterRenderCallback.js +12 -14
- package/esm/next/hooks/useAfterRenderCallback.js.map +1 -1
- package/esm/next/hooks/useAgGridReactProps.d.ts.map +1 -1
- package/esm/next/hooks/useAgGridReactProps.js +8 -0
- package/esm/next/hooks/useAgGridReactProps.js.map +1 -1
- package/esm/next/hooks/useDataLoadingProps.d.ts.map +1 -1
- package/esm/next/hooks/useDataLoadingProps.js +35 -22
- package/esm/next/hooks/useDataLoadingProps.js.map +1 -1
- package/esm/next/hooks/useInteractionProps.d.ts.map +1 -1
- package/esm/next/hooks/useInteractionProps.js +3 -0
- package/esm/next/hooks/useInteractionProps.js.map +1 -1
- package/esm/next/hooks/useLocaleTextProps.d.ts +8 -0
- package/esm/next/hooks/useLocaleTextProps.d.ts.map +1 -0
- package/esm/next/hooks/useLocaleTextProps.js +25 -0
- package/esm/next/hooks/useLocaleTextProps.js.map +1 -0
- package/esm/next/hooks/usePaginationProps.d.ts +12 -0
- package/esm/next/hooks/usePaginationProps.d.ts.map +1 -0
- package/esm/next/hooks/usePaginationProps.js +30 -0
- package/esm/next/hooks/usePaginationProps.js.map +1 -0
- package/esm/next/hooks/useThemeProps.d.ts.map +1 -1
- package/esm/next/hooks/useThemeProps.js +7 -1
- package/esm/next/hooks/useThemeProps.js.map +1 -1
- package/esm/next/index.d.ts +1 -0
- package/esm/next/index.d.ts.map +1 -1
- package/esm/next/index.js.map +1 -1
- package/esm/next/testing/dataTestIdGenerators.d.ts +2 -2
- package/esm/next/testing/dataTestIdGenerators.d.ts.map +1 -1
- package/esm/next/testing/dataTestIdGenerators.js.map +1 -1
- package/esm/next/types/agGrid.d.ts +6 -0
- package/esm/next/types/agGrid.d.ts.map +1 -1
- package/esm/next/types/agGrid.js.map +1 -1
- package/esm/next/types/cellRendering.d.ts +38 -0
- package/esm/next/types/cellRendering.d.ts.map +1 -0
- package/esm/next/types/cellRendering.js +3 -0
- package/esm/next/types/cellRendering.js.map +1 -0
- package/esm/next/types/experimental.d.ts +6 -0
- package/esm/next/types/experimental.d.ts.map +1 -1
- package/esm/next/types/pagination.d.ts +29 -0
- package/esm/next/types/pagination.d.ts.map +1 -0
- package/esm/next/types/pagination.js +3 -0
- package/esm/next/types/pagination.js.map +1 -0
- package/esm/next/types/public.d.ts +2 -1
- package/esm/next/types/public.d.ts.map +1 -1
- package/esm/sdk-ui-pivot.d.ts +37 -1
- package/package.json +11 -11
- package/styles/css/main.css +64 -0
- package/styles/css/main.css.map +1 -1
- package/styles/css/pivotTableNext.css +64 -0
- package/styles/css/pivotTableNext.css.map +1 -1
- package/styles/scss/pivotTableNext.scss +82 -0
- package/esm/next/features/drilling/applyDrillsToColDef.d.ts +0 -9
- package/esm/next/features/drilling/applyDrillsToColDef.d.ts.map +0 -1
- package/esm/next/features/drilling/applyDrillsToColDef.js +0 -23
- package/esm/next/features/drilling/applyDrillsToColDef.js.map +0 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from "react";
|
|
2
|
+
import { ExplicitDrill } from "@gooddata/sdk-ui";
|
|
3
|
+
type IDrillableItemsRefContext = RefObject<ExplicitDrill[]>;
|
|
4
|
+
/**
|
|
5
|
+
* Provides a stable ref to drillableItems that can be read from ag-grid callbacks
|
|
6
|
+
* without causing column definition recreation when drillableItems change.
|
|
7
|
+
*
|
|
8
|
+
* WHY REF: drillableItems changes during dashboard init ([] → populated).
|
|
9
|
+
* If drillableItems were in useMemo deps for columnDefs, columnDefs would recreate,
|
|
10
|
+
* causing DataSource recreation. For tables with initial sort, this triggers
|
|
11
|
+
* double execution due to ag-grid's SSRM quirk.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function DrillableItemsRefProvider({ children }: {
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
export declare function useDrillableItemsRef(): IDrillableItemsRefContext;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=DrillableItemsRefContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrillableItemsRefContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/DrillableItemsRefContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,KAAK,yBAAyB,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;AAI5D;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAU9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,yBAAyB,CAQhE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useContext, useRef } from "react";
|
|
4
|
+
import { usePivotTableProps } from "./PivotTablePropsContext.js";
|
|
5
|
+
const DrillableItemsRefContext = createContext(undefined);
|
|
6
|
+
/**
|
|
7
|
+
* Provides a stable ref to drillableItems that can be read from ag-grid callbacks
|
|
8
|
+
* without causing column definition recreation when drillableItems change.
|
|
9
|
+
*
|
|
10
|
+
* WHY REF: drillableItems changes during dashboard init ([] → populated).
|
|
11
|
+
* If drillableItems were in useMemo deps for columnDefs, columnDefs would recreate,
|
|
12
|
+
* causing DataSource recreation. For tables with initial sort, this triggers
|
|
13
|
+
* double execution due to ag-grid's SSRM quirk.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export function DrillableItemsRefProvider({ children }) {
|
|
18
|
+
const { drillableItems } = usePivotTableProps();
|
|
19
|
+
const drillableItemsRef = useRef(drillableItems);
|
|
20
|
+
drillableItemsRef.current = drillableItems;
|
|
21
|
+
return (_jsx(DrillableItemsRefContext.Provider, { value: drillableItemsRef, children: children }));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export function useDrillableItemsRef() {
|
|
27
|
+
const context = useContext(DrillableItemsRefContext);
|
|
28
|
+
if (context === undefined) {
|
|
29
|
+
throw new Error("useDrillableItemsRef must be used within a DrillableItemsRefProvider");
|
|
30
|
+
}
|
|
31
|
+
return context;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=DrillableItemsRefContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrillableItemsRefContext.js","sourceRoot":"","sources":["../../../src/next/context/DrillableItemsRefContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAwB,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAIhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIjE,MAAM,wBAAwB,GAAG,aAAa,CAAwC,SAAS,CAAC,CAAC;AAEjG;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAE,QAAQ,EAA2B;IAC3E,MAAM,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,iBAAiB,CAAC,OAAO,GAAG,cAAc,CAAC;IAE3C,OAAO,CACH,KAAC,wBAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,YACtD,QAAQ,GACuB,CACvC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAErD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
3
|
+
interface IRuntimeErrorContext {
|
|
4
|
+
runtimeError: GoodDataSdkError | undefined;
|
|
5
|
+
setRuntimeError: (error: GoodDataSdkError | undefined) => void;
|
|
6
|
+
}
|
|
7
|
+
interface IRuntimeErrorProviderProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function RuntimeErrorProvider({ children }: IRuntimeErrorProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function useRuntimeError(): IRuntimeErrorContext;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=RuntimeErrorContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeErrorContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/RuntimeErrorContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA6D,MAAM,OAAO,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,UAAU,oBAAoB;IAC1B,YAAY,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC3C,eAAe,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,KAAK,IAAI,CAAC;CAClE;AAID,UAAU,0BAA0B;IAChC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,0BAA0B,2CAgB5E;AAED,wBAAgB,eAAe,IAAI,oBAAoB,CAQtD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useCallback, useContext, useMemo, useState } from "react";
|
|
4
|
+
const RuntimeErrorContext = createContext(undefined);
|
|
5
|
+
export function RuntimeErrorProvider({ children }) {
|
|
6
|
+
const [runtimeError, setRuntimeErrorState] = useState(undefined);
|
|
7
|
+
const setRuntimeError = useCallback((error) => {
|
|
8
|
+
setRuntimeErrorState(error);
|
|
9
|
+
}, []);
|
|
10
|
+
const value = useMemo(() => ({
|
|
11
|
+
runtimeError,
|
|
12
|
+
setRuntimeError,
|
|
13
|
+
}), [runtimeError, setRuntimeError]);
|
|
14
|
+
return _jsx(RuntimeErrorContext.Provider, { value: value, children: children });
|
|
15
|
+
}
|
|
16
|
+
export function useRuntimeError() {
|
|
17
|
+
const context = useContext(RuntimeErrorContext);
|
|
18
|
+
if (!context) {
|
|
19
|
+
throw new Error("useRuntimeError must be used within RuntimeErrorProvider");
|
|
20
|
+
}
|
|
21
|
+
return context;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=RuntimeErrorContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeErrorContext.js","sourceRoot":"","sources":["../../../src/next/context/RuntimeErrorContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS7F,MAAM,mBAAmB,GAAG,aAAa,CAAmC,SAAS,CAAC,CAAC;AAMvF,MAAM,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAA8B;IACzE,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAA+B,SAAS,CAAC,CAAC;IAE/F,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAAmC,EAAE,EAAE;QACxE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,CAAC;QACH,YAAY;QACZ,eAAe;KAClB,CAAC,EACF,CAAC,YAAY,EAAE,eAAe,CAAC,CAClC,CAAC;IAEF,OAAO,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
interface ITableReadyContext {
|
|
3
|
+
/**
|
|
4
|
+
* Call when AG Grid fires onFirstDataRendered.
|
|
5
|
+
* Will trigger afterRender if visibility is also ready.
|
|
6
|
+
*/
|
|
7
|
+
onFirstDataRendered: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* Call when visibility becomes ready (resize calculations complete).
|
|
10
|
+
* Will trigger afterRender if first data is also rendered.
|
|
11
|
+
*/
|
|
12
|
+
onVisibilityReady: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export interface ITableReadyProviderProps {
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Provider that coordinates afterRender timing.
|
|
22
|
+
* Calls afterRender when BOTH conditions are met:
|
|
23
|
+
* - AG Grid has rendered first data (onFirstDataRendered)
|
|
24
|
+
* - Visibility is ready (onVisibilityReady)
|
|
25
|
+
*
|
|
26
|
+
* Uses refs to avoid state/effect anti-patterns.
|
|
27
|
+
*
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare function TableReadyProvider({ children }: ITableReadyProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function useTableReady(): ITableReadyContext;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=TableReadyContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableReadyContext.d.ts","sourceRoot":"","sources":["../../../src/next/context/TableReadyContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAkD,MAAM,OAAO,CAAC;AAIlF,UAAU,kBAAkB;IACxB;;;OAGG;IACH,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAC;CACjC;AAID;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CA4CxE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,kBAAkB,CAMlD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2025 GoodData Corporation
|
|
3
|
+
import { createContext, useCallback, useContext, useRef } from "react";
|
|
4
|
+
import { usePivotTableProps } from "./PivotTablePropsContext.js";
|
|
5
|
+
const TableReadyContext = createContext(undefined);
|
|
6
|
+
/**
|
|
7
|
+
* Provider that coordinates afterRender timing.
|
|
8
|
+
* Calls afterRender when BOTH conditions are met:
|
|
9
|
+
* - AG Grid has rendered first data (onFirstDataRendered)
|
|
10
|
+
* - Visibility is ready (onVisibilityReady)
|
|
11
|
+
*
|
|
12
|
+
* Uses refs to avoid state/effect anti-patterns.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export function TableReadyProvider({ children }) {
|
|
17
|
+
const { afterRender, execution } = usePivotTableProps();
|
|
18
|
+
const firstDataRenderedRef = useRef(false);
|
|
19
|
+
const visibilityReadyRef = useRef(false);
|
|
20
|
+
const afterRenderCalledRef = useRef(false);
|
|
21
|
+
const lastExecutionFingerprintRef = useRef(null);
|
|
22
|
+
// Check if execution changed and reset refs
|
|
23
|
+
const currentFingerprint = execution.fingerprint();
|
|
24
|
+
if (lastExecutionFingerprintRef.current !== currentFingerprint) {
|
|
25
|
+
lastExecutionFingerprintRef.current = currentFingerprint;
|
|
26
|
+
firstDataRenderedRef.current = false;
|
|
27
|
+
visibilityReadyRef.current = false;
|
|
28
|
+
afterRenderCalledRef.current = false;
|
|
29
|
+
}
|
|
30
|
+
const tryCallAfterRender = useCallback(() => {
|
|
31
|
+
if (firstDataRenderedRef.current &&
|
|
32
|
+
visibilityReadyRef.current &&
|
|
33
|
+
!afterRenderCalledRef.current &&
|
|
34
|
+
afterRender) {
|
|
35
|
+
afterRenderCalledRef.current = true;
|
|
36
|
+
afterRender();
|
|
37
|
+
}
|
|
38
|
+
}, [afterRender]);
|
|
39
|
+
const onFirstDataRendered = useCallback(() => {
|
|
40
|
+
firstDataRenderedRef.current = true;
|
|
41
|
+
tryCallAfterRender();
|
|
42
|
+
}, [tryCallAfterRender]);
|
|
43
|
+
const onVisibilityReady = useCallback(() => {
|
|
44
|
+
visibilityReadyRef.current = true;
|
|
45
|
+
tryCallAfterRender();
|
|
46
|
+
}, [tryCallAfterRender]);
|
|
47
|
+
return (_jsx(TableReadyContext.Provider, { value: { onFirstDataRendered, onVisibilityReady }, children: children }));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export function useTableReady() {
|
|
53
|
+
const context = useContext(TableReadyContext);
|
|
54
|
+
if (!context) {
|
|
55
|
+
throw new Error("useTableReady must be used within TableReadyProvider");
|
|
56
|
+
}
|
|
57
|
+
return context;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=TableReadyContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableReadyContext.js","sourceRoot":"","sources":["../../../src/next/context/TableReadyContext.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAa,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAejE,MAAM,iBAAiB,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AASnF;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAA4B;IACrE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAExD,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,2BAA2B,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEhE,4CAA4C;IAC5C,MAAM,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,2BAA2B,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;QAC7D,2BAA2B,CAAC,OAAO,GAAG,kBAAkB,CAAC;QACzD,oBAAoB,CAAC,OAAO,GAAG,KAAK,CAAC;QACrC,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;QACnC,oBAAoB,CAAC,OAAO,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IACI,oBAAoB,CAAC,OAAO;YAC5B,kBAAkB,CAAC,OAAO;YAC1B,CAAC,oBAAoB,CAAC,OAAO;YAC7B,WAAW,EACb,CAAC;YACC,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,WAAW,EAAE,CAAC;QAClB,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,kBAAkB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,kBAAkB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,OAAO,CACH,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YACxE,QAAQ,GACgB,CAChC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
1
2
|
import { ISortItem } from "@gooddata/sdk-model";
|
|
2
3
|
import { DataViewFacade, ExplicitDrill } from "@gooddata/sdk-ui";
|
|
3
4
|
import { AgGridColumnDef } from "../../types/agGrid.js";
|
|
@@ -8,11 +9,11 @@ import { ITextWrapping } from "../../types/textWrapping.js";
|
|
|
8
9
|
*
|
|
9
10
|
* @internal
|
|
10
11
|
*/
|
|
11
|
-
export declare const applyAllFeaturesToColDef: ({ columnWidths, sortBy, textWrapping,
|
|
12
|
+
export declare const applyAllFeaturesToColDef: ({ columnWidths, sortBy, textWrapping, drillableItemsRef, dataViewFacade, }: {
|
|
12
13
|
columnWidths: ColumnWidthItem[];
|
|
13
14
|
sortBy: ISortItem[];
|
|
14
15
|
textWrapping: ITextWrapping;
|
|
15
|
-
|
|
16
|
+
drillableItemsRef: RefObject<ExplicitDrill[]>;
|
|
16
17
|
dataViewFacade?: DataViewFacade;
|
|
17
18
|
}) => (colDef: AgGridColumnDef) => AgGridColumnDef;
|
|
18
19
|
//# sourceMappingURL=applyAllFeaturesToColDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyAllFeaturesToColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/applyAllFeaturesToColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAChC,
|
|
1
|
+
{"version":3,"file":"applyAllFeaturesToColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/applyAllFeaturesToColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAChC,4EAME;IACC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC,MACA,QAAQ,eAAe,KAAG,eAO1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2024-2025 GoodData Corporation
|
|
2
|
-
import {
|
|
2
|
+
import { applyCellRenderingToColDef } from "../drilling/applyCellRenderingToColDef.js";
|
|
3
3
|
import { applyColumnWidthsToColDef } from "../resizing/applyColumnWidthsToColDef.js";
|
|
4
4
|
import { applySortByToColDef } from "../sorting/applySortByToColDef.js";
|
|
5
5
|
import { applyTextWrappingToColDef } from "../textWrapping/applyTextWrappingToColDef.js";
|
|
@@ -8,11 +8,11 @@ import { applyTextWrappingToColDef } from "../textWrapping/applyTextWrappingToCo
|
|
|
8
8
|
*
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
export const applyAllFeaturesToColDef = ({ columnWidths, sortBy, textWrapping,
|
|
11
|
+
export const applyAllFeaturesToColDef = ({ columnWidths, sortBy, textWrapping, drillableItemsRef, dataViewFacade, }) => (colDef) => {
|
|
12
12
|
return [
|
|
13
13
|
applyColumnWidthsToColDef(columnWidths),
|
|
14
14
|
applySortByToColDef(sortBy),
|
|
15
|
-
|
|
15
|
+
applyCellRenderingToColDef(drillableItemsRef, dataViewFacade),
|
|
16
16
|
applyTextWrappingToColDef(textWrapping),
|
|
17
17
|
].reduce((acc, fn) => fn(acc), colDef);
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyAllFeaturesToColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/applyAllFeaturesToColDef.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"applyAllFeaturesToColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/applyAllFeaturesToColDef.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAUrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACjC,CAAC,EACG,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,cAAc,GAOjB,EAAE,EAAE,CACL,CAAC,MAAuB,EAAmB,EAAE;IACzC,OAAO;QACH,yBAAyB,CAAC,YAAY,CAAC;QACvC,mBAAmB,CAAC,MAAM,CAAC;QAC3B,0BAA0B,CAAC,iBAAiB,EAAE,cAAc,CAAC;QAC7D,yBAAyB,CAAC,YAAY,CAAC;KAC1C,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { IntlShape } from "react-intl";
|
|
2
|
-
import {
|
|
2
|
+
import { ITableAttributeColumnDefinition } from "@gooddata/sdk-ui";
|
|
3
3
|
import { AgGridColumnDef } from "../../types/agGrid.js";
|
|
4
4
|
/**
|
|
5
5
|
* Creates col def for row attribute.
|
|
6
6
|
*
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
|
-
export declare function createAttributeColDef(colId: string, columnDefinition: ITableAttributeColumnDefinition, intl: IntlShape
|
|
9
|
+
export declare function createAttributeColDef(colId: string, columnDefinition: ITableAttributeColumnDefinition, intl: IntlShape): AgGridColumnDef;
|
|
10
10
|
//# sourceMappingURL=attributeColDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/attributeColDef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attributeColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/attributeColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,+BAA+B,EACjD,IAAI,EAAE,SAAS,GAChB,eAAe,CAkBjB"}
|
|
@@ -2,31 +2,24 @@
|
|
|
2
2
|
import { extractIntlFormattedValue } from "./shared.js";
|
|
3
3
|
import { AttributeCell } from "../../components/Cell/AttributeCell.js";
|
|
4
4
|
import { HEADER_CELL_CLASSNAME } from "../styling/bem.js";
|
|
5
|
-
import { getCellClassName, getCellTypes } from "../styling/cell.js";
|
|
6
5
|
/**
|
|
7
6
|
* Creates col def for row attribute.
|
|
8
7
|
*
|
|
9
8
|
* @internal
|
|
10
9
|
*/
|
|
11
|
-
export function createAttributeColDef(colId, columnDefinition, intl
|
|
10
|
+
export function createAttributeColDef(colId, columnDefinition, intl) {
|
|
12
11
|
const { attributeDescriptor } = columnDefinition;
|
|
13
12
|
return {
|
|
14
13
|
colId,
|
|
15
14
|
field: `cellDataByColId.${colId}.formattedValue`,
|
|
16
15
|
headerName: attributeDescriptor.attributeHeader.formOf.name,
|
|
17
16
|
headerClass: HEADER_CELL_CLASSNAME,
|
|
18
|
-
cellClass: (params) => {
|
|
19
|
-
return getCellClassName(params, drillableItems, dv);
|
|
20
|
-
},
|
|
21
17
|
valueGetter: (params) => {
|
|
22
18
|
return extractIntlFormattedValue(params, colId, intl);
|
|
23
19
|
},
|
|
24
20
|
context: {
|
|
25
21
|
columnDefinition,
|
|
26
|
-
|
|
27
|
-
cellRenderer: (params) => {
|
|
28
|
-
const cellTypes = getCellTypes(params, drillableItems, dv);
|
|
29
|
-
return AttributeCell({ ...params, intl, colId, columnDefinition, cellTypes });
|
|
22
|
+
cellRendererFactory: (params, cellTypes) => AttributeCell({ ...params, intl, colId, columnDefinition, cellTypes }),
|
|
30
23
|
},
|
|
31
24
|
headerComponent: "AttributeHeader",
|
|
32
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/attributeColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
|
1
|
+
{"version":3,"file":"attributeColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/attributeColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAMhC,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACjC,KAAa,EACb,gBAAiD,EACjD,IAAe;IAEf,MAAM,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,CAAC;IAEjD,OAAO;QACH,KAAK;QACL,KAAK,EAAE,mBAAmB,KAAK,iBAAiB;QAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI;QAC3D,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE;YACL,gBAAgB;YAChB,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CACvC,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;SAC7E;QACD,eAAe,EAAE,iBAAiB;KACrC,CAAC;AACN,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IntlShape } from "react-intl";
|
|
2
|
-
import { DataViewFacade,
|
|
2
|
+
import { DataViewFacade, ITableColumnDefinition } from "@gooddata/sdk-ui";
|
|
3
3
|
import { AgGridColumnDef } from "../../types/agGrid.js";
|
|
4
4
|
import { ColumnHeadersPosition } from "../../types/transposition.js";
|
|
5
5
|
/**
|
|
@@ -7,5 +7,5 @@ import { ColumnHeadersPosition } from "../../types/transposition.js";
|
|
|
7
7
|
*
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
export declare function createColDef(columnDefinition: ITableColumnDefinition, columnHeadersPosition: ColumnHeadersPosition, intl: IntlShape,
|
|
10
|
+
export declare function createColDef(columnDefinition: ITableColumnDefinition, columnHeadersPosition: ColumnHeadersPosition, intl: IntlShape, dv?: DataViewFacade): AgGridColumnDef;
|
|
11
11
|
//# sourceMappingURL=createColDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/createColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"createColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/createColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAsB,MAAM,kBAAkB,CAAC;AAK9F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAMrE;;;;GAIG;AACH,wBAAgB,YAAY,CACxB,gBAAgB,EAAE,sBAAsB,EACxC,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,SAAS,EACf,EAAE,CAAC,EAAE,cAAc,GACpB,eAAe,CAgCjB"}
|
|
@@ -13,28 +13,28 @@ import { createTotalHeaderColDef } from "../transposition/totalHeaderColDef.js";
|
|
|
13
13
|
*
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
export function createColDef(columnDefinition, columnHeadersPosition, intl,
|
|
16
|
+
export function createColDef(columnDefinition, columnHeadersPosition, intl, dv) {
|
|
17
17
|
const colId = columnDefinitionToColId(columnDefinition, columnHeadersPosition);
|
|
18
18
|
switch (columnDefinition.type) {
|
|
19
19
|
case "attribute":
|
|
20
|
-
return createAttributeColDef(colId, columnDefinition, intl
|
|
20
|
+
return createAttributeColDef(colId, columnDefinition, intl);
|
|
21
21
|
case "value":
|
|
22
22
|
if (columnDefinition.isTransposed || columnDefinition.isEmpty) {
|
|
23
|
-
return createAttributeHeaderColDef(colId, columnDefinition, intl,
|
|
23
|
+
return createAttributeHeaderColDef(colId, columnDefinition, intl, dv);
|
|
24
24
|
}
|
|
25
|
-
return createMeasureColDef(colId, columnDefinition
|
|
25
|
+
return createMeasureColDef(colId, columnDefinition);
|
|
26
26
|
case "subtotal":
|
|
27
27
|
case "grandTotal": {
|
|
28
28
|
if (columnDefinition.isTransposed) {
|
|
29
|
-
return createTotalHeaderColDef(colId, columnDefinition, intl
|
|
29
|
+
return createTotalHeaderColDef(colId, columnDefinition, intl);
|
|
30
30
|
}
|
|
31
|
-
return createMeasureColDef(colId, columnDefinition
|
|
31
|
+
return createMeasureColDef(colId, columnDefinition);
|
|
32
32
|
}
|
|
33
33
|
case "measureGroupHeader": {
|
|
34
34
|
return createMeasureGroupHeaderColDef(colId, columnDefinition, columnHeadersPosition);
|
|
35
35
|
}
|
|
36
36
|
case "measureGroupValue":
|
|
37
|
-
return createMeasureGroupValueColDef(columnDefinition
|
|
37
|
+
return createMeasureGroupValueColDef(columnDefinition);
|
|
38
38
|
default:
|
|
39
39
|
assertNever(columnDefinition);
|
|
40
40
|
throw new UnexpectedSdkError(`Cannot create col def for column definition: ${JSON.stringify(columnDefinition)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/createColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"createColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/createColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAA0C,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CACxB,gBAAwC,EACxC,qBAA4C,EAC5C,IAAe,EACf,EAAmB;IAEnB,MAAM,KAAK,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAE/E,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC5B,KAAK,WAAW;YACZ,OAAO,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAChE,KAAK,OAAO;YACR,IAAI,gBAAgB,CAAC,YAAY,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC5D,OAAO,2BAA2B,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAExD,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBAChC,OAAO,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,OAAO,8BAA8B,CAAC,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAC1F,CAAC;QACD,KAAK,mBAAmB;YACpB,OAAO,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;QAC3D;YACI,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAC9B,MAAM,IAAI,kBAAkB,CACxB,gDAAgD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CACrF,CAAC;IACV,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITableGrandTotalColumnDefinition, ITableSubtotalColumnDefinition, ITableValueColumnDefinition } from "@gooddata/sdk-ui";
|
|
2
2
|
import { AgGridColumnDef } from "../../types/agGrid.js";
|
|
3
3
|
/**
|
|
4
4
|
* Creates {@link AgGridColumnDef} for specified column definition {@link ITableValueColumnDefinition},
|
|
@@ -9,5 +9,5 @@ import { AgGridColumnDef } from "../../types/agGrid.js";
|
|
|
9
9
|
export declare function createMeasureColDef(colId: string, columnDefinition: (ITableValueColumnDefinition | ITableSubtotalColumnDefinition | ITableGrandTotalColumnDefinition) & {
|
|
10
10
|
isTransposed: false;
|
|
11
11
|
isEmpty: false;
|
|
12
|
-
}
|
|
12
|
+
}): AgGridColumnDef;
|
|
13
13
|
//# sourceMappingURL=measureColDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/measureColDef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"measureColDef.d.ts","sourceRoot":"","sources":["../../../../src/next/features/columns/measureColDef.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gCAAgC,EAChC,8BAA8B,EAC9B,2BAA2B,EAE9B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,CACZ,2BAA2B,GAC3B,8BAA8B,GAC9B,gCAAgC,CACrC,GAAG;IAAE,YAAY,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,GAC5C,eAAe,CAmBjB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { isValueColumnDefinition, } from "@gooddata/sdk-ui";
|
|
3
3
|
import { extractFormattedValue } from "./shared.js";
|
|
4
4
|
import { MetricCell } from "../../components/Cell/MetricCell.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getMeasureCellStyle } from "../styling/cell.js";
|
|
6
6
|
import { getHeaderCellClassName } from "../styling/headerCell.js";
|
|
7
7
|
/**
|
|
8
8
|
* Creates {@link AgGridColumnDef} for specified column definition {@link ITableValueColumnDefinition},
|
|
@@ -10,27 +10,21 @@ import { getHeaderCellClassName } from "../styling/headerCell.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
|
-
export function createMeasureColDef(colId, columnDefinition
|
|
13
|
+
export function createMeasureColDef(colId, columnDefinition) {
|
|
14
14
|
const { measureDescriptor } = columnDefinition;
|
|
15
15
|
return {
|
|
16
16
|
colId,
|
|
17
17
|
field: `cellDataByColId.${colId}.formattedValue`,
|
|
18
18
|
context: {
|
|
19
19
|
columnDefinition,
|
|
20
|
+
cellRendererFactory: (params, cellTypes) => MetricCell({ ...params, cellTypes }),
|
|
20
21
|
},
|
|
21
22
|
headerClass: getHeaderCellClassName,
|
|
22
|
-
cellClass: (params) => {
|
|
23
|
-
return getCellClassName(params, drillableItems, dv);
|
|
24
|
-
},
|
|
25
23
|
cellStyle: getMeasureCellStyle,
|
|
26
24
|
headerName: measureDescriptor.measureHeaderItem.name,
|
|
27
25
|
valueGetter: (params) => {
|
|
28
26
|
return extractFormattedValue(params, colId);
|
|
29
27
|
},
|
|
30
|
-
cellRenderer: (params) => {
|
|
31
|
-
const cellTypes = getCellTypes(params, drillableItems, dv);
|
|
32
|
-
return MetricCell({ ...params, cellTypes });
|
|
33
|
-
},
|
|
34
28
|
headerComponent: "MeasureHeader",
|
|
35
29
|
sortable: isValueColumnDefinition(columnDefinition),
|
|
36
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/measureColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;
|
|
1
|
+
{"version":3,"file":"measureColDef.js","sourceRoot":"","sources":["../../../../src/next/features/columns/measureColDef.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAIH,uBAAuB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAC/B,KAAa,EACb,gBAI2C;IAE3C,MAAM,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC;IAE/C,OAAO;QACH,KAAK;QACL,KAAK,EAAE,mBAAmB,KAAK,iBAAiB;QAChD,OAAO,EAAE;YACL,gBAAgB;YAChB,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;SACnF;QACD,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE,mBAAmB;QAC9B,UAAU,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,IAAI;QACpD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,eAAe,EAAE,eAAe;QAChC,QAAQ,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;KACtD,CAAC;AACN,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IServerSideDatasource } from "ag-grid-enterprise";
|
|
2
2
|
import { IAttribute, IMeasure, ISeparators, ISortItem } from "@gooddata/sdk-model";
|
|
3
|
-
import { DataViewFacade, OnDataView, OnError, OnExportReady } from "@gooddata/sdk-ui";
|
|
3
|
+
import { DataViewFacade, GoodDataSdkError, OnDataView, OnError, OnExportReady } from "@gooddata/sdk-ui";
|
|
4
4
|
import { AgGridApi } from "../../types/agGrid.js";
|
|
5
5
|
import { GrandTotalsPosition } from "../../types/grandTotalsPosition.js";
|
|
6
6
|
import { AgGridRowData, IInitialExecutionData, ITableColumnDefinitionByColId } from "../../types/internal.js";
|
|
@@ -18,6 +18,7 @@ interface ICreateServerSideDataSourceParams extends IInitialExecutionData {
|
|
|
18
18
|
columnDefinitionByColId: ITableColumnDefinitionByColId;
|
|
19
19
|
pageSize: number;
|
|
20
20
|
setCurrentDataView: (dataView: DataViewFacade | undefined) => void;
|
|
21
|
+
setRuntimeError: (error: GoodDataSdkError | undefined) => void;
|
|
21
22
|
setPivotResultColumns: (gridApi: AgGridApi) => void;
|
|
22
23
|
setGrandTotalRows: (gridApi: AgGridApi, grandTotalRowData: AgGridRowData[]) => void;
|
|
23
24
|
initSizingForEmptyData: (gridApi: AgGridApi, rowData: AgGridRowData[]) => void;
|
|
@@ -34,6 +35,6 @@ interface ICreateServerSideDataSourceParams extends IInitialExecutionData {
|
|
|
34
35
|
|
|
35
36
|
* @internal
|
|
36
37
|
*/
|
|
37
|
-
export declare const createServerSideDataSource: ({ measures, rows, sortBy, initialExecutionResult, initialDataView, columnHeadersPosition, grandTotalsPosition, columnDefinitionByColId, pageSize, setCurrentDataView, setPivotResultColumns, setGrandTotalRows, initSizingForEmptyData, onDataView, onError, onExportReady, exportTitle, separators, }: ICreateServerSideDataSourceParams) => IServerSideDatasource<AgGridRowData>;
|
|
38
|
+
export declare const createServerSideDataSource: ({ measures, rows, sortBy, initialExecutionResult, initialDataView, columnHeadersPosition, grandTotalsPosition, columnDefinitionByColId, pageSize, setCurrentDataView, setPivotResultColumns, setGrandTotalRows, initSizingForEmptyData, onDataView, onError, onExportReady, exportTitle, separators, setRuntimeError, }: ICreateServerSideDataSourceParams) => IServerSideDatasource<AgGridRowData>;
|
|
38
39
|
export {};
|
|
39
40
|
//# sourceMappingURL=createServerSideDataSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerSideDataSource.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/createServerSideDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAA+C,MAAM,oBAAoB,CAAC;AAIxG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"createServerSideDataSource.d.ts","sourceRoot":"","sources":["../../../../src/next/features/data/createServerSideDataSource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAA+C,MAAM,oBAAoB,CAAC;AAIxG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,aAAa,EAEhB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAKrE;;GAEG;AACH,UAAU,iCAAkC,SAAQ,qBAAqB;IACrE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,uBAAuB,EAAE,6BAA6B,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;IACnE,eAAe,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/D,qBAAqB,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACpF,sBAAsB,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAC/E,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA4DD;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GAAI,yTAoBxC,iCAAiC,KAAG,qBAAqB,CAAC,aAAa,CAuLzE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2025 GoodData Corporation
|
|
2
2
|
import { isEqual } from "lodash-es";
|
|
3
|
-
import {
|
|
3
|
+
import { convertDataWindowError, } from "@gooddata/sdk-ui";
|
|
4
4
|
import { agGridSetLoading } from "./agGridLoadingApi.js";
|
|
5
5
|
import { dataViewToRowData } from "./dataViewToRowData.js";
|
|
6
6
|
import { loadDataView } from "./loadDataView.js";
|
|
@@ -57,7 +57,7 @@ function getBackendRowOffset(agGridStartRow, agGridEndRow, grandTotalsPosition,
|
|
|
57
57
|
|
|
58
58
|
* @internal
|
|
59
59
|
*/
|
|
60
|
-
export const createServerSideDataSource = ({ measures, rows, sortBy, initialExecutionResult, initialDataView, columnHeadersPosition, grandTotalsPosition, columnDefinitionByColId, pageSize, setCurrentDataView, setPivotResultColumns, setGrandTotalRows, initSizingForEmptyData, onDataView, onError, onExportReady, exportTitle, separators, }) => {
|
|
60
|
+
export const createServerSideDataSource = ({ measures, rows, sortBy, initialExecutionResult, initialDataView, columnHeadersPosition, grandTotalsPosition, columnDefinitionByColId, pageSize, setCurrentDataView, setPivotResultColumns, setGrandTotalRows, initSizingForEmptyData, onDataView, onError, onExportReady, exportTitle, separators, setRuntimeError, }) => {
|
|
61
61
|
const abortController = new AbortController();
|
|
62
62
|
let isFirstRequest = true;
|
|
63
63
|
let lastSortBy = sortBy;
|
|
@@ -65,6 +65,7 @@ export const createServerSideDataSource = ({ measures, rows, sortBy, initialExec
|
|
|
65
65
|
let currentExecutionResult = initialExecutionResult;
|
|
66
66
|
// Track grand total count for offset adjustment in non-pinned "top" position
|
|
67
67
|
let cachedGrandTotalCount = 0;
|
|
68
|
+
let hasFatalRuntimeError = false;
|
|
68
69
|
/**
|
|
69
70
|
* There is 1 additional request when sorting + pivoting.
|
|
70
71
|
* For some reason, ag-grid sends empty sort model in the first getRows request,
|
|
@@ -114,8 +115,15 @@ export const createServerSideDataSource = ({ measures, rows, sortBy, initialExec
|
|
|
114
115
|
abortController.abort();
|
|
115
116
|
// Clear the context when data source is destroyed
|
|
116
117
|
setCurrentDataView(undefined);
|
|
118
|
+
// NOTE: Do NOT clear runtimeError here - if the grid is being destroyed
|
|
119
|
+
// because of a runtime error, clearing it would cause a re-render loop.
|
|
120
|
+
// The error should persist until the next execution starts.
|
|
117
121
|
},
|
|
118
122
|
getRows: async (params) => {
|
|
123
|
+
if (hasFatalRuntimeError) {
|
|
124
|
+
params.fail();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
119
127
|
try {
|
|
120
128
|
if (sortBy.length > 0 && params.request.sortModel.length === 0 && isFirstRequest) {
|
|
121
129
|
handleExtraSortRequest(params);
|
|
@@ -144,6 +152,7 @@ export const createServerSideDataSource = ({ measures, rows, sortBy, initialExec
|
|
|
144
152
|
rowCount: fixRowsCount(nextDataView, measures, rows, grandTotalsPosition, grandTotalCount),
|
|
145
153
|
};
|
|
146
154
|
params.success(successParam);
|
|
155
|
+
setRuntimeError(undefined);
|
|
147
156
|
if (isFirstRequest) {
|
|
148
157
|
setGrandTotalRows(params.api, grandTotalRowData);
|
|
149
158
|
initSizingForEmptyData(params.api, rowData);
|
|
@@ -159,7 +168,10 @@ export const createServerSideDataSource = ({ measures, rows, sortBy, initialExec
|
|
|
159
168
|
onDataView?.(nextDataView);
|
|
160
169
|
}
|
|
161
170
|
catch (e) {
|
|
162
|
-
|
|
171
|
+
const error = convertDataWindowError(e);
|
|
172
|
+
hasFatalRuntimeError = true;
|
|
173
|
+
setRuntimeError(error);
|
|
174
|
+
onError?.(error);
|
|
163
175
|
params.fail();
|
|
164
176
|
}
|
|
165
177
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServerSideDataSource.js","sourceRoot":"","sources":["../../../../src/next/features/data/createServerSideDataSource.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,
|
|
1
|
+
{"version":3,"file":"createServerSideDataSource.js","sourceRoot":"","sources":["../../../../src/next/features/data/createServerSideDataSource.ts"],"names":[],"mappings":"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"}
|