@gooddata/sdk-ui-charts 9.10.0-alpha.1 → 9.10.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/NOTICE +40082 -57922
  2. package/esm/charts/index.d.ts +3 -0
  3. package/esm/charts/index.d.ts.map +1 -1
  4. package/esm/charts/index.js +4 -1
  5. package/esm/charts/index.js.map +1 -1
  6. package/esm/charts/repeater/CoreRepeater.d.ts +16 -0
  7. package/esm/charts/repeater/CoreRepeater.d.ts.map +1 -0
  8. package/esm/charts/repeater/CoreRepeater.js +50 -0
  9. package/esm/charts/repeater/CoreRepeater.js.map +1 -0
  10. package/esm/charts/repeater/Repeater.d.ts +40 -0
  11. package/esm/charts/repeater/Repeater.d.ts.map +1 -0
  12. package/esm/charts/repeater/Repeater.js +48 -0
  13. package/esm/charts/repeater/Repeater.js.map +1 -0
  14. package/esm/charts/repeater/internal/RepeaterChart.d.ts +9 -0
  15. package/esm/charts/repeater/internal/RepeaterChart.d.ts.map +1 -0
  16. package/esm/charts/repeater/internal/RepeaterChart.js +70 -0
  17. package/esm/charts/repeater/internal/RepeaterChart.js.map +1 -0
  18. package/esm/charts/repeater/internal/dataViewToRepeaterData.d.ts +22 -0
  19. package/esm/charts/repeater/internal/dataViewToRepeaterData.d.ts.map +1 -0
  20. package/esm/charts/repeater/internal/dataViewToRepeaterData.js +62 -0
  21. package/esm/charts/repeater/internal/dataViewToRepeaterData.js.map +1 -0
  22. package/esm/charts/repeater/internal/repeaterAgGridDataSource.d.ts +15 -0
  23. package/esm/charts/repeater/internal/repeaterAgGridDataSource.d.ts.map +1 -0
  24. package/esm/charts/repeater/internal/repeaterAgGridDataSource.js +35 -0
  25. package/esm/charts/repeater/internal/repeaterAgGridDataSource.js.map +1 -0
  26. package/esm/charts/repeater/internal/repeaterExecution.d.ts +14 -0
  27. package/esm/charts/repeater/internal/repeaterExecution.d.ts.map +1 -0
  28. package/esm/charts/repeater/internal/repeaterExecution.js +40 -0
  29. package/esm/charts/repeater/internal/repeaterExecution.js.map +1 -0
  30. package/esm/charts/repeater/internal/types.d.ts +3 -0
  31. package/esm/charts/repeater/internal/types.d.ts.map +1 -0
  32. package/esm/charts/repeater/internal/types.js +3 -0
  33. package/esm/charts/repeater/internal/types.js.map +1 -0
  34. package/esm/highcharts/ChartTransformation.d.ts +1 -1
  35. package/esm/highcharts/ChartTransformation.d.ts.map +1 -1
  36. package/esm/sdk-ui-charts.d.ts +66 -0
  37. package/package.json +14 -11
  38. package/styles/css/main.css +7935 -0
  39. package/styles/css/main.css.map +1 -1
  40. package/styles/css/repeater.css +7941 -0
  41. package/styles/css/repeater.css.map +1 -0
  42. package/styles/scss/main.scss +1 -0
  43. package/styles/scss/repeater.scss +682 -0
