@fluentui/react-charting 5.25.1 → 5.25.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.
- package/CHANGELOG.json +72 -1
- package/CHANGELOG.md +19 -2
- package/dist/react-charting.d.ts +48 -45
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +24 -11
- package/lib/AnnotationOnlyChart.d.ts +1 -0
- package/lib/AnnotationOnlyChart.js +2 -0
- package/lib/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.d.ts +3 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js +158 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.d.ts +33 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +2 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/index.d.ts +2 -0
- package/lib/components/AnnotationOnlyChart/index.js +3 -0
- package/lib/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib/components/AreaChart/AreaChart.base.js +2 -2
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.base.js +5 -3
- package/lib/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.d.ts +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +18 -14
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/index.d.ts +2 -0
- package/lib/components/CommonComponents/Annotations/index.js +3 -0
- package/lib/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.base.d.ts +6 -1
- package/lib/components/CommonComponents/CartesianChart.base.js +131 -157
- package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.d.ts +11 -2
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +85 -51
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +12 -4
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +2 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +157 -45
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.base.js +5 -3
- package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.base.js +15 -18
- package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.base.js +6 -6
- package/lib/components/GanttChart/GanttChart.base.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.types.d.ts +0 -11
- package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.base.js +5 -3
- package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +3 -3
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js +3 -3
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +0 -9
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +4 -4
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +0 -9
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/Legends/Legends.base.d.ts +1 -1
- package/lib/components/Legends/Legends.base.js +6 -2
- package/lib/components/Legends/Legends.base.js.map +1 -1
- package/lib/components/Legends/Legends.types.d.ts +1 -1
- package/lib/components/Legends/Legends.types.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.js +3 -3
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.base.js +5 -3
- package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.base.js +4 -4
- package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.types.d.ts +0 -4
- package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +6 -4
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +15 -7
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +0 -9
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/IChartAnnotation.d.ts +2 -0
- package/lib/types/IChartAnnotation.js.map +1 -1
- package/lib/utilities/image-export-utils.d.ts +7 -2
- package/lib/utilities/image-export-utils.js +174 -86
- package/lib/utilities/image-export-utils.js.map +1 -1
- package/lib/utilities/utilities.d.ts +5 -4
- package/lib/utilities/utilities.js +18 -17
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-amd/AnnotationOnlyChart.d.ts +1 -0
- package/lib-amd/AnnotationOnlyChart.js +6 -0
- package/lib-amd/AnnotationOnlyChart.js.map +1 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.d.ts +3 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js +159 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.types.d.ts +33 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +5 -0
- package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib-amd/components/AnnotationOnlyChart/index.d.ts +2 -0
- package/lib-amd/components/AnnotationOnlyChart/index.js +7 -0
- package/lib-amd/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib-amd/components/AreaChart/AreaChart.base.js +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/ChartTable/ChartTable.base.js +4 -2
- package/lib-amd/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.d.ts +1 -1
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js +18 -14
- package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib-amd/components/CommonComponents/Annotations/index.d.ts +2 -0
- package/lib-amd/components/CommonComponents/Annotations/index.js +7 -0
- package/lib-amd/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib-amd/components/CommonComponents/CartesianChart.base.d.ts +6 -1
- package/lib-amd/components/CommonComponents/CartesianChart.base.js +131 -157
- package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +11 -2
- package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +80 -50
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlyColorAdapter.js +12 -4
- package/lib-amd/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +2 -0
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +159 -46
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.js +4 -2
- package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-amd/components/FunnelChart/FunnelChart.base.js +13 -16
- package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib-amd/components/GanttChart/GanttChart.base.js +5 -5
- package/lib-amd/components/GanttChart/GanttChart.base.js.map +1 -1
- package/lib-amd/components/GanttChart/GanttChart.types.d.ts +0 -11
- package/lib-amd/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.base.js +4 -2
- package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +2 -2
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +2 -2
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +0 -9
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +0 -9
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-amd/components/Legends/Legends.base.d.ts +1 -1
- package/lib-amd/components/Legends/Legends.base.js +6 -2
- package/lib-amd/components/Legends/Legends.base.js.map +1 -1
- package/lib-amd/components/Legends/Legends.types.d.ts +1 -1
- package/lib-amd/components/Legends/Legends.types.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.js +2 -2
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
- package/lib-amd/components/ResponsiveContainer/ResponsiveContainer.js +1 -1
- package/lib-amd/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.base.js +4 -2
- package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.base.js +3 -3
- package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.types.d.ts +0 -4
- package/lib-amd/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib-amd/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +5 -3
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +14 -6
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +0 -9
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-amd/index.d.ts +2 -0
- package/lib-amd/index.js +3 -2
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/types/IChartAnnotation.d.ts +2 -0
- package/lib-amd/types/IChartAnnotation.js.map +1 -1
- package/lib-amd/utilities/image-export-utils.d.ts +7 -2
- package/lib-amd/utilities/image-export-utils.js +173 -85
- package/lib-amd/utilities/image-export-utils.js.map +1 -1
- package/lib-amd/utilities/utilities.d.ts +5 -4
- package/lib-amd/utilities/utilities.js +18 -17
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-commonjs/AnnotationOnlyChart.d.ts +1 -0
- package/lib-commonjs/AnnotationOnlyChart.js +5 -0
- package/lib-commonjs/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.d.ts +3 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +162 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.d.ts +33 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +3 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.d.ts +2 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js +6 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.base.js +4 -2
- package/lib-commonjs/components/ChartTable/ChartTable.base.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.d.ts +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +18 -14
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/index.d.ts +2 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js +6 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.d.ts +6 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +131 -157
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +11 -2
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +83 -49
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js +12 -4
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +2 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +159 -46
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js +4 -2
- package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +13 -16
- package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.base.js +5 -5
- package/lib-commonjs/components/GanttChart/GanttChart.base.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.types.d.ts +0 -11
- package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js +4 -2
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +2 -2
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +2 -2
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +0 -9
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +0 -9
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.base.d.ts +1 -1
- package/lib-commonjs/components/Legends/Legends.base.js +6 -2
- package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.types.d.ts +1 -1
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +2 -2
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +4 -2
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +3 -3
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.types.d.ts +0 -4
- package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +5 -3
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +14 -6
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +0 -9
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/index.d.ts +2 -0
- package/lib-commonjs/index.js +3 -1
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/IChartAnnotation.d.ts +2 -0
- package/lib-commonjs/types/IChartAnnotation.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.d.ts +7 -2
- package/lib-commonjs/utilities/image-export-utils.js +173 -85
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
- package/lib-commonjs/utilities/utilities.d.ts +5 -4
- package/lib-commonjs/utilities/utilities.js +18 -17
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +5 -5
- package/src/components/AnnotationOnlyChart/AnnotationOnlyChart.types.ts +34 -0
- package/src/components/CommonComponents/CartesianChart.types.ts +12 -1
- package/src/components/GanttChart/GanttChart.types.ts +0 -13
- package/src/components/HeatMapChart/HeatMapChart.types.ts +0 -11
- package/src/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.ts +0 -11
- package/src/components/Legends/Legends.types.ts +1 -1
- package/src/components/ScatterChart/ScatterChart.types.ts +0 -5
- package/src/components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n ScaleBand,\n} from 'd3-scale';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n warnDeprecations,\n memoizeFunction,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IVerticalStackedBarDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n IDataPoint,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n findVSBCNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextGradient,\n areArraysEqual,\n calculateLongestLabelWidth,\n YAxisType,\n sortAxisCategories,\n calcTotalWidth,\n calcBandwidth,\n calcRequiredWidth,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericScale = D3ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\n\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: IVSChartDataPoint;\n};\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string | Date;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n selectedLegends: string[];\n}\nexport class VerticalStackedBarChartBase\n extends React.Component<IVerticalStackedBarChartProps, IVerticalStackedBarChartState>\n implements IChart\n{\n public static defaultProps: Partial<IVerticalStackedBarChartProps> = {\n maxBarWidth: 24,\n useUTC: true,\n xAxisCategoryOrder: 'default',\n yAxisCategoryOrder: 'default',\n };\n\n private _points: IVerticalStackedChartProps[];\n private _dataset: IVerticalStackedBarDataPoint[];\n private _xAxisLabels: string[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _bars: JSXElement[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _yMin: number;\n private _calloutAnchorPoint: CalloutAnchorPointData | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n private _xAxisInnerPadding: number;\n private _xAxisOuterPadding: number;\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private readonly Y_ORIGIN: number = 0;\n private _yAxisType: YAxisType;\n private _yAxisLabels: string[] = [];\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n isCalloutVisible: false,\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (!this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._emptyChartId = getId('_VSBC_empty');\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const legendBars: JSXElement = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: this._xAxisInnerPadding,\n xAxisOuterPadding: this._xAxisOuterPadding,\n })}\n ref={this._cartesianChartRef}\n showRoundOffXTickValues={!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)}\n yAxisType={this._yAxisType}\n stringDatasetForYAxisDomain={['', ...this._yAxisLabels]}\n getYDomainMargins={this._getYDomainMargins}\n /* eslint-disable react/jsx-no-bind */\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, this._isRtl, opts);\n };\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this._getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getDomainNRangeValues = (\n points: IDataPoint[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement => {\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n const xScaleBandwidthTranslate = this._xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._isLegendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i - 1].y as any);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i].y as any);\n const yScaleBandwidthTranslate =\n !useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.semanticColors.bodyBackground}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n onMouseOver={this._lineHover.bind(this, lineObject[item][i - 1])}\n onMouseLeave={this._handleMouseOut}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n const yScaleBandwidthTranslate =\n !circlePoint.useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(circlePoint.y as any)\n }\n onMouseOver={this._lineHover.bind(this, circlePoint)}\n onMouseLeave={this._handleMouseOut}\n r={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.semanticColors.bodyBackground}\n strokeWidth={3}\n // Elements with visibility: hidden cannot receive focus, so use opacity: 0 instead to hide them.\n // For more information, see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n opacity={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).opacity}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n ref={e => (circleRef.refElement = e)}\n {...(noBarsActive && (this._noLegendHighlighted() || this._isLegendHighlighted(item))\n ? {\n 'data-is-focusable': !this.props.hideTooltip,\n onFocus: this._lineFocus.bind(this, circlePoint, circleRef),\n onBlur: this._handleMouseOut,\n role: 'img',\n 'aria-label': this._getAriaLabel(circlePoint.xItem, circlePoint, true),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleOpacityAndRadius = (\n xAxisPoint: string | number | Date,\n legend: string,\n ): { opacity: number; radius: number } => {\n const { activeXAxisDataPoint } = this.state;\n if (!this._noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 8 };\n } else if (this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 0.3 };\n } else {\n return { opacity: 0, radius: 0 };\n }\n } else {\n return {\n opacity: activeXAxisDataPoint === xAxisPoint ? 1 : 0,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n this._xAxisInnerPadding = getScalePadding(\n this.props.xAxisInnerPadding,\n this.props.xAxisPadding,\n this._xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n this._xAxisOuterPadding = getScalePadding(this.props.xAxisOuterPadding, this.props.xAxisPadding, 0);\n this._initYAxisParams();\n }\n\n private _createDataSetLayer(): IVerticalStackedBarDataPoint[] {\n const dataset: IVerticalStackedBarDataPoint[] = this._points.map(singlePointData => {\n if (this._yAxisType === YAxisType.StringAxis) {\n return {\n x: singlePointData.xAxisPoint,\n y: 0,\n };\n }\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + (point.data as number);\n });\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = this._getOrderedXAxisLabels();\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _renderCallout(props?: IVSChartDataPoint): JSXElement | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true, theme } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n if (this.props.enableGradient) {\n const pointIndex = Math.max(\n singleChartData.chartData?.findIndex(item => item.legend === point.legend) || 0,\n 0,\n );\n color = point.gradient?.[0] || getNextGradient(pointIndex, 0, theme?.isInverted)[0];\n }\n\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n }\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string | Date | number,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint?.chartDataPoint !== point || this._calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n this._calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint:\n xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString(),\n };\n const xCalloutValue =\n point.xAxisCalloutData ||\n (xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString());\n\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this._noLegendHighlighted() || this._isLegendHighlighted(point.legend),\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this._lineHoverFocus(lineData, mouseEvent);\n };\n\n private _lineFocus = (lineData: LinePoint, ref: { refElement: SVGCircleElement | null }) => {\n if (ref.refElement) {\n this._lineHoverFocus(lineData, ref.refElement);\n }\n };\n\n private _lineHoverFocus = (lineData: LinePoint, refSelected: React.MouseEvent<SVGElement> | SVGCircleElement) => {\n if (this._getHighlightedLegend().length === 1) {\n if (this._noLegendHighlighted() || this._isLegendHighlighted(lineData.legend)) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n }\n } else {\n this._onStackHoverFocus(lineData.xItem, refSelected);\n }\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (!this._noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n\n this.setState({\n refSelected,\n isCalloutVisible: stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue:\n stack.xAxisPoint instanceof Date\n ? formatDateToLocaleString(stack.xAxisPoint, this.props.culture, this.props.useUTC)\n : stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale | StringScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly absStackTotal: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n let totalData = 0;\n let totalHeight: number;\n let sumOfPercent = 0;\n let scalingRatio: number;\n if (this._yAxisType === YAxisType.StringAxis) {\n totalHeight =\n defaultTotalHeight ?? bars.reduce((total, bar) => total + (yBarScale as StringScale)(bar.data as string)!, 0);\n } else {\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n totalData = bars.reduce((iter, value) => iter + Math.abs(value.data as number), 0);\n totalHeight =\n defaultTotalHeight ??\n Math.abs((yBarScale as NumericScale)(totalData) - (yBarScale as NumericScale)(this.Y_ORIGIN));\n bars.forEach(point => {\n let value = (Math.abs(point.data as number) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n }\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale =\n this._yAxisType === YAxisType.StringAxis ? 0 : (totalHeight - gapHeight * gaps) / (totalData * scalingRatio!);\n return {\n gapHeight,\n heightValueScale,\n absStackTotal: totalData,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale | StringScale,\n containerHeight: number,\n xElement: SVGElement,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : this._xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType !== XAxisTypes.StringAxis ? -this._barWidth / 2 : (xBarScale.bandwidth() - this._barWidth) / 2;\n\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(\n point =>\n point.data !== 0 &&\n point.data !== '' &&\n !(\n this._yAxisType === YAxisType.StringAxis &&\n typeof (yBarScale as StringScale)(point.data as string) === 'undefined'\n ),\n );\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, absStackTotal } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline =\n containerHeight -\n this.margins.bottom! -\n (this._yAxisType === YAxisType.StringAxis ? 0 : (yBarScale as NumericScale)(this.Y_ORIGIN));\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n let startColor = point.color ? point.color : this._colors[index];\n let endColor = startColor;\n\n if (this.props.enableGradient) {\n startColor = point.gradient?.[0] || getNextGradient(index, 0, this.props.theme?.isInverted)[0];\n endColor = point.gradient?.[1] || getNextGradient(index, 0, this.props.theme?.isInverted)[1];\n singleChartData.chartData[index].color = startColor;\n }\n\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._isLegendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack &&\n shouldHighlight && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, startColor, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight: number;\n const gapOffset = index ? gapHeight : 0;\n if (this._yAxisType === YAxisType.StringAxis) {\n barHeight = Math.max(\n containerHeight -\n this.margins.bottom! -\n ((yBarScale as StringScale)(point.data as string)! + (yBarScale as StringScale).bandwidth() / 2) -\n gapOffset,\n barMinimumHeight,\n 1,\n );\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n barHeight = Math.abs(heightValueScale * (point.data as number));\n // FIXME: The current scaling logic may produce different min and gap heights for each bar stack.\n const minHeight = Math.max((heightValueScale * absStackTotal) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n if ((point.data as number) >= this.Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data as number;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n }\n\n const gradientId = getId('VSBC_Gradient') + `_${indexNumber}_${index}`;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <path\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <rect\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: IRefArrayData = {};\n const someBarsActive =\n singleChartData.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length > 0;\n // FIXME: Making the entire stack focusable when stack callout is enabled adds unnecessary complexity\n // and can reduce usability in certain scenarios. Instead, each individual element within the stack\n // should be focusable on its own, with its own aria-label. This behavior is also seen in Highcharts.\n const stackFocusProps = shouldFocusWholeStack &&\n someBarsActive && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n let showLabel = false;\n let barLabel = 0;\n if (!this.props.hideLabels && this._yAxisType !== YAxisType.StringAxis) {\n if (this._noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (this._isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data as number;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {/*\n Note: No need to check hideLabels here, as showLabel is only set to true\n when hideLabels is false earlier in the code.\n */}\n {!this.props.hideLabels && this._barWidth >= 16 && showLabel && (\n <text\n x={xPoint + this._barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= this.Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {typeof this.props.yAxisTickFormat === 'function'\n ? this.props.yAxisTickFormat(barLabel)\n : formatScientificLimitWidth(barLabel)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return bars.filter((bar): bar is JSXElement => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number) => {\n const yDomain = [Math.min(this.Y_ORIGIN, this._yMin), Math.max(this.Y_ORIGIN, this._yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n if (!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)) {\n xBarScale.nice();\n }\n\n return { xBarScale, yBarScale };\n }\n if (this._xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = this.props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(this._isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(this._xAxisInnerPadding)\n .paddingOuter(this._xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n return (this._bars = this._createBar(\n xBarScale,\n this._yAxisType === YAxisType.StringAxis ? yScale : yBarScale,\n containerHeight,\n xElement!,\n ));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || this.Y_ORIGIN);\n this._yMin = Math.min(domainValue[0], this.props.yMinValue || this.Y_ORIGIN);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _isLegendHighlighted = (legendTitle: string): boolean => {\n return this._getHighlightedLegend().includes(legendTitle);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getAriaLabel = (\n singleChartData: IVerticalStackedChartProps,\n point?: IVSChartDataPoint | ILineDataInVerticalStackedBarChart,\n isLinePoint?: boolean,\n ): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (!isLinePoint && (point as IVSChartDataPoint).xAxisCalloutData) ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (isLinePoint ? point.data || (point as ILineDataInVerticalStackedBarChart).y : point.data);\n return (\n (!isLinePoint && (point as IVSChartDataPoint).callOutAccessibilityData?.ariaLabel) ||\n `${xValue}. ${legend}, ${yValue}.`\n );\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n this._domainMargin = MIN_DOMAIN_MARGIN;\n\n /** Total width available to render the bars */\n const totalWidth = calcTotalWidth(containerWidth, this.margins, MIN_DOMAIN_MARGIN);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(this.props.xAxisOuterPadding, this.props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n this._domainMargin = 0;\n } else if (this.props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = calcRequiredWidth(this._barWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (this.props.mode === 'plotly' && this._xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering bars at their maximum allowable width\n const bandwidth = calcBandwidth(totalWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n const barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, bandwidth);\n let reqWidth = calcRequiredWidth(barWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(this._xAxisLabels) + 20;\n reqWidth = (this._xAxisLabels.length - this._xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n this._domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n } else {\n const data = (this.props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n this._barWidth = getBarWidth(\n this.props.barWidth,\n this.props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, this._xAxisInnerPadding),\n );\n this._domainMargin = MIN_DOMAIN_MARGIN + this._barWidth / 2;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, data } = this.props;\n const numLines = Object.keys(this._lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n };\n\n private _getMinMaxOfYAxis = (\n dataset: IDataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n this.props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n if (point.useSecondaryYScale) {\n values.push(point.y as number);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n };\n\n private _initYAxisParams = () => {\n if (this._points[0].chartData.length > 0) {\n this._yAxisType = getTypeOfAxis(this._points[0].chartData[0].data, false) as YAxisType;\n } else {\n Object.keys(this._lineObject).forEach(lineLegend => {\n if (!this._lineObject[lineLegend][0].useSecondaryYScale) {\n this._yAxisType = getTypeOfAxis(this._lineObject[lineLegend][0].y, false) as YAxisType;\n }\n });\n }\n\n this._yAxisLabels = this._getOrderedYAxisLabels();\n };\n\n private _getYDomainMargins = (containerHeight: number): IMargins => {\n /**\n * Specifies the extra top margin to apply above the highest y-axis tick label.\n * Useful when stacked bars extend beyond the combined height of all y-axis labels (or categories).\n */\n let yAxisTickMarginTop = 0;\n\n /** Total height available to render the bars */\n const totalHeight = containerHeight - this.margins.bottom! - this.margins.top!;\n\n if (this._yAxisType === YAxisType.StringAxis) {\n /** Maximum height of the stacked bars, expressed in multiples of the height of a y-axis label (or category) */\n let maxBarHeightInLabels = 0;\n this._points.forEach(xPoint => {\n /** Height of the stacked bar, expressed in multiples of the height of a y-axis label (or category) */\n let barHeightInLabels = 0;\n xPoint.chartData.forEach(bar => {\n barHeightInLabels += this._yAxisLabels.indexOf(`${bar.data}`) + 1;\n });\n maxBarHeightInLabels = Math.max(maxBarHeightInLabels, barHeightInLabels);\n });\n /** Height of a y-axis label (or category) */\n const yAxisLabelHeight = maxBarHeightInLabels === 0 ? 0 : totalHeight / maxBarHeightInLabels;\n yAxisTickMarginTop += yAxisLabelHeight * (maxBarHeightInLabels - this._yAxisLabels.length);\n }\n\n return {\n ...this.margins,\n top: this.margins.top! + yAxisTickMarginTop,\n };\n };\n\n private _getOrderedXAxisLabels = () => {\n if (this._xAxisType !== XAxisTypes.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(), this.props.xAxisCategoryOrder);\n };\n\n private _getOrderedYAxisLabels = () => {\n if (this._yAxisType !== YAxisType.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(true), this.props.yAxisCategoryOrder);\n };\n\n private _mapCategoryToValues = (isYAxis = false) => {\n const categoryToValues: Record<string, number[]> = {};\n this._points.forEach(point => {\n point.chartData.forEach(bar => {\n const category = (isYAxis ? bar.data : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : bar.data;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n point.lineData?.forEach(linePoint => {\n if (isYAxis && linePoint.useSecondaryYScale) {\n return;\n }\n const category = (isYAxis ? linePoint.y : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : linePoint.y;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n scaleTime as d3ScaleTime,\n ScaleBand,\n} from 'd3-scale';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n warnDeprecations,\n memoizeFunction,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IVerticalStackedBarDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n IDataPoint,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n findVSBCNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n domainRangeOfVSBCNumeric,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextGradient,\n areArraysEqual,\n calculateLongestLabelWidth,\n YAxisType,\n sortAxisCategories,\n calcTotalWidth,\n calcBandwidth,\n calcRequiredWidth,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericScale = D3ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\n\ntype CalloutAnchorPointData = {\n xAxisDataPoint: string;\n chartDataPoint: IVSChartDataPoint;\n};\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string | Date;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n selectedLegends: string[];\n}\nexport class VerticalStackedBarChartBase\n extends React.Component<IVerticalStackedBarChartProps, IVerticalStackedBarChartState>\n implements IChart\n{\n public static defaultProps: Partial<IVerticalStackedBarChartProps> = {\n maxBarWidth: 24,\n useUTC: true,\n xAxisCategoryOrder: 'default',\n yAxisCategoryOrder: 'default',\n };\n\n private _points: IVerticalStackedChartProps[];\n private _dataset: IVerticalStackedBarDataPoint[];\n private _xAxisLabels: string[];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _bars: JSXElement[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _yMin: number;\n private _calloutAnchorPoint: CalloutAnchorPointData | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n private _xAxisInnerPadding: number;\n private _xAxisOuterPadding: number;\n private _cartesianChartRef: React.RefObject<IChart | null>;\n private _legendsRef: React.RefObject<ILegendContainer | null>;\n private readonly Y_ORIGIN: number = 0;\n private _yAxisType: YAxisType;\n private _yAxisLabels: string[] = [];\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n isCalloutVisible: false,\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (!this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._emptyChartId = getId('_VSBC_empty');\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const legendBars: JSXElement = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n tickParams={tickParams}\n legendBars={legendBars}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: this._xAxisInnerPadding,\n xAxisOuterPadding: this._xAxisOuterPadding,\n })}\n ref={this._cartesianChartRef}\n showRoundOffXTickValues={!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)}\n yAxisType={this._yAxisType}\n stringDatasetForYAxisDomain={['', ...this._yAxisLabels]}\n getYDomainMargins={this._getYDomainMargins}\n /* eslint-disable react/jsx-no-bind */\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight!,\n props.containerWidth!,\n props.yScaleSecondary,\n )}\n </g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: this._cartesianChartRef.current?.chartContainer }],\n this.props.hideLegend ? undefined : this._legendsRef.current?.toSVG,\n this._isRtl,\n opts,\n );\n };\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this._getHighlightedLegend().length === 1) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getDomainNRangeValues = (\n points: IDataPoint[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n yScaleSecondary?: NumericScale,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement => {\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n const xScaleBandwidthTranslate = this._xAxisType !== XAxisTypes.StringAxis ? 0 : xScale.bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._isLegendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = xScale(lineObject[item][i - 1].xItem.xAxisPoint);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && yScaleSecondary;\n const y1 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i - 1].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i - 1].y as any);\n const x2 = xScale(lineObject[item][i].xItem.xAxisPoint);\n const y2 = useSecondaryYScale\n ? yScaleSecondary!(lineObject[item][i].y as number)\n : //eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(lineObject[item][i].y as any);\n const yScaleBandwidthTranslate =\n !useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.semanticColors.bodyBackground}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={lineObject[item][0].lineOptions?.strokeWidth ?? 3}\n strokeLinecap={lineObject[item][0].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={lineObject[item][0].lineOptions?.strokeDasharray}\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n onMouseOver={this._lineHover.bind(this, lineObject[item][i - 1])}\n onMouseLeave={this._handleMouseOut}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n const noBarsActive =\n circlePoint.xItem.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length === 0;\n const yScaleBandwidthTranslate =\n !circlePoint.useSecondaryYScale && this._yAxisType === YAxisType.StringAxis\n ? (yScalePrimary as StringScale).bandwidth() / 2\n : 0;\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={xScale(circlePoint.xItem.xAxisPoint)}\n cy={\n circlePoint.useSecondaryYScale && yScaleSecondary\n ? yScaleSecondary(circlePoint.y as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary(circlePoint.y as any)\n }\n onMouseOver={this._lineHover.bind(this, circlePoint)}\n onMouseLeave={this._handleMouseOut}\n r={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.semanticColors.bodyBackground}\n strokeWidth={3}\n // Elements with visibility: hidden cannot receive focus, so use opacity: 0 instead to hide them.\n // For more information, see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n opacity={this._getCircleOpacityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).opacity}\n transform={`translate(${xScaleBandwidthTranslate}, ${yScaleBandwidthTranslate})`}\n ref={e => {\n circleRef.refElement = e;\n }}\n {...(noBarsActive && (this._noLegendHighlighted() || this._isLegendHighlighted(item))\n ? {\n 'data-is-focusable': !this.props.hideTooltip,\n onFocus: this._lineFocus.bind(this, circlePoint, circleRef),\n onBlur: this._handleMouseOut,\n role: 'img',\n 'aria-label': this._getAriaLabel(circlePoint.xItem, circlePoint, true),\n }\n : {})}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleOpacityAndRadius = (\n xAxisPoint: string | number | Date,\n legend: string,\n ): { opacity: number; radius: number } => {\n const { activeXAxisDataPoint } = this.state;\n if (!this._noLegendHighlighted()) {\n if (xAxisPoint === activeXAxisDataPoint && this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 8 };\n } else if (this._isLegendHighlighted(legend)) {\n return { opacity: 1, radius: 0.3 };\n } else {\n return { opacity: 0, radius: 0 };\n }\n } else {\n return {\n opacity: activeXAxisDataPoint === xAxisPoint ? 1 : 0,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n this._xAxisInnerPadding = getScalePadding(\n this.props.xAxisInnerPadding,\n this.props.xAxisPadding,\n this._xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n this._xAxisOuterPadding = getScalePadding(this.props.xAxisOuterPadding, this.props.xAxisPadding, 0);\n this._initYAxisParams();\n }\n\n private _createDataSetLayer(): IVerticalStackedBarDataPoint[] {\n const dataset: IVerticalStackedBarDataPoint[] = this._points.map(singlePointData => {\n if (this._yAxisType === YAxisType.StringAxis) {\n return {\n x: singlePointData.xAxisPoint,\n y: 0,\n };\n }\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + (point.data as number);\n });\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = this._getOrderedXAxisLabels();\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _renderCallout(props?: IVSChartDataPoint): JSXElement | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true, theme } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n if (this.props.enableGradient) {\n const pointIndex = Math.max(\n singleChartData.chartData?.findIndex(item => item.legend === point.legend) || 0,\n 0,\n );\n color = point.gradient?.[0] || getNextGradient(pointIndex, 0, theme?.isInverted)[0];\n }\n\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n }\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string | Date | number,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint?.chartDataPoint !== point || this._calloutAnchorPoint?.xAxisDataPoint !== xAxisPoint) {\n this._calloutAnchorPoint = {\n chartDataPoint: point,\n xAxisDataPoint:\n xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString(),\n };\n const xCalloutValue =\n point.xAxisCalloutData ||\n (xAxisPoint instanceof Date\n ? formatDateToLocaleString(xAxisPoint, this.props.culture, this.props.useUTC)\n : xAxisPoint.toString());\n\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this._noLegendHighlighted() || this._isLegendHighlighted(point.legend),\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this._lineHoverFocus(lineData, mouseEvent);\n };\n\n private _lineFocus = (lineData: LinePoint, ref: { refElement: SVGCircleElement | null }) => {\n if (ref.refElement) {\n this._lineHoverFocus(lineData, ref.refElement);\n }\n };\n\n private _lineHoverFocus = (lineData: LinePoint, refSelected: React.MouseEvent<SVGElement> | SVGCircleElement) => {\n if (this._getHighlightedLegend().length === 1) {\n if (this._noLegendHighlighted() || this._isLegendHighlighted(lineData.legend)) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n }\n } else {\n this._onStackHoverFocus(lineData.xItem, refSelected);\n }\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (!this._noLegendHighlighted()) {\n stack = {\n ...stack,\n chartData: stack.chartData.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n lineData: stack.lineData?.filter(dataPoint => this._isLegendHighlighted(dataPoint.legend)),\n };\n }\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n\n this.setState({\n refSelected,\n isCalloutVisible: stack.chartData.length > 0 || (stack.lineData?.length ?? 0) > 0,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue:\n stack.xAxisPoint instanceof Date\n ? formatDateToLocaleString(stack.xAxisPoint, this.props.culture, this.props.useUTC)\n : stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale | StringScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n readonly absStackTotal: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n let totalData = 0;\n let totalHeight: number;\n let sumOfPercent = 0;\n let scalingRatio: number;\n if (this._yAxisType === YAxisType.StringAxis) {\n totalHeight =\n defaultTotalHeight ?? bars.reduce((total, bar) => total + (yBarScale as StringScale)(bar.data as string)!, 0);\n } else {\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n totalData = bars.reduce((iter, value) => iter + Math.abs(value.data as number), 0);\n totalHeight =\n defaultTotalHeight ??\n Math.abs((yBarScale as NumericScale)(totalData) - (yBarScale as NumericScale)(this.Y_ORIGIN));\n bars.forEach(point => {\n let value = (Math.abs(point.data as number) / totalData) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n sumOfPercent += value;\n });\n scalingRatio = sumOfPercent !== 0 ? sumOfPercent / 100 : 1;\n }\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale =\n this._yAxisType === YAxisType.StringAxis ? 0 : (totalHeight - gapHeight * gaps) / (totalData * scalingRatio!);\n return {\n gapHeight,\n heightValueScale,\n absStackTotal: totalData,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale | StringScale,\n containerHeight: number,\n xElement: SVGElement,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, xBarScale.bandwidth());\n }\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : this._xAxisType === XAxisTypes.DateAxis\n ? (singleChartData.xAxisPoint as Date)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType !== XAxisTypes.StringAxis ? -this._barWidth / 2 : (xBarScale.bandwidth() - this._barWidth) / 2;\n\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(\n point =>\n point.data !== 0 &&\n point.data !== '' &&\n !(\n this._yAxisType === YAxisType.StringAxis &&\n typeof (yBarScale as StringScale)(point.data as string) === 'undefined'\n ),\n );\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale, absStackTotal } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const yBaseline =\n containerHeight -\n this.margins.bottom! -\n (this._yAxisType === YAxisType.StringAxis ? 0 : (yBarScale as NumericScale)(this.Y_ORIGIN));\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = 0;\n let heightOfLastBar = 0;\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n let startColor = point.color ? point.color : this._colors[index];\n let endColor = startColor;\n\n if (this.props.enableGradient) {\n startColor = point.gradient?.[0] || getNextGradient(index, 0, this.props.theme?.isInverted)[0];\n endColor = point.gradient?.[1] || getNextGradient(index, 0, this.props.theme?.isInverted)[1];\n singleChartData.chartData[index].color = startColor;\n }\n\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._isLegendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack &&\n shouldHighlight && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, startColor),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, startColor, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight: number;\n const gapOffset = index ? gapHeight : 0;\n if (this._yAxisType === YAxisType.StringAxis) {\n barHeight = Math.max(\n containerHeight -\n this.margins.bottom! -\n ((yBarScale as StringScale)(point.data as string)! + (yBarScale as StringScale).bandwidth() / 2) -\n gapOffset,\n barMinimumHeight,\n 1,\n );\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n barHeight = Math.abs(heightValueScale * (point.data as number));\n // FIXME: The current scaling logic may produce different min and gap heights for each bar stack.\n const minHeight = Math.max((heightValueScale * absStackTotal) / 100.0, barMinimumHeight);\n if (barHeight < minHeight) {\n barHeight = minHeight;\n }\n if ((point.data as number) >= this.Y_ORIGIN) {\n yPositiveStart -= barHeight + gapOffset;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + gapOffset;\n yNegativeStart = yPoint + barHeight;\n }\n\n barTotalValue += point.data as number;\n heightOfLastBar = index === barsToDisplay.length - 1 ? barHeight : 0;\n }\n\n const gradientId = getId('VSBC_Gradient') + `_${indexNumber}_${index}`;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <React.Fragment key={index + indexNumber + `${shouldFocusWholeStack}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <path\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => {\n ref.refElement = e;\n }}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n </React.Fragment>\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <React.Fragment key={index + indexNumber}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"100%\" x2=\"0%\" y2=\"0%\">\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>\n </defs>\n )}\n <rect\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={this.props.enableGradient ? `url(#${gradientId})` : startColor}\n rx={this.props.roundCorners ? 3 : 0}\n ref={e => {\n ref.refElement = e;\n }}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n </React.Fragment>\n );\n });\n const groupRef: IRefArrayData = {};\n const someBarsActive =\n singleChartData.chartData.filter(\n dataPoint => this._noLegendHighlighted() || this._isLegendHighlighted(dataPoint.legend),\n ).length > 0;\n // FIXME: Making the entire stack focusable when stack callout is enabled adds unnecessary complexity\n // and can reduce usability in certain scenarios. Instead, each individual element within the stack\n // should be focusable on its own, with its own aria-label. This behavior is also seen in Highcharts.\n const stackFocusProps = shouldFocusWholeStack &&\n someBarsActive && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n let showLabel = false;\n let barLabel = 0;\n if (!this.props.hideLabels && this._yAxisType !== YAxisType.StringAxis) {\n if (this._noLegendHighlighted()) {\n showLabel = true;\n barLabel = barTotalValue;\n } else {\n barsToDisplay.forEach(point => {\n if (this._isLegendHighlighted(point.legend)) {\n showLabel = true;\n barLabel += point.data as number;\n }\n });\n }\n }\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g\n id={`${indexNumber}-singleBar`}\n ref={e => {\n groupRef.refElement = e;\n }}\n {...stackFocusProps}\n >\n {singleBar}\n </g>\n {/*\n Note: No need to check hideLabels here, as showLabel is only set to true\n when hideLabels is false earlier in the code.\n */}\n {!this.props.hideLabels && this._barWidth >= 16 && showLabel && (\n <text\n x={xPoint + this._barWidth / 2}\n //if total bar value >=0, show label above top bar, otherwise below bottom bar\n y={barLabel >= this.Y_ORIGIN ? yPoint - 6 : yPoint + heightOfLastBar + 12}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barLabel}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {typeof this.props.yAxisTickFormat === 'function'\n ? this.props.yAxisTickFormat(barLabel)\n : formatScientificLimitWidth(barLabel)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return bars.filter((bar): bar is JSXElement => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number) => {\n const yDomain = [Math.min(this.Y_ORIGIN, this._yMin), Math.max(this.Y_ORIGIN, this._yMax)];\n const yBarScale = d3ScaleLinear()\n .domain(yDomain)\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n if (!isScalePaddingDefined(this.props.xAxisInnerPadding, this.props.xAxisPadding)) {\n xBarScale.nice();\n }\n\n return { xBarScale, yBarScale };\n }\n if (this._xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const lDate = d3Max(this._dataset, (point: IVerticalStackedBarDataPoint) => {\n return point.x as Date;\n })!;\n const xBarScale = this.props.useUTC ? d3ScaleUtc() : d3ScaleTime();\n xBarScale\n .domain(this._isRtl ? [lDate, sDate] : [sDate, lDate])\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin]);\n\n return { xBarScale, yBarScale };\n }\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range(\n this._isRtl\n ? [containerWidth - this.margins.right! - this._domainMargin, this.margins.left! + this._domainMargin]\n : [this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin],\n )\n .paddingInner(this._xAxisInnerPadding)\n .paddingOuter(this._xAxisOuterPadding);\n\n return { xBarScale, yBarScale };\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericScale | StringScale,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth);\n return (this._bars = this._createBar(\n xBarScale,\n this._yAxisType === YAxisType.StringAxis ? yScale : yBarScale,\n containerHeight,\n xElement!,\n ));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || this.Y_ORIGIN);\n this._yMin = Math.min(domainValue[0], this.props.yMinValue || this.Y_ORIGIN);\n }\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _isLegendHighlighted = (legendTitle: string): boolean => {\n return this._getHighlightedLegend().includes(legendTitle);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getAriaLabel = (\n singleChartData: IVerticalStackedChartProps,\n point?: IVSChartDataPoint | ILineDataInVerticalStackedBarChart,\n isLinePoint?: boolean,\n ): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return this._noLegendHighlighted() || this._isLegendHighlighted(legend) ? `${legend}, ${yValue}.` : '';\n })\n .filter(str => str !== '')\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue =\n singleChartData.xAxisCalloutData ||\n (!isLinePoint && (point as IVSChartDataPoint).xAxisCalloutData) ||\n (singleChartData.xAxisPoint instanceof Date\n ? formatDateToLocaleString(singleChartData.xAxisPoint, this.props.culture, this.props.useUTC)\n : singleChartData.xAxisPoint);\n const legend = point.legend;\n const yValue =\n point.yAxisCalloutData ||\n (isLinePoint ? point.data || (point as ILineDataInVerticalStackedBarChart).y : point.data);\n return (\n (!isLinePoint && (point as IVSChartDataPoint).callOutAccessibilityData?.ariaLabel) ||\n `${xValue}. ${legend}, ${yValue}.`\n );\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n this._domainMargin = MIN_DOMAIN_MARGIN;\n\n /** Total width available to render the bars */\n const totalWidth = calcTotalWidth(containerWidth, this.margins, MIN_DOMAIN_MARGIN);\n\n if (this._xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(this.props.xAxisOuterPadding, this.props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n this._domainMargin = 0;\n } else if (this.props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n this._barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = calcRequiredWidth(this._barWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (this.props.mode === 'plotly' && this._xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering bars at their maximum allowable width\n const bandwidth = calcBandwidth(totalWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n const barWidth = getBarWidth(this.props.barWidth, this.props.maxBarWidth, bandwidth);\n let reqWidth = calcRequiredWidth(barWidth, this._xAxisLabels.length, this._xAxisInnerPadding);\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(this._xAxisLabels) + 20;\n reqWidth = (this._xAxisLabels.length - this._xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n this._domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n } else {\n const data = (this.props.data?.map(point => point.xAxisPoint) as number[] | Date[] | undefined) || [];\n this._barWidth = getBarWidth(\n this.props.barWidth,\n this.props.maxBarWidth,\n calculateAppropriateBarWidth(data, totalWidth, this._xAxisInnerPadding),\n );\n this._domainMargin = MIN_DOMAIN_MARGIN + this._barWidth / 2;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.some(item => item.chartData.length > 0 || (item.lineData && item.lineData.length > 0))\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, data } = this.props;\n const numLines = Object.keys(this._lineObject).length;\n return (\n (chartTitle ? `${chartTitle}. ` : '') +\n `Vertical bar chart with ${data?.length || 0} stacked bars` +\n (numLines > 0 ? ` and ${numLines} lines` : '') +\n '. '\n );\n };\n\n private _getMinMaxOfYAxis = (\n dataset: IDataPoint[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n if (!useSecondaryYScale) {\n return findVSBCNumericMinMaxOfY(dataset);\n }\n\n const values: number[] = [];\n this.props.data.forEach(xPoint => {\n xPoint.lineData?.forEach(point => {\n if (point.useSecondaryYScale) {\n values.push(point.y as number);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n };\n\n private _initYAxisParams = () => {\n if (this._points[0].chartData.length > 0) {\n this._yAxisType = getTypeOfAxis(this._points[0].chartData[0].data, false) as YAxisType;\n } else {\n Object.keys(this._lineObject).forEach(lineLegend => {\n if (!this._lineObject[lineLegend][0].useSecondaryYScale) {\n this._yAxisType = getTypeOfAxis(this._lineObject[lineLegend][0].y, false) as YAxisType;\n }\n });\n }\n\n this._yAxisLabels = this._getOrderedYAxisLabels();\n };\n\n private _getYDomainMargins = (containerHeight: number): IMargins => {\n /**\n * Specifies the extra top margin to apply above the highest y-axis tick label.\n * Useful when stacked bars extend beyond the combined height of all y-axis labels (or categories).\n */\n let yAxisTickMarginTop = 0;\n\n /** Total height available to render the bars */\n const totalHeight = containerHeight - this.margins.bottom! - this.margins.top!;\n\n if (this._yAxisType === YAxisType.StringAxis) {\n /** Maximum height of the stacked bars, expressed in multiples of the height of a y-axis label (or category) */\n let maxBarHeightInLabels = 0;\n this._points.forEach(xPoint => {\n /** Height of the stacked bar, expressed in multiples of the height of a y-axis label (or category) */\n let barHeightInLabels = 0;\n xPoint.chartData.forEach(bar => {\n barHeightInLabels += this._yAxisLabels.indexOf(`${bar.data}`) + 1;\n });\n maxBarHeightInLabels = Math.max(maxBarHeightInLabels, barHeightInLabels);\n });\n /** Height of a y-axis label (or category) */\n const yAxisLabelHeight = maxBarHeightInLabels === 0 ? 0 : totalHeight / maxBarHeightInLabels;\n yAxisTickMarginTop += yAxisLabelHeight * (maxBarHeightInLabels - this._yAxisLabels.length);\n }\n\n return {\n ...this.margins,\n top: this.margins.top! + yAxisTickMarginTop,\n };\n };\n\n private _getOrderedXAxisLabels = () => {\n if (this._xAxisType !== XAxisTypes.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(), this.props.xAxisCategoryOrder);\n };\n\n private _getOrderedYAxisLabels = () => {\n if (this._yAxisType !== YAxisType.StringAxis) {\n return [];\n }\n\n return sortAxisCategories(this._mapCategoryToValues(true), this.props.yAxisCategoryOrder);\n };\n\n private _mapCategoryToValues = (isYAxis = false) => {\n const categoryToValues: Record<string, number[]> = {};\n this._points.forEach(point => {\n point.chartData.forEach(bar => {\n const category = (isYAxis ? bar.data : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : bar.data;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n point.lineData?.forEach(linePoint => {\n if (isYAxis && linePoint.useSecondaryYScale) {\n return;\n }\n const category = (isYAxis ? linePoint.y : point.xAxisPoint) as string;\n const value = isYAxis ? point.xAxisPoint : linePoint.y;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n };\n}\n"]}
|
|
@@ -129,15 +129,6 @@ export interface IVerticalStackedBarChartProps extends ICartesianChartProps {
|
|
|
129
129
|
* @default 'default'
|
|
130
130
|
*/
|
|
131
131
|
mode?: 'default' | 'plotly';
|
|
132
|
-
/**
|
|
133
|
-
*@default false
|
|
134
|
-
*Used for to elipse y axis labes and show tooltip on x axis labels
|
|
135
|
-
*/
|
|
136
|
-
showYAxisLablesTooltip?: boolean;
|
|
137
|
-
/**
|
|
138
|
-
*@default false
|
|
139
|
-
*Used for showing complete y axis lables */
|
|
140
|
-
showYAxisLables?: boolean;
|
|
141
132
|
}
|
|
142
133
|
/**
|
|
143
134
|
* Vertical Stacked Bar Chart style properties
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\n/**\n * Vertical Stacked Bar Chart properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is supported for bar charts that has only lines\n */\n yMinValue?: number | undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n
|
|
1
|
+
{"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\n/**\n * Vertical Stacked Bar Chart properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is supported for bar charts that has only lines\n */\n yMinValue?: number | undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n}\n\n/**\n * Vertical Stacked Bar Chart style properties\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartStyleProps extends ICartesianChartStyleProps {}\n\n/**\n * Vertical Stacked Bar Chart styles\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartStyles extends ICartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * Style for the bar labels\n */\n barLabel: IStyle;\n\n /**\n * Style for the chart.\n * @deprecated use root instead.\n */\n chart?: IStyle;\n\n /**\n * Style for the line representing the domain of the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisText?: IStyle;\n\n /**\n * Style for the line representing the domain of the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisText?: IStyle;\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export type { IGaugeChartProps, IGaugeChartSegment, IGaugeChartStyleProps, IGaug
|
|
|
44
44
|
export { GaugeChart, GaugeChartVariant, GaugeValueFormat } from './GaugeChart';
|
|
45
45
|
export type { DeclarativeChartProps, Schema, IDeclarativeChart } from './DeclarativeChart';
|
|
46
46
|
export { DeclarativeChart } from './DeclarativeChart';
|
|
47
|
+
export type { IAnnotationOnlyChartProps } from './AnnotationOnlyChart';
|
|
48
|
+
export { AnnotationOnlyChart } from './AnnotationOnlyChart';
|
|
47
49
|
export type { IResponsiveContainerProps, IResponsiveChildProps } from './ResponsiveContainer';
|
|
48
50
|
export { ResponsiveContainer, withResponsiveContainer } from './ResponsiveContainer';
|
|
49
51
|
export type { IScatterChartProps, IScatterChartStyleProps, IScatterChartStyles } from './ScatterChart';
|
package/lib/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export { DataVizPalette, getColorFromToken, getNextColor } from './utilities/col
|
|
|
22
22
|
export { DataVizGradientPalette, getGradientFromToken, getNextGradient } from './utilities/gradients';
|
|
23
23
|
export { GaugeChart, GaugeChartVariant, GaugeValueFormat } from './GaugeChart';
|
|
24
24
|
export { DeclarativeChart } from './DeclarativeChart';
|
|
25
|
+
export { AnnotationOnlyChart } from './AnnotationOnlyChart';
|
|
25
26
|
export { ResponsiveContainer, withResponsiveContainer } from './ResponsiveContainer';
|
|
26
27
|
export { GanttChart } from './GanttChart';
|
|
27
28
|
import './version';
|