@fluentui/react-charting 5.25.0 → 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 +87 -1
- package/CHANGELOG.md +28 -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 +199 -42
- 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 +169 -48
- 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 +198 -41
- 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 +171 -49
- 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 +198 -41
- 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 +171 -49
- 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":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n initializeComponentRef,\n memoizeFunction,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaLineScatterCharts,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n createStringYAxis,\n getSecureProps,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n findCalloutPoints,\n} from '../../utilities/index';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\ninterface ILineChartDataPointWithLegend extends ILineChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n}\n\ntype ILineChartPointsWithoutData = Omit<ILineChartPoints, 'data'>;\ninterface ILineChartPointsWithLegend extends ILineChartPointsWithoutData {\n data: ILineChartDataPointWithLegend[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _chart: JSXElement[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private _containsSecondaryYAxis = false;\n private _hasDuplicateXValues = false;\n private _hasMissingXValues = false;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._hasMissingXValues = this._containsMissingXValues();\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): 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 (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSXElement {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n this._hasDuplicateXValues = this._xCoordinateContainsMultipleY();\n this._containsSecondaryYAxis =\n !!this.props.secondaryYScaleOptions && points.some(point => point.useSecondaryYScale);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const legends: JSXElement = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible && !this._hasDuplicateXValues && !this._hasMissingXValues,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</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, getRTL(), opts);\n };\n\n private _getMinMaxOfYAxis = (points: ILineChartPoints[], yAxisType: YAxisType, useSecondaryYScale: boolean) =>\n findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\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 = domainRangeOfNumericForAreaLineScatterCharts(points, margins, width, isRTL);\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 = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date\n ? formatDateToLocaleString(pointToHighlight, this.props.culture, this.props.useUTC)\n : pointToHighlight;\n const found = findCalloutPoints(this._calloutPoints, pointToHighlight);\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues = this._getFilteredLegendValues(found.values);\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this._shouldFillToZeroY()) {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n // The maxOfYVal prop is only required for the primary y-axis. When the data includes\n // a secondary y-axis, the mode defaults to tozeroy, so maxOfYVal should be calculated using\n // only the data points associated with the primary y-axis.\n maxOfYVal: this._containsSecondaryYAxis\n ? findNumericMinMaxOfY(this.props.data.lineChartData!).endValue\n : maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization && !this._hasDuplicateXValues) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n let data = {};\n const keys: string[] = [];\n let index = 0;\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n // if legend is not populated, then assign a legend\n if (this._hasDuplicateXValues && !singleChartPoint.legend) {\n singleChartPoint.legend = `chart${index}`;\n ++index;\n }\n singleChartPoint.data.forEach((point: ILineChartDataPointWithLegend) => {\n point.legend = singleChartPoint.legend;\n });\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n if (!this._hasDuplicateXValues) {\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) =>\n (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, id: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${id}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n data = this._getDataPoints(keys, dataSet);\n } else {\n const datasetForDuplicateValues = this._createDatasetForXCoordinateWithMultipleYValues(allChartPoints);\n data = this._getDataPoints(datasetForDuplicateValues.keys, datasetForDuplicateValues.filteredDataSet);\n }\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _createDatasetForXCoordinateWithMultipleYValues = (allChartPoints: ILineChartDataPoint[]) => {\n const dataSet: IAreaChartDataSetPoint[] = [];\n\n // Group data points by x-axis value\n const groupedData: Record<string | number, ILineChartDataPointWithLegend[]> = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPointWithLegend) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n if (!groupedData[xValue]) {\n groupedData[xValue] = [];\n }\n groupedData[xValue].push(dataPoint);\n });\n\n // Aggregate data points for each x-axis value\n Object.keys(groupedData).forEach(xValue => {\n const dataPoints = groupedData[xValue];\n dataPoints.forEach((dataPoint, id) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = { xVal: dataPoints[0].x };\n\n const key = dataPoint.legend ? dataPoint.legend : `chart${id}`;\n singleDataset[key] = dataPoint.y;\n dataSet.push(singleDataset);\n });\n });\n\n // get all unique keys from each array within the dataSet\n const allLegends: string[] = [];\n dataSet.forEach(item => {\n Object.keys(item).forEach(key => {\n if (key !== 'xVal' && !allLegends.includes(key)) {\n allLegends.push(key);\n }\n });\n });\n\n dataSet.forEach(item => {\n allLegends.forEach(legend => {\n if (!item[legend]) {\n item[legend] = 0; // Fill with 0 if the legend is missing\n }\n });\n });\n\n // exclude all items within dataset having all legend values 0\n const filteredDataSet = dataSet.filter(item => {\n return allLegends.some(legend => item[legend] !== 0);\n });\n\n const keys = Array.from(new Set(filteredDataSet.flatMap(item => Object.keys(item).filter(key => key !== 'xVal'))));\n\n return {\n keys,\n filteredDataSet,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, yScaleSecondary, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _getLegendData = (points: ILineChartPoints[]): JSXElement => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\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 _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n private _drawGraph = (\n containerHeight: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n xElement: SVGElement,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const graph: JSXElement[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const curveFactory = getCurveFactory(points[index]?.lineOptions?.curve, d3CurveBasis);\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const layerOpacity = this._shouldFillToZeroY() ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index]?.lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index]?.lineOptions?.strokeDasharray}\n strokeDashoffset={points[index]?.lineOptions?.strokeDashoffset}\n strokeLinecap={points[index]?.lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={\n (!this._hasDuplicateXValues && !this._hasMissingXValues && this._getAriaLabel(index, pointIndex)) ||\n undefined\n }\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\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(xScale);\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: classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getOnClickHandler = (points: ILineChartPoints[], index: number, pointIndex: number) => {\n return (\n !this._hasDuplicateXValues &&\n !this._hasMissingXValues && {\n onClick: this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!),\n }\n );\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._noLegendHighlighted() && !this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\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 _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\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 _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 _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n if (this._hasMissingXValues) {\n // get union of all x values\n const allXValues: Set<string | number> = new Set();\n lineChartData &&\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n lineChartData &&\n lineChartData.forEach((line: ILineChartPointsWithLegend) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPointWithLegend) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n line.data.push({\n x: typeof xValue === 'string' ? new Date(xValue) : xValue,\n y: 0,\n legend: line.legend,\n });\n }\n });\n // sort the data points by x value\n line.data.sort((a: ILineChartDataPoint, b: ILineChartDataPoint) => {\n const xA = a.x instanceof Date ? a.x.getTime() : a.x;\n const xB = b.x instanceof Date ? b.x.getTime() : b.x;\n return xA < xB ? -1 : xA > xB ? 1 : 0;\n });\n });\n }\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const found = findCalloutPoints(this._calloutPoints, x);\n if (found) {\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n return !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n\n private _xCoordinateContainsMultipleY(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n for (const item of lineChartData) {\n const xValueMap: Record<string, number[]> = {};\n for (const point of item.data) {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n if (!xValueMap[xValue]) {\n xValueMap[xValue] = [];\n }\n xValueMap[xValue].push(point.y);\n if (xValueMap[xValue].length > 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _containsMissingXValues(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n const allXValues: Set<string | number> = new Set();\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n // for all x values, check if the x value is present in all series\n let hasMissingValues = false;\n lineChartData.forEach((line: ILineChartPoints) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPoint) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n hasMissingValues = true;\n }\n });\n });\n return hasMissingValues;\n }\n\n private _shouldFillToZeroY() {\n return this.props.mode === 'tozeroy' || this._containsSecondaryYAxis;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport {\n classNamesFunction,\n getId,\n getRTL,\n initializeComponentRef,\n memoizeFunction,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfAxislabels,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaLineScatterCharts,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n createStringYAxis,\n getSecureProps,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n findCalloutPoints,\n} from '../../utilities/index';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\ninterface ILineChartDataPointWithLegend extends ILineChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n}\n\ntype ILineChartPointsWithoutData = Omit<ILineChartPoints, 'data'>;\ninterface ILineChartPointsWithLegend extends ILineChartPointsWithoutData {\n data: ILineChartDataPointWithLegend[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _chart: JSXElement[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart | null>;\n private _legendsRef: React.RefObject<ILegendContainer | null>;\n private _containsSecondaryYAxis = false;\n private _hasDuplicateXValues = false;\n private _hasMissingXValues = false;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._hasMissingXValues = this._containsMissingXValues();\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): 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 (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSXElement {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n this._hasDuplicateXValues = this._xCoordinateContainsMultipleY();\n this._containsSecondaryYAxis =\n !!this.props.secondaryYScaleOptions && points.some(point => point.useSecondaryYScale);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const legends: JSXElement = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible && !this._hasDuplicateXValues && !this._hasMissingXValues,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</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 getRTL(),\n opts,\n );\n };\n\n private _getMinMaxOfYAxis = (points: ILineChartPoints[], yAxisType: YAxisType, useSecondaryYScale: boolean) =>\n findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\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 = domainRangeOfNumericForAreaLineScatterCharts(points, margins, width, isRTL);\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 = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date\n ? formatDateToLocaleString(pointToHighlight, this.props.culture, this.props.useUTC)\n : pointToHighlight;\n const found = findCalloutPoints(this._calloutPoints, pointToHighlight);\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues = this._getFilteredLegendValues(found.values);\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this._shouldFillToZeroY()) {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n // The maxOfYVal prop is only required for the primary y-axis. When the data includes\n // a secondary y-axis, the mode defaults to tozeroy, so maxOfYVal should be calculated using\n // only the data points associated with the primary y-axis.\n maxOfYVal: this._containsSecondaryYAxis\n ? findNumericMinMaxOfY(this.props.data.lineChartData!).endValue\n : maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization && !this._hasDuplicateXValues) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n let data = {};\n const keys: string[] = [];\n let index = 0;\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n // if legend is not populated, then assign a legend\n if (this._hasDuplicateXValues && !singleChartPoint.legend) {\n singleChartPoint.legend = `chart${index}`;\n ++index;\n }\n singleChartPoint.data.forEach((point: ILineChartDataPointWithLegend) => {\n point.legend = singleChartPoint.legend;\n });\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n if (!this._hasDuplicateXValues) {\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) =>\n (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, id: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${id}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n data = this._getDataPoints(keys, dataSet);\n } else {\n const datasetForDuplicateValues = this._createDatasetForXCoordinateWithMultipleYValues(allChartPoints);\n data = this._getDataPoints(datasetForDuplicateValues.keys, datasetForDuplicateValues.filteredDataSet);\n }\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _createDatasetForXCoordinateWithMultipleYValues = (allChartPoints: ILineChartDataPoint[]) => {\n const dataSet: IAreaChartDataSetPoint[] = [];\n\n // Group data points by x-axis value\n const groupedData: Record<string | number, ILineChartDataPointWithLegend[]> = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPointWithLegend) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n if (!groupedData[xValue]) {\n groupedData[xValue] = [];\n }\n groupedData[xValue].push(dataPoint);\n });\n\n // Aggregate data points for each x-axis value\n Object.keys(groupedData).forEach(xValue => {\n const dataPoints = groupedData[xValue];\n dataPoints.forEach((dataPoint, id) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = { xVal: dataPoints[0].x };\n\n const key = dataPoint.legend ? dataPoint.legend : `chart${id}`;\n singleDataset[key] = dataPoint.y;\n dataSet.push(singleDataset);\n });\n });\n\n // get all unique keys from each array within the dataSet\n const allLegends: string[] = [];\n dataSet.forEach(item => {\n Object.keys(item).forEach(key => {\n if (key !== 'xVal' && !allLegends.includes(key)) {\n allLegends.push(key);\n }\n });\n });\n\n dataSet.forEach(item => {\n allLegends.forEach(legend => {\n if (!item[legend]) {\n item[legend] = 0; // Fill with 0 if the legend is missing\n }\n });\n });\n\n // exclude all items within dataset having all legend values 0\n const filteredDataSet = dataSet.filter(item => {\n return allLegends.some(legend => item[legend] !== 0);\n });\n\n const keys = Array.from(new Set(filteredDataSet.flatMap(item => Object.keys(item).filter(key => key !== 'xVal'))));\n\n return {\n keys,\n filteredDataSet,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, yScaleSecondary, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _getLegendData = (points: ILineChartPoints[]): JSXElement => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\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 _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n private _drawGraph = (\n containerHeight: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n xElement: SVGElement,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n ): JSXElement[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const graph: JSXElement[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const curveFactory = getCurveFactory(points[index]?.lineOptions?.curve, d3CurveBasis);\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const layerOpacity = this._shouldFillToZeroY() ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index]?.lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index]?.lineOptions?.strokeDasharray}\n strokeDashoffset={points[index]?.lineOptions?.strokeDashoffset}\n strokeLinecap={points[index]?.lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={\n (!this._hasDuplicateXValues && !this._hasMissingXValues && this._getAriaLabel(index, pointIndex)) ||\n undefined\n }\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\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(xScale);\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: classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getOnClickHandler = (points: ILineChartPoints[], index: number, pointIndex: number) => {\n return (\n !this._hasDuplicateXValues &&\n !this._hasMissingXValues && {\n onClick: this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!),\n }\n );\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._noLegendHighlighted() && !this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\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 _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\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 _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 _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n if (this._hasMissingXValues) {\n // get union of all x values\n const allXValues: Set<string | number> = new Set();\n lineChartData &&\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n lineChartData &&\n lineChartData.forEach((line: ILineChartPointsWithLegend) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPointWithLegend) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n line.data.push({\n x: typeof xValue === 'string' ? new Date(xValue) : xValue,\n y: 0,\n legend: line.legend,\n });\n }\n });\n // sort the data points by x value\n line.data.sort((a: ILineChartDataPoint, b: ILineChartDataPoint) => {\n const xA = a.x instanceof Date ? a.x.getTime() : a.x;\n const xB = b.x instanceof Date ? b.x.getTime() : b.x;\n return xA < xB ? -1 : xA > xB ? 1 : 0;\n });\n });\n }\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const found = findCalloutPoints(this._calloutPoints, x);\n if (found) {\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n return !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n\n private _xCoordinateContainsMultipleY(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n for (const item of lineChartData) {\n const xValueMap: Record<string, number[]> = {};\n for (const point of item.data) {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n if (!xValueMap[xValue]) {\n xValueMap[xValue] = [];\n }\n xValueMap[xValue].push(point.y);\n if (xValueMap[xValue].length > 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _containsMissingXValues(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n const allXValues: Set<string | number> = new Set();\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n // for all x values, check if the x value is present in all series\n let hasMissingValues = false;\n lineChartData.forEach((line: ILineChartPoints) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPoint) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n hasMissingValues = true;\n }\n });\n });\n return hasMissingValues;\n }\n\n private _shouldFillToZeroY() {\n return this.props.mode === 'tozeroy' || this._containsSecondaryYAxis;\n }\n}\n"]}
|
|
@@ -37,7 +37,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react/lib/Utilities",
|
|
|
37
37
|
function ChartTableBase(props) {
|
|
38
38
|
var _this = _super.call(this, props) || this;
|
|
39
39
|
_this.toImage = function (opts) {
|
|
40
|
-
return (0, image_export_utils_1.
|
|
40
|
+
return (0, image_export_utils_1.exportChartsAsImage)([{ container: _this._rootElem }], undefined, _this._isRTL, opts);
|
|
41
41
|
};
|
|
42
42
|
(0, Utilities_1.initializeComponentRef)(_this);
|
|
43
43
|
_this._isRTL = (0, Utilities_1.getRTL)(props.theme);
|
|
@@ -87,7 +87,9 @@ define(["require", "exports", "tslib", "react", "@fluentui/react/lib/Utilities",
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
return (React.createElement("div", { ref: function (el) {
|
|
90
|
+
return (React.createElement("div", { ref: function (el) {
|
|
91
|
+
_this._rootElem = el;
|
|
92
|
+
}, className: classNames.root, style: { height: height ? "".concat(height, "px") : '650px', overflow: 'hidden' } },
|
|
91
93
|
React.createElement("svg", { width: width !== null && width !== void 0 ? width : '100%', height: height !== null && height !== void 0 ? height : '650px', className: classNames.chart },
|
|
92
94
|
React.createElement("foreignObject", { x: "0", y: "0", width: "100%", height: "100%" },
|
|
93
95
|
React.createElement("div", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTable.base.js","sourceRoot":"../src/","sources":["components/ChartTable/ChartTable.base.tsx"],"names":[],"mappings":";;;;IAYA,SAAS,cAAc,CAAC,GAAW,EAAE,KAAa;QAChD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,cAAc,CAAC,QAAS,CAAC;QACxC,CAAC;QACD,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;IAED,SAAS,sBAAsB,CAC7B,KAAa,EACb,cAA2B,EAC3B,UAAmB,EACnB,UAAmB;QAEnB,IAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjD,IAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAM,UAAU,GAAG,IAAA,+BAAmB,EAAC,cAAc,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC;QACjF,IAAM,UAAU,GAAG,IAAA,+BAAmB,EAAC,cAAc,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC;QAEjF,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,IAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QAClE,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;QACxB,CAAC;QAED,IAAM,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QACzD,IAAM,gBAAgB,GAAG,IAAA,yBAAgB,EAAC,EAAE,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;QACtE,OAAO,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACzD,CAAC;IAED,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAA4C,CAAC;IAErF;QAAoC,0CAAiC;QAInE,wBAAY,KAAuB;YACjC,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;YAIR,aAAO,GAAG,UAAC,IAA0B;gBAC1C,OAAO,IAAA,4BAAO,EAAC,KAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC,CAAC;YALA,IAAA,kCAAsB,EAAC,KAAI,CAAC,CAAC;YAC7B,KAAI,CAAC,MAAM,GAAG,IAAA,kBAAM,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;QACpC,CAAC;QAKD,4DAA4D;QACrD,+BAAM,GAAb;YAAA,iBA+GC;;YA9GO,IAAA,KAAkD,IAAI,CAAC,KAAK,EAA1D,OAAO,aAAA,EAAE,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAe,CAAC;YAEnE,IAAM,UAAU,GAAG,aAAa,CAAC,MAAO,EAAE;gBACxC,KAAK,EAAE,KAAM;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,qDAA4B,CAAC;YACtC,CAAC;YACD,IAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;;gBACpB,IAAM,EAAE,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,eAAe,CAAC;gBAC1C,IAAM,UAAU,GAAG,MAAA,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,0CAAE,SAAS,EAAE,CAAC;gBACnD,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,qBAAyC,CAAC;YAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;YAEhC;;;;;;;;;cASE;YACF,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnD,IAAM,WAAW,GAAG,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClG,KAAqB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE,CAAC;oBAA1B,IAAM,MAAM,gBAAA;oBACf,IAAM,EAAE,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC;oBAChC,IAAI,EAAE,IAAI,IAAA,yBAAgB,EAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjD,qBAAqB,GAAG,WAAW,CAAC;wBACpC,mBAAmB,GAAG,IAAI,CAAC;wBAC3B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CACL,6BACE,GAAG,EAAE,UAAA,EAAE,IAAI,OAAA,CAAC,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAArB,CAAqB,EAChC,SAAS,EAAE,UAAU,CAAC,IAAI,EAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAEvE,6BAAK,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,EAAE,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK;oBACjF,uCAAe,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM;wBACnD,6BACE,KAAK,EAAE;gCACL,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,OAAO;gCAC3C,SAAS,EAAE,MAAM;gCACjB,SAAS,EAAE,MAAM;6BAClB;4BAED,+BACE,SAAS,EAAE,UAAU,CAAC,KAAK,EAC3B,KAAK,EAAE;oCACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,UAAG,KAAK,OAAI,CAAC,CAAC,CAAC,MAAM;iCACrC;gCAED;oCACE,gCACG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG;wCACvB,IAAM,KAAK,wBAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAE,CAAC;wCACnC,IAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;wCACvB,IAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC;wCAEjC,IAAI,mBAAmB,EAAE,CAAC;4CACxB,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAC;wCAChD,CAAC;6CAAM,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;4CACpB,KAAK,CAAC,eAAe,GAAG,sBAAsB,CAAC,KAAM,EAAE,KAAI,CAAC,SAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wCAClF,CAAC;wCACD,OAAO,CACL,4BAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,IACzD,MAAM,CAAC,KAAK,CACV,CACN,CAAC;oCACJ,CAAC,CAAC,CACC,CACC;gCACP,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,mCACG,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,MAAM,IAAK,OAAA,CACzB,4BAAI,GAAG,EAAE,MAAM,IACZ,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,MAAM;oCACpB,IAAM,KAAK,wBAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAE,CAAC;oCACjC,IAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;oCACvB,IAAM,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC;oCACjC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;wCACb,KAAK,CAAC,eAAe,GAAG,sBAAsB,CAAC,KAAM,EAAE,KAAI,CAAC,SAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oCAClF,CAAC;oCACD,OAAO,CACL,4BAAI,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAC1D,IAAI,CAAC,KAAK,CACR,CACN,CAAC;gCACJ,CAAC,CAAC,CACC,CACN,EAhB0B,CAgB1B,CAAC,CACI,CACT,CACK,CACJ,CACQ,CACZ,CACF,CACP,CAAC;QACJ,CAAC;QACH,qBAAC;IAAD,CAAC,AA9HD,CAAoC,KAAK,CAAC,SAAS,GA8HlD;IA9HY,wCAAc","sourcesContent":["import * as React from 'react';\nimport { IChartTableProps } from './ChartTable.types';\nimport { IChartTableStyleProps, IChartTableStyles } from '../../index';\nimport { classNamesFunction, getRTL, initializeComponentRef } from '@fluentui/react/lib/Utilities';\nimport { IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport * as d3 from 'd3-color';\nimport { getColorContrast } from '../../utilities/colors';\nimport { ITheme } from '@fluentui/react';\nimport { resolveCSSVariables } from '../../utilities/utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\nfunction invertHexColor(hex: string, theme: ITheme): string {\n const color = d3.color(hex);\n if (!color) {\n return theme.semanticColors.bodyText!;\n }\n const rgb = color.rgb();\n return d3.rgb(255 - rgb.r, 255 - rgb.g, 255 - rgb.b).formatHex();\n}\n\nfunction getSafeBackgroundColor(\n theme: ITheme,\n chartContainer: HTMLElement,\n foreground?: string,\n background?: string,\n): string {\n const fallbackFg = theme.semanticColors.bodyText;\n const fallbackBg = theme.semanticColors.bodyBackground;\n if (!chartContainer) {\n return fallbackBg;\n }\n\n const resolvedFg = resolveCSSVariables(chartContainer, foreground || fallbackFg);\n const resolvedBg = resolveCSSVariables(chartContainer, background || fallbackBg);\n\n const fg = d3.color(resolvedFg);\n const bg = d3.color(resolvedBg);\n\n if (!fg || !bg) {\n return resolvedBg;\n }\n const contrast = getColorContrast(fg.formatHex(), bg.formatHex());\n if (contrast >= 3) {\n return bg.formatHex();\n }\n\n const invertedBg = invertHexColor(bg.formatHex(), theme);\n const invertedContrast = getColorContrast(fg.formatHex(), invertedBg);\n return invertedContrast >= 3 ? invertedBg : fallbackBg;\n}\n\nconst getClassNames = classNamesFunction<IChartTableStyleProps, IChartTableStyles>();\n\nexport class ChartTableBase extends React.Component<IChartTableProps> {\n private _isRTL: boolean;\n private _rootElem: HTMLDivElement | null;\n\n constructor(props: IChartTableProps) {\n super(props);\n initializeComponentRef(this);\n this._isRTL = getRTL(props.theme);\n }\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return toImage(this._rootElem, undefined, this._isRTL, opts);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSXElement {\n const { headers, rows, width, height, styles, theme } = this.props;\n\n const classNames = getClassNames(styles!, {\n theme: theme!,\n });\n\n if (!headers || headers.length === 0) {\n return <div>No data available</div>;\n }\n const bgColorSet = new Set<string>();\n headers.forEach(header => {\n const bg = header?.style?.backgroundColor;\n const normalized = d3.color(bg || '')?.formatHex();\n if (normalized) {\n bgColorSet.add(normalized);\n }\n });\n let sharedBackgroundColor: string | undefined;\n let useSharedBackground = false;\n\n /*\n If we have only one or two unique background colors, we can consider using a shared background color\n for the table headers. This is to ensure better contrast with the foreground text.\n For size 1, we will consider that as default color if it satisfies the contrast ratio.\n There could also be a scenario where backgroundcolor array is of size 2, for eg: [\"dimsgray\", \"gray\"],\n which will assign 1st column header bg color to dimsgray and rest to gray. so our logic of shared background\n color won't run here. So will consider for size 2 as well.\n For size greater than this, we will consider that user wants different colors and will let color contrast fail\n if any.\n */\n if (bgColorSet.size === 1 || bgColorSet.size === 2) {\n const candidateBg = bgColorSet.size === 1 ? Array.from(bgColorSet)[0] : Array.from(bgColorSet)[1];\n for (const header of headers) {\n const fg = header?.style?.color;\n if (fg && getColorContrast(fg, candidateBg) >= 3) {\n sharedBackgroundColor = candidateBg;\n useSharedBackground = true;\n break;\n }\n }\n }\n\n return (\n <div\n ref={el => (this._rootElem = el)}\n className={classNames.root}\n style={{ height: height ? `${height}px` : '650px', overflow: 'hidden' }}\n >\n <svg width={width ?? '100%'} height={height ?? '650px'} className={classNames.chart}>\n <foreignObject x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n <div\n style={{\n maxHeight: height ? `${height}px` : '650px',\n overflowY: 'auto',\n overflowX: 'auto',\n }}\n >\n <table\n className={classNames.table}\n style={{\n width: width ? `${width}px` : '100%',\n }}\n >\n <thead>\n <tr>\n {headers.map((header, idx) => {\n const style = { ...header?.style };\n const fg = style.color;\n const bg = style.backgroundColor;\n\n if (useSharedBackground) {\n style.backgroundColor = sharedBackgroundColor;\n } else if (fg || bg) {\n style.backgroundColor = getSafeBackgroundColor(theme!, this._rootElem!, fg, bg);\n }\n return (\n <th key={idx} className={classNames.headerCell} style={style}>\n {header.value}\n </th>\n );\n })}\n </tr>\n </thead>\n {rows && rows.length > 0 && (\n <tbody>\n {rows.map((row, rowIdx) => (\n <tr key={rowIdx}>\n {row.map((cell, colIdx) => {\n const style = { ...cell?.style };\n const fg = style.color;\n const bg = style.backgroundColor;\n if (fg || bg) {\n style.backgroundColor = getSafeBackgroundColor(theme!, this._rootElem!, fg, bg);\n }\n return (\n <td key={colIdx} className={classNames.bodyCell} style={style}>\n {cell.value}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n </div>\n </foreignObject>\n </svg>\n </div>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ChartTable.base.js","sourceRoot":"../src/","sources":["components/ChartTable/ChartTable.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IChartTableProps } from './ChartTable.types';\nimport { IChartTableStyleProps, IChartTableStyles } from '../../index';\nimport { classNamesFunction, getRTL, initializeComponentRef } from '@fluentui/react/lib/Utilities';\nimport { IImageExportOptions } from '../../types/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport * as d3 from 'd3-color';\nimport { getColorContrast } from '../../utilities/colors';\nimport { ITheme } from '@fluentui/react';\nimport { resolveCSSVariables } from '../../utilities/utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\nfunction invertHexColor(hex: string, theme: ITheme): string {\n const color = d3.color(hex);\n if (!color) {\n return theme.semanticColors.bodyText!;\n }\n const rgb = color.rgb();\n return d3.rgb(255 - rgb.r, 255 - rgb.g, 255 - rgb.b).formatHex();\n}\n\nfunction getSafeBackgroundColor(\n theme: ITheme,\n chartContainer: HTMLElement,\n foreground?: string,\n background?: string,\n): string {\n const fallbackFg = theme.semanticColors.bodyText;\n const fallbackBg = theme.semanticColors.bodyBackground;\n if (!chartContainer) {\n return fallbackBg;\n }\n\n const resolvedFg = resolveCSSVariables(chartContainer, foreground || fallbackFg);\n const resolvedBg = resolveCSSVariables(chartContainer, background || fallbackBg);\n\n const fg = d3.color(resolvedFg);\n const bg = d3.color(resolvedBg);\n\n if (!fg || !bg) {\n return resolvedBg;\n }\n const contrast = getColorContrast(fg.formatHex(), bg.formatHex());\n if (contrast >= 3) {\n return bg.formatHex();\n }\n\n const invertedBg = invertHexColor(bg.formatHex(), theme);\n const invertedContrast = getColorContrast(fg.formatHex(), invertedBg);\n return invertedContrast >= 3 ? invertedBg : fallbackBg;\n}\n\nconst getClassNames = classNamesFunction<IChartTableStyleProps, IChartTableStyles>();\n\nexport class ChartTableBase extends React.Component<IChartTableProps> {\n private _isRTL: boolean;\n private _rootElem: HTMLDivElement | null;\n\n constructor(props: IChartTableProps) {\n super(props);\n initializeComponentRef(this);\n this._isRTL = getRTL(props.theme);\n }\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage([{ container: this._rootElem }], undefined, this._isRTL, opts);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSXElement {\n const { headers, rows, width, height, styles, theme } = this.props;\n\n const classNames = getClassNames(styles!, {\n theme: theme!,\n });\n\n if (!headers || headers.length === 0) {\n return <div>No data available</div>;\n }\n const bgColorSet = new Set<string>();\n headers.forEach(header => {\n const bg = header?.style?.backgroundColor;\n const normalized = d3.color(bg || '')?.formatHex();\n if (normalized) {\n bgColorSet.add(normalized);\n }\n });\n let sharedBackgroundColor: string | undefined;\n let useSharedBackground = false;\n\n /*\n If we have only one or two unique background colors, we can consider using a shared background color\n for the table headers. This is to ensure better contrast with the foreground text.\n For size 1, we will consider that as default color if it satisfies the contrast ratio.\n There could also be a scenario where backgroundcolor array is of size 2, for eg: [\"dimsgray\", \"gray\"],\n which will assign 1st column header bg color to dimsgray and rest to gray. so our logic of shared background\n color won't run here. So will consider for size 2 as well.\n For size greater than this, we will consider that user wants different colors and will let color contrast fail\n if any.\n */\n if (bgColorSet.size === 1 || bgColorSet.size === 2) {\n const candidateBg = bgColorSet.size === 1 ? Array.from(bgColorSet)[0] : Array.from(bgColorSet)[1];\n for (const header of headers) {\n const fg = header?.style?.color;\n if (fg && getColorContrast(fg, candidateBg) >= 3) {\n sharedBackgroundColor = candidateBg;\n useSharedBackground = true;\n break;\n }\n }\n }\n\n return (\n <div\n ref={el => {\n this._rootElem = el;\n }}\n className={classNames.root}\n style={{ height: height ? `${height}px` : '650px', overflow: 'hidden' }}\n >\n <svg width={width ?? '100%'} height={height ?? '650px'} className={classNames.chart}>\n <foreignObject x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n <div\n style={{\n maxHeight: height ? `${height}px` : '650px',\n overflowY: 'auto',\n overflowX: 'auto',\n }}\n >\n <table\n className={classNames.table}\n style={{\n width: width ? `${width}px` : '100%',\n }}\n >\n <thead>\n <tr>\n {headers.map((header, idx) => {\n const style = { ...header?.style };\n const fg = style.color;\n const bg = style.backgroundColor;\n\n if (useSharedBackground) {\n style.backgroundColor = sharedBackgroundColor;\n } else if (fg || bg) {\n style.backgroundColor = getSafeBackgroundColor(theme!, this._rootElem!, fg, bg);\n }\n return (\n <th key={idx} className={classNames.headerCell} style={style}>\n {header.value}\n </th>\n );\n })}\n </tr>\n </thead>\n {rows && rows.length > 0 && (\n <tbody>\n {rows.map((row, rowIdx) => (\n <tr key={rowIdx}>\n {row.map((cell, colIdx) => {\n const style = { ...cell?.style };\n const fg = style.color;\n const bg = style.backgroundColor;\n if (fg || bg) {\n style.backgroundColor = getSafeBackgroundColor(theme!, this._rootElem!, fg, bg);\n }\n return (\n <td key={colIdx} className={classNames.bodyCell} style={style}>\n {cell.value}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n )}\n </table>\n </div>\n </foreignObject>\n </svg>\n </div>\n );\n }\n}\n"]}
|