@fluentui/react-charts 0.0.0-nightly-20250728-0406.1 → 0.0.0-nightly-20250730-0406.1
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 +34 -15
- package/dist/index.d.ts +198 -10
- package/lib/AreaChart.js.map +1 -1
- package/lib/CartesianChart.js.map +1 -1
- package/lib/DeclarativeChart.js.map +1 -1
- package/lib/DonutChart.js.map +1 -1
- package/lib/FunnelChart.js.map +1 -1
- package/lib/GanttChart.js +1 -0
- package/lib/GanttChart.js.map +1 -0
- package/lib/GaugeChart.js.map +1 -1
- package/lib/GroupedVerticalBarChart.js.map +1 -1
- package/lib/HeatMapChart.js.map +1 -1
- package/lib/HorizontalBarChart.js.map +1 -1
- package/lib/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/Legends.js.map +1 -1
- package/lib/LineChart.js.map +1 -1
- package/lib/Popover.js.map +1 -1
- package/lib/ResponsiveContainer.js.map +1 -1
- package/lib/SankeyChart.js.map +1 -1
- package/lib/ScatterChart.js.map +1 -1
- package/lib/Sparkline.js.map +1 -1
- package/lib/VerticalBarChart.js.map +1 -1
- package/lib/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.js +3 -3
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib/components/AreaChart/index.js.map +1 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.js +1 -2
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +41 -0
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.js +12 -8
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib/components/CommonComponents/index.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +1 -2
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +128 -0
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +1 -2
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js +126 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
- package/lib/components/DeclarativeChart/DeclarativeChart.js +6 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +44 -13
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DeclarativeChart/imageExporter.js +1 -0
- package/lib/components/DeclarativeChart/imageExporter.js.map +1 -1
- package/lib/components/DeclarativeChart/index.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib/components/DonutChart/Arc/index.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +1 -2
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +44 -0
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
- package/lib/components/DonutChart/DonutChart.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
- package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -1
- package/lib/components/DonutChart/Pie/index.js.map +1 -1
- package/lib/components/DonutChart/Pie/usePieStyles.styles.js +1 -2
- package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js +29 -0
- package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
- package/lib/components/DonutChart/index.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +1 -2
- package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js +45 -0
- package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
- package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib/components/FunnelChart/funnelGeometry.js.map +1 -1
- package/lib/components/FunnelChart/index.js.map +1 -1
- package/lib/components/FunnelChart/useFunnelChartStyles.styles.js +1 -2
- package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js +51 -0
- package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
- package/lib/components/GanttChart/GanttChart.js +530 -0
- package/lib/components/GanttChart/GanttChart.js.map +1 -0
- package/lib/components/GanttChart/GanttChart.types.js +4 -0
- package/lib/components/GanttChart/GanttChart.types.js.map +1 -0
- package/lib/components/GanttChart/index.js +2 -0
- package/lib/components/GanttChart/index.js.map +1 -0
- package/lib/components/GanttChart/useGanttChartStyles.styles.js +24 -0
- package/lib/components/GanttChart/useGanttChartStyles.styles.js.map +1 -0
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +23 -0
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
- package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib/components/GaugeChart/index.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +1 -2
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js +142 -0
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +61 -56
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/index.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -2
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +53 -0
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/index.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -2
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +38 -0
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +5 -3
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib/components/HorizontalBarChart/index.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -2
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +120 -0
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/index.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -2
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +39 -0
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
- package/lib/components/Legends/Legends.js +7 -8
- package/lib/components/Legends/Legends.js.map +1 -1
- package/lib/components/Legends/Legends.types.js.map +1 -1
- package/lib/components/Legends/OverflowMenu.js.map +1 -1
- package/lib/components/Legends/index.js.map +1 -1
- package/lib/components/Legends/shape.js +3 -3
- package/lib/components/Legends/shape.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.js +33 -6
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.raw.js +125 -0
- package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
- package/lib/components/LineChart/LineChart.js +3 -3
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.types.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/Textbox.js +2 -1
- package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
- package/lib/components/LineChart/index.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js +1 -2
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js +52 -0
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib/components/ResponsiveContainer/index.js.map +1 -1
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -2
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +28 -0
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib/components/SankeyChart/index.js.map +1 -1
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +1 -2
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js +77 -0
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib/components/ScatterChart/index.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js +1 -2
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +43 -0
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
- package/lib/components/Sparkline/Sparkline.js.map +1 -1
- package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib/components/Sparkline/index.js.map +1 -1
- package/lib/components/Sparkline/useSparklineStyles.styles.js +1 -2
- package/lib/components/Sparkline/useSparklineStyles.styles.raw.js +30 -0
- package/lib/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js +56 -29
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib/components/VerticalBarChart/index.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -2
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +58 -0
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +17 -10
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/index.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -2
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +49 -0
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/DataPoint.js +3 -1
- package/lib/types/DataPoint.js.map +1 -1
- package/lib/types/EventAnnotation.js.map +1 -1
- package/lib/types/LegendDataItem.js.map +1 -1
- package/lib/types/index.js.map +1 -1
- package/lib/utilities/FocusableTooltipText.js.map +1 -1
- package/lib/utilities/KeyCodes.js.map +1 -1
- package/lib/utilities/SVGTooltipText.js +2 -0
- package/lib/utilities/SVGTooltipText.js.map +1 -1
- package/lib/utilities/async-utils.js.map +1 -1
- package/lib/utilities/colors.js.map +1 -1
- package/lib/utilities/getWindow.js.map +1 -1
- package/lib/utilities/index.js.map +1 -1
- package/lib/utilities/overflow-utils.js.map +1 -1
- package/lib/utilities/string.js.map +1 -1
- package/lib/utilities/test-data.js +236 -0
- package/lib/utilities/test-data.js.map +1 -1
- package/lib/utilities/utilities.js +95 -27
- package/lib/utilities/utilities.js.map +1 -1
- package/lib/utilities/vbc-utils.js +2 -2
- package/lib/utilities/vbc-utils.js.map +1 -1
- package/lib-commonjs/AreaChart.js.map +1 -1
- package/lib-commonjs/CartesianChart.js.map +1 -1
- package/lib-commonjs/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/DonutChart.js.map +1 -1
- package/lib-commonjs/FunnelChart.js.map +1 -1
- package/lib-commonjs/GanttChart.js +6 -0
- package/lib-commonjs/GanttChart.js.map +1 -0
- package/lib-commonjs/GaugeChart.js.map +1 -1
- package/lib-commonjs/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/HeatMapChart.js.map +1 -1
- package/lib-commonjs/HorizontalBarChart.js.map +1 -1
- package/lib-commonjs/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/Legends.js.map +1 -1
- package/lib-commonjs/LineChart.js.map +1 -1
- package/lib-commonjs/Popover.js.map +1 -1
- package/lib-commonjs/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/SankeyChart.js.map +1 -1
- package/lib-commonjs/ScatterChart.js.map +1 -1
- package/lib-commonjs/Sparkline.js.map +1 -1
- package/lib-commonjs/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.js +3 -3
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib-commonjs/components/AreaChart/index.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +57 -0
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +11 -7
- 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/ChartPopover.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/index.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +142 -0
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js +140 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +5 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +47 -13
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js +1 -0
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +58 -0
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +1 -1
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js +43 -0
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/DonutChart/index.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js +59 -0
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/index.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js +1 -1
- package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js +65 -0
- package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/GanttChart/GanttChart.js +541 -0
- package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -0
- package/lib-commonjs/components/GanttChart/GanttChart.types.js +7 -0
- package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -0
- package/lib-commonjs/components/GanttChart/index.js +7 -0
- package/lib-commonjs/components/GanttChart/index.js.map +1 -0
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +39 -0
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +39 -0
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/index.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js +160 -0
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +61 -56
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/index.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +69 -0
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -0
- 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/index.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +56 -0
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +23 -26
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +3 -3
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +134 -0
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -0
- 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/index.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +55 -0
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/Legends/Legends.js +7 -8
- package/lib-commonjs/components/Legends/Legends.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
- package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -1
- package/lib-commonjs/components/Legends/index.js.map +1 -1
- package/lib-commonjs/components/Legends/shape.js +2 -2
- package/lib-commonjs/components/Legends/shape.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +46 -5
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js +141 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/LineChart/LineChart.js +3 -3
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js +2 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
- package/lib-commonjs/components/LineChart/index.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +66 -0
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +1 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js +46 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/index.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js +95 -0
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -0
- 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/index.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +57 -0
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
- package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib-commonjs/components/Sparkline/index.js.map +1 -1
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +1 -1
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js +44 -0
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +56 -29
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +74 -0
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +17 -10
- 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/index.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +67 -0
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/index.js +1 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/DataPoint.js +3 -1
- package/lib-commonjs/types/DataPoint.js.map +1 -1
- package/lib-commonjs/types/EventAnnotation.js.map +1 -1
- package/lib-commonjs/types/LegendDataItem.js.map +1 -1
- package/lib-commonjs/types/index.js.map +1 -1
- package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
- package/lib-commonjs/utilities/KeyCodes.js.map +1 -1
- package/lib-commonjs/utilities/SVGTooltipText.js +2 -0
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
- package/lib-commonjs/utilities/async-utils.js.map +1 -1
- package/lib-commonjs/utilities/colors.js.map +1 -1
- package/lib-commonjs/utilities/getWindow.js.map +1 -1
- package/lib-commonjs/utilities/index.js.map +1 -1
- package/lib-commonjs/utilities/overflow-utils.js.map +1 -1
- package/lib-commonjs/utilities/string.js.map +1 -1
- package/lib-commonjs/utilities/test-data.js +245 -0
- package/lib-commonjs/utilities/test-data.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +91 -22
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/lib-commonjs/utilities/vbc-utils.js +2 -2
- package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
- package/package.json +14 -24
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { tokens, typographyStyles } from '@fluentui/react-theme';
|
|
2
|
+
import { makeStyles, mergeClasses } from '@griffel/react';
|
|
3
|
+
export const gaugeChartClassNames = {
|
|
4
|
+
root: 'fui-gc__root',
|
|
5
|
+
chart: 'fui-gc__chart',
|
|
6
|
+
limits: 'fui-gc__limits',
|
|
7
|
+
chartValue: 'fui-gc__chartValue',
|
|
8
|
+
sublabel: 'fui-gc__sublabel',
|
|
9
|
+
needle: 'fui-gc__needle',
|
|
10
|
+
chartTitle: 'fui-gc__chartTitle',
|
|
11
|
+
segment: 'fui-gc__segment',
|
|
12
|
+
gradientSegment: 'fui-gc__gradientSegment',
|
|
13
|
+
calloutContentRoot: 'fui-gc__calloutContentRoot',
|
|
14
|
+
calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',
|
|
15
|
+
calloutContentX: 'fui-gc__calloutContentX',
|
|
16
|
+
calloutBlockContainer: 'fui-gc__calloutBlockContainer',
|
|
17
|
+
shapeStyles: 'fui-gc__shapeStyles',
|
|
18
|
+
calloutlegendText: 'fui-gc__calloutlegendText',
|
|
19
|
+
calloutContentY: 'fui-gc__calloutContentY',
|
|
20
|
+
descriptionMessage: 'fui-gc__descriptionMessage',
|
|
21
|
+
calloutInfoContainer: '',
|
|
22
|
+
legendsContainer: 'fui-gc__legendsContainer',
|
|
23
|
+
chartWrapper: 'fui-gc__chartWrapper'
|
|
24
|
+
};
|
|
25
|
+
const useStyles = makeStyles({
|
|
26
|
+
root: {
|
|
27
|
+
...typographyStyles.body1,
|
|
28
|
+
display: 'flex',
|
|
29
|
+
flexDirection: 'column',
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
width: '100%',
|
|
32
|
+
height: '100%'
|
|
33
|
+
},
|
|
34
|
+
chart: {
|
|
35
|
+
display: 'block'
|
|
36
|
+
},
|
|
37
|
+
limits: {
|
|
38
|
+
...typographyStyles.caption1Strong,
|
|
39
|
+
fill: tokens.colorNeutralForeground1,
|
|
40
|
+
forcedColorAdjust: 'auto'
|
|
41
|
+
},
|
|
42
|
+
chartValue: {
|
|
43
|
+
fontWeight: tokens.fontWeightSemibold,
|
|
44
|
+
fill: tokens.colorNeutralForeground1,
|
|
45
|
+
forcedColorAdjust: 'auto'
|
|
46
|
+
},
|
|
47
|
+
sublabel: {
|
|
48
|
+
...typographyStyles.caption1Strong,
|
|
49
|
+
fill: tokens.colorNeutralForeground1,
|
|
50
|
+
forcedColorAdjust: 'auto'
|
|
51
|
+
},
|
|
52
|
+
needle: {
|
|
53
|
+
fill: tokens.colorNeutralForeground1,
|
|
54
|
+
stroke: tokens.colorNeutralBackground1
|
|
55
|
+
},
|
|
56
|
+
chartTitle: {
|
|
57
|
+
...typographyStyles.caption1,
|
|
58
|
+
fill: tokens.colorNeutralForeground1,
|
|
59
|
+
forcedColorAdjust: 'auto'
|
|
60
|
+
},
|
|
61
|
+
segment: {
|
|
62
|
+
outline: 'none',
|
|
63
|
+
stroke: tokens.colorNeutralStroke1
|
|
64
|
+
},
|
|
65
|
+
gradientSegment: {
|
|
66
|
+
width: '100%',
|
|
67
|
+
height: '100%'
|
|
68
|
+
},
|
|
69
|
+
calloutContentRoot: {
|
|
70
|
+
display: 'grid',
|
|
71
|
+
overflow: 'hidden',
|
|
72
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
73
|
+
backgroundBlendMode: 'normal, luminosity'
|
|
74
|
+
},
|
|
75
|
+
calloutDateTimeContainer: {
|
|
76
|
+
display: 'flex',
|
|
77
|
+
flexDirection: 'row',
|
|
78
|
+
justifyContent: 'space-between'
|
|
79
|
+
},
|
|
80
|
+
calloutContentX: {
|
|
81
|
+
...typographyStyles.caption1,
|
|
82
|
+
lineHeight: '16px',
|
|
83
|
+
opacity: '0.85'
|
|
84
|
+
},
|
|
85
|
+
calloutBlockContainer: {
|
|
86
|
+
...typographyStyles.body1Strong,
|
|
87
|
+
marginTop: '13px',
|
|
88
|
+
color: tokens.colorNeutralForeground1,
|
|
89
|
+
paddingLeft: '8px',
|
|
90
|
+
display: 'block',
|
|
91
|
+
forcedColorAdjust: 'none'
|
|
92
|
+
},
|
|
93
|
+
shapeStyles: {
|
|
94
|
+
marginRight: '8px'
|
|
95
|
+
},
|
|
96
|
+
calloutlegendText: {
|
|
97
|
+
...typographyStyles.caption1,
|
|
98
|
+
lineHeight: '16px',
|
|
99
|
+
color: tokens.colorNeutralForeground2,
|
|
100
|
+
forcedColorAdjust: 'auto'
|
|
101
|
+
},
|
|
102
|
+
calloutContentY: {
|
|
103
|
+
...typographyStyles.body1Strong,
|
|
104
|
+
lineHeight: '22px',
|
|
105
|
+
forcedColorAdjust: 'auto'
|
|
106
|
+
},
|
|
107
|
+
descriptionMessage: {
|
|
108
|
+
...typographyStyles.caption1,
|
|
109
|
+
color: tokens.colorNeutralForeground1,
|
|
110
|
+
marginTop: '10px',
|
|
111
|
+
paddingTop: '10px',
|
|
112
|
+
borderTop: `1px solid ${tokens.colorNeutralStroke1}`
|
|
113
|
+
},
|
|
114
|
+
legendsContainer: {
|
|
115
|
+
width: '100%'
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
export const useGaugeChartStyles = (props)=>{
|
|
119
|
+
var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8, _props_styles9, _props_styles10, _props_styles11, _props_styles12, _props_styles13, _props_styles14, _props_styles15, _props_styles16, _props_styles17, _props_styles18;
|
|
120
|
+
const baseStyles = useStyles();
|
|
121
|
+
return {
|
|
122
|
+
root: mergeClasses(gaugeChartClassNames.root, baseStyles.root, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),
|
|
123
|
+
chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),
|
|
124
|
+
limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.limits),
|
|
125
|
+
chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartValue),
|
|
126
|
+
sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.sublabel),
|
|
127
|
+
needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.needle),
|
|
128
|
+
chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.chartTitle),
|
|
129
|
+
segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.segment),
|
|
130
|
+
gradientSegment: mergeClasses(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.gradientSegment),
|
|
131
|
+
calloutContentRoot: mergeClasses(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot, (_props_styles9 = props.styles) === null || _props_styles9 === void 0 ? void 0 : _props_styles9.calloutContentRoot),
|
|
132
|
+
calloutDateTimeContainer: mergeClasses(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer, (_props_styles10 = props.styles) === null || _props_styles10 === void 0 ? void 0 : _props_styles10.calloutDateTimeContainer),
|
|
133
|
+
calloutContentX: mergeClasses(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX, (_props_styles11 = props.styles) === null || _props_styles11 === void 0 ? void 0 : _props_styles11.calloutContentX),
|
|
134
|
+
calloutBlockContainer: mergeClasses(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer, (_props_styles12 = props.styles) === null || _props_styles12 === void 0 ? void 0 : _props_styles12.calloutBlockContainer),
|
|
135
|
+
shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, (_props_styles13 = props.styles) === null || _props_styles13 === void 0 ? void 0 : _props_styles13.shapeStyles),
|
|
136
|
+
calloutlegendText: mergeClasses(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText, (_props_styles14 = props.styles) === null || _props_styles14 === void 0 ? void 0 : _props_styles14.calloutlegendText),
|
|
137
|
+
calloutContentY: mergeClasses(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY, (_props_styles15 = props.styles) === null || _props_styles15 === void 0 ? void 0 : _props_styles15.calloutContentY),
|
|
138
|
+
descriptionMessage: mergeClasses(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage, (_props_styles16 = props.styles) === null || _props_styles16 === void 0 ? void 0 : _props_styles16.descriptionMessage),
|
|
139
|
+
chartWrapper: mergeClasses(gaugeChartClassNames.chartWrapper, (_props_styles17 = props.styles) === null || _props_styles17 === void 0 ? void 0 : _props_styles17.chartWrapper),
|
|
140
|
+
legendsContainer: mergeClasses(gaugeChartClassNames.legendsContainer, baseStyles.legendsContainer, (_props_styles18 = props.styles) === null || _props_styles18 === void 0 ? void 0 : _props_styles18.legendsContainer)
|
|
141
|
+
};
|
|
142
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/GaugeChart/useGaugeChartStyles.styles.ts"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { GaugeChartProps, GaugeChartStyles } from './GaugeChart.types';\n\nexport const gaugeChartClassNames: SlotClassNames<GaugeChartStyles> = {\n root: 'fui-gc__root',\n chart: 'fui-gc__chart',\n limits: 'fui-gc__limits',\n chartValue: 'fui-gc__chartValue',\n sublabel: 'fui-gc__sublabel',\n needle: 'fui-gc__needle',\n chartTitle: 'fui-gc__chartTitle',\n segment: 'fui-gc__segment',\n gradientSegment: 'fui-gc__gradientSegment',\n calloutContentRoot: 'fui-gc__calloutContentRoot',\n calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',\n calloutContentX: 'fui-gc__calloutContentX',\n calloutBlockContainer: 'fui-gc__calloutBlockContainer',\n shapeStyles: 'fui-gc__shapeStyles',\n calloutlegendText: 'fui-gc__calloutlegendText',\n calloutContentY: 'fui-gc__calloutContentY',\n descriptionMessage: 'fui-gc__descriptionMessage',\n calloutInfoContainer: '',\n legendsContainer: 'fui-gc__legendsContainer',\n chartWrapper: 'fui-gc__chartWrapper',\n};\n\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n },\n chart: {\n display: 'block',\n },\n limits: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n chartValue: {\n fontWeight: tokens.fontWeightSemibold,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n sublabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n needle: {\n fill: tokens.colorNeutralForeground1,\n stroke: tokens.colorNeutralBackground1,\n },\n chartTitle: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n segment: {\n outline: 'none',\n stroke: tokens.colorNeutralStroke1,\n },\n gradientSegment: {\n width: '100%',\n height: '100%',\n },\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n backgroundColor: tokens.colorNeutralBackground1,\n backgroundBlendMode: 'normal, luminosity',\n },\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n opacity: '0.85',\n },\n calloutBlockContainer: {\n ...typographyStyles.body1Strong,\n marginTop: '13px',\n color: tokens.colorNeutralForeground1,\n paddingLeft: '8px',\n display: 'block',\n forcedColorAdjust: 'none',\n },\n shapeStyles: {\n marginRight: '8px',\n },\n calloutlegendText: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto',\n },\n calloutContentY: {\n ...typographyStyles.body1Strong,\n lineHeight: '22px',\n forcedColorAdjust: 'auto',\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${tokens.colorNeutralStroke1}`,\n },\n legendsContainer: {\n width: '100%',\n },\n});\nexport const useGaugeChartStyles = (props: GaugeChartProps): GaugeChartStyles => {\n const baseStyles = useStyles();\n\n return {\n root: mergeClasses(gaugeChartClassNames.root, baseStyles.root, props.styles?.root),\n chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart, props.styles?.chart),\n limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits, props.styles?.limits),\n chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue, props.styles?.chartValue),\n sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel, props.styles?.sublabel),\n needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle, props.styles?.needle),\n chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, props.styles?.chartTitle),\n segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment, props.styles?.segment),\n gradientSegment: mergeClasses(\n gaugeChartClassNames.gradientSegment,\n baseStyles.gradientSegment,\n props.styles?.gradientSegment,\n ),\n calloutContentRoot: mergeClasses(\n gaugeChartClassNames.calloutContentRoot,\n baseStyles.calloutContentRoot,\n props.styles?.calloutContentRoot,\n ),\n calloutDateTimeContainer: mergeClasses(\n gaugeChartClassNames.calloutDateTimeContainer,\n baseStyles.calloutDateTimeContainer,\n props.styles?.calloutDateTimeContainer,\n ),\n calloutContentX: mergeClasses(\n gaugeChartClassNames.calloutContentX,\n baseStyles.calloutContentX,\n props.styles?.calloutContentX,\n ),\n calloutBlockContainer: mergeClasses(\n gaugeChartClassNames.calloutBlockContainer,\n baseStyles.calloutBlockContainer,\n props.styles?.calloutBlockContainer,\n ),\n shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, props.styles?.shapeStyles),\n calloutlegendText: mergeClasses(\n gaugeChartClassNames.calloutlegendText,\n baseStyles.calloutlegendText,\n props.styles?.calloutlegendText,\n ),\n calloutContentY: mergeClasses(\n gaugeChartClassNames.calloutContentY,\n baseStyles.calloutContentY,\n props.styles?.calloutContentY,\n ),\n descriptionMessage: mergeClasses(\n gaugeChartClassNames.descriptionMessage,\n baseStyles.descriptionMessage,\n props.styles?.descriptionMessage,\n ),\n chartWrapper: mergeClasses(gaugeChartClassNames.chartWrapper, props.styles?.chartWrapper),\n legendsContainer: mergeClasses(\n gaugeChartClassNames.legendsContainer,\n baseStyles.legendsContainer,\n props.styles?.legendsContainer,\n ),\n };\n};\n"],"names":["tokens","typographyStyles","makeStyles","mergeClasses","gaugeChartClassNames","root","chart","limits","chartValue","sublabel","needle","chartTitle","segment","gradientSegment","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","calloutInfoContainer","legendsContainer","chartWrapper","useStyles","body1","display","flexDirection","alignItems","width","height","caption1Strong","fill","colorNeutralForeground1","forcedColorAdjust","fontWeight","fontWeightSemibold","stroke","colorNeutralBackground1","caption1","outline","colorNeutralStroke1","overflow","backgroundColor","backgroundBlendMode","justifyContent","lineHeight","opacity","body1Strong","marginTop","color","paddingLeft","marginRight","colorNeutralForeground2","paddingTop","borderTop","useGaugeChartStyles","props","baseStyles","styles"],"mappings":"AAAA,SAASA,MAAM,EAAEC,gBAAgB,QAAQ,wBAAwB;AAEjE,SAASC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAG1D,OAAO,MAAMC,uBAAyD;IACpEC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,YAAY;IACZC,SAAS;IACTC,iBAAiB;IACjBC,oBAAoB;IACpBC,0BAA0B;IAC1BC,iBAAiB;IACjBC,uBAAuB;IACvBC,aAAa;IACbC,mBAAmB;IACnBC,iBAAiB;IACjBC,oBAAoB;IACpBC,sBAAsB;IACtBC,kBAAkB;IAClBC,cAAc;AAChB,EAAE;AAEF,MAAMC,YAAYvB,WAAW;IAC3BG,MAAM;QACJ,GAAGJ,iBAAiByB,KAAK;QACzBC,SAAS;QACTC,eAAe;QACfC,YAAY;QACZC,OAAO;QACPC,QAAQ;IACV;IACAzB,OAAO;QACLqB,SAAS;IACX;IACApB,QAAQ;QACN,GAAGN,iBAAiB+B,cAAc;QAClCC,MAAMjC,OAAOkC,uBAAuB;QACpCC,mBAAmB;IACrB;IACA3B,YAAY;QACV4B,YAAYpC,OAAOqC,kBAAkB;QACrCJ,MAAMjC,OAAOkC,uBAAuB;QACpCC,mBAAmB;IACrB;IACA1B,UAAU;QACR,GAAGR,iBAAiB+B,cAAc;QAClCC,MAAMjC,OAAOkC,uBAAuB;QACpCC,mBAAmB;IACrB;IACAzB,QAAQ;QACNuB,MAAMjC,OAAOkC,uBAAuB;QACpCI,QAAQtC,OAAOuC,uBAAuB;IACxC;IACA5B,YAAY;QACV,GAAGV,iBAAiBuC,QAAQ;QAC5BP,MAAMjC,OAAOkC,uBAAuB;QACpCC,mBAAmB;IACrB;IACAvB,SAAS;QACP6B,SAAS;QACTH,QAAQtC,OAAO0C,mBAAmB;IACpC;IACA7B,iBAAiB;QACfiB,OAAO;QACPC,QAAQ;IACV;IACAjB,oBAAoB;QAClBa,SAAS;QACTgB,UAAU;QACVC,iBAAiB5C,OAAOuC,uBAAuB;QAC/CM,qBAAqB;IACvB;IACA9B,0BAA0B;QACxBY,SAAS;QACTC,eAAe;QACfkB,gBAAgB;IAClB;IACA9B,iBAAiB;QACf,GAAGf,iBAAiBuC,QAAQ;QAC5BO,YAAY;QACZC,SAAS;IACX;IACA/B,uBAAuB;QACrB,GAAGhB,iBAAiBgD,WAAW;QAC/BC,WAAW;QACXC,OAAOnD,OAAOkC,uBAAuB;QACrCkB,aAAa;QACbzB,SAAS;QACTQ,mBAAmB;IACrB;IACAjB,aAAa;QACXmC,aAAa;IACf;IACAlC,mBAAmB;QACjB,GAAGlB,iBAAiBuC,QAAQ;QAC5BO,YAAY;QACZI,OAAOnD,OAAOsD,uBAAuB;QACrCnB,mBAAmB;IACrB;IACAf,iBAAiB;QACf,GAAGnB,iBAAiBgD,WAAW;QAC/BF,YAAY;QACZZ,mBAAmB;IACrB;IACAd,oBAAoB;QAClB,GAAGpB,iBAAiBuC,QAAQ;QAC5BW,OAAOnD,OAAOkC,uBAAuB;QACrCgB,WAAW;QACXK,YAAY;QACZC,WAAW,CAAC,UAAU,EAAExD,OAAO0C,mBAAmB,EAAE;IACtD;IACAnB,kBAAkB;QAChBO,OAAO;IACT;AACF;AACA,OAAO,MAAM2B,sBAAsB,CAACC;QAI+BA,eACGA,gBACGA,gBACYA,gBACNA,gBACNA,gBACYA,gBACTA,gBAItEA,gBAKAA,gBAKAA,iBAKAA,iBAKAA,iBAEkFA,iBAIlFA,iBAKAA,iBAKAA,iBAE4DA,iBAI5DA;IAxDJ,MAAMC,aAAalC;IAEnB,OAAO;QACLpB,MAAMF,aAAaC,qBAAqBC,IAAI,EAAEsD,WAAWtD,IAAI,GAAEqD,gBAAAA,MAAME,MAAM,cAAZF,oCAAAA,cAAcrD,IAAI;QACjFC,OAAOH,aAAaC,qBAAqBE,KAAK,EAAEqD,WAAWrD,KAAK,GAAEoD,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAcpD,KAAK;QACrFC,QAAQJ,aAAaC,qBAAqBG,MAAM,EAAEoD,WAAWpD,MAAM,GAAEmD,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAcnD,MAAM;QACzFC,YAAYL,aAAaC,qBAAqBI,UAAU,EAAEmD,WAAWnD,UAAU,GAAEkD,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAclD,UAAU;QACzGC,UAAUN,aAAaC,qBAAqBK,QAAQ,EAAEkD,WAAWlD,QAAQ,GAAEiD,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAcjD,QAAQ;QACjGC,QAAQP,aAAaC,qBAAqBM,MAAM,EAAEiD,WAAWjD,MAAM,GAAEgD,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAchD,MAAM;QACzFC,YAAYR,aAAaC,qBAAqBO,UAAU,EAAEgD,WAAWhD,UAAU,GAAE+C,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAc/C,UAAU;QACzGC,SAAST,aAAaC,qBAAqBQ,OAAO,EAAE+C,WAAW/C,OAAO,GAAE8C,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAc9C,OAAO;QAC7FC,iBAAiBV,aACfC,qBAAqBS,eAAe,EACpC8C,WAAW9C,eAAe,GAC1B6C,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAc7C,eAAe;QAE/BC,oBAAoBX,aAClBC,qBAAqBU,kBAAkB,EACvC6C,WAAW7C,kBAAkB,GAC7B4C,iBAAAA,MAAME,MAAM,cAAZF,qCAAAA,eAAc5C,kBAAkB;QAElCC,0BAA0BZ,aACxBC,qBAAqBW,wBAAwB,EAC7C4C,WAAW5C,wBAAwB,GACnC2C,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAc3C,wBAAwB;QAExCC,iBAAiBb,aACfC,qBAAqBY,eAAe,EACpC2C,WAAW3C,eAAe,GAC1B0C,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAc1C,eAAe;QAE/BC,uBAAuBd,aACrBC,qBAAqBa,qBAAqB,EAC1C0C,WAAW1C,qBAAqB,GAChCyC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAczC,qBAAqB;QAErCC,aAAaf,aAAaC,qBAAqBc,WAAW,EAAEyC,WAAWzC,WAAW,GAAEwC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAcxC,WAAW;QAC7GC,mBAAmBhB,aACjBC,qBAAqBe,iBAAiB,EACtCwC,WAAWxC,iBAAiB,GAC5BuC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAcvC,iBAAiB;QAEjCC,iBAAiBjB,aACfC,qBAAqBgB,eAAe,EACpCuC,WAAWvC,eAAe,GAC1BsC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAActC,eAAe;QAE/BC,oBAAoBlB,aAClBC,qBAAqBiB,kBAAkB,EACvCsC,WAAWtC,kBAAkB,GAC7BqC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAcrC,kBAAkB;QAElCG,cAAcrB,aAAaC,qBAAqBoB,YAAY,GAAEkC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAclC,YAAY;QACxFD,kBAAkBpB,aAChBC,qBAAqBmB,gBAAgB,EACrCoC,WAAWpC,gBAAgB,GAC3BmC,kBAAAA,MAAME,MAAM,cAAZF,sCAAAA,gBAAcnC,gBAAgB;IAElC;AACF,EAAE"}
|
|
@@ -176,7 +176,7 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
176
176
|
const _xAxisType = getTypeOfAxis(points[0].name, true);
|
|
177
177
|
const legends = _getLegendData(points);
|
|
178
178
|
_adjustProps();
|
|
179
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Add commentMore actions
|
|
180
180
|
function _getMinMaxOfYAxis(datasetForBars, yAxisType, useSecondaryYScale) {
|
|
181
181
|
const values = [];
|
|
182
182
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -326,57 +326,59 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
326
326
|
const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;
|
|
327
327
|
const pointData = singleSet[datasetKey];
|
|
328
328
|
const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
329
|
+
if (pointData) {
|
|
330
|
+
// To align the centers of the generated bandwidth and the calculated one when they differ,
|
|
331
|
+
// use the following addend.
|
|
332
|
+
const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;
|
|
333
|
+
const startColor = pointData.color ? pointData.color : getNextColor(index, 0);
|
|
334
|
+
const yBaseline = yBarScale(Y_ORIGIN);
|
|
335
|
+
let yPositiveStart = yBaseline;
|
|
336
|
+
let yNegativeStart = yBaseline;
|
|
337
|
+
let yPoint = Y_ORIGIN;
|
|
338
|
+
const barGap = VERTICAL_BAR_GAP / 2 * (index > 0 ? 2 : 0);
|
|
339
|
+
const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);
|
|
340
|
+
if (pointData.data >= Y_ORIGIN) {
|
|
341
|
+
yPositiveStart -= height + barGap;
|
|
342
|
+
yPoint = yPositiveStart;
|
|
343
|
+
} else {
|
|
344
|
+
yPoint = yNegativeStart + barGap;
|
|
345
|
+
yNegativeStart = yPoint + height;
|
|
346
|
+
}
|
|
347
|
+
// Not rendering data with 0.
|
|
348
|
+
pointData.data && singleGroup.push(/*#__PURE__*/ React.createElement(React.Fragment, {
|
|
349
|
+
key: `${singleSet.indexNum}-${index}`
|
|
350
|
+
}, /*#__PURE__*/ React.createElement("rect", {
|
|
351
|
+
className: classes.opacityChangeOnHover,
|
|
352
|
+
height: height,
|
|
353
|
+
width: _barWidth,
|
|
354
|
+
x: xPoint,
|
|
355
|
+
y: yPoint,
|
|
356
|
+
opacity: _getOpacity(pointData.legend),
|
|
357
|
+
ref: (e)=>{
|
|
358
|
+
_refCallback(e, pointData.legend, refIndexNumber);
|
|
359
|
+
},
|
|
360
|
+
fill: startColor,
|
|
361
|
+
rx: 0,
|
|
362
|
+
onMouseOver: (event)=>onBarHover(pointData, singleSet, event),
|
|
363
|
+
onMouseMove: (event)=>onBarHover(pointData, singleSet, event),
|
|
364
|
+
onMouseOut: _onBarLeave,
|
|
365
|
+
onFocus: (event)=>onBarFocus(event, pointData, singleSet, refIndexNumber),
|
|
366
|
+
onBlur: _onBarLeave,
|
|
367
|
+
onClick: pointData.onClick,
|
|
368
|
+
"aria-label": getAriaLabel(pointData, singleSet.xAxisPoint),
|
|
369
|
+
tabIndex: _legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined,
|
|
370
|
+
role: "img"
|
|
371
|
+
})));
|
|
372
|
+
if (pointData.data && !props.hideLabels && _barWidth >= 16 && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())) {
|
|
373
|
+
barLabelsForGroup.push(/*#__PURE__*/ React.createElement("text", {
|
|
374
|
+
key: `${singleSet.indexNum}-${index}`,
|
|
375
|
+
x: xPoint + _barWidth / 2,
|
|
376
|
+
y: pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12,
|
|
377
|
+
textAnchor: "middle",
|
|
378
|
+
className: classes.barLabel,
|
|
379
|
+
"aria-hidden": true
|
|
380
|
+
}, typeof props.yAxisTickFormat === 'function' ? props.yAxisTickFormat(pointData.data) : formatScientificLimitWidth(pointData.data)));
|
|
381
|
+
}
|
|
380
382
|
}
|
|
381
383
|
});
|
|
382
384
|
// Used to display tooltip at x axis labels.
|
|
@@ -488,10 +490,13 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
488
490
|
const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;
|
|
489
491
|
let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;
|
|
490
492
|
const margin1 = (totalWidth - reqWidth) / 2;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
493
|
+
let margin2 = Number.POSITIVE_INFINITY;
|
|
494
|
+
if (!props.hideTickOverlap) {
|
|
495
|
+
// Calculate the remaining width after accounting for the space required to render x-axis labels
|
|
496
|
+
const step = calculateLongestLabelWidth(_xAxisLabels) + 20;
|
|
497
|
+
reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;
|
|
498
|
+
margin2 = (totalWidth - reqWidth) / 2;
|
|
499
|
+
}
|
|
495
500
|
_domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));
|
|
496
501
|
}
|
|
497
502
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n YAxisType,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\nconst VERTICAL_BAR_GAP = 1;\nconst MIN_BAR_HEIGHT = 1;\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n const cartesianChartRef = React.useRef<Chart>(null);\n const Y_ORIGIN: number = 0;\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-anyAdd commentMore actions\n function _getMinMaxOfYAxis(datasetForBars: any, yAxisType?: YAxisType, useSecondaryYScale?: boolean) {\n const values: number[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datasetForBars.forEach((data: any) => {\n data.groupSeries.forEach((point: GVBarChartSeriesPoint) => {\n if (!useSecondaryYScale === !point.useSecondaryYScale) {\n values.push(point.data);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n function _getDomainNRangeValues(\n points: GroupedVerticalBarChartData[],\n margins: Margins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated\n // using only the data points associated with the primary y-axis.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScalePrimary: ScaleLinear<number, number>,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(\n _buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement!),\n );\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n event: React.FocusEvent<SVGRectElement, Element>,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n let x = 0;\n let y = 0;\n\n const targetRect = (event.target as SVGRectElement).getBoundingClientRect();\n x = targetRect.left + targetRect.width / 2;\n y = targetRect.top + targetRect.height / 2;\n updatePosition(x, y);\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n const barGap = (VERTICAL_BAR_GAP / 2) * (index > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\n if (pointData.data >= Y_ORIGIN) {\n yPositiveStart -= height + barGap;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + barGap;\n yNegativeStart = yPoint + height;\n }\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={event => onBarHover(pointData, singleSet, event)}\n onMouseMove={event => onBarHover(pointData, singleSet, event)}\n onMouseOut={_onBarLeave}\n onFocus={event => onBarFocus(event, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(pointData.data)\n : formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\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 const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(xAxisLabels) + 20;\n reqWidth = (xAxisLabels.length - _xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n getDomainNRangeValues={_getDomainNRangeValues}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n createStringYAxis={createStringYAxis}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","select","d3Select","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","tooltipOfAxislabels","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","createNumericYAxis","domainRangeOfXStringAxis","createStringYAxis","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","CartesianChart","Legends","DataVizPalette","getColorFromToken","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","_emptyChartId","_useRtl","_domainMargin","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useEffect","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","barWidth","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","_getMinMaxOfYAxis","yAxisType","useSecondaryYScale","values","startValue","endValue","_getDomainNRangeValues","margins","width","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","yMax","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","targetRect","target","getBoundingClientRect","height","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","tempDataSet","Object","splice","datasetKey","yBarScale","xPoint","startColor","yBaseline","yPositiveStart","yNegativeStart","yPoint","barGap","abs","Fragment","rect","className","opacityChangeOnHover","ref","e","fill","rx","onMouseOver","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","axis","g","transform","x0Axis","domain","range","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","margin2","_isChartEmpty","item","_getChartTitle","chartTitle","getDomainNRangeValues","getMinMaxOfYAxis","legendBars","createYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfXStringAxis,\n createStringYAxis,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n YAxisType,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\nconst VERTICAL_BAR_GAP = 1;\nconst MIN_BAR_HEIGHT = 1;\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n const cartesianChartRef = React.useRef<Chart>(null);\n const Y_ORIGIN: number = 0;\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Add commentMore actions\n function _getMinMaxOfYAxis(datasetForBars: any, yAxisType?: YAxisType, useSecondaryYScale?: boolean) {\n const values: number[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datasetForBars.forEach((data: any) => {\n data.groupSeries.forEach((point: GVBarChartSeriesPoint) => {\n if (!useSecondaryYScale === !point.useSecondaryYScale) {\n values.push(point.data);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n function _getDomainNRangeValues(\n points: GroupedVerticalBarChartData[],\n margins: Margins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated\n // using only the data points associated with the primary y-axis.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScalePrimary: ScaleLinear<number, number>,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(\n _buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement!),\n );\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n event: React.FocusEvent<SVGRectElement, Element>,\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n let x = 0;\n let y = 0;\n\n const targetRect = (event.target as SVGRectElement).getBoundingClientRect();\n x = targetRect.left + targetRect.width / 2;\n y = targetRect.top + targetRect.height / 2;\n updatePosition(x, y);\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n if (pointData) {\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n const barGap = (VERTICAL_BAR_GAP / 2) * (index > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\n if (pointData.data >= Y_ORIGIN) {\n yPositiveStart -= height + barGap;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + barGap;\n yNegativeStart = yPoint + height;\n }\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={event => onBarHover(pointData, singleSet, event)}\n onMouseMove={event => onBarHover(pointData, singleSet, event)}\n onMouseOut={_onBarLeave}\n onFocus={event => onBarFocus(event, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(pointData.data)\n : formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\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 const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n let margin2 = Number.POSITIVE_INFINITY;\n if (!props.hideTickOverlap) {\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(_xAxisLabels) + 20;\n reqWidth = (_xAxisLabels.length - _xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n getDomainNRangeValues={_getDomainNRangeValues}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n createStringYAxis={createStringYAxis}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","select","d3Select","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","tooltipOfAxislabels","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","createNumericYAxis","domainRangeOfXStringAxis","createStringYAxis","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","CartesianChart","Legends","DataVizPalette","getColorFromToken","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","_emptyChartId","_useRtl","_domainMargin","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useEffect","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","barWidth","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","_getMinMaxOfYAxis","yAxisType","useSecondaryYScale","values","startValue","endValue","_getDomainNRangeValues","margins","width","chartType","isRTL","xAxisType","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","dStartValue","dEndValue","rStartValue","rEndValue","yMax","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","tickParams","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","targetRect","target","getBoundingClientRect","height","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","tempDataSet","Object","splice","datasetKey","yBarScale","xPoint","startColor","yBaseline","yPositiveStart","yNegativeStart","yPoint","barGap","abs","Fragment","rect","className","opacityChangeOnHover","ref","e","fill","rx","onMouseOver","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","axis","g","transform","x0Axis","domain","range","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","margin2","Number","POSITIVE_INFINITY","hideTickOverlap","step","_isChartEmpty","item","_getChartTitle","chartTitle","getDomainNRangeValues","getMinMaxOfYAxis","legendBars","createYAxis","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../src/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"mappings":"AAuGA;;;CAGC,GACD,WAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './GroupedVerticalBarChart';\nexport * from './GroupedVerticalBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../src/components/GroupedVerticalBarChart/index.ts"],"sourcesContent":["export * from './GroupedVerticalBarChart';\nexport * from './GroupedVerticalBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"mappings":"AAAA,cAAc,4BAA4B;AAC1C,cAAc,kCAAkC;AAChD,cAAc,oBAAoB"}
|
|
@@ -80,5 +80,4 @@ export const useGroupedVerticalBarChartStyles_unstable = props => {
|
|
|
80
80
|
tooltip: mergeClasses(groupedVerticalBarChartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),
|
|
81
81
|
barLabel: mergeClasses(groupedVerticalBarChartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/)
|
|
82
82
|
};
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=useGroupedVerticalBarChartStyles.styles.js.map
|
|
83
|
+
};
|