@fluentui/react-charts 9.3.5 → 9.3.6
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.md +23 -2
- package/dist/index.d.ts +223 -44
- package/lib/AnnotationOnlyChart.js +1 -0
- package/lib/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js +208 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/index.js +2 -0
- package/lib/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js +31 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js +23 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js.map +1 -0
- package/lib/components/AreaChart/useAreaChartStyles.styles.js +11 -6
- package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +3 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib/components/ChartTable/useChartTableStyles.styles.js +59 -39
- package/lib/components/ChartTable/useChartTableStyles.styles.js.map +1 -1
- package/lib/components/ChartTable/useChartTableStyles.styles.raw.js +5 -5
- package/lib/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +617 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js +1 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/index.js +2 -0
- package/lib/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +173 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +126 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.js +157 -132
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/index.js +2 -0
- package/lib/components/CommonComponents/index.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +29 -13
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +14 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +2 -6
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js +3 -2
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +39 -19
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +4 -8
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +644 -72
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +23 -8
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +2 -2
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +2 -2
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.js +3 -3
- package/lib/components/GanttChart/GanttChart.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.js +3 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +3 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +11 -6
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +3 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +3 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +25 -12
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +4 -4
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +2 -2
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +3 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +3 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.js +97 -37
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.raw.js +10 -11
- package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +1 -1
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js +15 -10
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js +3 -1
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +13 -10
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +1 -1
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js +13 -8
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +3 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +13 -8
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +11 -6
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +3 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/ChartAnnotation.js +1 -0
- package/lib/types/ChartAnnotation.js.map +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/index.js.map +1 -1
- package/lib/utilities/Common.styles.js +1 -2
- package/lib/utilities/Common.styles.js.map +1 -1
- package/lib/utilities/Common.styles.raw.js +1 -2
- package/lib/utilities/Common.styles.raw.js.map +1 -1
- package/lib/utilities/image-export-utils.js +108 -0
- package/lib/utilities/image-export-utils.js.map +1 -1
- package/lib/utilities/utilities.js +16 -13
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-commonjs/AnnotationOnlyChart.js +6 -0
- package/lib-commonjs/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +219 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +6 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js +7 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js +56 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js +33 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +14 -15
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.js +74 -102
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js +4 -4
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +628 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js +4 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js +7 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +265 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +161 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +157 -131
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/index.js +2 -0
- package/lib-commonjs/components/CommonComponents/index.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +32 -21
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +14 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +0 -14
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js +2 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +38 -18
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +630 -38
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +25 -16
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +2 -2
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.js +3 -3
- package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +3 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +14 -15
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +3 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +47 -34
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +3 -3
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +2 -2
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +3 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +144 -86
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js +9 -10
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +18 -19
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +16 -19
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +16 -17
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +16 -17
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +14 -15
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/index.js +1 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/ChartAnnotation.js +6 -0
- package/lib-commonjs/types/ChartAnnotation.js.map +1 -0
- package/lib-commonjs/types/index.js +1 -0
- package/lib-commonjs/types/index.js.map +1 -1
- package/lib-commonjs/utilities/Common.styles.js +1 -2
- package/lib-commonjs/utilities/Common.styles.js.map +1 -1
- package/lib-commonjs/utilities/Common.styles.raw.js +1 -2
- package/lib-commonjs/utilities/Common.styles.raw.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.js +108 -0
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +16 -13
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +11 -11
|
@@ -5,13 +5,18 @@ import { select as d3Select } from 'd3-selection';
|
|
|
5
5
|
import { createNumericXAxis, createStringXAxis, createDateXAxis, XAxisTypes, YAxisType, createWrapOfXLabels, rotateXAxisLabels, calculateLongestLabelWidth, createYAxisLabels, ChartTypes, wrapContent, useRtl, truncateString, tooltipOfAxislabels, getSecureProps, DEFAULT_WRAP_WIDTH } from '../../utilities/index';
|
|
6
6
|
import { useId } from '@fluentui/react-utilities';
|
|
7
7
|
import { SVGTooltipText } from '../../utilities/SVGTooltipText';
|
|
8
|
+
import { ChartAnnotationLayer } from './Annotations/ChartAnnotationLayer';
|
|
8
9
|
import { ChartPopover } from './ChartPopover';
|
|
9
10
|
import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabster';
|
|
11
|
+
const HORIZONTAL_MARGIN_FOR_YAXIS_TITLE = 24;
|
|
12
|
+
const VERTICAL_MARGIN_FOR_XAXIS_TITLE = 20;
|
|
13
|
+
const AXIS_TITLE_PADDING = 8;
|
|
14
|
+
const DEFAULT_MARGIN_WITH_TICKS = 40;
|
|
15
|
+
const DEFAULT_MARGIN_NO_TICKS = 20;
|
|
10
16
|
/**
|
|
11
17
|
* Cartesian Chart component
|
|
12
18
|
* {@docCategory CartesianChart}
|
|
13
19
|
*/ export const CartesianChart = /*#__PURE__*/ React.forwardRef(({ hideTickOverlap = true, ...props }, forwardedRef)=>{
|
|
14
|
-
var _props_margins, _props_margins1, _props_margins2, _props_margins3, _props_margins4, _props_margins5;
|
|
15
20
|
const chartContainer = React.useRef(null);
|
|
16
21
|
let legendContainer;
|
|
17
22
|
const minLegendContainerHeight = 40;
|
|
@@ -23,7 +28,6 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
23
28
|
let _reqID;
|
|
24
29
|
const _useRtl = useRtl();
|
|
25
30
|
let _tickValues;
|
|
26
|
-
const titleMargin = 8;
|
|
27
31
|
const _isFirstRender = React.useRef(true);
|
|
28
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
33
|
let _xScale;
|
|
@@ -39,61 +43,12 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
39
43
|
* These value need to be removed from actual svg height/graph height.
|
|
40
44
|
* Defalut value is 0. And this values calculted when 'wrapXAxisLables' or 'showXAxisLablesTooltip' is true.
|
|
41
45
|
*/ let _removalValueForTextTuncate = 0;
|
|
46
|
+
const _yAxisTickText = React.useRef([]);
|
|
42
47
|
const [containerWidth, setContainerWidth] = React.useState(0);
|
|
43
48
|
const [containerHeight, setContainerHeight] = React.useState(0);
|
|
44
49
|
const [startFromX, setStartFromX] = React.useState(0);
|
|
45
50
|
const prevWidthRef = React.useRef(undefined);
|
|
46
51
|
const prevHeightRef = React.useRef(undefined);
|
|
47
|
-
const chartTypesWithStringYAxis = [
|
|
48
|
-
ChartTypes.HorizontalBarChartWithAxis,
|
|
49
|
-
ChartTypes.HeatMapChart,
|
|
50
|
-
ChartTypes.VerticalStackedBarChart,
|
|
51
|
-
ChartTypes.GanttChart,
|
|
52
|
-
ChartTypes.ScatterChart
|
|
53
|
-
];
|
|
54
|
-
var _props_margins_top, _props_margins_bottom, _props_margins_left, _props_margins_right, _props_margins_right1, _props_margins_left1;
|
|
55
|
-
/**
|
|
56
|
-
* In RTL mode, Only graph will be rendered left/right. We need to provide left and right margins manually.
|
|
57
|
-
* So that, in RTL, left margins becomes right margins and viceversa.
|
|
58
|
-
* As graph needs to be drawn perfecty, these values consider as default values.
|
|
59
|
-
* Same margins using for all other cartesian charts. Can be accessible through 'getMargins' call back method.
|
|
60
|
-
*/ // eslint-disable-next-line prefer-const
|
|
61
|
-
margins = {
|
|
62
|
-
top: (_props_margins_top = (_props_margins = props.margins) === null || _props_margins === void 0 ? void 0 : _props_margins.top) !== null && _props_margins_top !== void 0 ? _props_margins_top : 20,
|
|
63
|
-
bottom: (_props_margins_bottom = (_props_margins1 = props.margins) === null || _props_margins1 === void 0 ? void 0 : _props_margins1.bottom) !== null && _props_margins_bottom !== void 0 ? _props_margins_bottom : 35,
|
|
64
|
-
right: _useRtl ? (_props_margins_left = (_props_margins2 = props.margins) === null || _props_margins2 === void 0 ? void 0 : _props_margins2.left) !== null && _props_margins_left !== void 0 ? _props_margins_left : 40 : ((_props_margins_right = (_props_margins3 = props.margins) === null || _props_margins3 === void 0 ? void 0 : _props_margins3.right) !== null && _props_margins_right !== void 0 ? _props_margins_right : props === null || props === void 0 ? void 0 : props.secondaryYScaleOptions) ? 40 : 20,
|
|
65
|
-
left: _useRtl ? ((_props_margins_right1 = (_props_margins4 = props.margins) === null || _props_margins4 === void 0 ? void 0 : _props_margins4.right) !== null && _props_margins_right1 !== void 0 ? _props_margins_right1 : props === null || props === void 0 ? void 0 : props.secondaryYScaleOptions) ? 40 : 20 : (_props_margins_left1 = (_props_margins5 = props.margins) === null || _props_margins5 === void 0 ? void 0 : _props_margins5.left) !== null && _props_margins_left1 !== void 0 ? _props_margins_left1 : 40
|
|
66
|
-
};
|
|
67
|
-
const TITLE_MARGIN_HORIZONTAL = 24;
|
|
68
|
-
const TITLE_MARGIN_VERTICAL = 20;
|
|
69
|
-
if (props.xAxisTitle !== undefined && props.xAxisTitle !== '') {
|
|
70
|
-
var _props_margins6;
|
|
71
|
-
var _props_margins_bottom1;
|
|
72
|
-
margins.bottom = (_props_margins_bottom1 = (_props_margins6 = props.margins) === null || _props_margins6 === void 0 ? void 0 : _props_margins6.bottom) !== null && _props_margins_bottom1 !== void 0 ? _props_margins_bottom1 : margins.bottom + TITLE_MARGIN_VERTICAL;
|
|
73
|
-
}
|
|
74
|
-
if (props.yAxisTitle !== undefined && props.yAxisTitle !== '') {
|
|
75
|
-
var _props_margins7, _props_margins8, _props_margins9, _props_margins10;
|
|
76
|
-
var _props_margins_right2, _props_margins_left2;
|
|
77
|
-
margins.left = _useRtl ? ((_props_margins_right2 = (_props_margins7 = props.margins) === null || _props_margins7 === void 0 ? void 0 : _props_margins7.right) !== null && _props_margins_right2 !== void 0 ? _props_margins_right2 : props === null || props === void 0 ? void 0 : props.secondaryYAxistitle) ? margins.right + 2 * TITLE_MARGIN_HORIZONTAL : margins.right + TITLE_MARGIN_HORIZONTAL : (_props_margins_left2 = (_props_margins8 = props.margins) === null || _props_margins8 === void 0 ? void 0 : _props_margins8.left) !== null && _props_margins_left2 !== void 0 ? _props_margins_left2 : margins.left + TITLE_MARGIN_HORIZONTAL;
|
|
78
|
-
var _props_margins_left3, _props_margins_right3;
|
|
79
|
-
margins.right = _useRtl ? (_props_margins_left3 = (_props_margins9 = props.margins) === null || _props_margins9 === void 0 ? void 0 : _props_margins9.left) !== null && _props_margins_left3 !== void 0 ? _props_margins_left3 : margins.left + TITLE_MARGIN_HORIZONTAL : ((_props_margins_right3 = (_props_margins10 = props.margins) === null || _props_margins10 === void 0 ? void 0 : _props_margins10.right) !== null && _props_margins_right3 !== void 0 ? _props_margins_right3 : props === null || props === void 0 ? void 0 : props.secondaryYAxistitle) ? margins.right + 2 * TITLE_MARGIN_HORIZONTAL : margins.right + TITLE_MARGIN_HORIZONTAL;
|
|
80
|
-
}
|
|
81
|
-
if (props.xAxisAnnotation !== undefined && props.xAxisAnnotation !== '') {
|
|
82
|
-
var _props_margins11;
|
|
83
|
-
var _props_margins_top1;
|
|
84
|
-
margins.top = (_props_margins_top1 = (_props_margins11 = props.margins) === null || _props_margins11 === void 0 ? void 0 : _props_margins11.top) !== null && _props_margins_top1 !== void 0 ? _props_margins_top1 : margins.top + TITLE_MARGIN_VERTICAL;
|
|
85
|
-
}
|
|
86
|
-
if (props.yAxisAnnotation !== undefined && props.yAxisAnnotation !== '' && (props.secondaryYAxistitle === undefined || props.secondaryYAxistitle === '')) {
|
|
87
|
-
if (_useRtl) {
|
|
88
|
-
var _props_margins12;
|
|
89
|
-
var _props_margins_right4;
|
|
90
|
-
margins.left = (_props_margins_right4 = (_props_margins12 = props.margins) === null || _props_margins12 === void 0 ? void 0 : _props_margins12.right) !== null && _props_margins_right4 !== void 0 ? _props_margins_right4 : margins.right + TITLE_MARGIN_HORIZONTAL;
|
|
91
|
-
} else {
|
|
92
|
-
var _props_margins13;
|
|
93
|
-
var _props_margins_right5;
|
|
94
|
-
margins.right = (_props_margins_right5 = (_props_margins13 = props.margins) === null || _props_margins13 === void 0 ? void 0 : _props_margins13.right) !== null && _props_margins_right5 !== void 0 ? _props_margins_right5 : margins.right + TITLE_MARGIN_HORIZONTAL;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
52
|
const classes = useCartesianChartStyles(props);
|
|
98
53
|
const focusAttributes = useFocusableGroup();
|
|
99
54
|
const arrowAttributes = useArrowNavigationGroup({
|
|
@@ -102,7 +57,7 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
102
57
|
// ComponentdidMount and Componentwillunmount logic
|
|
103
58
|
React.useEffect(()=>{
|
|
104
59
|
_fitParentContainer();
|
|
105
|
-
if (
|
|
60
|
+
if (props.showYAxisLables) {
|
|
106
61
|
const maxYAxisLabelLength = calculateMaxYAxisLabelLength(classes.yAxis);
|
|
107
62
|
if (startFromX !== maxYAxisLabelLength) {
|
|
108
63
|
setStartFromX(maxYAxisLabelLength);
|
|
@@ -127,7 +82,7 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
127
82
|
// Update refs with current values
|
|
128
83
|
prevWidthRef.current = props.width;
|
|
129
84
|
prevHeightRef.current = props.height;
|
|
130
|
-
if (
|
|
85
|
+
if (props.showYAxisLables) {
|
|
131
86
|
const maxYAxisLabelLength = calculateMaxYAxisLabelLength(classes.yAxis);
|
|
132
87
|
if (startFromX !== maxYAxisLabelLength) {
|
|
133
88
|
setStartFromX(maxYAxisLabelLength);
|
|
@@ -165,33 +120,26 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
165
120
|
}
|
|
166
121
|
return str;
|
|
167
122
|
};
|
|
168
|
-
return calculateLongestLabelWidth(
|
|
123
|
+
return calculateLongestLabelWidth(_yAxisTickText.current.map((label)=>formatTickLabel(label)), `.${className} text`);
|
|
169
124
|
}
|
|
170
125
|
const { calloutProps, points, chartType, svgProps, culture, dateLocalizeOptions, timeFormatLocale, customDateTimeFormatter } = props;
|
|
171
126
|
if (props.parentRef) {
|
|
172
127
|
_fitParentContainer();
|
|
173
128
|
}
|
|
174
|
-
|
|
175
|
-
...margins
|
|
176
|
-
};
|
|
177
|
-
// Note: This check is unnecessary since startFromX is only set for charts with string y-axis.
|
|
178
|
-
if (chartTypesWithStringYAxis.includes(props.chartType)) {
|
|
179
|
-
if (!_useRtl) {
|
|
180
|
-
margin.left += startFromX;
|
|
181
|
-
} else {
|
|
182
|
-
margin.right += startFromX;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
129
|
+
margins = _calcMargins();
|
|
185
130
|
// Callback for margins to the chart
|
|
186
|
-
props.getmargins && props.getmargins(
|
|
131
|
+
props.getmargins && props.getmargins(margins);
|
|
187
132
|
let callout = null;
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
134
|
+
let yScalePrimary;
|
|
135
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
136
|
+
let yScaleSecondary;
|
|
188
137
|
let children = null;
|
|
189
138
|
if (props.enableFirstRenderOptimization && chartContainer.current || !props.enableFirstRenderOptimization) {
|
|
190
139
|
_isFirstRender.current = false;
|
|
191
140
|
var _props_showRoundOffXTickValues;
|
|
192
141
|
const XAxisParams = {
|
|
193
|
-
domainNRangeValues: props.getDomainNRangeValues(points, props.getDomainMargins ? props.getDomainMargins(containerWidth) : margins, containerWidth, chartType, _useRtl, props.xAxisType, props.barwidth, props.tickValues,
|
|
194
|
-
startFromX),
|
|
142
|
+
domainNRangeValues: props.getDomainNRangeValues(points, props.getDomainMargins ? props.getDomainMargins(containerWidth) : margins, containerWidth, chartType, _useRtl, props.xAxisType, props.barwidth, props.tickValues),
|
|
195
143
|
// FIXME: In XAxisParams, containerHeight is used by HBWA to generate vertical gridlines.
|
|
196
144
|
// Since the x-axis in HBWA is numeric, it typically doesn't require transformation.
|
|
197
145
|
// However, if transformation props are enabled, the updated _removalValueForTextTuncate
|
|
@@ -261,15 +209,12 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
261
209
|
* 1. To create x and y axis
|
|
262
210
|
* 2. To draw the graph.
|
|
263
211
|
* For area/line chart using same scales. For other charts, creating their own scales to draw the graph.
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
let yScaleSecondary;
|
|
268
|
-
const axisData = {
|
|
269
|
-
yAxisDomainValues: []
|
|
212
|
+
*/ const axisData = {
|
|
213
|
+
yAxisDomainValues: [],
|
|
214
|
+
yAxisTickText: []
|
|
270
215
|
};
|
|
271
216
|
if (props.yAxisType && props.yAxisType === YAxisType.StringAxis) {
|
|
272
|
-
yScalePrimary = props.createStringYAxis(YAxisParams, props.stringDatasetForYAxisDomain, _useRtl, props.barwidth, props.chartType);
|
|
217
|
+
yScalePrimary = props.createStringYAxis(YAxisParams, props.stringDatasetForYAxisDomain, _useRtl, axisData, props.barwidth, props.chartType);
|
|
273
218
|
} else {
|
|
274
219
|
// TODO: Since the scale domain values are now computed independently for both the primary and
|
|
275
220
|
// secondary y-axes, the yMinValue and yMaxValue props are no longer necessary for accurately
|
|
@@ -296,42 +241,41 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
296
241
|
}
|
|
297
242
|
yScalePrimary = props.createYAxis(YAxisParams, _useRtl, axisData, isIntegralDataset, chartType, false, props.roundedTicks, props.yScaleType, _useRtl);
|
|
298
243
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
244
|
+
_yAxisTickText.current = axisData.yAxisTickText;
|
|
245
|
+
props.getAxisData && props.getAxisData(axisData);
|
|
246
|
+
// Removing un wanted tooltip div from DOM, when prop not provided, for proper cleanup
|
|
247
|
+
// of unwanted DOM elements, to prevent flacky behaviour in tooltips , that might occur
|
|
248
|
+
// in creating tooltips when tooltips are enabled( as we try to recreate a tspan with _tooltipId)
|
|
249
|
+
if (!props.showYAxisLablesTooltip) {
|
|
250
|
+
try {
|
|
251
|
+
document.getElementById(_tooltipId) && document.getElementById(_tooltipId).remove();
|
|
252
|
+
//eslint-disable-next-line no-empty
|
|
253
|
+
} catch (e) {}
|
|
254
|
+
}
|
|
255
|
+
// Used to display tooltip at y axis labels.
|
|
256
|
+
if (props.showYAxisLablesTooltip) {
|
|
257
|
+
// To create y axis tick values by if specified truncating the rest of the text
|
|
258
|
+
// and showing elipsis or showing the whole string,
|
|
259
|
+
yScalePrimary && // Note: This function should be invoked within the showYAxisLablesTooltip check,
|
|
260
|
+
// as its sole purpose is to truncate labels that exceed the noOfCharsToTruncate limit.
|
|
261
|
+
createYAxisLabels(yAxisElement.current, yScalePrimary, props.noOfCharsToTruncate || 4, props.showYAxisLablesTooltip || false, _useRtl);
|
|
262
|
+
const _yAxisElement = d3Select(yAxisElement.current).call(yScalePrimary);
|
|
263
|
+
try {
|
|
264
|
+
document.getElementById(_tooltipId) && document.getElementById(_tooltipId).remove();
|
|
265
|
+
//eslint-disable-next-line no-empty
|
|
266
|
+
} catch (e) {}
|
|
267
|
+
const ytooltipProps = {
|
|
268
|
+
tooltipCls: classes.tooltip,
|
|
269
|
+
id: _tooltipId,
|
|
270
|
+
axis: _yAxisElement
|
|
271
|
+
};
|
|
272
|
+
_yAxisElement && tooltipOfAxislabels(ytooltipProps);
|
|
328
273
|
}
|
|
329
274
|
// Call back to the chart.
|
|
330
275
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
331
276
|
const _getData = (xScale, yScalePrimary, yScaleSecondary)=>{
|
|
332
277
|
props.getGraphData && props.getGraphData(xScale, yScalePrimary, containerHeight - _removalValueForTextTuncate, containerWidth, xAxisElement.current, yAxisElement.current, yScaleSecondary);
|
|
333
278
|
};
|
|
334
|
-
props.getAxisData && props.getAxisData(axisData);
|
|
335
279
|
// Callback function for chart, returns axis
|
|
336
280
|
_getData(xScale, yScalePrimary, yScaleSecondary);
|
|
337
281
|
children = props.children({
|
|
@@ -349,8 +293,30 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
349
293
|
width: containerWidth,
|
|
350
294
|
height: containerHeight
|
|
351
295
|
};
|
|
352
|
-
const
|
|
353
|
-
const
|
|
296
|
+
const plotWidth = Math.max(0, svgDimensions.width - margins.left - margins.right);
|
|
297
|
+
const plotHeight = Math.max(0, svgDimensions.height - margins.top - margins.bottom - _removalValueForTextTuncate);
|
|
298
|
+
const plotRect = {
|
|
299
|
+
x: margins.left,
|
|
300
|
+
y: margins.top,
|
|
301
|
+
width: plotWidth,
|
|
302
|
+
height: plotHeight
|
|
303
|
+
};
|
|
304
|
+
var _props_annotations;
|
|
305
|
+
const annotations = (_props_annotations = props.annotations) !== null && _props_annotations !== void 0 ? _props_annotations : [];
|
|
306
|
+
const hasAnnotations = annotations.length > 0;
|
|
307
|
+
const annotationContext = hasAnnotations ? {
|
|
308
|
+
plotRect,
|
|
309
|
+
svgRect: svgDimensions,
|
|
310
|
+
isRtl: _useRtl,
|
|
311
|
+
xScale: _xScale,
|
|
312
|
+
yScalePrimary,
|
|
313
|
+
yScaleSecondary
|
|
314
|
+
} : undefined;
|
|
315
|
+
const xAxisTitleMaxWidth = svgDimensions.width - margins.left - margins.right - AXIS_TITLE_PADDING * 2;
|
|
316
|
+
const yAxisTitleMaxHeight = svgDimensions.height - margins.bottom - margins.top - _removalValueForTextTuncate - AXIS_TITLE_PADDING * 2;
|
|
317
|
+
const yAxisTitleCenterY = margins.top + AXIS_TITLE_PADDING + yAxisTitleMaxHeight / 2;
|
|
318
|
+
const yAxisTitleCenterX = _useRtl ? svgDimensions.width - AXIS_TITLE_PADDING : HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING;
|
|
319
|
+
const secondaryYAxisTitleCenterX = _useRtl ? HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING : svgDimensions.width - AXIS_TITLE_PADDING;
|
|
354
320
|
const commonSvgToolTipProps = {
|
|
355
321
|
wrapContent,
|
|
356
322
|
showBackground: true,
|
|
@@ -470,6 +436,64 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
470
436
|
_removalValueForTextTuncate = rotatedHeight + margins.bottom;
|
|
471
437
|
}
|
|
472
438
|
}
|
|
439
|
+
function _calcMargins() {
|
|
440
|
+
let _margins = _getDefaultMargins();
|
|
441
|
+
_margins = _applyTitleMargins(_margins);
|
|
442
|
+
_margins = _applyAnnotationMargins(_margins);
|
|
443
|
+
if (_useRtl) {
|
|
444
|
+
_margins = _swapRtlMargins(_margins);
|
|
445
|
+
}
|
|
446
|
+
return {
|
|
447
|
+
..._margins,
|
|
448
|
+
...props.margins
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function _getDefaultMargins() {
|
|
452
|
+
return {
|
|
453
|
+
top: DEFAULT_MARGIN_NO_TICKS,
|
|
454
|
+
// Smaller than the default because it is based on the line height rather than
|
|
455
|
+
// the length of the tick labels.
|
|
456
|
+
bottom: DEFAULT_MARGIN_WITH_TICKS - 5,
|
|
457
|
+
// For the actual margin, add the tick size, tick padding, and some extra space to
|
|
458
|
+
// the width of the longest yaxis tick label (startFromX).
|
|
459
|
+
left: Math.max(DEFAULT_MARGIN_WITH_TICKS, startFromX + 20),
|
|
460
|
+
right: props.secondaryYScaleOptions ? DEFAULT_MARGIN_WITH_TICKS : DEFAULT_MARGIN_NO_TICKS
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
function _applyTitleMargins(_margins) {
|
|
464
|
+
const updated = {
|
|
465
|
+
..._margins
|
|
466
|
+
};
|
|
467
|
+
if (props.xAxisTitle !== undefined && props.xAxisTitle !== '') {
|
|
468
|
+
updated.bottom += VERTICAL_MARGIN_FOR_XAXIS_TITLE;
|
|
469
|
+
}
|
|
470
|
+
if (props.yAxisTitle !== undefined && props.yAxisTitle !== '') {
|
|
471
|
+
updated.left += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;
|
|
472
|
+
}
|
|
473
|
+
if (props.secondaryYAxistitle !== undefined && props.secondaryYAxistitle !== '') {
|
|
474
|
+
updated.right += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;
|
|
475
|
+
}
|
|
476
|
+
return updated;
|
|
477
|
+
}
|
|
478
|
+
function _applyAnnotationMargins(_margins) {
|
|
479
|
+
const updated = {
|
|
480
|
+
..._margins
|
|
481
|
+
};
|
|
482
|
+
if (props.xAxisAnnotation !== undefined && props.xAxisAnnotation !== '') {
|
|
483
|
+
updated.top += VERTICAL_MARGIN_FOR_XAXIS_TITLE;
|
|
484
|
+
}
|
|
485
|
+
if (props.yAxisAnnotation !== undefined && props.yAxisAnnotation !== '' && (props.secondaryYAxistitle === undefined || props.secondaryYAxistitle === '')) {
|
|
486
|
+
updated.right += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;
|
|
487
|
+
}
|
|
488
|
+
return updated;
|
|
489
|
+
}
|
|
490
|
+
function _swapRtlMargins(_margins) {
|
|
491
|
+
return {
|
|
492
|
+
..._margins,
|
|
493
|
+
left: _margins.right,
|
|
494
|
+
right: _margins.left
|
|
495
|
+
};
|
|
496
|
+
}
|
|
473
497
|
/**
|
|
474
498
|
* We have use the {@link defaultTabbableElement } to fix
|
|
475
499
|
* the Focus not landing on chart while tabbing, instead goes to legend.
|
|
@@ -521,75 +545,76 @@ import { useFocusableGroup, useArrowNavigationGroup } from '@fluentui/react-tabs
|
|
|
521
545
|
...commonSvgToolTipProps,
|
|
522
546
|
content: props.xAxisTitle,
|
|
523
547
|
textProps: {
|
|
524
|
-
x: margins.left +
|
|
525
|
-
y: svgDimensions.height -
|
|
548
|
+
x: margins.left + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2,
|
|
549
|
+
y: svgDimensions.height - AXIS_TITLE_PADDING,
|
|
526
550
|
className: classes.axisTitle,
|
|
527
551
|
textAnchor: 'middle'
|
|
528
552
|
},
|
|
529
|
-
maxWidth:
|
|
553
|
+
maxWidth: xAxisTitleMaxWidth
|
|
530
554
|
}), props.xAxisAnnotation !== undefined && props.xAxisAnnotation !== '' && /*#__PURE__*/ React.createElement(SVGTooltipText, {
|
|
531
555
|
...commonSvgToolTipProps,
|
|
532
556
|
content: props.xAxisAnnotation,
|
|
533
557
|
textProps: {
|
|
534
|
-
x: margins.left +
|
|
535
|
-
y:
|
|
558
|
+
x: margins.left + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2,
|
|
559
|
+
y: VERTICAL_MARGIN_FOR_XAXIS_TITLE - AXIS_TITLE_PADDING,
|
|
536
560
|
className: classes.axisAnnotation,
|
|
537
561
|
textAnchor: 'middle',
|
|
538
562
|
'aria-hidden': true
|
|
539
563
|
},
|
|
540
|
-
maxWidth:
|
|
564
|
+
maxWidth: xAxisTitleMaxWidth
|
|
541
565
|
}), /*#__PURE__*/ React.createElement("g", {
|
|
542
566
|
ref: (e)=>{
|
|
543
567
|
yAxisElement.current = e;
|
|
544
568
|
},
|
|
545
569
|
id: `yAxisGElement${idForGraph}`,
|
|
546
|
-
transform: `translate(${_useRtl ? svgDimensions.width - margins.right
|
|
570
|
+
transform: `translate(${_useRtl ? svgDimensions.width - margins.right : margins.left}, 0)`,
|
|
547
571
|
className: classes.yAxis
|
|
548
572
|
}), props.secondaryYScaleOptions && /*#__PURE__*/ React.createElement("g", null, /*#__PURE__*/ React.createElement("g", {
|
|
549
573
|
ref: (e)=>{
|
|
550
574
|
yAxisElementSecondary.current = e;
|
|
551
575
|
},
|
|
552
576
|
id: `yAxisGElementSecondary${idForGraph}`,
|
|
553
|
-
transform: `translate(${_useRtl ? margins.left
|
|
577
|
+
transform: `translate(${_useRtl ? margins.left : svgDimensions.width - margins.right}, 0)`,
|
|
554
578
|
className: classes.yAxis
|
|
555
579
|
}), props.secondaryYAxistitle !== undefined && props.secondaryYAxistitle !== '' && /*#__PURE__*/ React.createElement(SVGTooltipText, {
|
|
556
580
|
...commonSvgToolTipProps,
|
|
557
581
|
content: props.secondaryYAxistitle,
|
|
558
582
|
textProps: {
|
|
559
|
-
x:
|
|
560
|
-
y:
|
|
583
|
+
x: secondaryYAxisTitleCenterX,
|
|
584
|
+
y: yAxisTitleCenterY,
|
|
561
585
|
textAnchor: 'middle',
|
|
562
|
-
transform: `
|
|
563
|
-
${svgDimensions.height - margins.bottom - margins.top - titleMargin})rotate(-90)`,
|
|
586
|
+
transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,
|
|
564
587
|
className: classes.axisTitle
|
|
565
588
|
},
|
|
566
|
-
maxWidth:
|
|
589
|
+
maxWidth: yAxisTitleMaxHeight
|
|
567
590
|
})), children, props.yAxisTitle !== undefined && props.yAxisTitle !== '' && /*#__PURE__*/ React.createElement(SVGTooltipText, {
|
|
568
591
|
...commonSvgToolTipProps,
|
|
569
592
|
content: props.yAxisTitle,
|
|
570
593
|
textProps: {
|
|
571
|
-
x:
|
|
572
|
-
y:
|
|
594
|
+
x: yAxisTitleCenterX,
|
|
595
|
+
y: yAxisTitleCenterY,
|
|
573
596
|
textAnchor: 'middle',
|
|
574
|
-
transform: `
|
|
575
|
-
${svgDimensions.height - margins.bottom - margins.top - titleMargin})rotate(-90)`,
|
|
597
|
+
transform: `rotate(-90, ${yAxisTitleCenterX}, ${yAxisTitleCenterY})`,
|
|
576
598
|
className: classes.axisTitle
|
|
577
599
|
},
|
|
578
|
-
maxWidth:
|
|
600
|
+
maxWidth: yAxisTitleMaxHeight
|
|
579
601
|
}), props.yAxisAnnotation !== undefined && props.yAxisAnnotation !== '' && (props.secondaryYAxistitle === undefined || props.secondaryYAxistitle === '') && /*#__PURE__*/ React.createElement(SVGTooltipText, {
|
|
580
602
|
...commonSvgToolTipProps,
|
|
581
603
|
content: props.yAxisAnnotation,
|
|
582
604
|
textProps: {
|
|
583
|
-
x:
|
|
584
|
-
y:
|
|
605
|
+
x: secondaryYAxisTitleCenterX,
|
|
606
|
+
y: yAxisTitleCenterY,
|
|
585
607
|
textAnchor: 'middle',
|
|
586
|
-
transform: `
|
|
587
|
-
${svgDimensions.height - margins.bottom - margins.top - titleMargin})rotate(-90)`,
|
|
608
|
+
transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,
|
|
588
609
|
className: classes.axisAnnotation,
|
|
589
610
|
'aria-hidden': true
|
|
590
611
|
},
|
|
591
|
-
maxWidth:
|
|
592
|
-
}))
|
|
612
|
+
maxWidth: yAxisTitleMaxHeight
|
|
613
|
+
})), hasAnnotations && annotationContext && /*#__PURE__*/ React.createElement(ChartAnnotationLayer, {
|
|
614
|
+
annotations: annotations,
|
|
615
|
+
context: annotationContext,
|
|
616
|
+
className: classes.annotationLayer
|
|
617
|
+
})), !props.hideLegend && /*#__PURE__*/ React.createElement("div", {
|
|
593
618
|
ref: (e)=>{
|
|
594
619
|
legendContainer = e;
|
|
595
620
|
},
|