@@ -23,5 +23,8 @@ export { DependencyWheelChart, IDependencyWheelChartProps, IDependencyWheelChart
23
23
  export { WaterfallChart, IWaterfallChartProps, IWaterfallChartBucketProps, } from "./waterfallChart/WaterfallChart.js";
24
24
  export { Xirr, IXirrProps, IXirrBucketProps } from "./xirr/Xirr.js";
25
25
  export { CoreXirr } from "./xirr/CoreXirr.js";
26
+ export { constructRepeaterBuckets, constructRepeaterDimensions, } from "./repeater/internal/repeaterExecution.js";
27
+ export { Repeater, IRepeaterProps, IRepeaterBucketProps } from "./repeater/Repeater.js";
28
+ export { CoreRepeater, ICoreRepeterChartProps } from "./repeater/CoreRepeater.js";
26
29
  export { withJsxExport } from "./withJsxExport.js";
27
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,gCAAgC,GACnC,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACH,cAAc,EACd,oBAAoB,EACpB,0BAA0B,GAC7B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/charts/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,iBAAiB,EACjB,4BAA4B,EAC5B,sBAAsB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,gCAAgC,GACnC,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACH,cAAc,EACd,oBAAoB,EACpB,0BAA0B,GAC7B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACH,wBAAwB,EACxB,2BAA2B,GAC9B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- // (C) 2019-2023 GoodData Corporation
1
+ // (C) 2019-2024 GoodData Corporation
2
2
  export { BaseChart } from "./_base/BaseChart.js";
3
3
  export { AreaChart } from "./areaChart/AreaChart.js";
4
4
  export { BarChart } from "./barChart/BarChart.js";
@@ -23,5 +23,8 @@ export { DependencyWheelChart, } from "./dependencyWheelChart/DependencyWheelCha
23
23
  export { WaterfallChart, } from "./waterfallChart/WaterfallChart.js";
24
24
  export { Xirr } from "./xirr/Xirr.js";
25
25
  export { CoreXirr } from "./xirr/CoreXirr.js";
26
+ export { constructRepeaterBuckets, constructRepeaterDimensions, } from "./repeater/internal/repeaterExecution.js";
27
+ export { Repeater } from "./repeater/Repeater.js";
28
+ export { CoreRepeater } from "./repeater/CoreRepeater.js";
26
29
  export { withJsxExport } from "./withJsxExport.js";
27
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/charts/index.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,SAAS,EAA0C,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,UAAU,EAA4C,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,UAAU,EAA4C,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAgD,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,YAAY,EAA8B,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,EAG1B,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,OAAO,EAAsC,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAA0C,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAsC,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EACH,oBAAoB,GAGvB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACH,cAAc,GAGjB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAgC,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/charts/index.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,SAAS,EAA0C,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,UAAU,EAA4C,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,UAAU,EAA4C,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAgD,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,YAAY,EAA8B,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACH,0BAA0B,EAC1B,0BAA0B,EAG1B,mBAAmB,EACnB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAAE,OAAO,EAAsC,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAA0C,MAAM,0BAA0B,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAExF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EAAE,OAAO,EAAsC,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,WAAW,EAA8C,MAAM,8BAA8B,CAAC;AAEvG,OAAO,EACH,oBAAoB,GAGvB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACH,cAAc,GAGjB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAgC,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACH,wBAAwB,EACxB,2BAA2B,GAC9B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,YAAY,EAA0B,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { WrappedComponentProps } from "react-intl";
3
+ import { ITheme } from "@gooddata/sdk-model";
4
+ import { ICoreChartProps } from "../../interfaces/index.js";
5
+ /**
6
+ * @internal
7
+ */
8
+ export interface ICoreRepeterChartProps extends ICoreChartProps, WrappedComponentProps {
9
+ theme?: ITheme;
10
+ }
11
+ export declare const CoreRepeaterImpl: React.FC<ICoreRepeterChartProps>;
12
+ /**
13
+ * @internal
14
+ */
15
+ export declare const CoreRepeater: React.FC<ICoreRepeterChartProps>;
16
+ //# sourceMappingURL=CoreRepeater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreRepeater.d.ts","sourceRoot":"","sources":["../../../src/charts/repeater/CoreRepeater.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAuB,MAAM,YAAY,CAAC;AAWxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe,EAAE,qBAAqB;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAuD7D,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAMzD,CAAC"}
@@ -0,0 +1,50 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ import { injectIntl, useIntl } from "react-intl";
4
+ import { LoadingComponent as SDKLoadingComponent, ErrorComponent as SDKErrorComponent, useCancelablePromise, DataViewFacade, newErrorMapping, IntlWrapper, convertError, ErrorCodes, } from "@gooddata/sdk-ui";
5
+ import { ThemeContextProvider, withTheme } from "@gooddata/sdk-ui-theme-provider";
6
+ import { RepeaterChart } from "./internal/RepeaterChart.js";
7
+ export const CoreRepeaterImpl = (props) => {
8
+ const { execution, ErrorComponent = SDKErrorComponent, LoadingComponent = SDKLoadingComponent, onLoadingChanged, pushData, onError, } = props;
9
+ const intl = useIntl();
10
+ const { result, error } = useCancelablePromise({
11
+ promise: async () => {
12
+ const isTwoDim = execution.definition.dimensions.length === 2;
13
+ const offset = isTwoDim ? [0, 0] : [0];
14
+ const size = isTwoDim ? [1, 1] : [1];
15
+ const executionResult = await execution.execute();
16
+ const dataWindow = await executionResult.readWindow(offset, size);
17
+ return DataViewFacade.for(dataWindow);
18
+ },
19
+ onLoading: () => {
20
+ onLoadingChanged?.({ isLoading: true });
21
+ },
22
+ onSuccess: (dataView) => {
23
+ onLoadingChanged?.({ isLoading: false });
24
+ pushData?.({ dataView: dataView.dataView });
25
+ },
26
+ onError: (error) => {
27
+ onLoadingChanged?.({ isLoading: false });
28
+ onError?.(convertError(error));
29
+ },
30
+ }, [execution.fingerprint()]);
31
+ if (error) {
32
+ const convertedError = convertError(error);
33
+ const errorMessage = convertedError.getMessage();
34
+ const errorMap = newErrorMapping(intl);
35
+ const errorProps = errorMap[Object.prototype.hasOwnProperty.call(errorMap, error) ? error : ErrorCodes.UNKNOWN_ERROR];
36
+ return React.createElement(ErrorComponent, { code: errorMessage, ...errorProps });
37
+ }
38
+ if (!result) {
39
+ return React.createElement(LoadingComponent, null);
40
+ }
41
+ return React.createElement(RepeaterChart, { dataView: result, onError: onError });
42
+ };
43
+ const CoreRepeaterWithIntl = injectIntl(withTheme(CoreRepeaterImpl));
44
+ /**
45
+ * @internal
46
+ */
47
+ export const CoreRepeater = (props) => (React.createElement(ThemeContextProvider, { theme: props.theme || {}, themeIsLoading: false },
48
+ React.createElement(IntlWrapper, { locale: props.locale },
49
+ React.createElement(CoreRepeaterWithIntl, { ...props }))));
50
+ //# sourceMappingURL=CoreRepeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreRepeater.js","sourceRoot":"","sources":["../../../src/charts/repeater/CoreRepeater.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import { AttributeOrPlaceholder, NullableFiltersOrPlaceholders, AttributesMeasuresOrPlaceholders } from "@gooddata/sdk-ui";
3
+ import { IBucketChartProps, ICoreChartProps } from "../../interfaces/index.js";
4
+ /**
5
+ * @beta
6
+ */
7
+ export interface IRepeaterBucketProps {
8
+ /**
9
+ * Main attribute that sets repeating frequency used for the computation.
10
+ */
11
+ attribute: AttributeOrPlaceholder;
12
+ /**
13
+ * Definition of columns which are sliced by the main attribute.
14
+ */
15
+ columns?: AttributesMeasuresOrPlaceholders;
16
+ /**
17
+ * Slicing attribute to be used for visualization measures.
18
+ */
19
+ sliceVisualizationBy?: AttributeOrPlaceholder;
20
+ /**
21
+ * Specify filters to apply on the data to compute with.
22
+ */
23
+ filters?: NullableFiltersOrPlaceholders;
24
+ /**
25
+ * Resolution context for composed placeholders.
26
+ */
27
+ placeholdersResolutionContext?: any;
28
+ }
29
+ /**
30
+ * @beta
31
+ */
32
+ export interface IRepeaterProps extends IBucketChartProps, IRepeaterBucketProps {
33
+ }
34
+ /**
35
+ * @beta
36
+ */
37
+ export declare const Repeater: (props: IRepeaterProps) => JSX.Element;
38
+ export declare function RenderRepeater(props: IRepeaterProps): JSX.Element;
39
+ export declare function toCoreRepeaterProps(props: IRepeaterProps): ICoreChartProps;
40
+ //# sourceMappingURL=Repeater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repeater.d.ts","sourceRoot":"","sources":["../../../src/charts/repeater/Repeater.tsx"],"names":[],"mappings":";AAKA,OAAO,EAGH,sBAAsB,EACtB,6BAA6B,EAE7B,gCAAgC,EAInC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAS/E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,SAAS,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,gCAAgC,CAAC;IAE3C;;OAEG;IACH,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IAE9C;;OAEG;IACH,OAAO,CAAC,EAAE,6BAA6B,CAAC;IAExC;;OAEG;IACH,6BAA6B,CAAC,EAAE,GAAG,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB,EAAE,oBAAoB;CAAG;AAIlF;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,cAAc,KAAG,WAOhD,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAUjE;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAsB1E"}
@@ -0,0 +1,48 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React from "react";
3
+ import { useResolveValuesWithPlaceholders, withContexts, IntlTranslationsProvider, IntlWrapper, } from "@gooddata/sdk-ui";
4
+ import omit from "lodash/omit.js";
5
+ import { CoreRepeater } from "./CoreRepeater.js";
6
+ import { constructRepeaterBuckets, constructRepeaterDimensions } from "./internal/repeaterExecution.js";
7
+ const WrappedRepeater = withContexts(RenderRepeater);
8
+ /**
9
+ * @beta
10
+ */
11
+ export const Repeater = (props) => {
12
+ const [attribute, measures, filters] = useResolveValuesWithPlaceholders([props.attribute, props.columns, props.filters], props.placeholdersResolutionContext);
13
+ return React.createElement(WrappedRepeater, { ...props, attribute, measures, filters });
14
+ };
15
+ export function RenderRepeater(props) {
16
+ return (React.createElement(IntlWrapper, { locale: props.locale },
17
+ React.createElement(IntlTranslationsProvider, null, (translationProps) => {
18
+ return React.createElement(CoreRepeater, { intl: translationProps.intl, ...toCoreRepeaterProps(props) });
19
+ })));
20
+ }
21
+ export function toCoreRepeaterProps(props) {
22
+ const { attribute, columns = [], sliceVisualizationBy } = props;
23
+ const buckets = constructRepeaterBuckets(attribute, columns, sliceVisualizationBy);
24
+ const newProps = omit(props, [
25
+ "attribute",
26
+ "columns",
27
+ "sliceVisualizationBy",
28
+ "filters",
29
+ "backend",
30
+ ]);
31
+ return {
32
+ ...newProps,
33
+ execution: createExecution(buckets, props),
34
+ exportTitle: props.exportTitle || "Repeater", // TODO: is this correct? at least translate
35
+ };
36
+ }
37
+ function createExecution(buckets, props) {
38
+ const { backend, workspace, execConfig } = props;
39
+ const dimensions = constructRepeaterDimensions(buckets);
40
+ return backend
41
+ .withTelemetry("Repeater", props)
42
+ .workspace(workspace)
43
+ .execution()
44
+ .forBuckets(buckets, props.filters)
45
+ .withDimensions(...dimensions)
46
+ .withExecConfig(execConfig);
47
+ }
48
+ //# sourceMappingURL=Repeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repeater.js","sourceRoot":"","sources":["../../../src/charts/repeater/Repeater.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAEH,gCAAgC,EAGhC,YAAY,EAGZ,wBAAwB,EACxB,WAAW,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAyCxG,MAAM,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAqB,EAAe,EAAE;IAC3D,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,gCAAgC,CACnE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAC/C,KAAK,CAAC,6BAA6B,CACtC,CAAC;IAEF,OAAO,oBAAC,eAAe,OAAK,KAAK,EAAQ,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAM,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,KAAqB;IAChD,OAAO,CACH,oBAAC,WAAW,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM;QAC7B,oBAAC,wBAAwB,QACpB,CAAC,gBAA6C,EAAE,EAAE;YAC/C,OAAO,oBAAC,YAAY,IAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,KAAM,mBAAmB,CAAC,KAAK,CAAC,GAAI,CAAC;QACzF,CAAC,CACsB,CACjB,CACjB,CAAC;AACN,CAAC;AASD,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACrD,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAC;IAEhE,MAAM,OAAO,GAAG,wBAAwB,CACpC,SAAuB,EACvB,OAAgC,EAChC,oBAAkC,CACrC,CAAC;IAEF,MAAM,QAAQ,GAA4B,IAAI,CAAiD,KAAK,EAAE;QAClG,WAAW;QACX,SAAS;QACT,sBAAsB;QACtB,SAAS;QACT,SAAS;KACZ,CAAC,CAAC;IAEH,OAAO;QACH,GAAG,QAAQ;QACX,SAAS,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,UAAU,EAAE,4CAA4C;KAC7F,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,OAAkB,EAAE,KAAqB;IAC9D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACjD,MAAM,UAAU,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAExD,OAAO,OAAO;SACT,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAChC,SAAS,CAAC,SAAS,CAAC;SACpB,SAAS,EAAE;SACX,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,OAA4B,CAAC;SACvD,cAAc,CAAC,GAAG,UAAU,CAAC;SAC7B,cAAc,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { DataViewFacade } from "@gooddata/sdk-ui";
3
+ interface IRepeaterChartProps {
4
+ dataView: DataViewFacade;
5
+ onError?: (error: any) => void;
6
+ }
7
+ export declare const RepeaterChart: React.FC<IRepeaterChartProps>;
8
+ export {};
9
+ //# sourceMappingURL=RepeaterChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepeaterChart.d.ts","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/RepeaterChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAe,cAAc,EAA8C,MAAM,kBAAkB,CAAC;AAM3G,UAAU,mBAAmB;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiGvD,CAAC"}
@@ -0,0 +1,70 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import React, { useMemo } from "react";
3
+ import { AgGridReact } from "@ag-grid-community/react";
4
+ import { AllCommunityModules } from "@ag-grid-community/all-modules";
5
+ import { BucketNames, LoadingComponent, emptyHeaderTitleFromIntl } from "@gooddata/sdk-ui";
6
+ import { AgGridDatasource } from "./repeaterAgGridDataSource.js";
7
+ import { attributeLocalId, bucketsFind, isMeasure, measureLocalId } from "@gooddata/sdk-model";
8
+ import { useTheme } from "@gooddata/sdk-ui-theme-provider";
9
+ import { useIntl } from "react-intl";
10
+ export const RepeaterChart = ({ dataView, onError }) => {
11
+ const intl = useIntl();
12
+ const dataSource = useMemo(() => new AgGridDatasource(dataView, { onError }),
13
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14
+ [dataView.fingerprint(), onError]);
15
+ const columnDefs = useMemo(() => {
16
+ const attributeDescriptors = dataView.meta().attributeDescriptors();
17
+ const measureDescriptors = dataView.meta().measureDescriptors();
18
+ const columnsBucket = bucketsFind(dataView.definition.buckets, BucketNames.COLUMNS);
19
+ return columnsBucket.items.map((bucketItem) => {
20
+ if (isMeasure(bucketItem)) {
21
+ const localId = measureLocalId(bucketItem);
22
+ const measureDescriptor = measureDescriptors.find((descriptor) => descriptor.measureHeaderItem.localIdentifier === localId);
23
+ return {
24
+ headerName: measureDescriptor.measureHeaderItem.name,
25
+ field: localId,
26
+ cellClass: "gd-cell",
27
+ cellRenderer: function CellRenderer(props) {
28
+ const theme = useTheme();
29
+ const color = theme?.table?.loadingIconColor ?? theme?.palette?.complementary?.c6 ?? undefined;
30
+ const { value, node } = props;
31
+ const loadingDone = node.id !== undefined;
32
+ if (!loadingDone) {
33
+ return (React.createElement(LoadingComponent, { color: color, width: 36, imageHeight: 8, height: 26, speed: 2 }));
34
+ }
35
+ return React.createElement("div", null, JSON.stringify(value) || "–");
36
+ },
37
+ valueGetter: (params) => {
38
+ return params.data?.[localId];
39
+ },
40
+ };
41
+ }
42
+ else {
43
+ const localId = attributeLocalId(bucketItem);
44
+ const attributeDescriptor = attributeDescriptors.find((descriptor) => descriptor.attributeHeader.localIdentifier === localId);
45
+ return {
46
+ headerName: attributeDescriptor.attributeHeader.formOf.name,
47
+ field: localId,
48
+ cellClass: "gd-cell",
49
+ cellRenderer: function CellRenderer(props) {
50
+ const theme = useTheme();
51
+ const color = theme?.table?.loadingIconColor ?? theme?.palette?.complementary?.c6 ?? undefined;
52
+ const { value, node } = props;
53
+ const loadingDone = node.id !== undefined;
54
+ if (!loadingDone) {
55
+ return (React.createElement(LoadingComponent, { color: color, width: 36, imageHeight: 8, height: 26, speed: 2 }));
56
+ }
57
+ return React.createElement("div", null, value || emptyHeaderTitleFromIntl(intl));
58
+ },
59
+ valueGetter: (params) => {
60
+ return params.data?.[localId]?.name;
61
+ },
62
+ };
63
+ }
64
+ });
65
+ // eslint-disable-next-line react-hooks/exhaustive-deps
66
+ }, [dataView.fingerprint()]);
67
+ return (React.createElement("div", { className: "gd-repeater ag-theme-balham s-repeater" },
68
+ React.createElement(AgGridReact, { key: dataView.fingerprint(), modules: AllCommunityModules, columnDefs: columnDefs, rowClass: "gd-table-row", datasource: dataSource, rowModelType: "infinite" })));
69
+ };
70
+ //# sourceMappingURL=RepeaterChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepeaterChart.js","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/RepeaterChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { IResultAttributeHeaderItem } from "@gooddata/sdk-model";
2
+ import { DataViewFacade } from "@gooddata/sdk-ui";
3
+ /**
4
+ * Key is the localId of the attribute or measure.
5
+ *
6
+ * For row, or column attributes, value is IResultAttributeHeaderItem
7
+ * For slicing attribute, value is array of IResultAttributeHeaderItem.
8
+ * For measure(s), value is array of string or nulls (formatted values).
9
+ */
10
+ export type IRepeaterRow = Record<string, IResultAttributeHeaderItem | IResultAttributeHeaderItem[] | (string | null)[]>;
11
+ /**
12
+ * Map data view to a structure that can be easily rendered in a table (repeater).
13
+ *
14
+ * Execution is always constructed by the following rules:
15
+ * - It always contains 1 main row attribute
16
+ * - It can contain 0..n column attributes
17
+ * - Column attributes have always the same count of headers as the main row attribute
18
+ * - It can contain 0..n measures
19
+ * - It can contain 0 or 1 slicing attribute.
20
+ */
21
+ export declare function dataViewToRepeaterData(dataViewFacade: DataViewFacade): IRepeaterRow[];
22
+ //# sourceMappingURL=dataViewToRepeaterData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataViewToRepeaterData.d.ts","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/dataViewToRepeaterData.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,0BAA0B,EAI7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAC7B,MAAM,EACN,0BAA0B,GAAG,0BAA0B,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAChF,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,EAAE,CAqDrF"}
@@ -0,0 +1,62 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { attributeDescriptorLocalId, isAttributeDescriptor, isMeasureGroupDescriptor, } from "@gooddata/sdk-model";
3
+ /**
4
+ * Map data view to a structure that can be easily rendered in a table (repeater).
5
+ *
6
+ * Execution is always constructed by the following rules:
7
+ * - It always contains 1 main row attribute
8
+ * - It can contain 0..n column attributes
9
+ * - Column attributes have always the same count of headers as the main row attribute
10
+ * - It can contain 0..n measures
11
+ * - It can contain 0 or 1 slicing attribute.
12
+ */
13
+ export function dataViewToRepeaterData(dataViewFacade) {
14
+ const rows = [];
15
+ const [firstDimDescriptors, secondDimDescriptors] = [
16
+ dataViewFacade.meta().dimensionItemDescriptors(0),
17
+ dataViewFacade.meta().dimensionItemDescriptors(1),
18
+ ];
19
+ const [firstDimHeaders, secondDimHeaders] = dataViewFacade.meta().allHeaders();
20
+ // Process first dimension (row and column attributes)
21
+ firstDimDescriptors.forEach((dimDescriptor, headerIndex) => {
22
+ if (isAttributeDescriptor(dimDescriptor)) {
23
+ const localId = attributeDescriptorLocalId(dimDescriptor);
24
+ firstDimHeaders[headerIndex].forEach((headerItem, itemIndex) => {
25
+ rows[itemIndex] = rows[itemIndex] || {};
26
+ rows[itemIndex][localId] = headerItem.attributeHeaderItem;
27
+ });
28
+ }
29
+ });
30
+ // Process second dimension (slicing attribute and measures)
31
+ secondDimDescriptors.forEach((dimDescriptor) => {
32
+ if (isAttributeDescriptor(dimDescriptor)) {
33
+ const localId = attributeDescriptorLocalId(dimDescriptor);
34
+ const headerItems = secondDimHeaders[secondDimDescriptors.indexOf(dimDescriptor)];
35
+ // Slicing attribute is same for each row
36
+ rows.forEach((row) => {
37
+ row[localId] = headerItems.map((header) => header.attributeHeaderItem);
38
+ });
39
+ }
40
+ else if (isMeasureGroupDescriptor(dimDescriptor)) {
41
+ // Map each measure to rows
42
+ dimDescriptor.measureGroupHeader.items.forEach((measureDescriptor) => {
43
+ const allSeries = dataViewFacade
44
+ .data()
45
+ .series()
46
+ .allForMeasure(measureDescriptor.measureHeaderItem.localIdentifier);
47
+ // Map each measure series to rows
48
+ [...allSeries].forEach((series, seriesIndex) => {
49
+ // Map data points to relevant rows and respective measure
50
+ series.dataPoints().forEach((dataPoint, pointIndex) => {
51
+ const measureLocalId = measureDescriptor.measureHeaderItem.localIdentifier;
52
+ rows[pointIndex][measureLocalId] = rows[pointIndex][measureLocalId] || [];
53
+ rows[pointIndex][measureLocalId][seriesIndex] =
54
+ dataPoint.formattedValue();
55
+ });
56
+ });
57
+ });
58
+ }
59
+ });
60
+ return rows;
61
+ }
62
+ //# sourceMappingURL=dataViewToRepeaterData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataViewToRepeaterData.js","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/dataViewToRepeaterData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { GridApi, IDatasource, IGetRowsParams } from "@ag-grid-community/all-modules";
2
+ import { DataViewFacade } from "@gooddata/sdk-ui";
3
+ export type GridApiProvider = () => GridApi | undefined;
4
+ export type AdGridCallbacks = {
5
+ onError?: (error: any) => void;
6
+ };
7
+ export declare class AgGridDatasource implements IDatasource {
8
+ rowCount: number | undefined;
9
+ private dataViewFacade;
10
+ private onError;
11
+ constructor(dataViewFacade: DataViewFacade, callbacks: AdGridCallbacks);
12
+ private loadExecutionWindow;
13
+ getRows: (params: IGetRowsParams) => void;
14
+ }
15
+ //# sourceMappingURL=repeaterAgGridDataSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeaterAgGridDataSource.d.ts","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/repeaterAgGridDataSource.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,qBAAa,gBAAiB,YAAW,WAAW;IACzC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAA6B;gBAEhC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe;YAOxD,mBAAmB;IAO1B,OAAO,WAAY,cAAc,KAAG,IAAI,CAc7C;CACL"}
@@ -0,0 +1,35 @@
1
+ import { DataViewFacade } from "@gooddata/sdk-ui";
2
+ import { dataViewToRepeaterData } from "./dataViewToRepeaterData.js";
3
+ const MAX_COLUMNS = 1000;
4
+ export class AgGridDatasource {
5
+ rowCount;
6
+ dataViewFacade;
7
+ onError;
8
+ constructor(dataViewFacade, callbacks) {
9
+ const [firstDimCount] = dataViewFacade.dataView.count;
10
+ this.dataViewFacade = dataViewFacade;
11
+ this.rowCount = firstDimCount;
12
+ this.onError = callbacks.onError;
13
+ }
14
+ async loadExecutionWindow(startRow, endRow) {
15
+ const hasTwoDim = this.dataViewFacade.meta().dimensions().length > 1;
16
+ const offset = hasTwoDim ? [startRow, 0] : [startRow];
17
+ const size = hasTwoDim ? [endRow - startRow, MAX_COLUMNS] : [endRow - startRow];
18
+ return this.dataViewFacade.result().readWindow(offset, size);
19
+ }
20
+ getRows = (params) => {
21
+ const { startRow, endRow, successCallback, failCallback } = params;
22
+ this.loadExecutionWindow(startRow, endRow)
23
+ .then((result) => {
24
+ const dataViewFacade = DataViewFacade.for(result);
25
+ const transformedResult = dataViewToRepeaterData(dataViewFacade);
26
+ successCallback(transformedResult, result.totalCount[0]);
27
+ })
28
+ .catch((error) => {
29
+ console.error("error", { error });
30
+ failCallback();
31
+ this.onError?.(error);
32
+ });
33
+ };
34
+ }
35
+ //# sourceMappingURL=repeaterAgGridDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeaterAgGridDataSource.js","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/repeaterAgGridDataSource.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,WAAW,GAAG,IAAI,CAAC;AAQzB,MAAM,OAAO,gBAAgB;IAClB,QAAQ,CAAqB;IAC5B,cAAc,CAAiB;IAC/B,OAAO,CAA6B;IAE5C,YAAY,cAA8B,EAAE,SAA0B;QAClE,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,MAAc;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAEM,OAAO,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAC9C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAEnE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;aACrC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACb,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;YACjE,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClC,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;CACL"}
@@ -0,0 +1,14 @@
1
+ import { IAttribute, IAttributeOrMeasure, IBucket, IDimension } from "@gooddata/sdk-model";
2
+ /**
3
+ * Constructs repeater buckets from the provided attributes and measures.
4
+ *
5
+ * @internal
6
+ */
7
+ export declare function constructRepeaterBuckets(rowAttribute: IAttribute, columns: IAttributeOrMeasure[], sliceVisualizationBy?: IAttribute): IBucket[];
8
+ /**
9
+ * Constructs repeater execution dimensions from the provided buckets.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare function constructRepeaterDimensions(buckets: IBucket[]): IDimension[];
14
+ //# sourceMappingURL=repeaterExecution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeaterExecution.d.ts","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/repeaterExecution.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,UAAU,EAOb,MAAM,qBAAqB,CAAC;AAG7B;;;;GAIG;AACH,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,oBAAoB,CAAC,EAAE,UAAU,aAOpC;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAuB5E"}
@@ -0,0 +1,40 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { MeasureGroupIdentifier, bucketAttributes, bucketMeasures, bucketsFind, newBucket, newDimension, } from "@gooddata/sdk-model";
3
+ import { BucketNames } from "@gooddata/sdk-ui";
4
+ /**
5
+ * Constructs repeater buckets from the provided attributes and measures.
6
+ *
7
+ * @internal
8
+ */
9
+ export function constructRepeaterBuckets(rowAttribute, columns, sliceVisualizationBy) {
10
+ return [
11
+ newBucket(BucketNames.ATTRIBUTE, rowAttribute),
12
+ newBucket(BucketNames.COLUMNS, ...columns),
13
+ sliceVisualizationBy ? newBucket(BucketNames.VIEW, sliceVisualizationBy) : undefined,
14
+ ].filter(Boolean);
15
+ }
16
+ /**
17
+ * Constructs repeater execution dimensions from the provided buckets.
18
+ *
19
+ * @internal
20
+ */
21
+ export function constructRepeaterDimensions(buckets) {
22
+ // Row attribute
23
+ const rowAttributeBucket = bucketsFind(buckets, BucketNames.ATTRIBUTE);
24
+ const rowAttributeBucketAttributes = rowAttributeBucket ? bucketAttributes(rowAttributeBucket) : [];
25
+ const rowAttribute = rowAttributeBucketAttributes[0];
26
+ // Columns (row attribute display forms + visualization measures)
27
+ const columnsBucket = bucketsFind(buckets, BucketNames.COLUMNS);
28
+ const columnBucketMeasures = columnsBucket ? bucketMeasures(columnsBucket) : [];
29
+ const columnBucketAttributes = columnsBucket ? bucketAttributes(columnsBucket) : [];
30
+ // Slice by attribute
31
+ const viewBucket = bucketsFind(buckets, BucketNames.VIEW);
32
+ const viewBucketAttributes = viewBucket ? bucketAttributes(viewBucket) : [];
33
+ const viewAttribute = viewBucketAttributes[0];
34
+ const dimensions = [[rowAttribute, ...columnBucketAttributes]];
35
+ if (viewAttribute && columnBucketMeasures.length > 0) {
36
+ dimensions.push([viewAttribute, MeasureGroupIdentifier]);
37
+ }
38
+ return dimensions.map((d) => newDimension(d));
39
+ }
40
+ //# sourceMappingURL=repeaterExecution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeaterExecution.js","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/repeaterExecution.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAMH,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACpC,YAAwB,EACxB,OAA8B,EAC9B,oBAAiC;IAEjC,OAAO;QACH,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,YAA0B,CAAC;QAC5D,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAI,OAAiC,CAAC;QACrE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAkC,CAAC,CAAC,CAAC,CAAC,SAAS;KACrG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAkB;IAC1D,gBAAgB;IAChB,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,MAAM,YAAY,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;IAErD,iEAAiE;IACjE,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,sBAAsB,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpF,qBAAqB;IACrB,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAsB,CAAC,CAAC,YAAY,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC;IAElF,IAAI,aAAa,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DataValue } from "@gooddata/sdk-model";
2
+ export type RepeaterTransformedData = DataValue[][][];
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ // (C) 2024 GoodData Corporation
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/charts/repeater/internal/types.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
@@ -26,5 +26,5 @@ export interface IChartTransformationProps extends WrappedComponentProps {
26
26
  pushData?(data: any): void;
27
27
  renderer?(arg: IHighChartsRendererProps): JSX.Element;
28
28
  }
29
- export declare const ChartTransformation: React.NamedExoticComponent<import("react-intl").WithIntlProps<Omit<IChartTransformationProps, "theme" | "themeIsLoading">>>;
29
+ export declare const ChartTransformation: React.NamedExoticComponent<import("react-intl").WithIntlProps<Omit<IChartTransformationProps, "theme" | "themeIsLoading" | "themeStatus">>>;
30
30
  //# sourceMappingURL=ChartTransformation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartTransformation.d.ts","sourceRoot":"","sources":["../../src/highcharts/ChartTransformation.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAEH,iBAAiB,EACjB,aAAa,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAEH,wBAAwB,EAG3B,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAC;AAO/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAM7E;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,SAAS,CAAC;IAEpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAE7B,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,gBAAgB,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,CAAC,GAAG,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAAC;CACzD;AA6GD,eAAO,MAAM,mBAAmB,6HAE9B,CAAC"}
1
+ {"version":3,"file":"ChartTransformation.d.ts","sourceRoot":"","sources":["../../src/highcharts/ChartTransformation.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAEH,iBAAiB,EACjB,aAAa,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAEH,wBAAwB,EAG3B,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,qBAAqB,EAAc,MAAM,YAAY,CAAC;AAO/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAM7E;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,SAAS,CAAC;IAEpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAE7B,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,gBAAgB,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,CAAC,GAAG,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CAAC;CACzD;AA6GD,eAAO,MAAM,mBAAmB,6IAE9B,CAAC"}