@gooddata/sdk-ui-charts 11.53.0-alpha.1 → 11.53.0-alpha.2

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.
@@ -1,3 +1,4 @@
1
+ import { type ITheme } from "@gooddata/sdk-model";
1
2
  import { type ChartType } from "@gooddata/sdk-ui";
2
3
  import { type IChartTransformationProps } from "../../highcharts/ChartTransformation.js";
3
4
  /**
@@ -7,6 +8,11 @@ import { type IChartTransformationProps } from "../../highcharts/ChartTransforma
7
8
  */
8
9
  export interface IRawChartProps extends IChartTransformationProps {
9
10
  type: ChartType;
11
+ /**
12
+ * Presentation theme provided to the chart via context; undefined for pluggable charts in AD
13
+ * that should not respect theming.
14
+ */
15
+ theme?: ITheme;
10
16
  }
11
17
  /**
12
18
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"RawChart.d.ts","sourceRoot":"","sources":["../../../src/charts/_base/RawChart.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,SAAS,EAIjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAI9G;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,yBAAyB;IAC7D,IAAI,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,2CA0E7C"}
1
+ {"version":3,"file":"RawChart.d.ts","sourceRoot":"","sources":["../../../src/charts/_base/RawChart.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACH,KAAK,SAAS,EAIjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAI9G;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,yBAAyB;IAC7D,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,2CA0E7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"CoreRepeater.d.ts","sourceRoot":"","sources":["../../../src/charts/repeater/CoreRepeater.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,qBAAqB,CAAC;AAiB5E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,2CA8J9D;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,uBAAuB,2CAQ1D"}
1
+ {"version":3,"file":"CoreRepeater.d.ts","sourceRoot":"","sources":["../../../src/charts/repeater/CoreRepeater.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,qBAAqB,CAAC;AAiB5E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC;CACnD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,2CA8J9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,uBAAuB,2CAQ1D"}
@@ -4,7 +4,7 @@ import { useEffect, useMemo } from "react";
4
4
  import { useIntl } from "react-intl";
5
5
  import { bucketsFind, isAttribute } from "@gooddata/sdk-model";
6
6
  import { BucketNames, DataViewFacade, ErrorCodes, IntlWrapper, ErrorComponent as SDKErrorComponent, LoadingComponent as SDKLoadingComponent, convertError, newErrorMapping, useCancelablePromise, } from "@gooddata/sdk-ui";
7
- import { ThemeContextProvider, useTheme, withTheme } from "@gooddata/sdk-ui-theme-provider";
7
+ import { ThemeContextProvider, useTheme } from "@gooddata/sdk-ui-theme-provider";
8
8
  import { ColorFactory } from "../../highcharts/chartTypes/_chartOptions/colorFactory.js";
9
9
  import { getValidColorPalette } from "../../highcharts/chartTypes/_util/color.js";
10
10
  import { getWindowSize } from "./internal/repeaterAgGridDataSource.js";
@@ -110,10 +110,9 @@ export function CoreRepeaterImpl(props) {
110
110
  }
111
111
  return (_jsx(RepeaterChart, { dataView: result, drillableItems: drillableItems, onDrill: onDrill, config: configWithColorPalette, onError: onError, onColumnResized: onColumnResized, afterRender: afterRender }));
112
112
  }
113
- const CoreRepeaterWithIntl = withTheme(CoreRepeaterImpl);
114
113
  /**
115
114
  * @internal
116
115
  */
117
116
  export function CoreRepeater(props) {
118
- return (_jsx(ThemeContextProvider, { theme: props.theme, themeIsLoading: false, children: _jsx(IntlWrapper, { locale: props.locale, children: _jsx(CoreRepeaterWithIntl, { ...props }) }) }));
117
+ return (_jsx(ThemeContextProvider, { theme: props.theme, themeIsLoading: false, children: _jsx(IntlWrapper, { locale: props.locale, children: _jsx(CoreRepeaterImpl, { ...props }) }) }));
119
118
  }
