@gooddata/sdk-ui-charts 11.52.0-alpha.5 → 11.52.0-alpha.7
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/charts/mekko/Mekko.d.ts.map +1 -1
- package/esm/charts/mekko/Mekko.js +11 -2
- package/esm/highcharts/ChartTransformation.d.ts.map +1 -1
- package/esm/highcharts/ChartTransformation.js +6 -3
- package/esm/highcharts/chartTypes/_chartCreators/customConfiguration.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/_chartCreators/customConfiguration.js +13 -5
- package/esm/highcharts/chartTypes/_chartOptions/chartAxes.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/_chartOptions/chartAxes.js +17 -1
- package/esm/highcharts/chartTypes/_chartOptions/chartOptionsBuilder.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/_chartOptions/chartOptionsBuilder.js +18 -12
- package/esm/highcharts/chartTypes/_chartOptions/chartTooltips.d.ts +2 -0
- package/esm/highcharts/chartTypes/_chartOptions/chartTooltips.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/_chartOptions/chartTooltips.js +29 -0
- package/esm/highcharts/chartTypes/mekko/mekkoChartOptions.d.ts +24 -0
- package/esm/highcharts/chartTypes/mekko/mekkoChartOptions.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/mekko/mekkoChartOptions.js +70 -1
- package/esm/highcharts/chartTypes/mekko/mekkoSeries.d.ts +1 -0
- package/esm/highcharts/chartTypes/mekko/mekkoSeries.d.ts.map +1 -1
- package/esm/highcharts/chartTypes/mekko/mekkoSeries.js +16 -10
- package/esm/highcharts/typings/unsafe.d.ts +2 -0
- package/esm/highcharts/typings/unsafe.d.ts.map +1 -1
- package/esm/interfaces/chartConfig.d.ts +11 -1
- package/esm/interfaces/chartConfig.d.ts.map +1 -1
- package/esm/sdk-ui-charts.d.ts +10 -0
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mekko.d.ts","sourceRoot":"","sources":["../../../src/charts/mekko/Mekko.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Mekko.d.ts","sourceRoot":"","sources":["../../../src/charts/mekko/Mekko.tsx"],"names":[],"mappings":"AAUA,OAAO,EACH,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EAE3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAqDxE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,EAAE,6BAA6B,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,6BAA6B,CAAC,EAAE,GAAG,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,iBAAiB,EAAE,iBAAiB;CAAG;AAI5E;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,2CAmBvC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
|
-
import { newBucket, } from "@gooddata/sdk-model";
|
|
3
|
+
import { isMeasureSort, newBucket, } from "@gooddata/sdk-model";
|
|
4
4
|
import { BucketNames, useResolveValuesWithPlaceholders, } from "@gooddata/sdk-ui";
|
|
5
5
|
import { withChart } from "../_base/withChart.js";
|
|
6
6
|
import { stackedChartDimensions } from "../_commons/dimensions.js";
|
|
@@ -24,15 +24,24 @@ const mekkoDefinition = {
|
|
|
24
24
|
executionFactory: (props, buckets) => {
|
|
25
25
|
const { backend, workspace, execConfig } = props;
|
|
26
26
|
const sortBy = props.sortBy ?? [];
|
|
27
|
+
// stacked executions cannot express a measure sort of the columns — it applies client-side
|
|
28
|
+
const executionSortBy = props.stackBy ? sortBy.filter((sort) => !isMeasureSort(sort)) : sortBy;
|
|
27
29
|
return backend
|
|
28
30
|
.withTelemetry("Mekko", props)
|
|
29
31
|
.workspace(workspace)
|
|
30
32
|
.execution()
|
|
31
33
|
.forBuckets(buckets, props.filters)
|
|
32
|
-
.withSorting(...
|
|
34
|
+
.withSorting(...executionSortBy)
|
|
33
35
|
.withDimensions(stackedChartDimensions)
|
|
34
36
|
.withExecConfig(execConfig);
|
|
35
37
|
},
|
|
38
|
+
propOverridesFactory: (props) => ({
|
|
39
|
+
config: {
|
|
40
|
+
...props.config,
|
|
41
|
+
// the sortBy prop wins over config.sortBy; keep a user-set config value otherwise
|
|
42
|
+
...(props.sortBy ? { sortBy: props.sortBy } : {}),
|
|
43
|
+
},
|
|
44
|
+
}),
|
|
36
45
|
};
|
|
37
46
|
const WrappedMekko = withChart(mekkoDefinition)(CoreMekko);
|
|
38
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTransformation.d.ts","sourceRoot":"","sources":["../../src/highcharts/ChartTransformation.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"ChartTransformation.d.ts","sourceRoot":"","sources":["../../src/highcharts/ChartTransformation.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAoC,MAAM,OAAO,CAAC;AAQ5E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAMzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAuB,KAAK,iBAAiB,EAAoB,MAAM,8BAA8B,CAAC;AAE7G,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIjE,OAAO,EAEH,KAAK,wBAAwB,EAGhC,MAAM,iCAAiC,CAAC;AAezC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,CAM9E;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,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,EAAE,CAAC,CAAC,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,CAAC,GAAG,EAAE,wBAAwB,GAAG,YAAY,CAAC;IAEvD,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAyKD,eAAO,MAAM,mBAAmB,iJAK9B,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2007-2026 GoodData Corporation
|
|
3
|
-
import { memo, useEffect, useRef } from "react";
|
|
3
|
+
import { memo, useEffect, useMemo, useRef } from "react";
|
|
4
4
|
import Highcharts from "highcharts/esm/highcharts.js";
|
|
5
5
|
import { isEqual, omitBy } from "lodash-es";
|
|
6
6
|
import { useIntl } from "react-intl";
|
|
7
7
|
import { invariant } from "ts-invariant";
|
|
8
|
-
import { anomaliesTitleFromIntl, clusterTitleFromIntl, convertDrillableItemsToPredicates, emptyHeaderTitleFromIntl, totalColumnTitleFromIntl, } from "@gooddata/sdk-ui";
|
|
8
|
+
import { DataViewFacade, anomaliesTitleFromIntl, clusterTitleFromIntl, convertDrillableItemsToPredicates, emptyHeaderTitleFromIntl, totalColumnTitleFromIntl, } from "@gooddata/sdk-ui";
|
|
9
9
|
import { useReferenceTheme, withTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
10
10
|
import { useTooltipLookup } from "@gooddata/sdk-ui-vis-commons";
|
|
11
11
|
import { initChartPlugins } from "./adapter/chartPlugins.js";
|
|
@@ -18,14 +18,17 @@ import { getHighchartsOptions } from "./chartTypes/_chartCreators/highChartsCrea
|
|
|
18
18
|
import { getDataTooLargeErrorMessage, getIsFilteringRecommended, validateData, } from "./chartTypes/_chartOptions/chartLimits.js";
|
|
19
19
|
import { getChartOptions } from "./chartTypes/_chartOptions/chartOptionsBuilder.js";
|
|
20
20
|
import { isChartSupported, stringifyChartTypes } from "./chartTypes/_util/common.js";
|
|
21
|
+
import { getMekkoEffectiveConfig } from "./chartTypes/mekko/mekkoChartOptions.js";
|
|
21
22
|
export function renderHighCharts(props) {
|
|
22
23
|
const childrenRenderer = (contentRect) => (_jsx(HighChartsRenderer, { contentRect: contentRect, ...props }));
|
|
23
24
|
return _jsx(HighChartsMeasuredRenderer, { childrenRenderer: childrenRenderer });
|
|
24
25
|
}
|
|
25
|
-
function ChartTransformationImpl({ config, renderer = renderHighCharts, dataView, height, width, afterRender = () => { }, onDrill = () => true, onLegendReady = () => { }, locale, theme, referenceTheme: referenceThemeProp, numericSymbols, drillableItems = [], onDataTooLarge, onNegativeValues = null, pushData = () => { }, tooltipExecution, }) {
|
|
26
|
+
function ChartTransformationImpl({ config: configProp, renderer = renderHighCharts, dataView, height, width, afterRender = () => { }, onDrill = () => true, onLegendReady = () => { }, locale, theme, referenceTheme: referenceThemeProp, numericSymbols, drillableItems = [], onDataTooLarge, onNegativeValues = null, pushData = () => { }, tooltipExecution, }) {
|
|
26
27
|
const intl = useIntl();
|
|
27
28
|
const referenceThemeFromContext = useReferenceTheme();
|
|
28
29
|
const referenceTheme = referenceThemeProp ?? referenceThemeFromContext;
|
|
30
|
+
// mekko stacking is bucket-driven — sanitize stackMeasures* once for every config consumer below
|
|
31
|
+
const config = useMemo(() => getMekkoEffectiveConfig(configProp, DataViewFacade.for(dataView)), [configProp, dataView]);
|
|
29
32
|
const visType = config.type;
|
|
30
33
|
const drillablePredicates = convertDrillableItemsToPredicates(drillableItems);
|
|
31
34
|
// `undefined` until the first result lands (treated as "no external values").
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartCreators/customConfiguration.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAkB,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAC;AAGzF,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAEH,KAAK,iBAAiB,EAGzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEH,KAAK,aAAa,EAOlB,KAAK,mCAAmC,EAC3C,MAAM,yBAAyB,CAAC;AA0GjC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AA+D9C,wBAAgB,mCAAmC,CAC/C,IAAI,EAAE,UAAU,CAAC,gCAAgC,EACjD,QAAQ,EAAE,GAAG,GACd,MAAM,CAkBR;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,gCAAgC,GAAG,MAAM,CAiB3F;AAyFD,wBAAgB,kCAAkC,CAC9C,IAAI,EAAE,UAAU,CAAC,OAAO,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mCAAmC,GAC3C;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAmB1B;AA8CD,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,UAAU,CAAC,OAAO,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mCAAmC,GAC3C;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CA2B1B;AA6JD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAarF;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAO3F;
|
|
1
|
+
{"version":3,"file":"customConfiguration.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartCreators/customConfiguration.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAkB,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAC;AAGzF,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAEH,KAAK,iBAAiB,EAGzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEH,KAAK,aAAa,EAOlB,KAAK,mCAAmC,EAC3C,MAAM,yBAAyB,CAAC;AA0GjC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AA+D9C,wBAAgB,mCAAmC,CAC/C,IAAI,EAAE,UAAU,CAAC,gCAAgC,EACjD,QAAQ,EAAE,GAAG,GACd,MAAM,CAkBR;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,gCAAgC,GAAG,MAAM,CAiB3F;AAyFD,wBAAgB,kCAAkC,CAC9C,IAAI,EAAE,UAAU,CAAC,OAAO,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mCAAmC,GAC3C;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAmB1B;AA8CD,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,UAAU,CAAC,OAAO,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,mCAAmC,GAC3C;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CA2B1B;AA6JD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAarF;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAO3F;AAwhBD,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,GAAG,CASvE;AA0ND,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,MAAM,aAAa,EAClC,6BAA6B,EAAE,OAAO,GACvC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CActB;AA+DD,eAAO,MAAM,oBAAoB;;CAgBhC,CAAC;AAkVF,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,aAAa,EAC3B,WAAW,CAAC,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,MAAM,GACf,iBAAiB,CA+BnB"}
|
|
@@ -402,6 +402,13 @@ function labelFormatterScatter() {
|
|
|
402
402
|
}
|
|
403
403
|
return null;
|
|
404
404
|
}
|
|
405
|
+
function labelFormatterMekkoWidth(config) {
|
|
406
|
+
const value = this.point?.z;
|
|
407
|
+
if (value === null || value === undefined || isNaN(value)) {
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
return formatLabel(value, this.point?.format, config);
|
|
411
|
+
}
|
|
405
412
|
// check whether series contains only positive values, not consider nulls
|
|
406
413
|
function hasOnlyPositiveValues(series, x) {
|
|
407
414
|
return series.every((seriesItem) => {
|
|
@@ -603,14 +610,15 @@ function getDataLabelsConfiguration(chartOptions, _config, chartConfig, _drillCo
|
|
|
603
610
|
...dataLabelsBugWorkaround,
|
|
604
611
|
},
|
|
605
612
|
},
|
|
606
|
-
// mekko
|
|
607
|
-
// as Highcharts computes point.percentage even then
|
|
613
|
+
// mekko: width-only without Stack By labels the Width value; absolute when negatives block 100%
|
|
608
614
|
variwide: {
|
|
609
615
|
dataLabels: {
|
|
610
616
|
...DEFAULT_LABELS_CONFIG,
|
|
611
|
-
formatter: partial(chartOptions.
|
|
612
|
-
?
|
|
613
|
-
:
|
|
617
|
+
formatter: partial(chartOptions.mekkoWidthOnly && !chartOptions.hasStackByAttribute
|
|
618
|
+
? labelFormatterMekkoWidth
|
|
619
|
+
: chartOptions.stackToPercentBlockedByNegativeValues
|
|
620
|
+
? labelFormatter
|
|
621
|
+
: dataLabelFormatter, chartConfig),
|
|
614
622
|
},
|
|
615
623
|
},
|
|
616
624
|
heatmap: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartAxes.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartAxes.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"chartAxes.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartAxes.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmCvE,wBAAgB,QAAQ,CACpB,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,EAC3D,eAAe,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,EACvE,qBAAqB,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,EAC7E,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,GAChC,KAAK,EAAE,CAqDT;AAsID,wBAAgB,QAAQ,CACpB,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,EAC3D,gBAAgB,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,GACzE,KAAK,EAAE,CAoCT;AAuCD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,CAgBhF"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// (C) 2007-2026 GoodData Corporation
|
|
2
2
|
import { compact, isEmpty, range } from "lodash-es";
|
|
3
3
|
import { BucketNames } from "@gooddata/sdk-ui";
|
|
4
|
-
import { isBarChart, isBubbleChart, isComboChart, isHeatmap, isLineChart, isOneOfTypes, isScatterPlot, isSupportingJoinedAttributeAxisName, unwrap, } from "../_util/common.js";
|
|
4
|
+
import { isBarChart, isBubbleChart, isComboChart, isHeatmap, isLineChart, isMekko, isOneOfTypes, isScatterPlot, isSupportingJoinedAttributeAxisName, unwrap, } from "../_util/common.js";
|
|
5
|
+
import { getMekkoMeasures } from "../mekko/mekkoChartOptions.js";
|
|
5
6
|
import { supportedDualAxesChartTypes } from "./chartCapabilities.js";
|
|
6
7
|
function preprocessMeasureGroupItems(measureGroup, defaultValues) {
|
|
7
8
|
return measureGroup.items.map((item, index) => {
|
|
@@ -84,6 +85,18 @@ function getHeatmapYAxes(stackByAttribute) {
|
|
|
84
85
|
},
|
|
85
86
|
];
|
|
86
87
|
}
|
|
88
|
+
// Mekko's Y axis reads the Height measure; blank when width-only.
|
|
89
|
+
function getMekkoYAxes(dv, config, measureGroup) {
|
|
90
|
+
const { height } = getMekkoMeasures(dv, measureGroup);
|
|
91
|
+
const heightItem = height ? unwrap(height) : undefined;
|
|
92
|
+
return [
|
|
93
|
+
{
|
|
94
|
+
label: config.yLabel || (heightItem?.name ?? ""),
|
|
95
|
+
format: config.yFormat || heightItem?.format,
|
|
96
|
+
seriesIndices: range(measureGroup.items.length),
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
}
|
|
87
100
|
function addSeriesIndicesToAxis(axis, measuresInAxis) {
|
|
88
101
|
if (!axis) {
|
|
89
102
|
return null;
|
|
@@ -149,6 +162,9 @@ export function getYAxes(dv, config, measureGroup, stackByAttribute) {
|
|
|
149
162
|
if (isHeatmap(type)) {
|
|
150
163
|
return getHeatmapYAxes(stackByAttribute);
|
|
151
164
|
}
|
|
165
|
+
if (isMekko(type)) {
|
|
166
|
+
return getMekkoYAxes(dv, config, measureGroup);
|
|
167
|
+
}
|
|
152
168
|
const isDualAxes = isOneOfTypes(type, supportedDualAxesChartTypes) &&
|
|
153
169
|
!isEmpty(measureGroupItems) &&
|
|
154
170
|
!isEmpty(secondaryAxisMeasures);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartOptionsBuilder.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartOptionsBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAyD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAEH,cAAc,EACd,KAAK,gBAAgB,EAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AASvE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,WAAW,EAEnB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"chartOptionsBuilder.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartOptionsBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAyD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAEH,cAAc,EACd,KAAK,gBAAgB,EAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,cAAc,EAA0B,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AASvE,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,WAAW,EAEnB,MAAM,yBAAyB,CAAC;AAkKjC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,qBAAqB,CACjC,MAAM,2BAAoB,EAC1B,aAAa,EAAE,cAAc,GAC9B,2BAA2B,EAAE,CAoC/B;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,cAAc,GAAG,iBAAiB,CAuBjF;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,iBAAiB,CA4C1E;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,iBAAiB,CAmB9E;AAED,KAAK,iBAAiB,GAAG;IACrB,eAAe,CAAC,EAAE,mCAAmC,GAAG,IAAI,CAAC;IAC7D,qBAAqB,CAAC,EAAE,mCAAmC,GAAG,IAAI,CAAC;IACnE,gBAAgB,CAAC,EAAE,mCAAmC,GAAG,IAAI,CAAC;IAC9D,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAsFF,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,SAAS,EACnB,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,gBAAgB,EAAE,EAClC,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EACzB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,MAAM,GACxB,aAAa,CA8ff"}
|
|
@@ -9,7 +9,7 @@ import { getChartProperties } from "../_chartCreators/helpers.js";
|
|
|
9
9
|
import { isAreaChart, isBubbleChart, isChartSupported, isComboChart, isHeatmap, isMekko, isOneOfTypes, isPyramid, isSankeyOrDependencyWheel, isScatterPlot, isTreemap, isWaterfall, stringifyChartTypes, unwrap, } from "../_util/common.js";
|
|
10
10
|
import { findAttributeInDimension, findMeasureGroupInDimensions } from "../_util/executionResultHelper.js";
|
|
11
11
|
import { canComboChartBeStackedInPercent, getComboChartSeries, getComboChartStackingConfig, } from "../comboChart/comboChartOptions.js";
|
|
12
|
-
import { collapseMekkoViewByItems, dropZeroWidthMekkoColumns, isMekkoPercentBlockedByNegatives, } from "../mekko/mekkoChartOptions.js";
|
|
12
|
+
import { collapseMekkoViewByItems, dropZeroWidthMekkoColumns, getMekkoMeasures, getMekkoWidthOnlyYAxisProps, isMekkoPercentBlockedByNegatives, isMekkoWidthOnly, sortMekkoColumnsByMeasure, } from "../mekko/mekkoChartOptions.js";
|
|
13
13
|
import { buildWaterfallChartSeries, getColorAssignment, getWaterfallChartCategories, } from "../waterfallChart/waterfallChartOptions.js";
|
|
14
14
|
import { assignYAxes, getXAxes, getYAxes } from "./chartAxes.js";
|
|
15
15
|
import { multiMeasuresAlternatingTypes, showingNameInLegendWhenViewByPresent, unsupportedStackingTypes, } from "./chartCapabilities.js";
|
|
@@ -19,7 +19,7 @@ import { assignForecastAxes } from "./chartForecast.js";
|
|
|
19
19
|
import { assignOutliersAxes } from "./chartOutliers.js";
|
|
20
20
|
import { getSeries } from "./chartSeries.js";
|
|
21
21
|
import { filterThresholdZonesCategories, setupComboThresholdZones, setupThresholdZones, } from "./chartThresholds.js";
|
|
22
|
-
import { buildTooltipFactory, generateDescriptionHeatmapFn, generateDescriptionScatterPlotFn, generateDescriptionTreemapFn, generateDescriptionXYFn, generateTooltipHeatmapFn, generateTooltipSankeyChartFn, generateTooltipScatterPlotFn, generateTooltipXYFn, getTooltipFactory, getTooltipWaterfallChart, } from "./chartTooltips.js";
|
|
22
|
+
import { buildTooltipFactory, generateDescriptionHeatmapFn, generateDescriptionScatterPlotFn, generateDescriptionTreemapFn, generateDescriptionXYFn, generateTooltipHeatmapFn, generateTooltipMekkoFn, generateTooltipSankeyChartFn, generateTooltipScatterPlotFn, generateTooltipXYFn, getTooltipFactory, getTooltipWaterfallChart, } from "./chartTooltips.js";
|
|
23
23
|
import { ColorFactory } from "./colorFactory.js";
|
|
24
24
|
import { setMeasuresToSecondaryAxis } from "./dualAxis.js";
|
|
25
25
|
import { getCategoriesForTwoAttributes } from "./extendedStackingChartOptions.js";
|
|
@@ -65,10 +65,7 @@ function getCategories(type, measureGroup, viewByAttribute, stackByAttribute, em
|
|
|
65
65
|
function getStackingConfig(stackByAttribute, options) {
|
|
66
66
|
const { type, stackMeasures, stackMeasuresToPercent } = options;
|
|
67
67
|
const stackingValue = stackMeasuresToPercent ? "percent" : "normal";
|
|
68
|
-
// Mekko
|
|
69
|
-
// stack attribute there is nothing to stack: applying stack-measures / stack-to-100% to the
|
|
70
|
-
// single series would collapse every column to uniform full height. Guard before the generic
|
|
71
|
-
// stackMeasures/stackMeasuresToPercent branch below (which a stale property would otherwise hit).
|
|
68
|
+
// Mekko stacks ONLY by the Stack-by attribute; its stackMeasures* flags are pre-sanitized bucket-driven
|
|
72
69
|
if (isMekko(type)) {
|
|
73
70
|
return stackByAttribute ? stackingValue : null;
|
|
74
71
|
}
|
|
@@ -501,22 +498,31 @@ export function getChartOptions(dataView, chartConfig, drillableItems, emptyHead
|
|
|
501
498
|
...measureGroup.items[0],
|
|
502
499
|
};
|
|
503
500
|
}
|
|
504
|
-
const tooltipFactory = getTooltipFactory(isViewByTwoAttributes, viewByAttribute, viewByParentAttribute, stackByAttribute, measure, emptyHeaderTitle, config, isDualAxis);
|
|
505
501
|
// apply distinct point shapes configuration if enabled
|
|
506
502
|
const finalSeries = setupDistinctPointShapesToSeries(type, series, config, measureGroup);
|
|
507
|
-
// Mekko: drop zero-width columns
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
503
|
+
// Mekko: drop zero-width columns, then order columns by the config-fed measure sort
|
|
504
|
+
let mekkoData = { series: finalSeries, categories };
|
|
505
|
+
if (isMekko(type)) {
|
|
506
|
+
mekkoData = dropZeroWidthMekkoColumns(finalSeries, categories);
|
|
507
|
+
mekkoData = sortMekkoColumnsByMeasure(mekkoData.series, mekkoData.categories, config, dv, measureGroup);
|
|
508
|
+
}
|
|
509
|
+
const { series: outSeries, categories: outCategories } = mekkoData;
|
|
511
510
|
// Mekko: fall back to absolute stacking for negative Height. The stackMeasuresToPercent property
|
|
512
511
|
// is preserved so 100% re-enables once the data is cleaned. Computed once here and exposed on the
|
|
513
512
|
// returned options for downstream consumers (stacking config, ChartTransformation).
|
|
514
513
|
const stackToPercentBlockedByNegativeValues = isMekkoPercentBlockedByNegatives(type, outSeries);
|
|
515
514
|
const effectiveStacking = stacking === "percent" && stackToPercentBlockedByNegativeValues ? "normal" : stacking;
|
|
515
|
+
const mekkoWidthOnly = isMekko(type) && isMekkoWidthOnly(dv);
|
|
516
|
+
const mekkoMeasures = isMekko(type) ? getMekkoMeasures(dv, measureGroup) : {};
|
|
517
|
+
const tooltipFactory = isMekko(type)
|
|
518
|
+
? generateTooltipMekkoFn(mekkoMeasures.width, mekkoMeasures.height, viewByAttribute, stackByAttribute, config, effectiveStacking === "percent", mekkoWidthOnly)
|
|
519
|
+
: getTooltipFactory(isViewByTwoAttributes, viewByAttribute, viewByParentAttribute, stackByAttribute, measure, emptyHeaderTitle, config, isDualAxis);
|
|
520
|
+
const effectiveYAxisProps = getMekkoWidthOnlyYAxisProps(mekkoWidthOnly, Boolean(stackByAttribute), yAxisProps);
|
|
516
521
|
return {
|
|
517
522
|
type,
|
|
518
523
|
stacking: effectiveStacking,
|
|
519
524
|
stackToPercentBlockedByNegativeValues,
|
|
525
|
+
mekkoWidthOnly,
|
|
520
526
|
hasStackByAttribute: Boolean(stackByAttribute),
|
|
521
527
|
hasViewByAttribute: Boolean(viewByAttribute),
|
|
522
528
|
legendLayout: config.legendLayout || "horizontal",
|
|
@@ -538,7 +544,7 @@ export function getChartOptions(dataView, chartConfig, drillableItems, emptyHead
|
|
|
538
544
|
enabled: gridEnabled,
|
|
539
545
|
},
|
|
540
546
|
xAxisProps,
|
|
541
|
-
yAxisProps,
|
|
547
|
+
yAxisProps: effectiveYAxisProps,
|
|
542
548
|
secondary_xAxisProps,
|
|
543
549
|
secondary_yAxisProps,
|
|
544
550
|
colorAssignments,
|
|
@@ -5,6 +5,8 @@ import { type IAxis, type IPointDescriptionFn, type ITooltipFactory, type IUnsaf
|
|
|
5
5
|
export declare function buildTooltipFactory(viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, type: string | undefined, config?: IChartConfig, isDualAxis?: boolean, measure?: IMeasureDescriptor, stackByAttribute?: IUnwrappedAttributeHeadersWithItems | null): ITooltipFactory;
|
|
6
6
|
export declare function buildTooltipForTwoAttributesFactory(viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, viewByParentAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, config?: IChartConfig, isDualAxis?: boolean, measure?: IMeasureDescriptor, stackByAttribute?: IUnwrappedAttributeHeadersWithItems | null): ITooltipFactory;
|
|
7
7
|
export declare function generateTooltipXYFn(measures: (IMeasureDescriptor | null)[], stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, config?: IChartConfig): ITooltipFactory;
|
|
8
|
+
/** Mekko tooltip: Height reads point.y, Width point.z; width-only stacked shows the segment's share instead. */
|
|
9
|
+
export declare function generateTooltipMekkoFn(widthMeasure: IMeasureDescriptor | undefined, heightMeasure: IMeasureDescriptor | undefined, viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, config?: IChartConfig, percentStacked?: boolean, widthOnly?: boolean): ITooltipFactory;
|
|
8
10
|
export declare function generateDescriptionXYFn(stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, xAxes: IAxis[] | undefined, yAxes: IAxis[] | undefined, zAxes: IAxis[] | undefined, config?: IChartConfig): IPointDescriptionFn;
|
|
9
11
|
export declare function generateDescriptionScatterPlotFn(viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, xAxes: IAxis[] | undefined, yAxes: IAxis[] | undefined, config?: IChartConfig): IPointDescriptionFn;
|
|
10
12
|
export declare function generateTooltipScatterPlotFn(measures: (IMeasureDescriptor | null)[], stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, config?: IChartConfig, clusterTitle?: string): ITooltipFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartTooltips.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartTooltips.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chartTooltips.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartTooltips.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,6 +132,35 @@ export function generateTooltipXYFn(measures, stackByAttribute, config = {}) {
|
|
|
132
132
|
return renderTooltipHTML(textData, maxTooltipContentWidth);
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
+
/** Mekko tooltip: Height reads point.y, Width point.z; width-only stacked shows the segment's share instead. */
|
|
136
|
+
export function generateTooltipMekkoFn(widthMeasure, heightMeasure, viewByAttribute, stackByAttribute, config = {}, percentStacked = false, widthOnly = false) {
|
|
137
|
+
const { separators } = config;
|
|
138
|
+
return (point, maxTooltipContentWidth, percentageValue) => {
|
|
139
|
+
const textData = [];
|
|
140
|
+
if (viewByAttribute) {
|
|
141
|
+
textData.push([
|
|
142
|
+
customEscape(viewByAttribute.formOf.name),
|
|
143
|
+
customEscape(point.category?.name || point.name),
|
|
144
|
+
]);
|
|
145
|
+
}
|
|
146
|
+
if (stackByAttribute) {
|
|
147
|
+
textData.push([customEscape(stackByAttribute.formOf.name), customEscape(point.series?.name)]);
|
|
148
|
+
}
|
|
149
|
+
if (heightMeasure) {
|
|
150
|
+
textData.push([
|
|
151
|
+
customEscape(heightMeasure.measureHeaderItem.name),
|
|
152
|
+
getFormattedValueForTooltip(false, percentStacked, point, separators, percentageValue),
|
|
153
|
+
]);
|
|
154
|
+
}
|
|
155
|
+
if (widthMeasure) {
|
|
156
|
+
const widthValue = widthOnly && stackByAttribute
|
|
157
|
+
? getFormattedValueForTooltip(false, percentStacked, point, separators, percentageValue)
|
|
158
|
+
: formatValueForTooltip(point.z, widthMeasure.measureHeaderItem.format, separators);
|
|
159
|
+
textData.push([customEscape(widthMeasure.measureHeaderItem.name), widthValue]);
|
|
160
|
+
}
|
|
161
|
+
return renderTooltipHTML(textData, maxTooltipContentWidth);
|
|
162
|
+
};
|
|
163
|
+
}
|
|
135
164
|
function decodeAxisLabel(axis) {
|
|
136
165
|
return decodeHtmlEntities(axis?.label ?? "");
|
|
137
166
|
}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
import { type IMeasureDescriptor, type IMeasureGroupDescriptor } from "@gooddata/sdk-model";
|
|
1
2
|
import { type DataViewFacade } from "@gooddata/sdk-ui";
|
|
3
|
+
import { type IAxisConfig, type IChartConfig } from "../../../interfaces/chartConfig.js";
|
|
2
4
|
import { type IUnwrappedAttributeHeadersWithItems } from "../../typings/mess.js";
|
|
3
5
|
import { type ISeriesItem } from "../../typings/unsafe.js";
|
|
6
|
+
/** Width-only authoring state: Width (MEASURES) filled, Height (SECONDARY_MEASURES) empty. */
|
|
7
|
+
export declare function isMekkoWidthOnly(dv: DataViewFacade): boolean;
|
|
8
|
+
export interface IMekkoMeasures {
|
|
9
|
+
width?: IMeasureDescriptor;
|
|
10
|
+
height?: IMeasureDescriptor;
|
|
11
|
+
}
|
|
12
|
+
/** Width = first item (MEASURES), Height = last (SECONDARY_MEASURES); a lone measure goes by its bucket. */
|
|
13
|
+
export declare function getMekkoMeasures(dv: DataViewFacade, measureGroup: IMeasureGroupDescriptor["measureGroupHeader"]): IMekkoMeasures;
|
|
14
|
+
/** Bucket-driven stacking sanitization, applied once at the ChartTransformation config boundary. */
|
|
15
|
+
export declare function getMekkoEffectiveConfig(config: IChartConfig, dv: DataViewFacade): IChartConfig;
|
|
16
|
+
/** Width-only without Stack By pins the flat zero axis to [0, 1] and hides it (min alone still gets padded). */
|
|
17
|
+
export declare function getMekkoWidthOnlyYAxisProps(mekkoWidthOnly: boolean, hasStackByAttribute: boolean, yAxisProps: IAxisConfig | undefined): IAxisConfig | undefined;
|
|
4
18
|
/**
|
|
5
19
|
* Stacked Mekko executes with [[stackBy], [viewBy, MeasureGroup]], so the view-by header items
|
|
6
20
|
* enumerate view × measure combinations. Downstream consumers (categories, point names, drills)
|
|
@@ -18,6 +32,16 @@ export declare function collapseMekkoViewByItems(dv: DataViewFacade, viewByAttri
|
|
|
18
32
|
* ChartTransformation) read that flag rather than re-deriving it.
|
|
19
33
|
*/
|
|
20
34
|
export declare function isMekkoPercentBlockedByNegatives(type: string | undefined, series: ISeriesItem[] | undefined): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Orders stacked Mekko columns by the config.sortBy measure sort — the stacked execution cannot
|
|
37
|
+
* express it, so every series' data and the categories are permuted in lockstep on the client.
|
|
38
|
+
* The column key is the Width total already reduced into point.z, or the Height total summed
|
|
39
|
+
* across the stack; ties keep the backend order.
|
|
40
|
+
*/
|
|
41
|
+
export declare function sortMekkoColumnsByMeasure<TCategory>(series: ISeriesItem[], categories: TCategory[], config: IChartConfig, dv: DataViewFacade, measureGroup: IMeasureGroupDescriptor["measureGroupHeader"]): {
|
|
42
|
+
series: ISeriesItem[];
|
|
43
|
+
categories: TCategory[];
|
|
44
|
+
};
|
|
21
45
|
/**
|
|
22
46
|
* Drops Mekko columns whose Width (point.z) is 0 — from every series' data and the categories in
|
|
23
47
|
* lockstep. Negative z is kept so validateData can reject it. The first series drives the mask (all
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mekkoChartOptions.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/mekko/mekkoChartOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mekkoChartOptions.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/mekko/mekkoChartOptions.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAK/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEzF,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAK5D;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAC5B,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAC5D,cAAc,CAMhB;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,GAAG,YAAY,CAQ9F;AAED,gHAAgH;AAChH,wBAAgB,2BAA2B,CACvC,cAAc,EAAE,OAAO,EACvB,mBAAmB,EAAE,OAAO,EAC5B,UAAU,EAAE,WAAW,GAAG,SAAS,GACpC,WAAW,GAAG,SAAS,CAIzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,cAAc,EAClB,eAAe,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,GACxE,mCAAmC,GAAG,SAAS,GAAG,IAAI,CAiBxD;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC5C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,GAClC,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,EACrB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAC5D;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAuCpD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,EACrB,UAAU,EAAE,SAAS,EAAE,GACxB;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAkBpD"}
|
|
@@ -1,7 +1,37 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
import { isMeasureGroupDescriptor } from "@gooddata/sdk-model";
|
|
2
|
+
import { isMeasureGroupDescriptor, isMeasureLocator, isMeasureSort, sortDirection, } from "@gooddata/sdk-model";
|
|
3
|
+
import { BucketNames } from "@gooddata/sdk-ui";
|
|
3
4
|
import { VIEW_BY_DIMENSION_INDEX } from "../../constants/dimensions.js";
|
|
4
5
|
import { isMekko, isNegativeValueIncluded } from "../_util/common.js";
|
|
6
|
+
/** Width-only authoring state: Width (MEASURES) filled, Height (SECONDARY_MEASURES) empty. */
|
|
7
|
+
export function isMekkoWidthOnly(dv) {
|
|
8
|
+
return (!dv.def().isBucketEmpty(BucketNames.MEASURES) &&
|
|
9
|
+
dv.def().isBucketEmpty(BucketNames.SECONDARY_MEASURES));
|
|
10
|
+
}
|
|
11
|
+
/** Width = first item (MEASURES), Height = last (SECONDARY_MEASURES); a lone measure goes by its bucket. */
|
|
12
|
+
export function getMekkoMeasures(dv, measureGroup) {
|
|
13
|
+
const { items } = measureGroup;
|
|
14
|
+
if (items.length >= 2) {
|
|
15
|
+
return { width: items[0], height: items[items.length - 1] };
|
|
16
|
+
}
|
|
17
|
+
return isMekkoWidthOnly(dv) ? { width: items[0] } : { height: items[0] };
|
|
18
|
+
}
|
|
19
|
+
/** Bucket-driven stacking sanitization, applied once at the ChartTransformation config boundary. */
|
|
20
|
+
export function getMekkoEffectiveConfig(config, dv) {
|
|
21
|
+
if (!isMekko(config.type)) {
|
|
22
|
+
return config;
|
|
23
|
+
}
|
|
24
|
+
if (dv.def().isBucketEmpty(BucketNames.STACK)) {
|
|
25
|
+
return { ...config, stackMeasures: false, stackMeasuresToPercent: false };
|
|
26
|
+
}
|
|
27
|
+
return isMekkoWidthOnly(dv) ? { ...config, stackMeasuresToPercent: true } : config;
|
|
28
|
+
}
|
|
29
|
+
/** Width-only without Stack By pins the flat zero axis to [0, 1] and hides it (min alone still gets padded). */
|
|
30
|
+
export function getMekkoWidthOnlyYAxisProps(mekkoWidthOnly, hasStackByAttribute, yAxisProps) {
|
|
31
|
+
return mekkoWidthOnly && !hasStackByAttribute
|
|
32
|
+
? { ...yAxisProps, min: "0", max: "1", visible: false }
|
|
33
|
+
: yAxisProps;
|
|
34
|
+
}
|
|
5
35
|
/**
|
|
6
36
|
* Stacked Mekko executes with [[stackBy], [viewBy, MeasureGroup]], so the view-by header items
|
|
7
37
|
* enumerate view × measure combinations. Downstream consumers (categories, point names, drills)
|
|
@@ -35,6 +65,45 @@ export function collapseMekkoViewByItems(dv, viewByAttribute) {
|
|
|
35
65
|
export function isMekkoPercentBlockedByNegatives(type, series) {
|
|
36
66
|
return isMekko(type) && isNegativeValueIncluded(series);
|
|
37
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Orders stacked Mekko columns by the config.sortBy measure sort — the stacked execution cannot
|
|
70
|
+
* express it, so every series' data and the categories are permuted in lockstep on the client.
|
|
71
|
+
* The column key is the Width total already reduced into point.z, or the Height total summed
|
|
72
|
+
* across the stack; ties keep the backend order.
|
|
73
|
+
*/
|
|
74
|
+
export function sortMekkoColumnsByMeasure(series, categories, config, dv, measureGroup) {
|
|
75
|
+
if (dv.def().isBucketEmpty(BucketNames.STACK) || !series[0]?.data?.length) {
|
|
76
|
+
return { series, categories };
|
|
77
|
+
}
|
|
78
|
+
const measureSort = (config.sortBy ?? []).find(isMeasureSort);
|
|
79
|
+
const measureLocator = measureSort?.measureSortItem.locators.find(isMeasureLocator);
|
|
80
|
+
const measureId = measureLocator?.measureLocatorItem.measureIdentifier;
|
|
81
|
+
if (!measureSort || !measureId) {
|
|
82
|
+
return { series, categories };
|
|
83
|
+
}
|
|
84
|
+
const { width, height } = getMekkoMeasures(dv, measureGroup);
|
|
85
|
+
const isWidthSort = width?.measureHeaderItem.localIdentifier === measureId;
|
|
86
|
+
if (!isWidthSort && height?.measureHeaderItem.localIdentifier !== measureId) {
|
|
87
|
+
return { series, categories };
|
|
88
|
+
}
|
|
89
|
+
const columnKeys = series[0].data.map((point, column) => isWidthSort
|
|
90
|
+
? (point?.z ?? 0)
|
|
91
|
+
: series.reduce((sum, seriesItem) => sum + (seriesItem.data?.[column]?.y ?? 0), 0));
|
|
92
|
+
const directionFactor = sortDirection(measureSort) === "desc" ? -1 : 1;
|
|
93
|
+
const columnOrder = columnKeys
|
|
94
|
+
.map((_, column) => column)
|
|
95
|
+
.sort((a, b) => directionFactor * (columnKeys[a] - columnKeys[b]) || a - b);
|
|
96
|
+
if (columnOrder.every((column, index) => column === index)) {
|
|
97
|
+
return { series, categories };
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
series: series.map((seriesItem) => ({
|
|
101
|
+
...seriesItem,
|
|
102
|
+
data: columnOrder.map((column) => (seriesItem.data ?? [])[column]),
|
|
103
|
+
})),
|
|
104
|
+
categories: columnOrder.map((column) => categories[column]),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
38
107
|
/**
|
|
39
108
|
* Drops Mekko columns whose Width (point.z) is 0 — from every series' data and the categories in
|
|
40
109
|
* lockstep. Negative z is kept so validateData can reject it. The first series drives the mask (all
|
|
@@ -3,5 +3,6 @@ import { type DataViewFacade } from "@gooddata/sdk-ui";
|
|
|
3
3
|
import { type IChartFillConfig, type IColorStrategy } from "@gooddata/sdk-ui-vis-commons";
|
|
4
4
|
import { type IUnwrappedAttributeHeadersWithItems } from "../../typings/mess.js";
|
|
5
5
|
import { type ISeriesItemConfig } from "../../typings/unsafe.js";
|
|
6
|
+
export declare const MEKKO_WIDTH_ONLY_MIN_POINT_LENGTH = 5;
|
|
6
7
|
export declare function getMekkoSeries(dv: DataViewFacade, measureGroup: IMeasureGroupDescriptor["measureGroupHeader"], viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, stackByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null, colorStrategy: IColorStrategy, emptyHeaderTitle: string, _chartFill: IChartFillConfig | undefined, _theme: ITheme | undefined): ISeriesItemConfig[];
|
|
7
8
|
//# sourceMappingURL=mekkoSeries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mekkoSeries.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/mekko/mekkoSeries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,uBAAuB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,KAAK,cAAc,EAAiC,MAAM,kBAAkB,CAAC;AACtF,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"mekkoSeries.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/mekko/mekkoSeries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,uBAAuB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,KAAK,cAAc,EAAiC,MAAM,kBAAkB,CAAC;AACtF,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAiClF,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,wBAAgB,cAAc,CAC1B,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,EAC3D,eAAe,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,EACvE,gBAAgB,EAAE,mCAAmC,GAAG,SAAS,GAAG,IAAI,EACxE,aAAa,EAAE,cAAc,EAC7B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,gBAAgB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GAAG,SAAS,GAC3B,iBAAiB,EAAE,CAoGrB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { getMappingHeaderFormattedName } from "@gooddata/sdk-ui";
|
|
3
3
|
import { valueWithEmptyHandling, } from "@gooddata/sdk-ui-vis-commons";
|
|
4
4
|
import { parseValue, unwrap } from "../_util/common.js";
|
|
5
|
+
import { getMekkoMeasures } from "./mekkoChartOptions.js";
|
|
5
6
|
/**
|
|
6
7
|
* Mekko (Marimekko) series builder.
|
|
7
8
|
*
|
|
@@ -27,6 +28,8 @@ import { parseValue, unwrap } from "../_util/common.js";
|
|
|
27
28
|
// Width metric is the first (MEASURES bucket), Height the second (SECONDARY_MEASURES).
|
|
28
29
|
const WIDTH_MEASURE_INDEX = 0;
|
|
29
30
|
const HEIGHT_MEASURE_INDEX = 1;
|
|
31
|
+
// Minimal visual height (px, Highcharts minPointLength) of the zero-height width-only columns.
|
|
32
|
+
export const MEKKO_WIDTH_ONLY_MIN_POINT_LENGTH = 5;
|
|
30
33
|
export function getMekkoSeries(dv, measureGroup, viewByAttribute, stackByAttribute, colorStrategy, emptyHeaderTitle, _chartFill, _theme) {
|
|
31
34
|
const data = dv.rawData().twoDimData();
|
|
32
35
|
// The number of measures = however many metric buckets are actually filled.
|
|
@@ -35,16 +38,18 @@ export function getMekkoSeries(dv, measureGroup, viewByAttribute, stackByAttribu
|
|
|
35
38
|
if (measureCount === 0 || data.length === 0) {
|
|
36
39
|
return [];
|
|
37
40
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
41
|
+
// Bucket-driven roles: a lone Width measure keeps driving widths — never the Height role.
|
|
42
|
+
const { width, height } = getMekkoMeasures(dv, measureGroup);
|
|
43
|
+
const widthOnly = Boolean(width && !height);
|
|
44
|
+
const hasWidthMeasure = Boolean(width);
|
|
45
|
+
const heightIndex = measureCount >= 2 ? HEIGHT_MEASURE_INDEX : 0;
|
|
46
|
+
// Height, or Width when width-only — provides the point format and the non-stacked series name.
|
|
47
|
+
const primaryDescriptor = height ?? width;
|
|
48
|
+
const pointFormat = primaryDescriptor ? unwrap(primaryDescriptor).format : undefined;
|
|
44
49
|
const buildPoint = (y, z, viewIndex) => ({
|
|
45
50
|
y: parseValue(y),
|
|
46
51
|
z,
|
|
47
|
-
format:
|
|
52
|
+
format: pointFormat,
|
|
48
53
|
name: viewByAttribute
|
|
49
54
|
? valueWithEmptyHandling(getMappingHeaderFormattedName(viewByAttribute.items[viewIndex]), emptyHeaderTitle)
|
|
50
55
|
: "",
|
|
@@ -88,16 +93,17 @@ export function getMekkoSeries(dv, measureGroup, viewByAttribute, stackByAttribu
|
|
|
88
93
|
}
|
|
89
94
|
// Non-stacked layout from getBarColumnDimensions: [[MeasureGroup], [viewBy]].
|
|
90
95
|
// twoDimData rows = measures; each row's columns are the viewBy values. One series.
|
|
91
|
-
const heightRow = data[heightIndex] ?? [];
|
|
92
96
|
const widthRow = hasWidthMeasure ? data[WIDTH_MEASURE_INDEX] : undefined;
|
|
93
|
-
const
|
|
97
|
+
const baseRow = (widthOnly ? widthRow : data[heightIndex]) ?? [];
|
|
98
|
+
const seriesData = baseRow.map((value, v) => buildPoint(widthOnly ? 0 : value, widthRow ? finiteOrZero(widthRow[v]) : 1, v));
|
|
94
99
|
return [
|
|
95
100
|
{
|
|
96
|
-
name: valueWithEmptyHandling(
|
|
101
|
+
name: valueWithEmptyHandling(primaryDescriptor ? unwrap(primaryDescriptor).name : "", emptyHeaderTitle),
|
|
97
102
|
legendIndex: 0,
|
|
98
103
|
seriesIndex: 0,
|
|
99
104
|
color: colorStrategy.getColorByIndex(0),
|
|
100
105
|
data: seriesData,
|
|
106
|
+
...(widthOnly ? { minPointLength: MEKKO_WIDTH_ONLY_MIN_POINT_LENGTH } : {}),
|
|
101
107
|
},
|
|
102
108
|
];
|
|
103
109
|
}
|
|
@@ -129,6 +129,7 @@ export interface IChartOptions {
|
|
|
129
129
|
hasViewByAttribute?: boolean;
|
|
130
130
|
isViewByTwoAttributes?: boolean;
|
|
131
131
|
stackToPercentBlockedByNegativeValues?: boolean;
|
|
132
|
+
mekkoWidthOnly?: boolean;
|
|
132
133
|
legendLayout?: string;
|
|
133
134
|
xAxes?: IAxis[];
|
|
134
135
|
yAxes?: IAxis[];
|
|
@@ -283,6 +284,7 @@ export interface ISeriesItemConfig {
|
|
|
283
284
|
marker?: {
|
|
284
285
|
enabled: boolean;
|
|
285
286
|
};
|
|
287
|
+
minPointLength?: number;
|
|
286
288
|
}
|
|
287
289
|
export interface IAxis {
|
|
288
290
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../../../src/highcharts/typings/unsafe.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../../../src/highcharts/typings/unsafe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type IColor, type IColorPalette, type ISeparators, type Identifier } from "@gooddata/sdk-model";
|
|
1
|
+
import { type IColor, type IColorPalette, type ISeparators, type ISortItem, type Identifier } from "@gooddata/sdk-model";
|
|
2
2
|
import { type IDrillEventIntersectionElement, type VisType } from "@gooddata/sdk-ui";
|
|
3
3
|
import { type IChartFillConfig, type IColorMapping, type ICustomTooltipConfig } from "@gooddata/sdk-ui-vis-commons";
|
|
4
4
|
import { type IComparison } from "./comparison.js";
|
|
@@ -201,6 +201,16 @@ export interface IChartConfig {
|
|
|
201
201
|
*
|
|
202
202
|
*/
|
|
203
203
|
enableChartSorting?: boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Sort items to apply on the client where the backend cannot.
|
|
206
|
+
*
|
|
207
|
+
* @remarks
|
|
208
|
+
* Used by the stacked Mekko chart to order its columns by a single measure: such a measure
|
|
209
|
+
* sort is not expressible in the execution (it would target the stack dimension), so it is
|
|
210
|
+
* kept out of the execution and the chart reorders the columns from this config instead.
|
|
211
|
+
* Other chart types ignore this property.
|
|
212
|
+
*/
|
|
213
|
+
sortBy?: ISortItem[];
|
|
204
214
|
/**
|
|
205
215
|
* Enables change order of stacked items in bar chart.
|
|
206
216
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartConfig.d.ts","sourceRoot":"","sources":["../../src/interfaces/chartConfig.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"chartConfig.d.ts","sourceRoot":"","sources":["../../src/interfaces/chartConfig.ts"],"names":[],"mappings":"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"}
|
package/esm/sdk-ui-charts.d.ts
CHANGED
|
@@ -999,6 +999,16 @@ export declare interface IChartConfig {
|
|
|
999
999
|
*
|
|
1000
1000
|
*/
|
|
1001
1001
|
enableChartSorting?: boolean;
|
|
1002
|
+
/**
|
|
1003
|
+
* Sort items to apply on the client where the backend cannot.
|
|
1004
|
+
*
|
|
1005
|
+
* @remarks
|
|
1006
|
+
* Used by the stacked Mekko chart to order its columns by a single measure: such a measure
|
|
1007
|
+
* sort is not expressible in the execution (it would target the stack dimension), so it is
|
|
1008
|
+
* kept out of the execution and the chart reorders the columns from this config instead.
|
|
1009
|
+
* Other chart types ignore this property.
|
|
1010
|
+
*/
|
|
1011
|
+
sortBy?: ISortItem[];
|
|
1002
1012
|
/**
|
|
1003
1013
|
* Enables change order of stacked items in bar chart.
|
|
1004
1014
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-charts",
|
|
3
|
-
"version": "11.52.0-alpha.
|
|
3
|
+
"version": "11.52.0-alpha.7",
|
|
4
4
|
"description": "GoodData.UI SDK - Charts",
|
|
5
5
|
"license": "LicenseRef-LICENSE",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -69,13 +69,13 @@
|
|
|
69
69
|
"ts-invariant": "0.10.3",
|
|
70
70
|
"tslib": "2.8.1",
|
|
71
71
|
"uuid": "11.1.1",
|
|
72
|
-
"@gooddata/sdk-backend-spi": "11.52.0-alpha.
|
|
73
|
-
"@gooddata/sdk-model": "11.52.0-alpha.
|
|
74
|
-
"@gooddata/sdk-ui
|
|
75
|
-
"@gooddata/sdk-ui-kit": "11.52.0-alpha.
|
|
76
|
-
"@gooddata/sdk-ui": "11.52.0-alpha.
|
|
77
|
-
"@gooddata/sdk-ui-vis-commons": "11.52.0-alpha.
|
|
78
|
-
"@gooddata/util": "11.52.0-alpha.
|
|
72
|
+
"@gooddata/sdk-backend-spi": "11.52.0-alpha.7",
|
|
73
|
+
"@gooddata/sdk-model": "11.52.0-alpha.7",
|
|
74
|
+
"@gooddata/sdk-ui": "11.52.0-alpha.7",
|
|
75
|
+
"@gooddata/sdk-ui-kit": "11.52.0-alpha.7",
|
|
76
|
+
"@gooddata/sdk-ui-theme-provider": "11.52.0-alpha.7",
|
|
77
|
+
"@gooddata/sdk-ui-vis-commons": "11.52.0-alpha.7",
|
|
78
|
+
"@gooddata/util": "11.52.0-alpha.7"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -120,11 +120,11 @@
|
|
|
120
120
|
"typescript": "5.9.3",
|
|
121
121
|
"vitest": "4.1.8",
|
|
122
122
|
"vitest-dom": "0.1.1",
|
|
123
|
-
"@gooddata/eslint-config": "11.52.0-alpha.
|
|
124
|
-
"@gooddata/oxlint-config": "11.52.0-alpha.
|
|
125
|
-
"@gooddata/reference-workspace": "11.52.0-alpha.
|
|
126
|
-
"@gooddata/
|
|
127
|
-
"@gooddata/
|
|
123
|
+
"@gooddata/eslint-config": "11.52.0-alpha.7",
|
|
124
|
+
"@gooddata/oxlint-config": "11.52.0-alpha.7",
|
|
125
|
+
"@gooddata/reference-workspace": "11.52.0-alpha.7",
|
|
126
|
+
"@gooddata/stylelint-config": "11.52.0-alpha.7",
|
|
127
|
+
"@gooddata/sdk-backend-mockingbird": "11.52.0-alpha.7"
|
|
128
128
|
},
|
|
129
129
|
"peerDependencies": {
|
|
130
130
|
"react": "^18.0.0 || ^19.0.0",
|