@cloudscape-design/chart-components 1.0.29 → 1.0.31

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.
@@ -29,7 +29,7 @@ import testClasses from "./test-classes/styles.css.js";
29
29
  * with Cloudscape props to define custom tooltip, no-data, formatters, items visibility, and more.
30
30
  */
31
31
  export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeight, chartHeight, chartMinHeight, chartMinWidth, tooltip: tooltipOptions, noData: noDataOptions, navigator, legend: legendOptions, fallback = _jsx(Spinner, {}), callback, emphasizeBaseline = true, verticalAxisTitlePlacement = "side", i18nStrings, className, header, footer, filter, keyboardNavigation = true, onHighlight, onLegendItemHighlight, onClearHighlight, onVisibleItemsChange, visibleItems, __internalRootRef, ...rest }) {
32
- var _a, _b, _c, _d;
32
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
33
33
  const highcharts = rest.highcharts;
34
34
  const labels = useChartI18n({ ariaLabel, ariaDescription, i18nStrings });
35
35
  const context = {
@@ -71,10 +71,71 @@ export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeig
71
71
  const apiOptions = api.getOptions();
72
72
  const inverted = !!((_b = options.chart) === null || _b === void 0 ? void 0 : _b.inverted);
73
73
  const isRtl = getIsRtl(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);
74
- // Compute RTL-adjusted options that will be used for both legend positioning and chart rendering
75
- const rtlAdjustedOptions = {
74
+ // The Highcharts options takes all provided Highcharts options and custom properties and merges them together, so that
75
+ // the Cloudscape features and custom Highcharts extensions co-exist.
76
+ // For certain options we provide Cloudscape styling, but in all cases this can be explicitly overridden.
77
+ options = {
76
78
  ...options,
77
- xAxis: (_c = castArray(options.xAxis)) === null || _c === void 0 ? void 0 : _c.map((xAxisOptions) => {
79
+ // Hide credits by default.
80
+ credits: (_c = options.credits) !== null && _c !== void 0 ? _c : { enabled: false },
81
+ // Hide chart title by default.
82
+ title: (_d = options.title) !== null && _d !== void 0 ? _d : { text: "" },
83
+ // Use Cloudscape color palette by default.
84
+ // This cannot be reset to Highcharts' default from the outside, but it is possible to provide custom palette.
85
+ colors: (_e = options.colors) !== null && _e !== void 0 ? _e : Styles.colors,
86
+ chart: {
87
+ // Animations are disabled by default.
88
+ // This is done for UX and a11y reasons as Highcharts animations do not match our animation timings, and do
89
+ // not respect disabled motion settings. These issues can likely be resolved or we can provide custom animations
90
+ // instead, but this is not a priority.
91
+ animation: false,
92
+ ...Styles.chart,
93
+ ...options.chart,
94
+ className: clsx(testClasses["chart-plot"], (_f = options.chart) === null || _f === void 0 ? void 0 : _f.className),
95
+ // The debug errors are enabled by default in development mode, but this only works
96
+ // if the Highcharts debugger module is loaded.
97
+ displayErrors: (_h = (_g = options.chart) === null || _g === void 0 ? void 0 : _g.displayErrors) !== null && _h !== void 0 ? _h : isDevelopment,
98
+ style: { ...Styles.chartPlotCss, ...(_j = options.chart) === null || _j === void 0 ? void 0 : _j.style },
99
+ },
100
+ series: options.series,
101
+ // Highcharts legend is disabled by default in favour of the custom Cloudscape legend.
102
+ legend: (_k = options.legend) !== null && _k !== void 0 ? _k : { enabled: false },
103
+ lang: {
104
+ ...options.lang,
105
+ accessibility: {
106
+ // The default chart title is disabled by default to prevent the default "Chart" in the screen-reader detail.
107
+ defaultChartTitle: "",
108
+ chartContainerLabel: labels.chartLabel,
109
+ svgContainerLabel: labels.chartContainerLabel,
110
+ // We used {names[0]} to inject the axis title, see: https://api.highcharts.com/highcharts/lang.accessibility.axis.xAxisDescriptionSingular.
111
+ axis: {
112
+ xAxisDescriptionSingular: labels.chartXAxisLabel ? `${labels.chartXAxisLabel}, {names[0]}` : undefined,
113
+ yAxisDescriptionSingular: labels.chartYAxisLabel ? `${labels.chartYAxisLabel}, {names[0]}` : undefined,
114
+ },
115
+ ...(_l = options.lang) === null || _l === void 0 ? void 0 : _l.accessibility,
116
+ },
117
+ },
118
+ accessibility: {
119
+ description: labels.chartDescription,
120
+ screenReaderSection: {
121
+ // We use custom before-message to remove detail that are currently not supported with our i18n.
122
+ // See: https://api.highcharts.com/highcharts/accessibility.screenReaderSection.beforeChartFormat.
123
+ beforeChartFormat: "<div>{xAxisDescription}</div><div>{yAxisDescription}</div>",
124
+ // We hide after message as it is currently not supported with our i18n.
125
+ afterChartFormat: "",
126
+ },
127
+ ...options.accessibility,
128
+ // Highcharts keyboard navigation is disabled by default in favour of the custom Cloudscape navigation.
129
+ keyboardNavigation: (_o = (_m = options.accessibility) === null || _m === void 0 ? void 0 : _m.keyboardNavigation) !== null && _o !== void 0 ? _o : { enabled: !keyboardNavigation },
130
+ point: {
131
+ // Point description formatter is overridden to respect custom axes value formatters.
132
+ descriptionFormatter: (point) => getPointAccessibleDescription(point, labels),
133
+ ...(_p = options.accessibility) === null || _p === void 0 ? void 0 : _p.point,
134
+ },
135
+ },
136
+ // We use the rtl adjusted axes (instead of the original options.xAxis/yAxis) to ensure the chart renders
137
+ // with the correct axis orientation for RTL layouts, matching what was used for legend positioning above.
138
+ xAxis: (_q = castArray(options.xAxis)) === null || _q === void 0 ? void 0 : _q.map((xAxisOptions) => {
78
139
  var _a, _b;
79
140
  return ({
80
141
  ...Styles.xAxisOptions,
@@ -87,7 +148,7 @@ export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeig
87
148
  labels: axisLabels((_b = xAxisOptions.labels) !== null && _b !== void 0 ? _b : {}),
88
149
  });
89
150
  }),
90
- yAxis: (_d = castArray(options.yAxis)) === null || _d === void 0 ? void 0 : _d.map((yAxisOptions) => {
151
+ yAxis: (_r = castArray(options.yAxis)) === null || _r === void 0 ? void 0 : _r.map((yAxisOptions) => {
91
152
  var _a, _b, _c;
92
153
  return ({
93
154
  ...Styles.yAxisOptions,
@@ -104,48 +165,59 @@ export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeig
104
165
  reversedStacks: (_c = yAxisOptions.reversedStacks) !== null && _c !== void 0 ? _c : true,
105
166
  });
106
167
  }),
168
+ plotOptions: {
169
+ ...options.plotOptions,
170
+ series: {
171
+ // Animations are disabled by default, same as in the options.chart.
172
+ animation: false,
173
+ // Sticky tracking is disabled by default due to sub-optimal UX in dense charts.
174
+ stickyTracking: false,
175
+ borderColor: Styles.seriesBorderColor,
176
+ ...(_s = options.plotOptions) === null || _s === void 0 ? void 0 : _s.series,
177
+ dataLabels: { style: Styles.seriesDataLabelsCss, ...(_u = (_t = options.plotOptions) === null || _t === void 0 ? void 0 : _t.series) === null || _u === void 0 ? void 0 : _u.dataLabels },
178
+ states: {
179
+ ...(_w = (_v = options.plotOptions) === null || _v === void 0 ? void 0 : _v.series) === null || _w === void 0 ? void 0 : _w.states,
180
+ inactive: { opacity: Styles.seriesOpacityInactive, ...(_z = (_y = (_x = options.plotOptions) === null || _x === void 0 ? void 0 : _x.series) === null || _y === void 0 ? void 0 : _y.states) === null || _z === void 0 ? void 0 : _z.inactive },
181
+ },
182
+ },
183
+ area: { ...Styles.areaSeries, ...(_0 = options.plotOptions) === null || _0 === void 0 ? void 0 : _0.area },
184
+ areaspline: { ...Styles.areaSeries, ...(_1 = options.plotOptions) === null || _1 === void 0 ? void 0 : _1.areaspline },
185
+ arearange: { ...Styles.areaSeries, ...(_2 = options.plotOptions) === null || _2 === void 0 ? void 0 : _2.arearange },
186
+ areasplinerange: { ...Styles.areaSeries, ...(_3 = options.plotOptions) === null || _3 === void 0 ? void 0 : _3.areasplinerange },
187
+ line: { ...Styles.lineSeries, ...(_4 = options.plotOptions) === null || _4 === void 0 ? void 0 : _4.line },
188
+ spline: { ...Styles.lineSeries, ...(_5 = options.plotOptions) === null || _5 === void 0 ? void 0 : _5.spline },
189
+ column: { ...Styles.columnSeries, ...(_6 = options.plotOptions) === null || _6 === void 0 ? void 0 : _6.column },
190
+ errorbar: { ...Styles.errorbarSeries, ...(_7 = options.plotOptions) === null || _7 === void 0 ? void 0 : _7.errorbar },
191
+ // Pie chart is shown in legend by default, that is required for standalone pie charts.
192
+ pie: {
193
+ showInLegend: true,
194
+ ...Styles.pieSeries,
195
+ ...(_8 = options.plotOptions) === null || _8 === void 0 ? void 0 : _8.pie,
196
+ dataLabels: { ...Styles.pieSeriesDataLabels, ...(_10 = (_9 = options.plotOptions) === null || _9 === void 0 ? void 0 : _9.pie) === null || _10 === void 0 ? void 0 : _10.dataLabels },
197
+ },
198
+ },
199
+ // We don't use Highcharts tooltip, but certain tooltip options such as tooltip.snap or tooltip.shared
200
+ // affect the hovering behavior of Highcharts. That is only the case when the tooltip is not disabled,
201
+ // so we render it, but hide with styles.
202
+ tooltip: (_11 = options.tooltip) !== null && _11 !== void 0 ? _11 : { enabled: true, snap: Styles.tooltipSnap, style: { opacity: 0 } },
107
203
  };
108
- const legendProps = getLegendsProps(rtlAdjustedOptions, legendOptions);
204
+ const legendProps = getLegendsProps(options, legendOptions);
109
205
  return (_jsxs("div", { ...rootProps, children: [_jsx(ChartContainer, { ...containerProps, chart: (height) => {
110
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15;
111
- // The Highcharts options takes all provided Highcharts options and custom properties and merges them together, so that
112
- // the Cloudscape features and custom Highcharts extensions co-exist.
113
- // For certain options we provide Cloudscape styling, but in all cases this can be explicitly overridden.
114
- // We use the rtl adjusted axes (instead of the original options.xAxis/yAxis) to ensure the chart renders
115
- // with the correct axis orientation for RTL layouts, matching what was used for legend positioning above.
206
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
207
+ // We declare event handlers here to ensure that no event fires until the chart is initialized.
116
208
  const highchartsOptions = {
117
209
  ...options,
118
- xAxis: rtlAdjustedOptions.xAxis,
119
- yAxis: rtlAdjustedOptions.yAxis,
120
- // Hide credits by default.
121
- credits: (_a = options.credits) !== null && _a !== void 0 ? _a : { enabled: false },
122
- // Hide chart title by default.
123
- title: (_b = options.title) !== null && _b !== void 0 ? _b : { text: "" },
124
- // Use Cloudscape color palette by default.
125
- // This cannot be reset to Highcharts' default from the outside, but it is possible to provide custom palette.
126
- colors: (_c = options.colors) !== null && _c !== void 0 ? _c : Styles.colors,
127
210
  chart: {
128
- // Animations are disabled by default.
129
- // This is done for UX and a11y reasons as Highcharts animations do not match our animation timings, and do
130
- // not respect disabled motion settings. These issues can likely be resolved or we can provide custom animations
131
- // instead, but this is not a priority.
132
- animation: false,
133
- ...Styles.chart,
134
211
  ...options.chart,
135
- className: clsx(testClasses["chart-plot"], (_d = options.chart) === null || _d === void 0 ? void 0 : _d.className),
136
212
  // Use height computed from chartHeight, chartMinHeight, and fitHeight settings by default.
137
213
  // It is possible to override it by explicitly providing chart.height, but this will not be
138
214
  // compatible with any of the above settings.
139
- height: (_f = (_e = options.chart) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : height,
140
- // The debug errors are enabled by default in development mode, but this only works
141
- // if the Highcharts debugger module is loaded.
142
- displayErrors: (_h = (_g = options.chart) === null || _g === void 0 ? void 0 : _g.displayErrors) !== null && _h !== void 0 ? _h : isDevelopment,
143
- style: { ...Styles.chartPlotCss, ...(_j = options.chart) === null || _j === void 0 ? void 0 : _j.style },
215
+ height: (_b = (_a = options.chart) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : height,
144
216
  // We override certain chart events to inject additional behaviors, but it is still possible to define
145
217
  // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API. For instance,
146
218
  // if no-data props are not provided - the related on-render computations will be skipped.
147
219
  events: {
148
- ...(_k = options.chart) === null || _k === void 0 ? void 0 : _k.events,
220
+ ...(_c = options.chart) === null || _c === void 0 ? void 0 : _c.events,
149
221
  load(event) {
150
222
  var _a, _b, _c;
151
223
  apiOptions.onChartLoad.call(this, event);
@@ -163,66 +235,16 @@ export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeig
163
235
  },
164
236
  },
165
237
  },
166
- series: options.series,
167
- // Highcharts legend is disabled by default in favour of the custom Cloudscape legend.
168
- legend: (_l = options.legend) !== null && _l !== void 0 ? _l : { enabled: false },
169
- lang: {
170
- ...options.lang,
171
- accessibility: {
172
- // The default chart title is disabled by default to prevent the default "Chart" in the screen-reader detail.
173
- defaultChartTitle: "",
174
- chartContainerLabel: labels.chartLabel,
175
- svgContainerLabel: labels.chartContainerLabel,
176
- // We used {names[0]} to inject the axis title, see: https://api.highcharts.com/highcharts/lang.accessibility.axis.xAxisDescriptionSingular.
177
- axis: {
178
- xAxisDescriptionSingular: labels.chartXAxisLabel
179
- ? `${labels.chartXAxisLabel}, {names[0]}`
180
- : undefined,
181
- yAxisDescriptionSingular: labels.chartYAxisLabel
182
- ? `${labels.chartYAxisLabel}, {names[0]}`
183
- : undefined,
184
- },
185
- ...(_m = options.lang) === null || _m === void 0 ? void 0 : _m.accessibility,
186
- },
187
- },
188
- accessibility: {
189
- description: labels.chartDescription,
190
- screenReaderSection: {
191
- // We use custom before-message to remove detail that are currently not supported with our i18n.
192
- // See: https://api.highcharts.com/highcharts/accessibility.screenReaderSection.beforeChartFormat.
193
- beforeChartFormat: "<div>{xAxisDescription}</div><div>{yAxisDescription}</div>",
194
- // We hide after message as it is currently not supported with our i18n.
195
- afterChartFormat: "",
196
- },
197
- ...options.accessibility,
198
- // Highcharts keyboard navigation is disabled by default in favour of the custom Cloudscape navigation.
199
- keyboardNavigation: (_p = (_o = options.accessibility) === null || _o === void 0 ? void 0 : _o.keyboardNavigation) !== null && _p !== void 0 ? _p : { enabled: !keyboardNavigation },
200
- point: {
201
- // Point description formatter is overridden to respect custom axes value formatters.
202
- descriptionFormatter: (point) => getPointAccessibleDescription(point, labels),
203
- ...(_q = options.accessibility) === null || _q === void 0 ? void 0 : _q.point,
204
- },
205
- },
206
238
  plotOptions: {
207
239
  ...options.plotOptions,
208
240
  series: {
209
- // Animations are disabled by default, same as in the options.chart.
210
- animation: false,
211
- // Sticky tracking is disabled by default due to sub-optimal UX in dense charts.
212
- stickyTracking: false,
213
- borderColor: Styles.seriesBorderColor,
214
- ...(_r = options.plotOptions) === null || _r === void 0 ? void 0 : _r.series,
215
- dataLabels: { style: Styles.seriesDataLabelsCss, ...(_t = (_s = options.plotOptions) === null || _s === void 0 ? void 0 : _s.series) === null || _t === void 0 ? void 0 : _t.dataLabels },
216
- states: {
217
- ...(_v = (_u = options.plotOptions) === null || _u === void 0 ? void 0 : _u.series) === null || _v === void 0 ? void 0 : _v.states,
218
- inactive: { opacity: Styles.seriesOpacityInactive, ...(_y = (_x = (_w = options.plotOptions) === null || _w === void 0 ? void 0 : _w.series) === null || _x === void 0 ? void 0 : _x.states) === null || _y === void 0 ? void 0 : _y.inactive },
219
- },
241
+ ...(_d = options.plotOptions) === null || _d === void 0 ? void 0 : _d.series,
220
242
  // We override certain point events to inject additional behaviors, but it is still possible to define
221
243
  // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API.
222
244
  point: {
223
- ...(_0 = (_z = options.plotOptions) === null || _z === void 0 ? void 0 : _z.series) === null || _0 === void 0 ? void 0 : _0.point,
245
+ ...(_f = (_e = options.plotOptions) === null || _e === void 0 ? void 0 : _e.series) === null || _f === void 0 ? void 0 : _f.point,
224
246
  events: {
225
- ...(_3 = (_2 = (_1 = options.plotOptions) === null || _1 === void 0 ? void 0 : _1.series) === null || _2 === void 0 ? void 0 : _2.point) === null || _3 === void 0 ? void 0 : _3.events,
247
+ ...(_j = (_h = (_g = options.plotOptions) === null || _g === void 0 ? void 0 : _g.series) === null || _h === void 0 ? void 0 : _h.point) === null || _j === void 0 ? void 0 : _j.events,
226
248
  mouseOver(event) {
227
249
  var _a, _b, _c, _d, _e;
228
250
  apiOptions.onSeriesPointMouseOver.call(this, event);
@@ -241,26 +263,7 @@ export function InternalCoreChart({ options, ariaLabel, ariaDescription, fitHeig
241
263
  },
242
264
  },
243
265
  },
244
- area: { ...Styles.areaSeries, ...(_4 = options.plotOptions) === null || _4 === void 0 ? void 0 : _4.area },
245
- areaspline: { ...Styles.areaSeries, ...(_5 = options.plotOptions) === null || _5 === void 0 ? void 0 : _5.areaspline },
246
- arearange: { ...Styles.areaSeries, ...(_6 = options.plotOptions) === null || _6 === void 0 ? void 0 : _6.arearange },
247
- areasplinerange: { ...Styles.areaSeries, ...(_7 = options.plotOptions) === null || _7 === void 0 ? void 0 : _7.areasplinerange },
248
- line: { ...Styles.lineSeries, ...(_8 = options.plotOptions) === null || _8 === void 0 ? void 0 : _8.line },
249
- spline: { ...Styles.lineSeries, ...(_9 = options.plotOptions) === null || _9 === void 0 ? void 0 : _9.spline },
250
- column: { ...Styles.columnSeries, ...(_10 = options.plotOptions) === null || _10 === void 0 ? void 0 : _10.column },
251
- errorbar: { ...Styles.errorbarSeries, ...(_11 = options.plotOptions) === null || _11 === void 0 ? void 0 : _11.errorbar },
252
- // Pie chart is shown in legend by default, that is required for standalone pie charts.
253
- pie: {
254
- showInLegend: true,
255
- ...Styles.pieSeries,
256
- ...(_12 = options.plotOptions) === null || _12 === void 0 ? void 0 : _12.pie,
257
- dataLabels: { ...Styles.pieSeriesDataLabels, ...(_14 = (_13 = options.plotOptions) === null || _13 === void 0 ? void 0 : _13.pie) === null || _14 === void 0 ? void 0 : _14.dataLabels },
258
- },
259
266
  },
260
- // We don't use Highcharts tooltip, but certain tooltip options such as tooltip.snap or tooltip.shared
261
- // affect the hovering behavior of Highcharts. That is only the case when the tooltip is not disabled,
262
- // so we render it, but hide with styles.
263
- tooltip: (_15 = options.tooltip) !== null && _15 !== void 0 ? _15 : { enabled: true, snap: Styles.tooltipSnap, style: { opacity: 0 } },
264
267
  };
265
268
  return (_jsxs(_Fragment, { children: [_jsx(ChartApplication, { api: api, keyboardNavigation: keyboardNavigation, ariaLabel: ariaLabel }), _jsx(HighchartsReact, { highcharts: highcharts, options: highchartsOptions, callback: (chart) => callback === null || callback === void 0 ? void 0 : callback({ chart, highcharts: highcharts, ...api.publicApi }) })] }));
266
269
  }, navigator: navigator, primaryLegend: context.legendEnabled && legendProps.primary ? (_jsx(ChartLegend, { ...commonLegendProps, ...legendProps.primary, className: testClasses["legend-primary"] })) : null, secondaryLegend: context.legendEnabled && legendProps.secondary ? (_jsx(ChartLegend, { ...commonLegendProps, ...legendProps.secondary, className: testClasses["legend-secondary"] })) : null, verticalAxisTitle: verticalAxisTitlePlacement === "top" ? _jsx(VerticalAxisTitle, { api: api, inverted: !!inverted }) : null, header: (header === null || header === void 0 ? void 0 : header.content) ? _jsx(ChartHeader, { children: header.content }) : null, footer: (footer === null || footer === void 0 ? void 0 : footer.content) ? _jsx(ChartFooter, { children: footer.content }) : null, filter: (filter === null || filter === void 0 ? void 0 : filter.seriesFilter) || (filter === null || filter === void 0 ? void 0 : filter.additionalFilters) ? (_jsx(ChartFilters, { api: api, seriesFilter: filter === null || filter === void 0 ? void 0 : filter.seriesFilter, additionalFilters: filter === null || filter === void 0 ? void 0 : filter.additionalFilters, i18nStrings: i18nStrings })) : null, noData: context.noDataEnabled && _jsx(ChartNoData, { ...noDataOptions, i18nStrings: i18nStrings, api: api }) }), context.tooltipEnabled && (_jsx(ChartTooltip, { ...tooltipOptions, i18nStrings: i18nStrings, getTooltipContent: rest.getTooltipContent, api: api }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"chart-core.js","sourceRoot":"","sources":["../../../src/core/chart-core.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useRef } from \"react\";\nimport clsx from \"clsx\";\nimport type Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\n\nimport { getIsRtl, useMergeRefs, useUniqueId } from \"@cloudscape-design/component-toolkit/internal\";\nimport { isDevelopment } from \"@cloudscape-design/component-toolkit/internal\";\nimport Spinner from \"@cloudscape-design/components/spinner\";\n\nimport { getDataAttributes } from \"../internal/base-component/get-data-attributes\";\nimport { InternalBaseComponentProps } from \"../internal/base-component/use-base-component\";\nimport * as Styles from \"../internal/chart-styles\";\nimport { castArray } from \"../internal/utils/utils\";\nimport { useChartAPI } from \"./chart-api\";\nimport { ChartContainer } from \"./chart-container\";\nimport { ChartApplication } from \"./components/core-application\";\nimport { ChartFilters } from \"./components/core-filters\";\nimport { ChartLegend } from \"./components/core-legend\";\nimport { ChartNoData } from \"./components/core-no-data\";\nimport { ChartFooter, ChartHeader } from \"./components/core-slots\";\nimport { ChartTooltip } from \"./components/core-tooltip\";\nimport { VerticalAxisTitle } from \"./components/core-vertical-axis-title\";\nimport { getFormatter } from \"./formatters\";\nimport { useChartI18n } from \"./i18n-utils\";\nimport { CoreChartProps } from \"./interfaces\";\nimport { getLegendsProps, getPointAccessibleDescription } from \"./utils\";\n\nimport styles from \"./styles.css.js\";\nimport testClasses from \"./test-classes/styles.css.js\";\n\n/**\n * CoreChart is the core internal abstraction that accepts the entire set of Highcharts options along\n * with Cloudscape props to define custom tooltip, no-data, formatters, items visibility, and more.\n */\nexport function InternalCoreChart({\n options,\n ariaLabel,\n ariaDescription,\n fitHeight,\n chartHeight,\n chartMinHeight,\n chartMinWidth,\n tooltip: tooltipOptions,\n noData: noDataOptions,\n navigator,\n legend: legendOptions,\n fallback = <Spinner />,\n callback,\n emphasizeBaseline = true,\n verticalAxisTitlePlacement = \"side\",\n i18nStrings,\n className,\n header,\n footer,\n filter,\n keyboardNavigation = true,\n onHighlight,\n onLegendItemHighlight,\n onClearHighlight,\n onVisibleItemsChange,\n visibleItems,\n __internalRootRef,\n ...rest\n}: CoreChartProps & InternalBaseComponentProps) {\n const highcharts = rest.highcharts as null | typeof Highcharts;\n const labels = useChartI18n({ ariaLabel, ariaDescription, i18nStrings });\n const context = {\n chartId: useUniqueId(),\n noDataEnabled: !!noDataOptions,\n legendEnabled: legendOptions?.enabled !== false,\n tooltipEnabled: tooltipOptions?.enabled !== false,\n keyboardNavigationEnabled: keyboardNavigation,\n labels,\n };\n const handlers = { onHighlight, onClearHighlight, onVisibleItemsChange };\n const state = { visibleItems };\n const api = useChartAPI(context, handlers, state);\n\n const rootClassName = clsx(testClasses.root, styles.root, fitHeight && styles[\"root-fit-height\"], className);\n const rootRef = useRef<HTMLDivElement>(null);\n const mergedRootRef = useMergeRefs(rootRef, __internalRootRef);\n const rootProps = { ref: mergedRootRef, className: rootClassName, ...getDataAttributes(rest) };\n const legendPosition = legendOptions?.position ?? \"bottom\";\n const commonLegendProps = {\n api: api,\n i18nStrings,\n onItemHighlight: onLegendItemHighlight,\n getLegendTooltipContent: rest.getLegendTooltipContent,\n };\n const containerProps = {\n fitHeight,\n chartHeight,\n chartMinHeight,\n chartMinWidth,\n legendPosition,\n verticalAxisTitlePlacement,\n legendBottomMaxHeight: legendOptions?.bottomMaxHeight,\n };\n\n // Render fallback using the same root and container props as for the chart to ensure consistent\n // size, test classes, and data-attributes assignment.\n if (!highcharts) {\n return (\n <div {...rootProps}>\n <ChartContainer\n {...containerProps}\n chart={(minHeight) => (\n <div className={testClasses.fallback} style={{ minHeight }}>\n {fallback}\n </div>\n )}\n />\n </div>\n );\n }\n\n const apiOptions = api.getOptions();\n const inverted = !!options.chart?.inverted;\n const isRtl = getIsRtl(rootRef?.current);\n\n // Compute RTL-adjusted options that will be used for both legend positioning and chart rendering\n const rtlAdjustedOptions: Highcharts.Options = {\n ...options,\n xAxis: castArray(options.xAxis)?.map((xAxisOptions) => ({\n ...Styles.xAxisOptions,\n ...xAxisOptions,\n // Depending on the chart.inverted the x-axis can be rendered as vertical, and needs to respect page direction.\n reversed: !inverted && isRtl ? !xAxisOptions.reversed : xAxisOptions.reversed,\n opposite: inverted && isRtl ? !xAxisOptions.opposite : xAxisOptions.opposite,\n className: xAxisClassName(inverted, xAxisOptions.className),\n title: axisTitle(xAxisOptions.title ?? {}, !inverted || verticalAxisTitlePlacement === \"side\"),\n labels: axisLabels(xAxisOptions.labels ?? {}),\n })),\n yAxis: castArray(options.yAxis)?.map((yAxisOptions) => ({\n ...Styles.yAxisOptions,\n ...yAxisOptions,\n // Depending on the chart.inverted the y-axis can be rendered as vertical, and needs to respect page direction.\n reversed: inverted && isRtl ? !yAxisOptions.reversed : yAxisOptions.reversed,\n opposite: !inverted && isRtl ? !yAxisOptions.opposite : yAxisOptions.opposite,\n className: yAxisClassName(inverted, yAxisOptions.className),\n title: axisTitle(yAxisOptions.title ?? {}, inverted || verticalAxisTitlePlacement === \"side\"),\n labels: axisLabels(yAxisOptions.labels ?? {}),\n plotLines: yAxisPlotLines(yAxisOptions.plotLines, emphasizeBaseline),\n // We use reversed stack by default so that the order of points in the tooltip and series in the legend\n // correspond the order of stacks.\n reversedStacks: yAxisOptions.reversedStacks ?? true,\n })),\n };\n\n const legendProps = getLegendsProps(rtlAdjustedOptions, legendOptions);\n\n return (\n <div {...rootProps}>\n <ChartContainer\n {...containerProps}\n chart={(height) => {\n // The Highcharts options takes all provided Highcharts options and custom properties and merges them together, so that\n // the Cloudscape features and custom Highcharts extensions co-exist.\n // For certain options we provide Cloudscape styling, but in all cases this can be explicitly overridden.\n // We use the rtl adjusted axes (instead of the original options.xAxis/yAxis) to ensure the chart renders\n // with the correct axis orientation for RTL layouts, matching what was used for legend positioning above.\n const highchartsOptions: Highcharts.Options = {\n ...options,\n xAxis: rtlAdjustedOptions.xAxis,\n yAxis: rtlAdjustedOptions.yAxis,\n // Hide credits by default.\n credits: options.credits ?? { enabled: false },\n // Hide chart title by default.\n title: options.title ?? { text: \"\" },\n // Use Cloudscape color palette by default.\n // This cannot be reset to Highcharts' default from the outside, but it is possible to provide custom palette.\n colors: options.colors ?? Styles.colors,\n chart: {\n // Animations are disabled by default.\n // This is done for UX and a11y reasons as Highcharts animations do not match our animation timings, and do\n // not respect disabled motion settings. These issues can likely be resolved or we can provide custom animations\n // instead, but this is not a priority.\n animation: false,\n ...Styles.chart,\n ...options.chart,\n className: clsx(testClasses[\"chart-plot\"], options.chart?.className),\n // Use height computed from chartHeight, chartMinHeight, and fitHeight settings by default.\n // It is possible to override it by explicitly providing chart.height, but this will not be\n // compatible with any of the above settings.\n height: options.chart?.height ?? height,\n // The debug errors are enabled by default in development mode, but this only works\n // if the Highcharts debugger module is loaded.\n displayErrors: options.chart?.displayErrors ?? isDevelopment,\n style: { ...Styles.chartPlotCss, ...options.chart?.style },\n // We override certain chart events to inject additional behaviors, but it is still possible to define\n // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API. For instance,\n // if no-data props are not provided - the related on-render computations will be skipped.\n events: {\n ...options.chart?.events,\n load(event) {\n apiOptions.onChartLoad.call(this, event);\n return options.chart?.events?.load?.call(this, event);\n },\n render(event) {\n apiOptions.onChartRender.call(this, event);\n return options.chart?.events?.render?.call(this, event);\n },\n click(event) {\n apiOptions.onChartClick.call(this, event);\n return options.chart?.events?.click?.call(this, event);\n },\n },\n },\n series: options.series,\n // Highcharts legend is disabled by default in favour of the custom Cloudscape legend.\n legend: options.legend ?? { enabled: false },\n lang: {\n ...options.lang,\n accessibility: {\n // The default chart title is disabled by default to prevent the default \"Chart\" in the screen-reader detail.\n defaultChartTitle: \"\",\n chartContainerLabel: labels.chartLabel,\n svgContainerLabel: labels.chartContainerLabel,\n // We used {names[0]} to inject the axis title, see: https://api.highcharts.com/highcharts/lang.accessibility.axis.xAxisDescriptionSingular.\n axis: {\n xAxisDescriptionSingular: labels.chartXAxisLabel\n ? `${labels.chartXAxisLabel}, {names[0]}`\n : undefined,\n yAxisDescriptionSingular: labels.chartYAxisLabel\n ? `${labels.chartYAxisLabel}, {names[0]}`\n : undefined,\n },\n ...options.lang?.accessibility,\n },\n },\n accessibility: {\n description: labels.chartDescription,\n screenReaderSection: {\n // We use custom before-message to remove detail that are currently not supported with our i18n.\n // See: https://api.highcharts.com/highcharts/accessibility.screenReaderSection.beforeChartFormat.\n beforeChartFormat: \"<div>{xAxisDescription}</div><div>{yAxisDescription}</div>\",\n // We hide after message as it is currently not supported with our i18n.\n afterChartFormat: \"\",\n },\n ...options.accessibility,\n // Highcharts keyboard navigation is disabled by default in favour of the custom Cloudscape navigation.\n keyboardNavigation: options.accessibility?.keyboardNavigation ?? { enabled: !keyboardNavigation },\n point: {\n // Point description formatter is overridden to respect custom axes value formatters.\n descriptionFormatter: (point) => getPointAccessibleDescription(point, labels),\n ...options.accessibility?.point,\n },\n },\n plotOptions: {\n ...options.plotOptions,\n series: {\n // Animations are disabled by default, same as in the options.chart.\n animation: false,\n // Sticky tracking is disabled by default due to sub-optimal UX in dense charts.\n stickyTracking: false,\n borderColor: Styles.seriesBorderColor,\n ...options.plotOptions?.series,\n dataLabels: { style: Styles.seriesDataLabelsCss, ...options.plotOptions?.series?.dataLabels },\n states: {\n ...options.plotOptions?.series?.states,\n inactive: { opacity: Styles.seriesOpacityInactive, ...options.plotOptions?.series?.states?.inactive },\n },\n // We override certain point events to inject additional behaviors, but it is still possible to define\n // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API.\n point: {\n ...options.plotOptions?.series?.point,\n events: {\n ...options.plotOptions?.series?.point?.events,\n mouseOver(event) {\n apiOptions.onSeriesPointMouseOver.call(this, event);\n return options.plotOptions?.series?.point?.events?.mouseOver?.call(this, event);\n },\n mouseOut(event) {\n apiOptions.onSeriesPointMouseOut.call(this, event);\n return options.plotOptions?.series?.point?.events?.mouseOut?.call(this, event);\n },\n click(event) {\n apiOptions.onSeriesPointClick.call(this, event);\n return options.plotOptions?.series?.point?.events?.click?.call(this, event);\n },\n },\n },\n },\n area: { ...Styles.areaSeries, ...options.plotOptions?.area },\n areaspline: { ...Styles.areaSeries, ...options.plotOptions?.areaspline },\n arearange: { ...Styles.areaSeries, ...options.plotOptions?.arearange },\n areasplinerange: { ...Styles.areaSeries, ...options.plotOptions?.areasplinerange },\n line: { ...Styles.lineSeries, ...options.plotOptions?.line },\n spline: { ...Styles.lineSeries, ...options.plotOptions?.spline },\n column: { ...Styles.columnSeries, ...options.plotOptions?.column },\n errorbar: { ...Styles.errorbarSeries, ...options.plotOptions?.errorbar },\n // Pie chart is shown in legend by default, that is required for standalone pie charts.\n pie: {\n showInLegend: true,\n ...Styles.pieSeries,\n ...options.plotOptions?.pie,\n dataLabels: { ...Styles.pieSeriesDataLabels, ...options.plotOptions?.pie?.dataLabels },\n },\n },\n // We don't use Highcharts tooltip, but certain tooltip options such as tooltip.snap or tooltip.shared\n // affect the hovering behavior of Highcharts. That is only the case when the tooltip is not disabled,\n // so we render it, but hide with styles.\n tooltip: options.tooltip ?? { enabled: true, snap: Styles.tooltipSnap, style: { opacity: 0 } },\n };\n return (\n <>\n <ChartApplication api={api} keyboardNavigation={keyboardNavigation} ariaLabel={ariaLabel} />\n <HighchartsReact\n highcharts={highcharts}\n options={highchartsOptions}\n callback={(chart: Highcharts.Chart) =>\n callback?.({ chart, highcharts: highcharts as typeof Highcharts, ...api.publicApi })\n }\n />\n </>\n );\n }}\n navigator={navigator}\n primaryLegend={\n context.legendEnabled && legendProps.primary ? (\n <ChartLegend {...commonLegendProps} {...legendProps.primary} className={testClasses[\"legend-primary\"]} />\n ) : null\n }\n secondaryLegend={\n context.legendEnabled && legendProps.secondary ? (\n <ChartLegend\n {...commonLegendProps}\n {...legendProps.secondary}\n className={testClasses[\"legend-secondary\"]}\n />\n ) : null\n }\n verticalAxisTitle={\n verticalAxisTitlePlacement === \"top\" ? <VerticalAxisTitle api={api} inverted={!!inverted} /> : null\n }\n header={header?.content ? <ChartHeader>{header.content}</ChartHeader> : null}\n footer={footer?.content ? <ChartFooter>{footer.content}</ChartFooter> : null}\n filter={\n filter?.seriesFilter || filter?.additionalFilters ? (\n <ChartFilters\n api={api}\n seriesFilter={filter?.seriesFilter}\n additionalFilters={filter?.additionalFilters}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n noData={context.noDataEnabled && <ChartNoData {...noDataOptions} i18nStrings={i18nStrings} api={api} />}\n />\n\n {context.tooltipEnabled && (\n <ChartTooltip\n {...tooltipOptions}\n i18nStrings={i18nStrings}\n getTooltipContent={rest.getTooltipContent}\n api={api}\n />\n )}\n </div>\n );\n}\n\nfunction xAxisClassName(inverted: boolean, customClassName?: string) {\n return clsx(\n testClasses[\"axis-x\"],\n inverted ? testClasses[\"axis-vertical\"] : testClasses[\"axis-horizontal\"],\n customClassName,\n );\n}\n\nfunction yAxisClassName(inverted: boolean, customClassName?: string) {\n return clsx(\n testClasses[\"axis-y\"],\n inverted ? testClasses[\"axis-horizontal\"] : testClasses[\"axis-vertical\"],\n customClassName,\n );\n}\n\n// When placing vertical axis title in the chart's top, the actual axis title rendered by Highcharts\n// needs to be visually hidden (it is still accessible by screen-readers). We then set title's\n// opacity to 0, and use reserveSpace=false, so that Highcharts stretches the plot area to all available\n// container width.\nfunction axisTitle<O extends Highcharts.XAxisTitleOptions | Highcharts.YAxisTitleOptions>(\n options: O,\n visible: boolean,\n): O {\n return {\n style: { ...Styles.axisTitleCss, opacity: visible ? undefined : 0 },\n reserveSpace: visible ? undefined : false,\n ...options,\n };\n}\n\n// We use custom formatters instead of Highcharts defaults to ensure consistent formatting\n// between axis ticks and tooltip contents.\nfunction axisLabels<O extends Highcharts.XAxisLabelsOptions | Highcharts.YAxisLabelsOptions>(options: O): O {\n return {\n style: Styles.axisLabelsCss,\n formatter: function () {\n const formattedValue = getFormatter(this.axis)(this.value);\n return formattedValue.replace(/\\n/g, \"<br />\");\n },\n ...options,\n };\n}\n\nfunction yAxisPlotLines(\n plotLineOptions: Highcharts.YAxisPlotLinesOptions[] = [],\n emphasizeBaseline: boolean,\n): Highcharts.YAxisPlotLinesOptions[] {\n return emphasizeBaseline\n ? [{ value: 0, ...Styles.chatPlotBaseline, className: testClasses[\"emphasized-baseline\"] }, ...plotLineOptions]\n : plotLineOptions;\n}\n"]}
1
+ {"version":3,"file":"chart-core.js","sourceRoot":"","sources":["../../../src/core/chart-core.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useRef } from \"react\";\nimport clsx from \"clsx\";\nimport type Highcharts from \"highcharts\";\nimport HighchartsReact from \"highcharts-react-official\";\n\nimport { getIsRtl, useMergeRefs, useUniqueId } from \"@cloudscape-design/component-toolkit/internal\";\nimport { isDevelopment } from \"@cloudscape-design/component-toolkit/internal\";\nimport Spinner from \"@cloudscape-design/components/spinner\";\n\nimport { getDataAttributes } from \"../internal/base-component/get-data-attributes\";\nimport { InternalBaseComponentProps } from \"../internal/base-component/use-base-component\";\nimport * as Styles from \"../internal/chart-styles\";\nimport { castArray } from \"../internal/utils/utils\";\nimport { useChartAPI } from \"./chart-api\";\nimport { ChartContainer } from \"./chart-container\";\nimport { ChartApplication } from \"./components/core-application\";\nimport { ChartFilters } from \"./components/core-filters\";\nimport { ChartLegend } from \"./components/core-legend\";\nimport { ChartNoData } from \"./components/core-no-data\";\nimport { ChartFooter, ChartHeader } from \"./components/core-slots\";\nimport { ChartTooltip } from \"./components/core-tooltip\";\nimport { VerticalAxisTitle } from \"./components/core-vertical-axis-title\";\nimport { getFormatter } from \"./formatters\";\nimport { useChartI18n } from \"./i18n-utils\";\nimport { CoreChartProps } from \"./interfaces\";\nimport { getLegendsProps, getPointAccessibleDescription } from \"./utils\";\n\nimport styles from \"./styles.css.js\";\nimport testClasses from \"./test-classes/styles.css.js\";\n\n/**\n * CoreChart is the core internal abstraction that accepts the entire set of Highcharts options along\n * with Cloudscape props to define custom tooltip, no-data, formatters, items visibility, and more.\n */\nexport function InternalCoreChart({\n options,\n ariaLabel,\n ariaDescription,\n fitHeight,\n chartHeight,\n chartMinHeight,\n chartMinWidth,\n tooltip: tooltipOptions,\n noData: noDataOptions,\n navigator,\n legend: legendOptions,\n fallback = <Spinner />,\n callback,\n emphasizeBaseline = true,\n verticalAxisTitlePlacement = \"side\",\n i18nStrings,\n className,\n header,\n footer,\n filter,\n keyboardNavigation = true,\n onHighlight,\n onLegendItemHighlight,\n onClearHighlight,\n onVisibleItemsChange,\n visibleItems,\n __internalRootRef,\n ...rest\n}: CoreChartProps & InternalBaseComponentProps) {\n const highcharts = rest.highcharts as null | typeof Highcharts;\n const labels = useChartI18n({ ariaLabel, ariaDescription, i18nStrings });\n const context = {\n chartId: useUniqueId(),\n noDataEnabled: !!noDataOptions,\n legendEnabled: legendOptions?.enabled !== false,\n tooltipEnabled: tooltipOptions?.enabled !== false,\n keyboardNavigationEnabled: keyboardNavigation,\n labels,\n };\n const handlers = { onHighlight, onClearHighlight, onVisibleItemsChange };\n const state = { visibleItems };\n const api = useChartAPI(context, handlers, state);\n\n const rootClassName = clsx(testClasses.root, styles.root, fitHeight && styles[\"root-fit-height\"], className);\n const rootRef = useRef<HTMLDivElement>(null);\n const mergedRootRef = useMergeRefs(rootRef, __internalRootRef);\n const rootProps = { ref: mergedRootRef, className: rootClassName, ...getDataAttributes(rest) };\n const legendPosition = legendOptions?.position ?? \"bottom\";\n const commonLegendProps = {\n api: api,\n i18nStrings,\n onItemHighlight: onLegendItemHighlight,\n getLegendTooltipContent: rest.getLegendTooltipContent,\n };\n const containerProps = {\n fitHeight,\n chartHeight,\n chartMinHeight,\n chartMinWidth,\n legendPosition,\n verticalAxisTitlePlacement,\n legendBottomMaxHeight: legendOptions?.bottomMaxHeight,\n };\n\n // Render fallback using the same root and container props as for the chart to ensure consistent\n // size, test classes, and data-attributes assignment.\n if (!highcharts) {\n return (\n <div {...rootProps}>\n <ChartContainer\n {...containerProps}\n chart={(minHeight) => (\n <div className={testClasses.fallback} style={{ minHeight }}>\n {fallback}\n </div>\n )}\n />\n </div>\n );\n }\n\n const apiOptions = api.getOptions();\n const inverted = !!options.chart?.inverted;\n const isRtl = getIsRtl(rootRef?.current);\n\n // The Highcharts options takes all provided Highcharts options and custom properties and merges them together, so that\n // the Cloudscape features and custom Highcharts extensions co-exist.\n // For certain options we provide Cloudscape styling, but in all cases this can be explicitly overridden.\n options = {\n ...options,\n // Hide credits by default.\n credits: options.credits ?? { enabled: false },\n // Hide chart title by default.\n title: options.title ?? { text: \"\" },\n // Use Cloudscape color palette by default.\n // This cannot be reset to Highcharts' default from the outside, but it is possible to provide custom palette.\n colors: options.colors ?? Styles.colors,\n chart: {\n // Animations are disabled by default.\n // This is done for UX and a11y reasons as Highcharts animations do not match our animation timings, and do\n // not respect disabled motion settings. These issues can likely be resolved or we can provide custom animations\n // instead, but this is not a priority.\n animation: false,\n ...Styles.chart,\n ...options.chart,\n className: clsx(testClasses[\"chart-plot\"], options.chart?.className),\n // The debug errors are enabled by default in development mode, but this only works\n // if the Highcharts debugger module is loaded.\n displayErrors: options.chart?.displayErrors ?? isDevelopment,\n style: { ...Styles.chartPlotCss, ...options.chart?.style },\n },\n series: options.series,\n // Highcharts legend is disabled by default in favour of the custom Cloudscape legend.\n legend: options.legend ?? { enabled: false },\n lang: {\n ...options.lang,\n accessibility: {\n // The default chart title is disabled by default to prevent the default \"Chart\" in the screen-reader detail.\n defaultChartTitle: \"\",\n chartContainerLabel: labels.chartLabel,\n svgContainerLabel: labels.chartContainerLabel,\n // We used {names[0]} to inject the axis title, see: https://api.highcharts.com/highcharts/lang.accessibility.axis.xAxisDescriptionSingular.\n axis: {\n xAxisDescriptionSingular: labels.chartXAxisLabel ? `${labels.chartXAxisLabel}, {names[0]}` : undefined,\n yAxisDescriptionSingular: labels.chartYAxisLabel ? `${labels.chartYAxisLabel}, {names[0]}` : undefined,\n },\n ...options.lang?.accessibility,\n },\n },\n accessibility: {\n description: labels.chartDescription,\n screenReaderSection: {\n // We use custom before-message to remove detail that are currently not supported with our i18n.\n // See: https://api.highcharts.com/highcharts/accessibility.screenReaderSection.beforeChartFormat.\n beforeChartFormat: \"<div>{xAxisDescription}</div><div>{yAxisDescription}</div>\",\n // We hide after message as it is currently not supported with our i18n.\n afterChartFormat: \"\",\n },\n ...options.accessibility,\n // Highcharts keyboard navigation is disabled by default in favour of the custom Cloudscape navigation.\n keyboardNavigation: options.accessibility?.keyboardNavigation ?? { enabled: !keyboardNavigation },\n point: {\n // Point description formatter is overridden to respect custom axes value formatters.\n descriptionFormatter: (point) => getPointAccessibleDescription(point, labels),\n ...options.accessibility?.point,\n },\n },\n // We use the rtl adjusted axes (instead of the original options.xAxis/yAxis) to ensure the chart renders\n // with the correct axis orientation for RTL layouts, matching what was used for legend positioning above.\n xAxis: castArray(options.xAxis)?.map((xAxisOptions) => ({\n ...Styles.xAxisOptions,\n ...xAxisOptions,\n // Depending on the chart.inverted the x-axis can be rendered as vertical, and needs to respect page direction.\n reversed: !inverted && isRtl ? !xAxisOptions.reversed : xAxisOptions.reversed,\n opposite: inverted && isRtl ? !xAxisOptions.opposite : xAxisOptions.opposite,\n className: xAxisClassName(inverted, xAxisOptions.className),\n title: axisTitle(xAxisOptions.title ?? {}, !inverted || verticalAxisTitlePlacement === \"side\"),\n labels: axisLabels(xAxisOptions.labels ?? {}),\n })),\n yAxis: castArray(options.yAxis)?.map((yAxisOptions) => ({\n ...Styles.yAxisOptions,\n ...yAxisOptions,\n // Depending on the chart.inverted the y-axis can be rendered as vertical, and needs to respect page direction.\n reversed: inverted && isRtl ? !yAxisOptions.reversed : yAxisOptions.reversed,\n opposite: !inverted && isRtl ? !yAxisOptions.opposite : yAxisOptions.opposite,\n className: yAxisClassName(inverted, yAxisOptions.className),\n title: axisTitle(yAxisOptions.title ?? {}, inverted || verticalAxisTitlePlacement === \"side\"),\n labels: axisLabels(yAxisOptions.labels ?? {}),\n plotLines: yAxisPlotLines(yAxisOptions.plotLines, emphasizeBaseline),\n // We use reversed stack by default so that the order of points in the tooltip and series in the legend\n // correspond the order of stacks.\n reversedStacks: yAxisOptions.reversedStacks ?? true,\n })),\n plotOptions: {\n ...options.plotOptions,\n series: {\n // Animations are disabled by default, same as in the options.chart.\n animation: false,\n // Sticky tracking is disabled by default due to sub-optimal UX in dense charts.\n stickyTracking: false,\n borderColor: Styles.seriesBorderColor,\n ...options.plotOptions?.series,\n dataLabels: { style: Styles.seriesDataLabelsCss, ...options.plotOptions?.series?.dataLabels },\n states: {\n ...options.plotOptions?.series?.states,\n inactive: { opacity: Styles.seriesOpacityInactive, ...options.plotOptions?.series?.states?.inactive },\n },\n },\n area: { ...Styles.areaSeries, ...options.plotOptions?.area },\n areaspline: { ...Styles.areaSeries, ...options.plotOptions?.areaspline },\n arearange: { ...Styles.areaSeries, ...options.plotOptions?.arearange },\n areasplinerange: { ...Styles.areaSeries, ...options.plotOptions?.areasplinerange },\n line: { ...Styles.lineSeries, ...options.plotOptions?.line },\n spline: { ...Styles.lineSeries, ...options.plotOptions?.spline },\n column: { ...Styles.columnSeries, ...options.plotOptions?.column },\n errorbar: { ...Styles.errorbarSeries, ...options.plotOptions?.errorbar },\n // Pie chart is shown in legend by default, that is required for standalone pie charts.\n pie: {\n showInLegend: true,\n ...Styles.pieSeries,\n ...options.plotOptions?.pie,\n dataLabels: { ...Styles.pieSeriesDataLabels, ...options.plotOptions?.pie?.dataLabels },\n },\n },\n // We don't use Highcharts tooltip, but certain tooltip options such as tooltip.snap or tooltip.shared\n // affect the hovering behavior of Highcharts. That is only the case when the tooltip is not disabled,\n // so we render it, but hide with styles.\n tooltip: options.tooltip ?? { enabled: true, snap: Styles.tooltipSnap, style: { opacity: 0 } },\n };\n\n const legendProps = getLegendsProps(options, legendOptions);\n\n return (\n <div {...rootProps}>\n <ChartContainer\n {...containerProps}\n chart={(height) => {\n // We declare event handlers here to ensure that no event fires until the chart is initialized.\n const highchartsOptions: Highcharts.Options = {\n ...options,\n chart: {\n ...options.chart,\n // Use height computed from chartHeight, chartMinHeight, and fitHeight settings by default.\n // It is possible to override it by explicitly providing chart.height, but this will not be\n // compatible with any of the above settings.\n height: options.chart?.height ?? height,\n // We override certain chart events to inject additional behaviors, but it is still possible to define\n // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API. For instance,\n // if no-data props are not provided - the related on-render computations will be skipped.\n events: {\n ...options.chart?.events,\n load(event) {\n apiOptions.onChartLoad.call(this, event);\n return options.chart?.events?.load?.call(this, event);\n },\n render(event) {\n apiOptions.onChartRender.call(this, event);\n return options.chart?.events?.render?.call(this, event);\n },\n click(event) {\n apiOptions.onChartClick.call(this, event);\n return options.chart?.events?.click?.call(this, event);\n },\n },\n },\n plotOptions: {\n ...options.plotOptions,\n series: {\n ...options.plotOptions?.series,\n // We override certain point events to inject additional behaviors, but it is still possible to define\n // custom callbacks. The Cloudscape behaviors can be disabled or altered via components API.\n point: {\n ...options.plotOptions?.series?.point,\n events: {\n ...options.plotOptions?.series?.point?.events,\n mouseOver(event) {\n apiOptions.onSeriesPointMouseOver.call(this, event);\n return options.plotOptions?.series?.point?.events?.mouseOver?.call(this, event);\n },\n mouseOut(event) {\n apiOptions.onSeriesPointMouseOut.call(this, event);\n return options.plotOptions?.series?.point?.events?.mouseOut?.call(this, event);\n },\n click(event) {\n apiOptions.onSeriesPointClick.call(this, event);\n return options.plotOptions?.series?.point?.events?.click?.call(this, event);\n },\n },\n },\n },\n },\n };\n return (\n <>\n <ChartApplication api={api} keyboardNavigation={keyboardNavigation} ariaLabel={ariaLabel} />\n <HighchartsReact\n highcharts={highcharts}\n options={highchartsOptions}\n callback={(chart: Highcharts.Chart) =>\n callback?.({ chart, highcharts: highcharts as typeof Highcharts, ...api.publicApi })\n }\n />\n </>\n );\n }}\n navigator={navigator}\n primaryLegend={\n context.legendEnabled && legendProps.primary ? (\n <ChartLegend {...commonLegendProps} {...legendProps.primary} className={testClasses[\"legend-primary\"]} />\n ) : null\n }\n secondaryLegend={\n context.legendEnabled && legendProps.secondary ? (\n <ChartLegend\n {...commonLegendProps}\n {...legendProps.secondary}\n className={testClasses[\"legend-secondary\"]}\n />\n ) : null\n }\n verticalAxisTitle={\n verticalAxisTitlePlacement === \"top\" ? <VerticalAxisTitle api={api} inverted={!!inverted} /> : null\n }\n header={header?.content ? <ChartHeader>{header.content}</ChartHeader> : null}\n footer={footer?.content ? <ChartFooter>{footer.content}</ChartFooter> : null}\n filter={\n filter?.seriesFilter || filter?.additionalFilters ? (\n <ChartFilters\n api={api}\n seriesFilter={filter?.seriesFilter}\n additionalFilters={filter?.additionalFilters}\n i18nStrings={i18nStrings}\n />\n ) : null\n }\n noData={context.noDataEnabled && <ChartNoData {...noDataOptions} i18nStrings={i18nStrings} api={api} />}\n />\n\n {context.tooltipEnabled && (\n <ChartTooltip\n {...tooltipOptions}\n i18nStrings={i18nStrings}\n getTooltipContent={rest.getTooltipContent}\n api={api}\n />\n )}\n </div>\n );\n}\n\nfunction xAxisClassName(inverted: boolean, customClassName?: string) {\n return clsx(\n testClasses[\"axis-x\"],\n inverted ? testClasses[\"axis-vertical\"] : testClasses[\"axis-horizontal\"],\n customClassName,\n );\n}\n\nfunction yAxisClassName(inverted: boolean, customClassName?: string) {\n return clsx(\n testClasses[\"axis-y\"],\n inverted ? testClasses[\"axis-horizontal\"] : testClasses[\"axis-vertical\"],\n customClassName,\n );\n}\n\n// When placing vertical axis title in the chart's top, the actual axis title rendered by Highcharts\n// needs to be visually hidden (it is still accessible by screen-readers). We then set title's\n// opacity to 0, and use reserveSpace=false, so that Highcharts stretches the plot area to all available\n// container width.\nfunction axisTitle<O extends Highcharts.XAxisTitleOptions | Highcharts.YAxisTitleOptions>(\n options: O,\n visible: boolean,\n): O {\n return {\n style: { ...Styles.axisTitleCss, opacity: visible ? undefined : 0 },\n reserveSpace: visible ? undefined : false,\n ...options,\n };\n}\n\n// We use custom formatters instead of Highcharts defaults to ensure consistent formatting\n// between axis ticks and tooltip contents.\nfunction axisLabels<O extends Highcharts.XAxisLabelsOptions | Highcharts.YAxisLabelsOptions>(options: O): O {\n return {\n style: Styles.axisLabelsCss,\n formatter: function () {\n const formattedValue = getFormatter(this.axis)(this.value);\n return formattedValue.replace(/\\n/g, \"<br />\");\n },\n ...options,\n };\n}\n\nfunction yAxisPlotLines(\n plotLineOptions: Highcharts.YAxisPlotLinesOptions[] = [],\n emphasizeBaseline: boolean,\n): Highcharts.YAxisPlotLinesOptions[] {\n return emphasizeBaseline\n ? [{ value: 0, ...Styles.chatPlotBaseline, className: testClasses[\"emphasized-baseline\"] }, ...plotLineOptions]\n : plotLineOptions;\n}\n"]}
@@ -1,26 +1,26 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_113qp_1ga0p_5",
5
- "highcharts-grid-line": "awsui_highcharts-grid-line_113qp_1ga0p_8",
6
- "root-fit-height": "awsui_root-fit-height_113qp_1ga0p_12",
7
- "no-data-container": "awsui_no-data-container_113qp_1ga0p_16",
8
- "no-data": "awsui_no-data_113qp_1ga0p_16",
9
- "no-data-wrapper": "awsui_no-data-wrapper_113qp_1ga0p_34",
10
- "no-data-empty": "awsui_no-data-empty_113qp_1ga0p_42",
11
- "chart-filters": "awsui_chart-filters_113qp_1ga0p_46",
12
- "chart-filters-series": "awsui_chart-filters-series_113qp_1ga0p_52",
13
- "axis-vertical-title": "awsui_axis-vertical-title_113qp_1ga0p_56",
14
- "axis-vertical-title-item": "awsui_axis-vertical-title-item_113qp_1ga0p_64",
15
- "error-range": "awsui_error-range_113qp_1ga0p_71",
16
- "tooltip-default-header": "awsui_tooltip-default-header_113qp_1ga0p_77",
17
- "chart-container-root": "awsui_chart-container-root_113qp_1ga0p_83",
18
- "chart-container-fit-height": "awsui_chart-container-fit-height_113qp_1ga0p_87",
19
- "chart-container-min-width": "awsui_chart-container-min-width_113qp_1ga0p_93",
20
- "chart-plot-and-legend-wrapper": "awsui_chart-plot-and-legend-wrapper_113qp_1ga0p_97",
21
- "chart-plot-wrapper": "awsui_chart-plot-wrapper_113qp_1ga0p_101",
22
- "bottom-legend-container": "awsui_bottom-legend-container_113qp_1ga0p_106",
23
- "side-legend-container": "awsui_side-legend-container_113qp_1ga0p_113",
24
- "application": "awsui_application_113qp_1ga0p_123"
4
+ "root": "awsui_root_113qp_13mj8_5",
5
+ "highcharts-grid-line": "awsui_highcharts-grid-line_113qp_13mj8_8",
6
+ "root-fit-height": "awsui_root-fit-height_113qp_13mj8_12",
7
+ "no-data-container": "awsui_no-data-container_113qp_13mj8_16",
8
+ "no-data": "awsui_no-data_113qp_13mj8_16",
9
+ "no-data-wrapper": "awsui_no-data-wrapper_113qp_13mj8_34",
10
+ "no-data-empty": "awsui_no-data-empty_113qp_13mj8_42",
11
+ "chart-filters": "awsui_chart-filters_113qp_13mj8_46",
12
+ "chart-filters-series": "awsui_chart-filters-series_113qp_13mj8_52",
13
+ "axis-vertical-title": "awsui_axis-vertical-title_113qp_13mj8_56",
14
+ "axis-vertical-title-item": "awsui_axis-vertical-title-item_113qp_13mj8_64",
15
+ "error-range": "awsui_error-range_113qp_13mj8_71",
16
+ "tooltip-default-header": "awsui_tooltip-default-header_113qp_13mj8_77",
17
+ "chart-container-root": "awsui_chart-container-root_113qp_13mj8_83",
18
+ "chart-container-fit-height": "awsui_chart-container-fit-height_113qp_13mj8_87",
19
+ "chart-container-min-width": "awsui_chart-container-min-width_113qp_13mj8_93",
20
+ "chart-plot-and-legend-wrapper": "awsui_chart-plot-and-legend-wrapper_113qp_13mj8_97",
21
+ "chart-plot-wrapper": "awsui_chart-plot-wrapper_113qp_13mj8_101",
22
+ "bottom-legend-container": "awsui_bottom-legend-container_113qp_13mj8_106",
23
+ "side-legend-container": "awsui_side-legend-container_113qp_13mj8_113",
24
+ "application": "awsui_application_113qp_13mj8_122"
25
25
  };
26
26
 
@@ -2,18 +2,18 @@
2
2
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- .awsui_root_113qp_1ga0p_5:not(#\9) {
5
+ .awsui_root_113qp_13mj8_5:not(#\9) {
6
6
  position: relative;
7
7
  }
8
- .awsui_root_113qp_1ga0p_5 .awsui_highcharts-grid-line_113qp_1ga0p_8:not(#\9) {
8
+ .awsui_root_113qp_13mj8_5 .awsui_highcharts-grid-line_113qp_13mj8_8:not(#\9) {
9
9
  pointer-events: none;
10
10
  }
11
11
 
12
- .awsui_root-fit-height_113qp_1ga0p_12:not(#\9) {
12
+ .awsui_root-fit-height_113qp_13mj8_12:not(#\9) {
13
13
  block-size: 100%;
14
14
  }
15
15
 
16
- .awsui_no-data-container_113qp_1ga0p_16:not(#\9) {
16
+ .awsui_no-data-container_113qp_13mj8_16:not(#\9) {
17
17
  position: absolute;
18
18
  inset: 0;
19
19
  display: flex;
@@ -21,7 +21,7 @@
21
21
  justify-content: center;
22
22
  }
23
23
 
24
- .awsui_no-data_113qp_1ga0p_16:not(#\9) {
24
+ .awsui_no-data_113qp_13mj8_16:not(#\9) {
25
25
  overflow-x: auto;
26
26
  overflow-y: hidden;
27
27
  padding-block: var(--space-static-xs-gnm0mz, 8px);
@@ -31,7 +31,7 @@
31
31
  border: 1px solid var(--color-border-divider-default-nr68jt, #c6c6cd);
32
32
  }
33
33
 
34
- .awsui_no-data-wrapper_113qp_1ga0p_34:not(#\9) {
34
+ .awsui_no-data-wrapper_113qp_13mj8_34:not(#\9) {
35
35
  overflow: hidden;
36
36
  padding-block: var(--space-static-xxs-ns94dp, 4px);
37
37
  padding-inline: var(--space-static-xxs-ns94dp, 4px);
@@ -39,21 +39,21 @@
39
39
  background-color: var(--color-background-container-content-6u8rvp, #ffffff);
40
40
  }
41
41
 
42
- .awsui_no-data-empty_113qp_1ga0p_42:not(#\9) {
42
+ .awsui_no-data-empty_113qp_13mj8_42:not(#\9) {
43
43
  color: var(--color-text-empty-tlohug, #656871);
44
44
  }
45
45
 
46
- .awsui_chart-filters_113qp_1ga0p_46:not(#\9) {
46
+ .awsui_chart-filters_113qp_13mj8_46:not(#\9) {
47
47
  padding-block-end: var(--space-scaled-l-sej05l, 20px);
48
48
  display: flex;
49
49
  flex-wrap: wrap;
50
50
  gap: var(--space-scaled-l-sej05l, 20px);
51
51
  }
52
- .awsui_chart-filters-series_113qp_1ga0p_52:not(#\9) {
52
+ .awsui_chart-filters-series_113qp_13mj8_52:not(#\9) {
53
53
  flex: 280px 0 1;
54
54
  }
55
55
 
56
- .awsui_axis-vertical-title_113qp_1ga0p_56:not(#\9) {
56
+ .awsui_axis-vertical-title_113qp_13mj8_56:not(#\9) {
57
57
  display: flex;
58
58
  gap: var(--space-static-xs-gnm0mz, 8px);
59
59
  justify-content: space-between;
@@ -61,65 +61,64 @@
61
61
  margin-bottom: 4px;
62
62
  }
63
63
 
64
- .awsui_axis-vertical-title-item_113qp_1ga0p_64:not(#\9) {
64
+ .awsui_axis-vertical-title-item_113qp_13mj8_64:not(#\9) {
65
65
  font-weight: bold;
66
66
  overflow: hidden;
67
67
  white-space: nowrap;
68
68
  text-overflow: ellipsis;
69
69
  }
70
70
 
71
- .awsui_error-range_113qp_1ga0p_71:not(#\9) {
71
+ .awsui_error-range_113qp_13mj8_71:not(#\9) {
72
72
  display: flex;
73
73
  justify-content: space-between;
74
74
  gap: var(--space-scaled-s-8ozaad, 12px);
75
75
  }
76
76
 
77
- .awsui_tooltip-default-header_113qp_1ga0p_77:not(#\9) {
77
+ .awsui_tooltip-default-header_113qp_13mj8_77:not(#\9) {
78
78
  display: inline-flex;
79
79
  align-items: center;
80
80
  gap: var(--space-static-xxs-ns94dp, 4px);
81
81
  }
82
82
 
83
- .awsui_chart-container-root_113qp_1ga0p_83:not(#\9) {
83
+ .awsui_chart-container-root_113qp_13mj8_83:not(#\9) {
84
84
  block-size: 100%;
85
85
  }
86
86
 
87
- .awsui_chart-container-fit-height_113qp_1ga0p_87:not(#\9) {
87
+ .awsui_chart-container-fit-height_113qp_13mj8_87:not(#\9) {
88
88
  overflow-x: auto;
89
89
  position: absolute;
90
90
  inset: 0;
91
91
  }
92
92
 
93
- .awsui_chart-container-min-width_113qp_1ga0p_93:not(#\9) {
93
+ .awsui_chart-container-min-width_113qp_13mj8_93:not(#\9) {
94
94
  overflow-x: auto;
95
95
  }
96
96
 
97
- .awsui_chart-plot-and-legend-wrapper_113qp_1ga0p_97:not(#\9) {
97
+ .awsui_chart-plot-and-legend-wrapper_113qp_13mj8_97:not(#\9) {
98
98
  display: flex;
99
99
  }
100
100
 
101
- .awsui_chart-plot-wrapper_113qp_1ga0p_101:not(#\9) {
101
+ .awsui_chart-plot-wrapper_113qp_13mj8_101:not(#\9) {
102
102
  position: relative;
103
103
  flex: 1;
104
104
  }
105
105
 
106
- .awsui_bottom-legend-container_113qp_1ga0p_106:not(#\9) {
106
+ .awsui_bottom-legend-container_113qp_13mj8_106:not(#\9) {
107
107
  display: flex;
108
108
  overflow: auto;
109
109
  gap: var(--space-scaled-xxl-6wgq96, 32px);
110
110
  justify-content: space-between;
111
111
  }
112
112
 
113
- .awsui_side-legend-container_113qp_1ga0p_113:not(#\9) {
113
+ .awsui_side-legend-container_113qp_13mj8_113:not(#\9) {
114
114
  flex: 0;
115
115
  display: flex;
116
116
  flex-direction: column;
117
117
  gap: var(--space-scaled-s-8ozaad, 12px);
118
118
  margin-inline-start: var(--space-scaled-s-8ozaad, 12px);
119
119
  max-inline-size: 30%;
120
- min-inline-size: max(20%, 150px);
121
120
  }
122
121
 
123
- .awsui_application_113qp_1ga0p_123:not(#\9) {
122
+ .awsui_application_113qp_13mj8_122:not(#\9) {
124
123
  outline: none;
125
124
  }
@@ -2,26 +2,26 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_113qp_1ga0p_5",
6
- "highcharts-grid-line": "awsui_highcharts-grid-line_113qp_1ga0p_8",
7
- "root-fit-height": "awsui_root-fit-height_113qp_1ga0p_12",
8
- "no-data-container": "awsui_no-data-container_113qp_1ga0p_16",
9
- "no-data": "awsui_no-data_113qp_1ga0p_16",
10
- "no-data-wrapper": "awsui_no-data-wrapper_113qp_1ga0p_34",
11
- "no-data-empty": "awsui_no-data-empty_113qp_1ga0p_42",
12
- "chart-filters": "awsui_chart-filters_113qp_1ga0p_46",
13
- "chart-filters-series": "awsui_chart-filters-series_113qp_1ga0p_52",
14
- "axis-vertical-title": "awsui_axis-vertical-title_113qp_1ga0p_56",
15
- "axis-vertical-title-item": "awsui_axis-vertical-title-item_113qp_1ga0p_64",
16
- "error-range": "awsui_error-range_113qp_1ga0p_71",
17
- "tooltip-default-header": "awsui_tooltip-default-header_113qp_1ga0p_77",
18
- "chart-container-root": "awsui_chart-container-root_113qp_1ga0p_83",
19
- "chart-container-fit-height": "awsui_chart-container-fit-height_113qp_1ga0p_87",
20
- "chart-container-min-width": "awsui_chart-container-min-width_113qp_1ga0p_93",
21
- "chart-plot-and-legend-wrapper": "awsui_chart-plot-and-legend-wrapper_113qp_1ga0p_97",
22
- "chart-plot-wrapper": "awsui_chart-plot-wrapper_113qp_1ga0p_101",
23
- "bottom-legend-container": "awsui_bottom-legend-container_113qp_1ga0p_106",
24
- "side-legend-container": "awsui_side-legend-container_113qp_1ga0p_113",
25
- "application": "awsui_application_113qp_1ga0p_123"
5
+ "root": "awsui_root_113qp_13mj8_5",
6
+ "highcharts-grid-line": "awsui_highcharts-grid-line_113qp_13mj8_8",
7
+ "root-fit-height": "awsui_root-fit-height_113qp_13mj8_12",
8
+ "no-data-container": "awsui_no-data-container_113qp_13mj8_16",
9
+ "no-data": "awsui_no-data_113qp_13mj8_16",
10
+ "no-data-wrapper": "awsui_no-data-wrapper_113qp_13mj8_34",
11
+ "no-data-empty": "awsui_no-data-empty_113qp_13mj8_42",
12
+ "chart-filters": "awsui_chart-filters_113qp_13mj8_46",
13
+ "chart-filters-series": "awsui_chart-filters-series_113qp_13mj8_52",
14
+ "axis-vertical-title": "awsui_axis-vertical-title_113qp_13mj8_56",
15
+ "axis-vertical-title-item": "awsui_axis-vertical-title-item_113qp_13mj8_64",
16
+ "error-range": "awsui_error-range_113qp_13mj8_71",
17
+ "tooltip-default-header": "awsui_tooltip-default-header_113qp_13mj8_77",
18
+ "chart-container-root": "awsui_chart-container-root_113qp_13mj8_83",
19
+ "chart-container-fit-height": "awsui_chart-container-fit-height_113qp_13mj8_87",
20
+ "chart-container-min-width": "awsui_chart-container-min-width_113qp_13mj8_93",
21
+ "chart-plot-and-legend-wrapper": "awsui_chart-plot-and-legend-wrapper_113qp_13mj8_97",
22
+ "chart-plot-wrapper": "awsui_chart-plot-wrapper_113qp_13mj8_101",
23
+ "bottom-legend-container": "awsui_bottom-legend-container_113qp_13mj8_106",
24
+ "side-legend-container": "awsui_side-legend-container_113qp_13mj8_113",
25
+ "application": "awsui_application_113qp_13mj8_122"
26
26
  };
27
27
 
@@ -1,5 +1,5 @@
1
1
  export var PACKAGE_SOURCE = "chart-components";
2
- export var PACKAGE_VERSION = "1.0.0 (724e5a0b)";
2
+ export var PACKAGE_VERSION = "1.0.0 (af2dcf81)";
3
3
  export var THEME = "open-source-visual-refresh";
4
4
  export var ALWAYS_VISUAL_REFRESH = true;
5
5
  export var SYSTEM = "core";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "chart-components",
3
- "PACKAGE_VERSION": "1.0.0 (724e5a0b)",
3
+ "PACKAGE_VERSION": "1.0.0 (af2dcf81)",
4
4
  "THEME": "open-source-visual-refresh",
5
5
  "ALWAYS_VISUAL_REFRESH": true,
6
6
  "SYSTEM": "core"
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "724e5a0b790e0d7a29cca0a930c4fedb5ab0c9aa"
2
+ "commit": "af2dcf811be5d6f85e1feb09bf28cf9185f20252"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudscape-design/chart-components",
3
- "version": "1.0.29",
3
+ "version": "1.0.31",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/cloudscape-design/chart-components.git"