From a3c357be15b0e2ba98e130738fc6d20b7a2651a3 Mon Sep 17 00:00:00 2001 From: dhrp-odoo Date: Mon, 25 Nov 2024 20:53:19 +0530 Subject: [PATCH] [IMP] charts: font size editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Users can now customize the font size of chart titles and axis titles from the chart design editor. closes odoo/o-spreadsheet#5249 Task: 4316051 Signed-off-by: Lucas Lefèvre (lul) --- .../axis_design/axis_design_editor.ts | 14 ++ .../axis_design/axis_design_editor.xml | 1 + .../general_design/general_design_editor.ts | 12 ++ .../general_design/general_design_editor.xml | 1 + .../chart/building_blocks/title/title.ts | 11 +- .../chart/building_blocks/title/title.xml | 6 + .../scorecard_chart_design_panel.ts | 5 + .../scorecard_chart_design_panel.xml | 3 +- src/constants.ts | 3 + .../figures/charts/gauge_chart_rendering.ts | 4 +- .../figures/charts/runtime/chartjs_scales.ts | 3 + .../figures/charts/runtime/chartjs_title.ts | 2 +- .../charts/scorecard_chart_config_builder.ts | 4 +- src/types/chart/chart.ts | 1 + src/xlsx/functions/charts.ts | 10 +- tests/figures/chart/charts_component.test.ts | 35 ++++ .../__snapshots__/title.test.ts.snap | 29 +++ .../side_panels/building_blocks/title.test.ts | 37 +++- .../__snapshots__/xlsx_export.test.ts.snap | 168 +++++++++--------- 19 files changed, 246 insertions(+), 103 deletions(-) diff --git a/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.ts b/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.ts index acab23926b..5f6bd71440 100644 --- a/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.ts +++ b/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.ts @@ -1,4 +1,5 @@ import { Component, useState } from "@odoo/owl"; +import { CHART_AXIS_TITLE_FONT_SIZE } from "../../../../../constants"; import { ChartWithDataSetDefinition, Color, @@ -39,6 +40,7 @@ export class AxisDesignEditor extends Component { return { color: "", align: "center", + fontSize: CHART_AXIS_TITLE_FONT_SIZE, ...axisDesign.title, }; } @@ -59,6 +61,18 @@ export class AxisDesignEditor extends Component { this.props.updateChart(this.props.figureId, { axesDesign }); } + updateAxisTitleFontSize(fontSize: number) { + const axesDesign = this.props.definition.axesDesign ?? {}; + axesDesign[this.state.currentAxis] = { + ...axesDesign[this.state.currentAxis], + title: { + ...(axesDesign[this.state.currentAxis]?.title ?? {}), + fontSize, + }, + }; + this.props.updateChart(this.props.figureId, { axesDesign }); + } + toggleBoldAxisTitle() { const axesDesign = this.props.definition.axesDesign ?? {}; const title = axesDesign[this.state.currentAxis]?.title ?? {}; diff --git a/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.xml b/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.xml index b86d4454f7..472c121617 100644 --- a/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.xml +++ b/src/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.xml @@ -17,6 +17,7 @@ updateAlignment.bind="updateAxisTitleAlignment" updateColor.bind="updateAxisTitleColor" style="axisTitleStyle" + onFontSizeChanged.bind="updateAxisTitleFontSize" /> diff --git a/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.ts b/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.ts index 526e0ccee9..9ab705a240 100644 --- a/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.ts +++ b/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.ts @@ -1,4 +1,5 @@ import { Component, useState } from "@odoo/owl"; +import { CHART_TITLE_FONT_SIZE } from "../../../../../constants"; import { ChartDefinition, Color, @@ -20,6 +21,7 @@ interface Props { figureId: UID; definition: ChartDefinition; updateChart: (figureId: UID, definition: Partial) => DispatchResult; + defaultChartTitleFontSize?: number; } export class GeneralDesignEditor extends Component { @@ -34,8 +36,12 @@ export class GeneralDesignEditor extends Component { figureId: String, definition: Object, updateChart: Function, + defaultChartTitleFontSize: { type: Number, optional: true }, slots: { type: Object, optional: true }, }; + static defaultProps = { + defaultChartTitleFontSize: CHART_TITLE_FONT_SIZE, + }; private state!: GeneralDesignEditorState; setup() { @@ -67,6 +73,7 @@ export class GeneralDesignEditor extends Component { get titleStyle(): TitleDesign { return { align: "left", + fontSize: this.props.defaultChartTitleFontSize, ...this.title, }; } @@ -77,6 +84,11 @@ export class GeneralDesignEditor extends Component { this.state.activeTool = ""; } + updateChartTitleFontSize(fontSize: number) { + const title = { ...this.title, fontSize }; + this.props.updateChart(this.props.figureId, { title }); + } + toggleBoldChartTitle() { let title = this.title; title = { ...title, bold: !title.bold }; diff --git a/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.xml b/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.xml index 749f9f97fe..0ba7ac1a63 100644 --- a/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.xml +++ b/src/components/side_panel/chart/building_blocks/general_design/general_design_editor.xml @@ -18,6 +18,7 @@ updateAlignment.bind="updateChartTitleAlignment" updateColor.bind="updateChartTitleColor" style="titleStyle" + onFontSizeChanged.bind="updateChartTitleFontSize" /> diff --git a/src/components/side_panel/chart/building_blocks/title/title.ts b/src/components/side_panel/chart/building_blocks/title/title.ts index b97ab8995f..a8fec935f2 100644 --- a/src/components/side_panel/chart/building_blocks/title/title.ts +++ b/src/components/side_panel/chart/building_blocks/title/title.ts @@ -2,6 +2,7 @@ import { Component, useExternalListener, useState } from "@odoo/owl"; import { GRAY_300 } from "../../../../../constants"; import { Color, SpreadsheetChildEnv, TitleDesign } from "../../../../../types"; import { ColorPickerWidget } from "../../../../color_picker/color_picker_widget"; +import { FontSizeEditor } from "../../../../font_size_editor/font_size_editor"; import { css } from "../../../../helpers"; import { Section } from "../../../components/section/section"; @@ -47,6 +48,7 @@ interface Props { updateAlignment?: (string) => void; updateColor?: (Color) => void; style: TitleDesign; + onFontSizeChanged: (fontSize: number) => void; } export interface ChartTitleState { @@ -55,7 +57,7 @@ export interface ChartTitleState { export class ChartTitle extends Component { static template = "o-spreadsheet.ChartTitle"; - static components = { Section, ColorPickerWidget }; + static components = { Section, ColorPickerWidget, FontSizeEditor }; static props = { title: { type: String, optional: true }, updateTitle: Function, @@ -64,7 +66,8 @@ export class ChartTitle extends Component { toggleBold: { type: Function, optional: true }, updateAlignment: { type: Function, optional: true }, updateColor: { type: Function, optional: true }, - style: { type: Object, optional: true }, + style: Object, + onFontSizeChanged: Function, }; static defaultProps = { title: "", @@ -83,6 +86,10 @@ export class ChartTitle extends Component { this.props.updateTitle((ev.target as HTMLInputElement).value); } + updateFontSize(fontSize: number) { + this.props.onFontSizeChanged(fontSize); + } + toggleDropdownTool(tool: string, ev: MouseEvent) { const isOpen = this.state.activeTool === tool; this.closeMenus(); diff --git a/src/components/side_panel/chart/building_blocks/title/title.xml b/src/components/side_panel/chart/building_blocks/title/title.xml index 1ccaa989e5..9e6b8f6b24 100644 --- a/src/components/side_panel/chart/building_blocks/title/title.xml +++ b/src/components/side_panel/chart/building_blocks/title/title.xml @@ -79,6 +79,12 @@
+ +
+ updateChart="props.updateChart" + defaultChartTitleFontSize="defaultScorecardTitleFontSize">
- ${insertText(chart.data.title.text, titleColor, CHART_TITLE_FONT_SIZE, chart.data.title)} + ${insertText(chart.data.title.text, titleColor, fontSize, chart.data.title)} `; @@ -158,7 +159,7 @@ function lineAttributes(params: LineAttributes): XMLString { function insertText( text: string, fontColor: XlsxHexColor = "000000", - fontsize: number, + fontsize: number = CHART_TITLE_FONT_SIZE, style: { bold?: boolean; italic?: boolean } = {} ): XMLString { return escapeXml/*xml*/ ` @@ -794,6 +795,7 @@ function addAx( // Each Axis present inside a graph needs to be identified by an unsigned integer in order to be referenced by its crossAxis. // I.e. x-axis, will reference y-axis and vice-versa. const color = title?.color ? toXlsxHexColor(title.color) : defaultFontColor; + const fontSize = title?.fontSize ?? CHART_AXIS_TITLE_FONT_SIZE; return escapeXml/*xml*/ ` <${axisName}> @@ -809,7 +811,7 @@ function addAx( - ${insertText(title?.text ?? "", color, 10, title)} + ${insertText(title?.text ?? "", color, fontSize, title)} ${insertTextProperties(10, defaultFontColor)} diff --git a/tests/figures/chart/charts_component.test.ts b/tests/figures/chart/charts_component.test.ts index d466443a93..fd569aadf8 100644 --- a/tests/figures/chart/charts_component.test.ts +++ b/tests/figures/chart/charts_component.test.ts @@ -388,6 +388,41 @@ describe("charts", () => { bold: true, italic: true, }); + + const fontSize = fixture.querySelector(".o-font-size-editor input") as HTMLInputElement; + await setInputValueAndTrigger(fontSize, "20", "onlyChange"); + expect(model.getters.getChartDefinition(chartId).title).toEqual({ + text: "title", + fontSize: 20, + bold: true, + italic: true, + }); + }); + + test("can edit chart axis title font size", async () => { + createChart( + model, + { + dataSets: [{ dataRange: "C1:C4" }], + labelRange: "A2:A4", + type: "line", + }, + chartId + ); + await mountChartSidePanel(); + await openChartDesignSidePanel(model, env, fixture, chartId); + + const fontSize = fixture.querySelectorAll(".o-font-size-editor input")[1] as HTMLInputElement; + await setInputValueAndTrigger(fontSize, "20", "onlyChange"); + + await click(fixture, ".o-badge-selection button[data-id=y]"); + await setInputValueAndTrigger(fontSize, "25", "onlyChange"); + + const definition = model.getters.getChartDefinition(chartId) as LineChartDefinition; + expect(definition.axesDesign).toEqual({ + x: { title: { fontSize: 20 } }, + y: { title: { fontSize: 25 } }, + }); }); test("can edit chart axis title color", async () => { diff --git a/tests/side_panels/building_blocks/__snapshots__/title.test.ts.snap b/tests/side_panels/building_blocks/__snapshots__/title.test.ts.snap index 50bea4e189..23e7dff83d 100644 --- a/tests/side_panels/building_blocks/__snapshots__/title.test.ts.snap +++ b/tests/side_panels/building_blocks/__snapshots__/title.test.ts.snap @@ -87,6 +87,35 @@ exports[`Chart title Can render a chart title component 1`] = ` +
+
+
+ + +
+ +
+
+
+ +
+
diff --git a/tests/side_panels/building_blocks/title.test.ts b/tests/side_panels/building_blocks/title.test.ts index 9f4ddcffad..d789b3af70 100644 --- a/tests/side_panels/building_blocks/title.test.ts +++ b/tests/side_panels/building_blocks/title.test.ts @@ -13,7 +13,8 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, + onFontSizeChanged: () => {}, }); expect(fixture).toMatchSnapshot(); }); @@ -21,7 +22,8 @@ describe("Chart title", () => { test("Can render a chart title component with default title prop if not provided", async () => { await mountChartTitle({ updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, + onFontSizeChanged: () => {}, }); const input = fixture.querySelector("input")!; @@ -33,7 +35,8 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle, - style: {}, + style: { fontSize: 22 }, + onFontSizeChanged: () => {}, }); const input = fixture.querySelector("input")!; expect(input.value).toBe("My title"); @@ -48,8 +51,9 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, updateColor, + onFontSizeChanged: () => {}, }); expect(updateColor).toHaveBeenCalledTimes(0); await click(fixture, ".o-color-picker-button"); @@ -64,8 +68,9 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, updateAlignment, + onFontSizeChanged: () => {}, }); expect(updateAlignment).toHaveBeenCalledTimes(0); await click(fixture, ".o-menu-item-button[title='Horizontal alignment']"); @@ -79,8 +84,9 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, toggleBold, + onFontSizeChanged: () => {}, }); expect(toggleBold).toHaveBeenCalledTimes(0); await click(fixture, ".o-menu-item-button[title='Bold']"); @@ -92,11 +98,28 @@ describe("Chart title", () => { await mountChartTitle({ title: "My title", updateTitle: () => {}, - style: {}, + style: { fontSize: 22 }, toggleItalic, + onFontSizeChanged: () => {}, }); expect(toggleItalic).toHaveBeenCalledTimes(0); await click(fixture, ".o-menu-item-button[title='Italic']"); expect(toggleItalic).toHaveBeenCalledTimes(1); }); + + test("OnFontSizeChanged is called when font size is changed", async () => { + const onFontSizeChanged = jest.fn(); + await mountChartTitle({ + title: "My title", + updateTitle: () => {}, + style: { fontSize: 14 }, + onFontSizeChanged, + }); + const fontSizeEditor = fixture.querySelector(".o-font-size-editor")!; + expect(fontSizeEditor).not.toBeNull(); + expect(onFontSizeChanged).toHaveBeenCalledTimes(0); + const input = fontSizeEditor.querySelector("input")!; + await setInputValueAndTrigger(input, "20"); + expect(onFontSizeChanged).toHaveBeenCalledWith(20); + }); }); diff --git a/tests/xlsx/__snapshots__/xlsx_export.test.ts.snap b/tests/xlsx/__snapshots__/xlsx_export.test.ts.snap index 6aded8dd3c..924364d40b 100644 --- a/tests/xlsx/__snapshots__/xlsx_export.test.ts.snap +++ b/tests/xlsx/__snapshots__/xlsx_export.test.ts.snap @@ -182,7 +182,7 @@ exports[`Test XLSX export Charts Chart legend is set to none position 1`] = ` - + @@ -244,7 +244,7 @@ exports[`Test XLSX export Charts Chart legend is set to none position 1`] = ` - + @@ -772,7 +772,7 @@ exports[`Test XLSX export Charts Export chart overflowing outside the sheet 1`] - + @@ -834,7 +834,7 @@ exports[`Test XLSX export Charts Export chart overflowing outside the sheet 1`] - + @@ -1362,7 +1362,7 @@ exports[`Test XLSX export Charts chart dataset without title 1`] = ` - + @@ -1424,7 +1424,7 @@ exports[`Test XLSX export Charts chart dataset without title 1`] = ` - + @@ -1967,7 +1967,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -2029,7 +2029,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -2483,7 +2483,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -2545,7 +2545,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -2877,7 +2877,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -2939,7 +2939,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -3183,7 +3183,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -3245,7 +3245,7 @@ exports[`Test XLSX export Charts chart font color is white with a dark backgroun - + @@ -4094,7 +4094,7 @@ exports[`Test XLSX export Charts charts in different sheets 1`] = ` - + @@ -4156,7 +4156,7 @@ exports[`Test XLSX export Charts charts in different sheets 1`] = ` - + @@ -4551,7 +4551,7 @@ exports[`Test XLSX export Charts charts in different sheets 1`] = ` - + @@ -4613,7 +4613,7 @@ exports[`Test XLSX export Charts charts in different sheets 1`] = ` - + @@ -5117,7 +5117,7 @@ exports[`Test XLSX export Charts multiple charts in the same sheet 1`] = ` - + @@ -5179,7 +5179,7 @@ exports[`Test XLSX export Charts multiple charts in the same sheet 1`] = ` - + @@ -5401,7 +5401,7 @@ exports[`Test XLSX export Charts multiple charts in the same sheet 1`] = ` - + @@ -5463,7 +5463,7 @@ exports[`Test XLSX export Charts multiple charts in the same sheet 1`] = ` - + @@ -6313,7 +6313,7 @@ exports[`Test XLSX export Charts simple bar chart with customized axis 1`] = ` - + Coucou @@ -6377,7 +6377,7 @@ exports[`Test XLSX export Charts simple bar chart with customized axis 1`] = ` - + Coucou 3 @@ -6881,7 +6881,7 @@ exports[`Test XLSX export Charts simple bar chart with customized dataset 1`] = - + @@ -6943,7 +6943,7 @@ exports[`Test XLSX export Charts simple bar chart with customized dataset 1`] = - + @@ -7447,7 +7447,7 @@ exports[`Test XLSX export Charts simple bar chart with customized title 1`] = ` - + @@ -7509,7 +7509,7 @@ exports[`Test XLSX export Charts simple bar chart with customized title 1`] = ` - + @@ -8013,7 +8013,7 @@ exports[`Test XLSX export Charts simple bar chart with dataset [ [Object] ] 1`] - + @@ -8075,7 +8075,7 @@ exports[`Test XLSX export Charts simple bar chart with dataset [ [Object] ] 1`] - + @@ -8617,7 +8617,7 @@ exports[`Test XLSX export Charts simple bar chart with dataset [ [Object], [Obje - + @@ -8679,7 +8679,7 @@ exports[`Test XLSX export Charts simple bar chart with dataset [ [Object], [Obje - + @@ -9182,7 +9182,7 @@ exports[`Test XLSX export Charts simple combo chart with customized axis 1`] = ` - + Coucou @@ -9246,7 +9246,7 @@ exports[`Test XLSX export Charts simple combo chart with customized axis 1`] = ` - + Coucou 3 @@ -9749,7 +9749,7 @@ exports[`Test XLSX export Charts simple combo chart with customized dataset 1`] - + @@ -9811,7 +9811,7 @@ exports[`Test XLSX export Charts simple combo chart with customized dataset 1`] - + @@ -10314,7 +10314,7 @@ exports[`Test XLSX export Charts simple combo chart with customized title 1`] = - + @@ -10376,7 +10376,7 @@ exports[`Test XLSX export Charts simple combo chart with customized title 1`] = - + @@ -10879,7 +10879,7 @@ exports[`Test XLSX export Charts simple combo chart with dataset [ [Object] ] 1` - + @@ -10941,7 +10941,7 @@ exports[`Test XLSX export Charts simple combo chart with dataset [ [Object] ] 1` - + @@ -11503,7 +11503,7 @@ exports[`Test XLSX export Charts simple combo chart with dataset [ [Object], [Ob - + @@ -11565,7 +11565,7 @@ exports[`Test XLSX export Charts simple combo chart with dataset [ [Object], [Ob - + @@ -12079,7 +12079,7 @@ exports[`Test XLSX export Charts simple line chart with customized axis 1`] = ` - + Coucou @@ -12143,7 +12143,7 @@ exports[`Test XLSX export Charts simple line chart with customized axis 1`] = ` - + Coucou 3 @@ -12657,7 +12657,7 @@ exports[`Test XLSX export Charts simple line chart with customized dataset 1`] = - + @@ -12719,7 +12719,7 @@ exports[`Test XLSX export Charts simple line chart with customized dataset 1`] = - + @@ -13233,7 +13233,7 @@ exports[`Test XLSX export Charts simple line chart with customized title 1`] = ` - + @@ -13295,7 +13295,7 @@ exports[`Test XLSX export Charts simple line chart with customized title 1`] = ` - + @@ -13809,7 +13809,7 @@ exports[`Test XLSX export Charts simple line chart with dataset [ [Object] ] 1`] - + @@ -13871,7 +13871,7 @@ exports[`Test XLSX export Charts simple line chart with dataset [ [Object] ] 1`] - + @@ -14436,7 +14436,7 @@ exports[`Test XLSX export Charts simple line chart with dataset [ [Object], [Obj - + @@ -14498,7 +14498,7 @@ exports[`Test XLSX export Charts simple line chart with dataset [ [Object], [Obj - + @@ -16047,7 +16047,7 @@ exports[`Test XLSX export Charts simple radar chart with customized axis 1`] = ` - + @@ -16109,7 +16109,7 @@ exports[`Test XLSX export Charts simple radar chart with customized axis 1`] = ` - + @@ -16620,7 +16620,7 @@ exports[`Test XLSX export Charts simple radar chart with customized dataset 1`] - + @@ -16682,7 +16682,7 @@ exports[`Test XLSX export Charts simple radar chart with customized dataset 1`] - + @@ -17195,7 +17195,7 @@ exports[`Test XLSX export Charts simple radar chart with customized title 1`] = - + @@ -17257,7 +17257,7 @@ exports[`Test XLSX export Charts simple radar chart with customized title 1`] = - + @@ -17770,7 +17770,7 @@ exports[`Test XLSX export Charts simple radar chart with dataset [ [Object] ] 1` - + @@ -17832,7 +17832,7 @@ exports[`Test XLSX export Charts simple radar chart with dataset [ [Object] ] 1` - + @@ -18396,7 +18396,7 @@ exports[`Test XLSX export Charts simple radar chart with dataset [ [Object], [Ob - + @@ -18458,7 +18458,7 @@ exports[`Test XLSX export Charts simple radar chart with dataset [ [Object], [Ob - + @@ -18972,7 +18972,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized axis 1`] = - + Coucou @@ -19036,7 +19036,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized axis 1`] = - + Coucou 3 @@ -19550,7 +19550,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized dataset 1` - + @@ -19612,7 +19612,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized dataset 1` - + @@ -20126,7 +20126,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized title 1`] - + @@ -20188,7 +20188,7 @@ exports[`Test XLSX export Charts simple scatter chart with customized title 1`] - + @@ -20702,7 +20702,7 @@ exports[`Test XLSX export Charts simple scatter chart with dataset [ [Object] ] - + @@ -20764,7 +20764,7 @@ exports[`Test XLSX export Charts simple scatter chart with dataset [ [Object] ] - + @@ -21329,7 +21329,7 @@ exports[`Test XLSX export Charts simple scatter chart with dataset [ [Object], [ - + @@ -21391,7 +21391,7 @@ exports[`Test XLSX export Charts simple scatter chart with dataset [ [Object], [ - + @@ -21933,7 +21933,7 @@ exports[`Test XLSX export Charts stacked bar chart 1`] = ` - + @@ -21995,7 +21995,7 @@ exports[`Test XLSX export Charts stacked bar chart 1`] = ` - + @@ -33130,7 +33130,7 @@ exports[`Test XLSX export multiple elements are exported in the correct order 1` - + @@ -33192,7 +33192,7 @@ exports[`Test XLSX export multiple elements are exported in the correct order 1` - + @@ -33679,7 +33679,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -33741,7 +33741,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -33963,7 +33963,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -34025,7 +34025,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -36000,7 +36000,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -36062,7 +36062,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -36306,7 +36306,7 @@ exports[`Test XLSX export references with headers should be converted to referen - + @@ -36368,7 +36368,7 @@ exports[`Test XLSX export references with headers should be converted to referen - +