@@ -23,7 +23,6 @@ export interface IChartTransformationProps {
23
23
  onDataTooLarge(chartOptions: any, errorMessage?: string): void;
24
24
  onNegativeValues: ((chartOptions: any) => void) | null;
25
25
  numericSymbols?: string[];
26
- theme?: ITheme;
27
26
  /**
28
27
  * Theme of record for derived color computations; when the chart renders in an isolated
29
28
  * React root (pluggable visualizations), the reference cannot travel via context and
@@ -34,5 +33,8 @@ export interface IChartTransformationProps {
34
33
  renderer?(arg: IHighChartsRendererProps): ReactElement;
35
34
  tooltipExecution?: ITooltipExecution;
36
35
  }
37
- export declare const ChartTransformation: import("react").MemoExoticComponent<import("react").ComponentType<Omit<IChartTransformationProps, "theme" | "themeIsLoading" | "themeStatus">>>;
36
+ /**
37
+ * @internal
38
+ */
39
+ export declare const ChartTransformation: import("react").NamedExoticComponent<IChartTransformationProps>;
38
40
  //# sourceMappingURL=ChartTransformation.d.ts.map
@@ -1 +1 @@
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
+ {"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;;;;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;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,iEAyK/B,CAAC"}
@@ -6,7 +6,7 @@ import { isEqual, omitBy } from "lodash-es";
6
6
  import { useIntl } from "react-intl";
7
7
  import { invariant } from "ts-invariant";
8
8
  import { DataViewFacade, anomaliesTitleFromIntl, clusterTitleFromIntl, convertDrillableItemsToPredicates, emptyHeaderTitleFromIntl, totalColumnTitleFromIntl, } from "@gooddata/sdk-ui";
9
- import { useReferenceTheme, withTheme } from "@gooddata/sdk-ui-theme-provider";
9
+ import { useReferenceTheme, useTheme } from "@gooddata/sdk-ui-theme-provider";
10
10
  import { useTooltipLookup } from "@gooddata/sdk-ui-vis-commons";
11
11
  import { initChartPlugins } from "./adapter/chartPlugins.js";
12
12
  import { HighChartsMeasuredRenderer } from "./adapter/HighChartsMeasuredRenderer.js";
@@ -23,8 +23,12 @@ export function renderHighCharts(props) {
23
23
  const childrenRenderer = (contentRect) => (_jsx(HighChartsRenderer, { contentRect: contentRect, ...props }));
24
24
  return _jsx(HighChartsMeasuredRenderer, { childrenRenderer: childrenRenderer });
25
25
  }
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
+ * @internal
28
+ */
29
+ export const ChartTransformation = memo(function ChartTransformation({ config: configProp, renderer = renderHighCharts, dataView, height, width, afterRender = () => { }, onDrill = () => true, onLegendReady = () => { }, locale, referenceTheme: referenceThemeProp, numericSymbols, drillableItems = [], onDataTooLarge, onNegativeValues = null, pushData = () => { }, tooltipExecution, }) {
27
30
  const intl = useIntl();
31
+ const theme = useTheme();
28
32
  const referenceThemeFromContext = useReferenceTheme();
29
33
  const referenceTheme = referenceThemeProp ?? referenceThemeFromContext;
30
34
  // mekko stacking is bucket-driven — sanitize stackMeasures* once for every config consumer below
@@ -124,11 +128,6 @@ function ChartTransformationImpl({ config: configProp, renderer = renderHighChar
124
128
  theme,
125
129
  config,
126
130
  });
127
- }
128
- /**
129
- * @internal
130
- */
131
- const ChartTransformationWithInjectedProps = withTheme(ChartTransformationImpl);
132
- export const ChartTransformation = memo(ChartTransformationWithInjectedProps, (props, nextProps) => {
131
+ }, (props, nextProps) => {
133
132
  return isEqual(omitBy(props, (v) => typeof v === "function"), omitBy(nextProps, (v) => typeof v === "function"));
134
133
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chartLimits.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartLimits.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAuBvE,OAAO,EAAE,KAAK,aAAa,EAA4C,MAAM,yBAAyB,CAAC;AAYvG,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAkHD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE1E;AAkCD,wBAAgB,YAAY,CACxB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,YAAY,EAAE,aAAa,GAC5B,iBAAiB,CAsBnB;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAW9E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,UA6D5F"}
1
+ {"version":3,"file":"chartLimits.d.ts","sourceRoot":"","sources":["../../../../src/highcharts/chartTypes/_chartOptions/chartLimits.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAuBvE,OAAO,EAAE,KAAK,aAAa,EAA4C,MAAM,yBAAyB,CAAC;AAavG,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAkHD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE1E;AAkCD,wBAAgB,YAAY,CACxB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,YAAY,EAAE,aAAa,GAC5B,iBAAiB,CAsBnB;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAY9E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,UA6D5F"}
@@ -3,6 +3,7 @@ import { VisualizationTypes } from "@gooddata/sdk-ui";
3
3
  import { COLUMN_BAR_TOTAL_DATA_POINTS_LIMIT, DEFAULT_CATEGORIES_LIMIT, DEFAULT_DATA_POINTS_LIMIT, DEFAULT_SERIES_LIMIT, HEATMAP_DATA_POINTS_LIMIT, PIE_CHART_LIMIT, SANKEY_CHART_DATA_POINT_LIMIT, SANKEY_CHART_NODE_LIMIT, SOFT_COLUMN_BAR_TOTAL_DATA_POINTS_LIMIT, SOFT_DEFAULT_CATEGORIES_LIMIT, SOFT_DEFAULT_DATA_POINTS_LIMIT, SOFT_DEFAULT_SERIES_LIMIT, SOFT_PIE_CHART_LIMIT, SOFT_SANKEY_CHART_DATA_POINT_LIMIT, SOFT_SANKEY_CHART_NODE_LIMIT, SOFT_STACKED_COLUMN_BAR_SERIES_LIMIT, SOFT_WATERFALL_CHART_DATA_POINT_LIMIT, STACKED_COLUMN_BAR_SERIES_LIMIT, WATERFALL_CHART_DATA_POINT_LIMIT, } from "../../constants/limits.js";
4
4
  import { isDataOfReasonableSize } from "../_chartCreators/highChartsCreators.js";
5
5
  import { isMekko, isNegativeValueIncluded, isNegativeWidthIncluded, isOneOfTypes, isTreemap, } from "../_util/common.js";
6
+ import { hasNegligibleMekkoColumnWidth } from "../mekko/mekkoChartOptions.js";
6
7
  import { unsupportedNegativeValuesTypes } from "./chartCapabilities.js";
7
8
  function getChartLimits(type, chartOptions) {
8
9
  const isStacked = !!chartOptions?.stacking;
@@ -164,6 +165,7 @@ export function getIsFilteringRecommended(chartOptions) {
164
165
  ? getTreemapDataForValidation(chartOptions.data)
165
166
  : chartOptions.data;
166
167
  return (exceedsColumnBarTotalDataPoints(type, dataToValidate, SOFT_COLUMN_BAR_TOTAL_DATA_POINTS_LIMIT) ||
168
+ hasNegligibleMekkoColumnWidth(type, chartOptions.data?.series) ||
167
169
  !isDataOfReasonableSize(dataToValidate, limits, isViewByTwoAttributes));
168
170
  }
169
171
  /**
@@ -42,6 +42,9 @@ export declare function sortMekkoColumnsByMeasure<TCategory>(series: ISeriesItem
42
42
  series: ISeriesItem[];
43
43
  categories: TCategory[];
44
44
  };
45
+ export declare const MEKKO_MIN_VISIBLE_WIDTH_SHARE = 0.005;
46
+ /** A column's width is its share of the total Width metric — a low-value item is invisible, so AD recommends filtering. */
47
+ export declare function hasNegligibleMekkoColumnWidth(type: string | undefined, series: ISeriesItem[] | undefined): boolean;
45
48
  /**
46
49
  * Drops Mekko columns whose Width (point.z) is 0 — from every series' data and the categories in
47
50
  * 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":"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
+ {"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;AAGD,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,6HAA2H;AAC3H,wBAAgB,6BAA6B,CACzC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,GAClC,OAAO,CAaT;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"}
@@ -104,6 +104,21 @@ export function sortMekkoColumnsByMeasure(series, categories, config, dv, measur
104
104
  categories: columnOrder.map((column) => categories[column]),
105
105
  };
106
106
  }
107
+ // Share of the total Width under which a column renders as an unreadable sliver (~3 px at usual plot widths).
108
+ export const MEKKO_MIN_VISIBLE_WIDTH_SHARE = 0.005;
109
+ /** A column's width is its share of the total Width metric — a low-value item is invisible, so AD recommends filtering. */
110
+ export function hasNegligibleMekkoColumnWidth(type, series) {
111
+ if (!isMekko(type) || !series?.[0]?.data?.length) {
112
+ return false;
113
+ }
114
+ // all series in a column repeat the same z; zero widths are already dropped upstream
115
+ const widths = series[0].data.map((point) => point?.z ?? 0);
116
+ const total = widths.reduce((sum, width) => sum + width, 0);
117
+ if (total <= 0) {
118
+ return false;
119
+ }
120
+ return widths.some((width) => width > 0 && width / total < MEKKO_MIN_VISIBLE_WIDTH_SHARE);
121
+ }
107
122
  /**
108
123
  * Drops Mekko columns whose Width (point.z) is 0 — from every series' data and the categories in
109
124
  * lockstep. Negative z is kept so validateData can reject it. The first series drives the mask (all
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-charts",
3
- "version": "11.53.0-alpha.1",
3
+ "version": "11.53.0-alpha.2",
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.53.0-alpha.1",
73
- "@gooddata/sdk-model": "11.53.0-alpha.1",
74
- "@gooddata/sdk-ui-kit": "11.53.0-alpha.1",
75
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.1",
76
- "@gooddata/sdk-ui": "11.53.0-alpha.1",
77
- "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.1",
78
- "@gooddata/util": "11.53.0-alpha.1"
72
+ "@gooddata/sdk-backend-spi": "11.53.0-alpha.2",
73
+ "@gooddata/sdk-model": "11.53.0-alpha.2",
74
+ "@gooddata/sdk-ui-vis-commons": "11.53.0-alpha.2",
75
+ "@gooddata/util": "11.53.0-alpha.2",
76
+ "@gooddata/sdk-ui-kit": "11.53.0-alpha.2",
77
+ "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.2",
78
+ "@gooddata/sdk-ui": "11.53.0-alpha.2"
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/oxlint-config": "11.53.0-alpha.1",
124
- "@gooddata/eslint-config": "11.53.0-alpha.1",
125
- "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.1",
126
- "@gooddata/reference-workspace": "11.53.0-alpha.1",
127
- "@gooddata/stylelint-config": "11.53.0-alpha.1"
123
+ "@gooddata/eslint-config": "11.53.0-alpha.2",
124
+ "@gooddata/reference-workspace": "11.53.0-alpha.2",
125
+ "@gooddata/oxlint-config": "11.53.0-alpha.2",
126
+ "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.2",
127
+ "@gooddata/stylelint-config": "11.53.0-alpha.2"
128
128
  },
129
129
  "peerDependencies": {
130
130
  "react": "^18.0.0 || ^19.0.0",