@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
|
@@ -8,11 +8,11 @@ import { useId } from '@fluentui/react-utilities';
|
|
|
8
8
|
import { tokens } from '@fluentui/react-theme';
|
|
9
9
|
import { CartesianChart, Legends, ChartPopover } from '../../index';
|
|
10
10
|
import { ChartTypes, getAccessibleDataObject, XAxisTypes, getTypeOfAxis, tooltipOfAxislabels, formatScientificLimitWidth, getBarWidth, getScalePadding, isScalePaddingDefined, calculateAppropriateBarWidth, useRtl, areArraysEqual, calculateLongestLabelWidth, findVerticalNumericMinMaxOfY, createNumericYAxis, domainRangeOfVerticalNumeric, domainRangeOfDateForAreaLineVerticalBarChart, domainRangeOfXStringAxis, createStringYAxis } from '../../utilities/index';
|
|
11
|
-
var CircleVisbility
|
|
12
|
-
(function(CircleVisbility) {
|
|
11
|
+
var CircleVisbility = /*#__PURE__*/ function(CircleVisbility) {
|
|
13
12
|
CircleVisbility["show"] = "visibility";
|
|
14
13
|
CircleVisbility["hide"] = "hidden";
|
|
15
|
-
|
|
14
|
+
return CircleVisbility;
|
|
15
|
+
}(CircleVisbility || {});
|
|
16
16
|
const MIN_DOMAIN_MARGIN = 8;
|
|
17
17
|
// Create a VerticalBarChart variant which uses these default styles and this styled subcomponent.
|
|
18
18
|
/**
|
|
@@ -213,7 +213,7 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
213
213
|
}
|
|
214
214
|
function _adjustProps() {
|
|
215
215
|
_points = props.data || [];
|
|
216
|
-
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth);
|
|
216
|
+
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth, undefined, props.mode);
|
|
217
217
|
const defaultColors = [
|
|
218
218
|
tokens.colorPaletteBlueForeground2,
|
|
219
219
|
tokens.colorPaletteCornflowerForeground2,
|
|
@@ -223,7 +223,7 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
223
223
|
];
|
|
224
224
|
_colors = props.colors || defaultColors;
|
|
225
225
|
_isHavingLine = _checkForLine();
|
|
226
|
-
_xAxisInnerPadding = getScalePadding(props.xAxisInnerPadding, props.xAxisPadding, 2 / 3);
|
|
226
|
+
_xAxisInnerPadding = getScalePadding(props.xAxisInnerPadding, props.xAxisPadding, props.mode === 'histogram' ? 0 : _xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2);
|
|
227
227
|
_xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding, props.xAxisPadding, 0);
|
|
228
228
|
}
|
|
229
229
|
function _getMargins(_margins) {
|
|
@@ -433,10 +433,13 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
433
433
|
] : [
|
|
434
434
|
xMin,
|
|
435
435
|
xMax
|
|
436
|
-
]).
|
|
436
|
+
]).range([
|
|
437
437
|
margins.left + _domainMargin,
|
|
438
438
|
containerWidth - margins.right - _domainMargin
|
|
439
439
|
]);
|
|
440
|
+
if (!isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding) && props.mode !== 'histogram') {
|
|
441
|
+
xBarScale.nice();
|
|
442
|
+
}
|
|
440
443
|
} else if (_xAxisType === XAxisTypes.DateAxis) {
|
|
441
444
|
const sDate = d3Min(_points, (point)=>point.x);
|
|
442
445
|
const lDate = d3Max(_points, (point)=>point.x);
|
|
@@ -566,7 +569,7 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
566
569
|
const baselineHeight = containerHeight - margins.bottom - yBarScale(yReferencePoint);
|
|
567
570
|
// Setting the bar width here is safe because there are no dependencies earlier in the code
|
|
568
571
|
// that rely on the width of bars in vertical bar charts with string x-axis.
|
|
569
|
-
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth, xBarScale.bandwidth());
|
|
572
|
+
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth, xBarScale.bandwidth(), props.mode);
|
|
570
573
|
return /*#__PURE__*/ React.createElement("g", {
|
|
571
574
|
key: point.x instanceof Date ? `${point.x.getTime()}_${index}` : `${point.x}_${index}`,
|
|
572
575
|
transform: `translate(${0.5 * (xBarScale.bandwidth() - _barWidth)}, 0)`
|
|
@@ -805,48 +808,71 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
805
808
|
}, typeof props.yAxisTickFormat === 'function' ? props.yAxisTickFormat(barValue) : formatScientificLimitWidth(barValue));
|
|
806
809
|
}
|
|
807
810
|
function _getDomainMargins(containerWidth) {
|
|
811
|
+
var _props_data;
|
|
808
812
|
_domainMargin = MIN_DOMAIN_MARGIN;
|
|
813
|
+
const mapX = {};
|
|
814
|
+
(_props_data = props.data) === null || _props_data === void 0 ? void 0 : _props_data.forEach((point)=>{
|
|
815
|
+
if (point.x instanceof Date) {
|
|
816
|
+
mapX[point.x.getTime()] = point.x;
|
|
817
|
+
} else {
|
|
818
|
+
mapX[point.x] = point.x;
|
|
819
|
+
}
|
|
820
|
+
});
|
|
821
|
+
const uniqueX = Object.values(mapX);
|
|
809
822
|
/** Total width available to render the bars */ const totalWidth = containerWidth - (margins.left + MIN_DOMAIN_MARGIN) - (margins.right + MIN_DOMAIN_MARGIN);
|
|
810
823
|
/** Rate at which the space between the bars changes wrt the bar width */ const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);
|
|
824
|
+
const numBars = uniqueX.length + (uniqueX.length - 1) * barGapRate;
|
|
811
825
|
if (_xAxisType === XAxisTypes.StringAxis) {
|
|
812
826
|
if (isScalePaddingDefined(props.xAxisOuterPadding, props.xAxisPadding)) {
|
|
813
827
|
// Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available
|
|
814
828
|
// to adjust the space before the first bar and after the last bar.
|
|
815
829
|
_domainMargin = 0;
|
|
816
|
-
} else if (props.barWidth !== 'auto') {
|
|
830
|
+
} else if (props.barWidth !== 'auto' && props.mode !== 'histogram') {
|
|
817
831
|
// Update the bar width so that when CartesianChart rerenders,
|
|
818
832
|
// the following calculations don't use the previous bar width.
|
|
819
833
|
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth);
|
|
820
|
-
/** Total width required to render the bars. Directly proportional to bar width */ const reqWidth =
|
|
834
|
+
/** Total width required to render the bars. Directly proportional to bar width */ const reqWidth = numBars * _barWidth;
|
|
821
835
|
if (totalWidth >= reqWidth) {
|
|
822
836
|
// Center align the chart by setting equal left and right margins for domain
|
|
823
837
|
_domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;
|
|
824
838
|
}
|
|
825
|
-
} else if (
|
|
839
|
+
} else if ([
|
|
840
|
+
'plotly',
|
|
841
|
+
'histogram'
|
|
842
|
+
].includes(props.mode) && uniqueX.length > 1) {
|
|
826
843
|
// Calculate the remaining width after rendering bars at their maximum allowable width
|
|
827
|
-
const bandwidth = totalWidth /
|
|
828
|
-
const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth);
|
|
829
|
-
let reqWidth =
|
|
844
|
+
const bandwidth = totalWidth / numBars;
|
|
845
|
+
const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth, props.mode);
|
|
846
|
+
let reqWidth = numBars * barWidth;
|
|
830
847
|
const margin1 = (totalWidth - reqWidth) / 2;
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
848
|
+
let margin2 = Number.POSITIVE_INFINITY;
|
|
849
|
+
if (!props.hideTickOverlap) {
|
|
850
|
+
// Calculate the remaining width after accounting for the space required to render x-axis labels
|
|
851
|
+
const step = calculateLongestLabelWidth(uniqueX) + 20;
|
|
852
|
+
reqWidth = (uniqueX.length - _xAxisInnerPadding) * step;
|
|
853
|
+
margin2 = (totalWidth - reqWidth) / 2;
|
|
854
|
+
}
|
|
835
855
|
_domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));
|
|
836
856
|
}
|
|
837
857
|
} else {
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
858
|
+
if (props.mode === 'histogram') {
|
|
859
|
+
// Try center-aligning the bars to eliminate any gaps caused by a restricted barWidth.
|
|
860
|
+
// This only works if the bin centers are consistent across all legend groups; otherwise,
|
|
861
|
+
// the calculated domainMargin may be too small.
|
|
862
|
+
const barWidth = props.maxBarWidth;
|
|
863
|
+
const reqWidth = numBars * barWidth;
|
|
864
|
+
_domainMargin += Math.max(0, (totalWidth - reqWidth) / 2);
|
|
865
|
+
}
|
|
866
|
+
// The histogram may appear distorted when bin centers/sizes vary across different legend groups.
|
|
867
|
+
// Currently, we calculate the appropriate bar width using the closest unique x-values to make
|
|
868
|
+
// the bars of the same legend group adjacent. But these x-values can come from different legend groups
|
|
869
|
+
// and result in misleading visuals. Even if we compute bar widths separately within each group,
|
|
870
|
+
// we still lack support for rendering bars with different widths and must use the minimum width,
|
|
871
|
+
// which can cause the same issue.
|
|
872
|
+
// Solution: Instead of estimating the appropriate bar width, render each bar to span the full range
|
|
873
|
+
// of its corresponding bin explicitly.
|
|
874
|
+
_barWidth = getBarWidth(props.barWidth, props.maxBarWidth, calculateAppropriateBarWidth(uniqueX, totalWidth - 2 * (_domainMargin - MIN_DOMAIN_MARGIN), _xAxisInnerPadding), props.mode);
|
|
875
|
+
_domainMargin += _barWidth / 2;
|
|
850
876
|
}
|
|
851
877
|
return {
|
|
852
878
|
...margins,
|
|
@@ -929,6 +955,7 @@ const MIN_DOMAIN_MARGIN = 8;
|
|
|
929
955
|
xAxisOuterPadding: _xAxisOuterPadding
|
|
930
956
|
},
|
|
931
957
|
componentRef: cartesianChartRef,
|
|
958
|
+
showRoundOffXTickValues: !isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding) && props.mode !== 'histogram',
|
|
932
959
|
/* eslint-disable react/jsx-no-bind */ // eslint-disable-next-line react/no-children-prop
|
|
933
960
|
children: (props)=>{
|
|
934
961
|
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("g", null, _bars), _isHavingLine && /*#__PURE__*/ React.createElement("g", null, _createLine(props.xScale, props.yScalePrimary, props.containerHeight, props.containerWidth, props.yScaleSecondary)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["VerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useVerticalBarChartStyles } from './useVerticalBarChartStyles.styles';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { line as d3Line } from 'd3-shape';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n} from 'd3-scale';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n VerticalBarChartProps,\n VerticalBarChartDataPoint,\n Legends,\n ChildProps,\n YValueHover,\n ChartPopover,\n Chart,\n DataPoint,\n} from '../../index';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n NumericAxis,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n useRtl,\n areArraysEqual,\n calculateLongestLabelWidth,\n findVerticalNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfVerticalNumeric,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/index';\n\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nconst MIN_DOMAIN_MARGIN = 8;\n\n// Create a VerticalBarChart variant which uses these default styles and this styled subcomponent.\n/**\n * VerticalBarchart component\n * {@docCategory VerticalBarChart}\n */\nexport const VerticalBarChart: React.FunctionComponent<VerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n VerticalBarChartProps\n>((props, forwardedRef) => {\n let _points: VerticalBarChartDataPoint[] = [];\n let _barWidth: number = 0;\n let _colors: string[];\n const _refArray: RefArrayData[] = [];\n let margins: Margins;\n const _useRtl: boolean = useRtl();\n let _bars: JSX.Element[];\n let _xAxisLabels: string[];\n let _yMax: number;\n let _yMin: number;\n let _isHavingLine: boolean = _checkForLine();\n const _tooltipId: string = useId('VCTooltipID_');\n const _xAxisType: XAxisTypes =\n props.data! && props.data!.length > 0\n ? (getTypeOfAxis(props.data![0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n let _calloutAnchorPoint: VerticalBarChartDataPoint | null;\n let _domainMargin: number;\n const _emptyChartId: string = useId('_VBC_empty');\n const _vbcLineId: string = useId('_VBC_line_');\n const _vbcPointId: string = useId('_VBC_point_');\n const _vbcBarId: string = useId('_VBC_bar_');\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n type ColorScale = (_p?: number) => string;\n const cartesianChartRef = React.useRef<Chart>(null);\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [activeLegend, setActiveLegend] = React.useState<string | undefined>(undefined);\n const [xCalloutValue, setXCalloutValue] = React.useState<string | undefined>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [activeXdataPoint, setActiveXDatapoint] = React.useState<string | number | Date | null>(null);\n const [hoveredYValues, setYValueHover] = React.useState<YValueHover[]>();\n const [hoverXValue, setHoverXValue] = React.useState<string | number | undefined>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCalloutAccessibilityData] = React.useState<AccessibilityProps>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<VerticalBarChartDataPoint>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const prevPropsRef = React.useRef<VerticalBarChartProps | null>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n React.useEffect(() => {\n if (prevPropsRef.current) {\n const prevProps = prevPropsRef.current;\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n if (prevProps.height !== props.height || prevProps.width !== props.width) {\n _adjustProps();\n }\n }\n prevPropsRef.current = props;\n }, [props, prevPropsRef, _adjustProps]);\n\n function _getDomainNRangeValues(\n points: DataPoint[],\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) {\n domainNRangeValue = domainRangeOfVerticalNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _createLine(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary: any,\n containerHeight: number = 0,\n containerWidth: number = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any,\n ): React.ReactNode {\n const isStringAxis = _xAxisType === XAxisTypes.StringAxis;\n const colorScale = _createColors();\n const { data, lineLegendColor = tokens.colorPaletteYellowBackground1, lineLegendText } = props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const lineData: Array<any> = [];\n const line: JSX.Element[] = [];\n data &&\n data.forEach((item: VerticalBarChartDataPoint, index: number) => {\n if (item.lineData && item.lineData.y) {\n lineData.push({\n x: item.x,\n y: item.lineData!.y,\n useSecondaryYScale: item.lineData!.useSecondaryYScale ?? false,\n point: item,\n index,\n });\n }\n });\n const linePath = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => (isStringAxis ? xScale(d.x) + 0.5 * xScale.bandwidth() : xScale(d.x)))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => (d.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(d.y) : yScalePrimary(d.y)));\n const shouldHighlight = _legendHighlighted(lineLegendText!) || _noLegendHighlighted() ? true : false;\n const lineBorderWidth = props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n if (lineBorderWidth > 0) {\n line.push(\n <path\n key={_vbcLineId}\n id={_vbcLineId}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3 + lineBorderWidth * 2}\n className={classes.lineBorder}\n />,\n );\n }\n line.push(\n <path\n key={_vbcLineId}\n id={_vbcLineId}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3}\n stroke={lineLegendColor}\n />,\n );\n\n const dots: React.ReactNode[] = lineData.map(\n (\n item: {\n x: number | string;\n y: number;\n useSecondaryYScale: boolean;\n point: VerticalBarChartDataPoint;\n index: number;\n },\n index: number,\n ) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n return (\n <circle\n key={index}\n id={`${_vbcPointId}-${index}`}\n cx={isStringAxis ? xScale(item.x) + 0.5 * xScale.bandwidth() : xScale(item.x)}\n cy={item.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(item.y) : yScalePrimary(item.y)}\n onMouseOver={event =>\n _legendHighlighted(lineLegendText!)\n ? _lineHover(item.point, event)\n : _onBarHover(item.point, colorScale(item.y), event)\n }\n onMouseOut={_onBarLeave}\n r={_getCircleVisibilityAndRadius(item.x, lineLegendText!).radius}\n stroke={lineLegendColor}\n fill={tokens.colorNeutralBackground1}\n strokeWidth={3}\n visibility={_getCircleVisibilityAndRadius(item.x, lineLegendText!).visibility}\n onClick={item.point.lineData?.onClick}\n // When no legend is highlighted: Line points are automatically displayed along with the bars\n // at the same x-axis point in the stack callout. So to prevent an increase in focusable elements\n // and avoid conveying duplicate info, make these line points non-focusable.\n data-is-focusable={_legendHighlighted(lineLegendText!)}\n ref={e => (circleRef.refElement = e)}\n onFocus={event => _lineFocus(event, item.point, circleRef)}\n onBlur={_handleChartMouseLeave}\n tabIndex={_legendHighlighted(lineLegendText!) ? 0 : undefined}\n />\n );\n },\n );\n\n return (\n <>\n {line}\n {dots}\n </>\n );\n }\n\n function _getCircleVisibilityAndRadius(\n xAxisPoint: string | number | Date,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } {\n if (!_noLegendHighlighted()) {\n if (xAxisPoint === activeXdataPoint && _legendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (_legendHighlighted(legend)) {\n // Don't hide the circle to keep it focusable. For more information,\n // see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXdataPoint === xAxisPoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n }\n\n function _checkForLine(): boolean {\n const { data } = props;\n return data!.some((item: VerticalBarChartDataPoint) => item?.lineData?.y !== undefined);\n }\n\n function _adjustProps(): void {\n _points = props.data || [];\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const defaultColors: string[] = [\n tokens.colorPaletteBlueForeground2,\n tokens.colorPaletteCornflowerForeground2,\n tokens.colorPaletteDarkGreenForeground2,\n tokens.colorPaletteNavyForeground2,\n tokens.colorPaletteDarkOrangeForeground2,\n ];\n _colors = props.colors || defaultColors;\n _isHavingLine = _checkForLine();\n _xAxisInnerPadding = getScalePadding(props.xAxisInnerPadding, props.xAxisPadding, 2 / 3);\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding, props.xAxisPadding, 0);\n }\n\n function _getMargins(_margins: Margins) {\n margins = _margins;\n }\n\n function _renderContentForBothLineAndBars(point: VerticalBarChartDataPoint): JSX.Element {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n const content: JSX.Element[] = YValueHover.map((item: YValueHover, index: number) => {\n return (\n <>\n <ChartPopover\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={item.legend!}\n {...(index === 0 && { XValue: `${hoverXValue || item.data}` })}\n YValue={item.data || item.y}\n color={item.color}\n isCalloutForStack={false}\n />\n </>\n );\n });\n return <>{content}</>;\n }\n\n function _renderContentForOnlyBars(_props: VerticalBarChartDataPoint): JSX.Element {\n return (\n <>\n <ChartPopover\n XValue={_props.xAxisCalloutData || (_props.x as string)}\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={_props.legend!}\n YValue={_props.yAxisCalloutData || _props.y}\n color={!props.useSingleColor && _props.color ? _props.color : _createColors()(_props.y)}\n isCalloutForStack={false}\n />\n </>\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n function _renderCallout(props?: VerticalBarChartDataPoint): JSX.Element | null {\n return props ? (_isHavingLine ? _renderContentForBothLineAndBars(props) : _renderContentForOnlyBars(props)) : null;\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps, _renderCallout)\n : null;\n }\n\n function _getGraphData(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) {\n return (_bars =\n _xAxisType === XAxisTypes.NumericAxis\n ? _createNumericBars(containerHeight, containerWidth, xElement!)\n : _xAxisType === XAxisTypes.DateAxis\n ? _createDateBars(containerHeight, containerWidth, xElement!)\n : _createStringBars(containerHeight, containerWidth, xElement!));\n }\n\n function _createColors(): D3ScaleLinear<string, string> | ColorScale {\n const increment = _colors.length <= 1 ? 1 : 1 / (_colors.length - 1);\n const { useSingleColor = false } = props;\n if (useSingleColor) {\n return (_p?: number) => {\n const { colors } = props;\n return colors && colors.length > 0 ? colors[0] : tokens.colorPaletteBlueBackground2;\n };\n }\n const domainValues = [];\n for (let i = 0; i < _colors.length; i++) {\n domainValues.push(increment * i * _yMax);\n }\n const colorScale = d3ScaleLinear<string>().domain(domainValues).range(_colors);\n return colorScale;\n }\n\n function _refCallback(element: SVGRectElement, legendTitle: string): void {\n _refArray.push({ index: legendTitle, refElement: element });\n }\n\n function _getCalloutContentForLineAndBar(point: VerticalBarChartDataPoint): {\n YValueHover: YValueHover[];\n hoverXValue: string | number | undefined;\n } {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const YValueHover: YValueHover[] = [];\n const { useSingleColor = false } = props;\n const { data, lineLegendText, lineLegendColor = tokens.colorPaletteYellowBackground1 } = props;\n const selectedPoint = data!.filter((xDataPoint: VerticalBarChartDataPoint) => xDataPoint.x === point.x);\n // Check if the line legend is highlighted or no legend is highlighted\n if (\n _isHavingLine &&\n selectedPoint[0].lineData?.y !== undefined &&\n (_legendHighlighted(lineLegendText) || _noLegendHighlighted())\n ) {\n // Add callout data for the line\n YValueHover.push({\n legend: lineLegendText,\n color: lineLegendColor,\n y: selectedPoint[0].lineData?.y,\n data: selectedPoint[0].lineData?.yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].lineData?.yAxisCalloutData,\n });\n }\n // Check if the bar legend is highlighted or no legend is highlighted\n if (selectedLegends.includes(selectedPoint[0].legend!) || _noLegendHighlighted()) {\n // Add callout data for the bar\n YValueHover.push({\n legend: selectedPoint[0].legend,\n y: selectedPoint[0].y,\n color: !useSingleColor\n ? selectedPoint[0].color\n ? selectedPoint[0].color\n : _createColors()(selectedPoint[0].y)\n : _createColors()(1),\n data: selectedPoint[0].yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].yAxisCalloutData,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const hoverXValue = point.x instanceof Date ? point.x.toLocaleString() : point.x.toString();\n return {\n YValueHover,\n hoverXValue: point.xAxisCalloutData || hoverXValue,\n };\n }\n\n function _onBarHover(\n point: VerticalBarChartDataPoint,\n // eslint-disable-next-line @typescript-eslint/no-shadow\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n if (_calloutAnchorPoint !== point) {\n _calloutAnchorPoint = point;\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(point.legend));\n setDataForHoverCard(point.y);\n setCalloutLegend(point.legend!);\n setColor(point.color || color);\n // To display callout value, if no callout value given, taking given point.x value as a string.\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setDataPointCalloutProps(point);\n // Hovering over a bar should highlight corresponding line points only when no legend is selected\n setActiveXDatapoint(_noLegendHighlighted() ? point.x : null);\n setYValueHover(YValueHover);\n setHoverXValue(hoverXValue);\n setCalloutAccessibilityData(point.callOutAccessibilityData);\n }\n }\n\n function _onBarLeave(): void {\n /**/\n }\n\n function _handleChartMouseLeave(): void {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n setActiveXDatapoint(null);\n setYValueHover([]);\n setHoverXValue('');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n function _onBarFocus(\n event: React.FocusEvent<SVGRectElement, Element>,\n point: VerticalBarChartDataPoint,\n refArrayIndexNumber: number,\n color: string,\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 // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === point.legend! && refArrayIndexNumber === index) {\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(point.legend));\n setDataForHoverCard(point.y);\n setCalloutLegend(point.legend!);\n setColor(point.color || color);\n // To display callout value, if no callout value given, taking given point.x value as a string.\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setYCalloutValue(point.yAxisCalloutData!);\n setDataPointCalloutProps(point);\n // Hovering over a bar should highlight corresponding line points only when no legend is selected\n setActiveXDatapoint(point.x);\n setYValueHover(YValueHover);\n setHoverXValue(hoverXValue);\n setCalloutAccessibilityData(point.callOutAccessibilityData);\n }\n });\n }\n\n function _lineHover(point: VerticalBarChartDataPoint, mouseEvent: React.MouseEvent<SVGElement>) {\n mouseEvent.persist();\n _lineHoverFocus(point, mouseEvent);\n }\n\n function _lineFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n point: VerticalBarChartDataPoint,\n ref: { refElement: SVGCircleElement | null },\n ) {\n if (ref.refElement) {\n _lineHoverFocus(point, ref.refElement);\n }\n }\n\n function _lineHoverFocus(\n point: VerticalBarChartDataPoint,\n _refSelected: React.MouseEvent<SVGElement> | SVGCircleElement,\n ) {\n const { lineLegendText = '', lineLegendColor = tokens.colorPaletteYellowBackground1 } = props;\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(lineLegendText));\n setCalloutLegend(lineLegendText);\n setDataForHoverCard(point.lineData!.y);\n setColor(lineLegendColor);\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setYCalloutValue(point.lineData!.yAxisCalloutData);\n setDataPointCalloutProps(point);\n setActiveXDatapoint(point.x);\n }\n\n function _getScales(\n containerHeight: number,\n containerWidth: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): { xBarScale: any; yBarScale: any } {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xBarScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yBarScale: any = d3ScaleLinear()\n .domain([_yMin, _yMax])\n .range([0, containerHeight - margins.bottom! - margins.top!]);\n\n if (_xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(_points, (point: VerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(_points, (point: VerticalBarChartDataPoint) => point.x as number)!;\n xBarScale = d3ScaleLinear()\n .domain(_useRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([margins.left! + _domainMargin, containerWidth - margins.right! - _domainMargin]);\n } else if (_xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(_points, (point: VerticalBarChartDataPoint) => point.x as Date)!;\n const lDate = d3Max(_points, (point: VerticalBarChartDataPoint) => point.x as Date)!;\n xBarScale = d3ScaleUtc()\n .domain([sDate, lDate])\n .range(\n _useRtl\n ? [containerWidth - margins.right! - _domainMargin, margins.left! + _domainMargin]\n : [margins.left! + _domainMargin, containerWidth - margins.right! - _domainMargin],\n );\n } else {\n xBarScale = 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 }\n\n return { xBarScale, yBarScale };\n }\n\n const classes = useVerticalBarChartStyles(props);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _calculateMinBarHeight(yMin: number, yMax: number, yReferencePoint: number, yBarScale: any): number {\n const maxHeightFromBaseline =\n yMax < 0\n ? Math.abs(yMin - yReferencePoint)\n : Math.max(Math.abs(yMax - yReferencePoint), Math.abs(yMin - yReferencePoint));\n return Math.ceil(yBarScale(maxHeightFromBaseline) / 100.0);\n }\n\n function _createNumericBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = props;\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\n return (\n <g key={`${point.x}_${index}` as string}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n opacity={shouldHighlight ? 1 : 0.1}\n rx={props.roundCorners ? 3 : 0}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 bars;\n }\n\n function _createStringBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x);\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\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(props.barWidth, props.maxBarWidth, xBarScale.bandwidth());\n return (\n <g\n key={point.x instanceof Date ? `${point.x.getTime()}_${index}` : `${point.x}_${index}`}\n transform={`translate(${0.5 * (xBarScale.bandwidth() - _barWidth)}, 0)`}\n >\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n onMouseLeave={_onBarLeave}\n onBlur={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n fill={point.color ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n rx={props.roundCorners ? 3 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 showTooltip: props.showXAxisLablesTooltip,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return bars;\n }\n\n function _createDateBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = props;\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\n return (\n <g key={point.x instanceof Date ? `${point.x.getTime()}_${index}` : `${point.x}_${index}`}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n className={classes.opacityChangeOnHover}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n rx={props.roundCorners ? 3 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 bars;\n }\n\n function _onLegendHover(legendTitle: string): void {\n setActiveLegend(legendTitle);\n }\n\n function _onLegendLeave(): void {\n setActiveLegend(undefined);\n }\n\n function _getLegendData(data: VerticalBarChartDataPoint[]): JSX.Element {\n const { useSingleColor } = props;\n const { lineLegendText, lineLegendColor = tokens.colorPaletteYellowForeground1 } = props;\n const actions: Legend[] = [];\n const mapLegendToColor: Record<string, string> = {};\n data.forEach((point: VerticalBarChartDataPoint, _index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const color: string = !useSingleColor ? point.color! : _createColors()(1);\n mapLegendToColor[point.legend!] = color;\n });\n Object.entries(mapLegendToColor).forEach(([legendTitle, color]) => {\n // mapping data to the format Legends component needs\n const legend: Legend = {\n title: legendTitle,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n actions.push(legend);\n });\n if (_isHavingLine && lineLegendText && lineLegendColor) {\n const lineLegend: Legend = {\n title: lineLegendText,\n color: lineLegendColor,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(lineLegendText);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n isLineLegendInBarChart: true,\n };\n actions.unshift(lineLegend);\n }\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n selectedLegends={selectedLegends}\n onChange={_onLegendSelectionChange}\n />\n );\n return legends;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n function _getAxisData(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 _yMin = Math.min(domainValue[0], props.yMinValue || 0);\n }\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n function _legendHighlighted(legendTitle: string | undefined): boolean {\n return _getHighlightedLegend().includes(legendTitle!);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n function _noLegendHighlighted(): boolean {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getHighlightedLegend() {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _getAriaLabel(point: VerticalBarChartDataPoint): string {\n const xValue = point.xAxisCalloutData\n ? point.xAxisCalloutData\n : point.x instanceof Date\n ? point.x.toLocaleString()\n : point.x;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.y;\n const lineLegend = props.lineLegendText || 'Line';\n const lineYValue = point.lineData?.yAxisCalloutData || point.lineData?.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}. ` +\n (legend ? `${legend}, ` : '') +\n `${yValue}.` +\n (typeof lineYValue !== 'undefined' ? ` ${lineLegend}, ${lineYValue}.` : '')\n );\n }\n\n function _renderBarLabel(xPoint: number, yPoint: number, barValue: number, legend: string, isNegativeBar: boolean) {\n if (props.hideLabels || _barWidth < 16 || !(_legendHighlighted(legend) || _noLegendHighlighted())) {\n return null;\n }\n\n return (\n <text\n x={xPoint + _barWidth / 2}\n y={isNegativeBar ? yPoint + 12 : yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barValue)\n : formatScientificLimitWidth(barValue)}\n </text>\n );\n }\n\n function _getDomainMargins(containerWidth: number): Margins {\n _domainMargin = MIN_DOMAIN_MARGIN;\n\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 bars changes wrt the bar width */\n const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding, props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n _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 /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * _barWidth;\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 bars at their maximum allowable width\n const bandwidth = totalWidth / (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth);\n let reqWidth = (_xAxisLabels.length + (_xAxisLabels.length - 1) * barGapRate) * barWidth;\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 } else {\n const uniqueX: Record<number, number | Date> = {};\n props.data?.forEach(point => {\n if (point.x instanceof Date) {\n uniqueX[point.x.getTime()] = point.x;\n } else {\n uniqueX[point.x as number] = point.x as number;\n }\n });\n const data = Object.values(uniqueX) as number[] | Date[];\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth, calculateAppropriateBarWidth(data, totalWidth));\n _domainMargin = MIN_DOMAIN_MARGIN + _barWidth / 2;\n }\n\n return {\n ...margins,\n left: margins.left! + _domainMargin,\n right: margins.right! + _domainMargin,\n };\n }\n\n function _isChartEmpty(): boolean {\n return _points.length === 0 || (_points.every(point => point.y === 0) && !_isHavingLine);\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 _adjustProps();\n _xAxisLabels = _points.map((point: VerticalBarChartDataPoint) => point.x as string);\n _yMax = Math.max(d3Max(_points, (point: VerticalBarChartDataPoint) => point.y)!, props.yMaxValue || 0);\n _yMin = Math.min(d3Min(_points, (point: VerticalBarChartDataPoint) => point.y)!, props.yMinValue || 0);\n const legendBars: JSX.Element = _getLegendData(_points);\n const calloutProps = {\n ...(_isHavingLine && {\n YValueHover: hoveredYValues,\n hoverXValue: hoverXValue,\n }),\n color: color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData),\n clickPosition: clickPosition,\n isPopoverOpen: isPopoverOpen,\n isCalloutForStack: _isHavingLine && (_noLegendHighlighted() || _getHighlightedLegend().length > 1),\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() != null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n\n const tickParams = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n points={_points}\n chartType={ChartTypes.VerticalBarChart}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n calloutProps={calloutProps}\n tickParams={tickParams}\n {...(_isHavingLine && _noLegendHighlighted() && { isCalloutForStack: true })}\n legendBars={legendBars}\n datasetForXAxisDomain={_xAxisLabels}\n barwidth={_barWidth}\n createStringYAxis={createStringYAxis}\n getmargins={_getMargins}\n getMinMaxOfYAxis={findVerticalNumericMinMaxOfY}\n getGraphData={_getGraphData}\n getDomainNRangeValues={_getDomainNRangeValues}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: ChildProps) => {\n return (\n <>\n <g>{_bars}</g>\n {_isHavingLine && (\n <g>\n {_createLine(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight,\n props.containerWidth,\n props.yScaleSecondary,\n )}\n </g>\n )}\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nVerticalBarChart.displayName = 'VerticalBarChart';\n"],"names":["React","useVerticalBarChartStyles","max","d3Max","min","d3Min","line","d3Line","select","d3Select","scaleLinear","d3ScaleLinear","scaleBand","d3ScaleBand","scaleUtc","d3ScaleUtc","useId","tokens","CartesianChart","Legends","ChartPopover","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","tooltipOfAxislabels","formatScientificLimitWidth","getBarWidth","getScalePadding","isScalePaddingDefined","calculateAppropriateBarWidth","useRtl","areArraysEqual","calculateLongestLabelWidth","findVerticalNumericMinMaxOfY","createNumericYAxis","domainRangeOfVerticalNumeric","domainRangeOfDateForAreaLineVerticalBarChart","domainRangeOfXStringAxis","createStringYAxis","CircleVisbility","MIN_DOMAIN_MARGIN","VerticalBarChart","forwardRef","props","forwardedRef","_points","_barWidth","_colors","_refArray","margins","_useRtl","_bars","_xAxisLabels","_yMax","_yMin","_isHavingLine","_checkForLine","_tooltipId","_xAxisType","data","length","x","StringAxis","_calloutAnchorPoint","_domainMargin","_emptyChartId","_vbcLineId","_vbcPointId","_vbcBarId","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","activeLegend","setActiveLegend","undefined","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","activeXdataPoint","setActiveXDatapoint","hoveredYValues","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","callOutAccessibilityData","setCalloutAccessibilityData","dataPointCalloutProps","setDataPointCalloutProps","clickPosition","setClickPosition","y","isPopoverOpen","setPopoverOpen","selectedLegends","setSelectedLegends","legendProps","prevPropsRef","useImperativeHandle","componentRef","chartContainer","current","useEffect","prevProps","height","width","_adjustProps","_getDomainNRangeValues","points","chartType","isRTL","xAxisType","barWidth","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","_createLine","xScale","yScalePrimary","containerHeight","containerWidth","yScaleSecondary","isStringAxis","colorScale","_createColors","lineLegendColor","colorPaletteYellowBackground1","lineLegendText","lineData","forEach","item","index","push","useSecondaryYScale","point","linePath","d","bandwidth","shouldHighlight","_legendHighlighted","_noLegendHighlighted","lineBorderWidth","lineOptions","Number","parseFloat","toString","path","key","id","opacity","fill","strokeLinecap","strokeWidth","className","classes","lineBorder","stroke","dots","map","circleRef","refElement","circle","cx","cy","onMouseOver","event","_lineHover","_onBarHover","onMouseOut","_onBarLeave","r","_getCircleVisibilityAndRadius","radius","colorNeutralBackground1","visibility","onClick","data-is-focusable","ref","e","onFocus","_lineFocus","onBlur","_handleChartMouseLeave","tabIndex","xAxisPoint","legend","some","maxBarWidth","defaultColors","colorPaletteBlueForeground2","colorPaletteCornflowerForeground2","colorPaletteDarkGreenForeground2","colorPaletteNavyForeground2","colorPaletteDarkOrangeForeground2","colors","xAxisInnerPadding","xAxisPadding","xAxisOuterPadding","_getMargins","_margins","_renderContentForBothLineAndBars","YValueHover","_getCalloutContentForLineAndBar","content","culture","XValue","YValue","isCalloutForStack","_renderContentForOnlyBars","_props","xAxisCalloutData","yAxisCalloutData","useSingleColor","_renderCallout","_getCustomizedCallout","onRenderCalloutPerDataPoint","_getGraphData","yScale","xElement","_createNumericBars","_createDateBars","_createStringBars","increment","_p","colorPaletteBlueBackground2","domainValues","i","domain","range","_refCallback","element","legendTitle","selectedPoint","filter","xDataPoint","includes","Date","toLocaleString","mouseEvent","persist","updatePosition","clientX","clientY","toLocaleDateString","_onBarFocus","refArrayIndexNumber","targetRect","target","getBoundingClientRect","left","top","obj","_lineHoverFocus","_refSelected","_getScales","xBarScale","yBarScale","bottom","xMax","xMin","nice","right","sDate","lDate","paddingInner","paddingOuter","_calculateMinBarHeight","yMin","yMax","yReferencePoint","maxHeightFromBaseline","Math","abs","ceil","bars","barHeight","isHeightNegative","minBarHeight","adjustedBarHeight","Fragment","xPoint","yPoint","baselineHeight","g","rect","aria-label","_getAriaLabel","role","onMouseLeave","hideTooltip","rx","roundCorners","_renderBarLabel","showXAxisLablesTooltip","document","getElementById","remove","wrapXAxisLables","xAxisElement","call","tooltipProps","tooltipCls","tooltip","axis","getTime","transform","showTooltip","opacityChangeOnHover","_onLegendHover","_onLegendLeave","_getLegendData","colorPaletteYellowForeground1","actions","mapLegendToColor","_index","Object","entries","title","hoverAction","onMouseOutAction","lineLegend","isLineLegendInBarChart","unshift","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onChange","_onLegendSelectionChange","legendsSelected","currentLegend","canSelectMultipleLegends","slice","_getAxisData","yAxisData","yAxisDomainValues","domainValue","yMaxValue","yMinValue","_getHighlightedLegend","xValue","yValue","lineYValue","ariaLabel","barValue","isNegativeBar","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","_getDomainMargins","totalWidth","barGapRate","reqWidth","mode","margin1","step","margin2","uniqueX","values","_isChartEmpty","every","newX","newY","threshold","distance","sqrt","pow","legendBars","calloutProps","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","tickFormat","createYAxis","datasetForXAxisDomain","barwidth","getmargins","getMinMaxOfYAxis","getGraphData","getDomainNRangeValues","getAxisData","onChartMouseLeave","getDomainMargins","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/VerticalBarChart/VerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useVerticalBarChartStyles } from './useVerticalBarChartStyles.styles';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { line as d3Line } from 'd3-shape';\nimport { select as d3Select } from 'd3-selection';\nimport {\n scaleLinear as d3ScaleLinear,\n ScaleLinear as D3ScaleLinear,\n scaleBand as d3ScaleBand,\n scaleUtc as d3ScaleUtc,\n} from 'd3-scale';\nimport { useId } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n VerticalBarChartProps,\n VerticalBarChartDataPoint,\n Legends,\n ChildProps,\n YValueHover,\n ChartPopover,\n Chart,\n DataPoint,\n} from '../../index';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n NumericAxis,\n getTypeOfAxis,\n tooltipOfAxislabels,\n formatScientificLimitWidth,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n useRtl,\n areArraysEqual,\n calculateLongestLabelWidth,\n findVerticalNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfVerticalNumeric,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/index';\n\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nconst MIN_DOMAIN_MARGIN = 8;\n\n// Create a VerticalBarChart variant which uses these default styles and this styled subcomponent.\n/**\n * VerticalBarchart component\n * {@docCategory VerticalBarChart}\n */\nexport const VerticalBarChart: React.FunctionComponent<VerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n VerticalBarChartProps\n>((props, forwardedRef) => {\n let _points: VerticalBarChartDataPoint[] = [];\n let _barWidth: number = 0;\n let _colors: string[];\n const _refArray: RefArrayData[] = [];\n let margins: Margins;\n const _useRtl: boolean = useRtl();\n let _bars: JSX.Element[];\n let _xAxisLabels: string[];\n let _yMax: number;\n let _yMin: number;\n let _isHavingLine: boolean = _checkForLine();\n const _tooltipId: string = useId('VCTooltipID_');\n const _xAxisType: XAxisTypes =\n props.data! && props.data!.length > 0\n ? (getTypeOfAxis(props.data![0].x, true) as XAxisTypes)\n : XAxisTypes.StringAxis;\n let _calloutAnchorPoint: VerticalBarChartDataPoint | null;\n let _domainMargin: number;\n const _emptyChartId: string = useId('_VBC_empty');\n const _vbcLineId: string = useId('_VBC_line_');\n const _vbcPointId: string = useId('_VBC_point_');\n const _vbcBarId: string = useId('_VBC_bar_');\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n type ColorScale = (_p?: number) => string;\n const cartesianChartRef = React.useRef<Chart>(null);\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [activeLegend, setActiveLegend] = React.useState<string | undefined>(undefined);\n const [xCalloutValue, setXCalloutValue] = React.useState<string | undefined>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string | undefined>('');\n const [activeXdataPoint, setActiveXDatapoint] = React.useState<string | number | Date | null>(null);\n const [hoveredYValues, setYValueHover] = React.useState<YValueHover[]>();\n const [hoverXValue, setHoverXValue] = React.useState<string | number | undefined>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCalloutAccessibilityData] = React.useState<AccessibilityProps>();\n const [dataPointCalloutProps, setDataPointCalloutProps] = React.useState<VerticalBarChartDataPoint>();\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState(false);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const prevPropsRef = React.useRef<VerticalBarChartProps | null>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n React.useEffect(() => {\n if (prevPropsRef.current) {\n const prevProps = prevPropsRef.current;\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n if (prevProps.height !== props.height || prevProps.width !== props.width) {\n _adjustProps();\n }\n }\n prevPropsRef.current = props;\n }, [props, prevPropsRef, _adjustProps]);\n\n function _getDomainNRangeValues(\n points: DataPoint[],\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) {\n domainNRangeValue = domainRangeOfVerticalNumeric(points, margins, width, isRTL, barWidth!);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n }\n return domainNRangeValue;\n }\n\n function _createLine(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScalePrimary: any,\n containerHeight: number = 0,\n containerWidth: number = 0,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any,\n ): React.ReactNode {\n const isStringAxis = _xAxisType === XAxisTypes.StringAxis;\n const colorScale = _createColors();\n const { data, lineLegendColor = tokens.colorPaletteYellowBackground1, lineLegendText } = props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const lineData: Array<any> = [];\n const line: JSX.Element[] = [];\n data &&\n data.forEach((item: VerticalBarChartDataPoint, index: number) => {\n if (item.lineData && item.lineData.y) {\n lineData.push({\n x: item.x,\n y: item.lineData!.y,\n useSecondaryYScale: item.lineData!.useSecondaryYScale ?? false,\n point: item,\n index,\n });\n }\n });\n const linePath = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => (isStringAxis ? xScale(d.x) + 0.5 * xScale.bandwidth() : xScale(d.x)))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => (d.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(d.y) : yScalePrimary(d.y)));\n const shouldHighlight = _legendHighlighted(lineLegendText!) || _noLegendHighlighted() ? true : false;\n const lineBorderWidth = props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n\n if (lineBorderWidth > 0) {\n line.push(\n <path\n key={_vbcLineId}\n id={_vbcLineId}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3 + lineBorderWidth * 2}\n className={classes.lineBorder}\n />,\n );\n }\n line.push(\n <path\n key={_vbcLineId}\n id={_vbcLineId}\n opacity={shouldHighlight ? 1 : 0.1}\n d={linePath(lineData)!}\n fill=\"transparent\"\n strokeLinecap=\"square\"\n strokeWidth={3}\n stroke={lineLegendColor}\n />,\n );\n\n const dots: React.ReactNode[] = lineData.map(\n (\n item: {\n x: number | string;\n y: number;\n useSecondaryYScale: boolean;\n point: VerticalBarChartDataPoint;\n index: number;\n },\n index: number,\n ) => {\n // Create an object to store line point ref so that the object can be passed by reference to the focus handler\n const circleRef: { refElement: SVGCircleElement | null } = { refElement: null };\n return (\n <circle\n key={index}\n id={`${_vbcPointId}-${index}`}\n cx={isStringAxis ? xScale(item.x) + 0.5 * xScale.bandwidth() : xScale(item.x)}\n cy={item.useSecondaryYScale && yScaleSecondary ? yScaleSecondary(item.y) : yScalePrimary(item.y)}\n onMouseOver={event =>\n _legendHighlighted(lineLegendText!)\n ? _lineHover(item.point, event)\n : _onBarHover(item.point, colorScale(item.y), event)\n }\n onMouseOut={_onBarLeave}\n r={_getCircleVisibilityAndRadius(item.x, lineLegendText!).radius}\n stroke={lineLegendColor}\n fill={tokens.colorNeutralBackground1}\n strokeWidth={3}\n visibility={_getCircleVisibilityAndRadius(item.x, lineLegendText!).visibility}\n onClick={item.point.lineData?.onClick}\n // When no legend is highlighted: Line points are automatically displayed along with the bars\n // at the same x-axis point in the stack callout. So to prevent an increase in focusable elements\n // and avoid conveying duplicate info, make these line points non-focusable.\n data-is-focusable={_legendHighlighted(lineLegendText!)}\n ref={e => (circleRef.refElement = e)}\n onFocus={event => _lineFocus(event, item.point, circleRef)}\n onBlur={_handleChartMouseLeave}\n tabIndex={_legendHighlighted(lineLegendText!) ? 0 : undefined}\n />\n );\n },\n );\n\n return (\n <>\n {line}\n {dots}\n </>\n );\n }\n\n function _getCircleVisibilityAndRadius(\n xAxisPoint: string | number | Date,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } {\n if (!_noLegendHighlighted()) {\n if (xAxisPoint === activeXdataPoint && _legendHighlighted(legend)) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (_legendHighlighted(legend)) {\n // Don't hide the circle to keep it focusable. For more information,\n // see https://fuzzbomb.github.io/accessibility-demos/visually-hidden-focus-test.html\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXdataPoint === xAxisPoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n }\n\n function _checkForLine(): boolean {\n const { data } = props;\n return data!.some((item: VerticalBarChartDataPoint) => item?.lineData?.y !== undefined);\n }\n\n function _adjustProps(): void {\n _points = props.data || [];\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth, undefined, props.mode);\n const defaultColors: string[] = [\n tokens.colorPaletteBlueForeground2,\n tokens.colorPaletteCornflowerForeground2,\n tokens.colorPaletteDarkGreenForeground2,\n tokens.colorPaletteNavyForeground2,\n tokens.colorPaletteDarkOrangeForeground2,\n ];\n _colors = props.colors || defaultColors;\n _isHavingLine = _checkForLine();\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n props.xAxisPadding,\n props.mode === 'histogram' ? 0 : _xAxisType === XAxisTypes.StringAxis ? 2 / 3 : 1 / 2,\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding, props.xAxisPadding, 0);\n }\n\n function _getMargins(_margins: Margins) {\n margins = _margins;\n }\n\n function _renderContentForBothLineAndBars(point: VerticalBarChartDataPoint): JSX.Element {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n const content: JSX.Element[] = YValueHover.map((item: YValueHover, index: number) => {\n return (\n <>\n <ChartPopover\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={item.legend!}\n {...(index === 0 && { XValue: `${hoverXValue || item.data}` })}\n YValue={item.data || item.y}\n color={item.color}\n isCalloutForStack={false}\n />\n </>\n );\n });\n return <>{content}</>;\n }\n\n function _renderContentForOnlyBars(_props: VerticalBarChartDataPoint): JSX.Element {\n return (\n <>\n <ChartPopover\n XValue={_props.xAxisCalloutData || (_props.x as string)}\n xCalloutValue={xCalloutValue}\n yCalloutValue={yCalloutValue}\n culture={props.culture ?? 'en-us'}\n clickPosition={clickPosition}\n isPopoverOpen={isPopoverOpen}\n legend={_props.legend!}\n YValue={_props.yAxisCalloutData || _props.y}\n color={!props.useSingleColor && _props.color ? _props.color : _createColors()(_props.y)}\n isCalloutForStack={false}\n />\n </>\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n function _renderCallout(props?: VerticalBarChartDataPoint): JSX.Element | null {\n return props ? (_isHavingLine ? _renderContentForBothLineAndBars(props) : _renderContentForOnlyBars(props)) : null;\n }\n\n function _getCustomizedCallout() {\n return props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps, _renderCallout)\n : null;\n }\n\n function _getGraphData(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) {\n return (_bars =\n _xAxisType === XAxisTypes.NumericAxis\n ? _createNumericBars(containerHeight, containerWidth, xElement!)\n : _xAxisType === XAxisTypes.DateAxis\n ? _createDateBars(containerHeight, containerWidth, xElement!)\n : _createStringBars(containerHeight, containerWidth, xElement!));\n }\n\n function _createColors(): D3ScaleLinear<string, string> | ColorScale {\n const increment = _colors.length <= 1 ? 1 : 1 / (_colors.length - 1);\n const { useSingleColor = false } = props;\n if (useSingleColor) {\n return (_p?: number) => {\n const { colors } = props;\n return colors && colors.length > 0 ? colors[0] : tokens.colorPaletteBlueBackground2;\n };\n }\n const domainValues = [];\n for (let i = 0; i < _colors.length; i++) {\n domainValues.push(increment * i * _yMax);\n }\n const colorScale = d3ScaleLinear<string>().domain(domainValues).range(_colors);\n return colorScale;\n }\n\n function _refCallback(element: SVGRectElement, legendTitle: string): void {\n _refArray.push({ index: legendTitle, refElement: element });\n }\n\n function _getCalloutContentForLineAndBar(point: VerticalBarChartDataPoint): {\n YValueHover: YValueHover[];\n hoverXValue: string | number | undefined;\n } {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const YValueHover: YValueHover[] = [];\n const { useSingleColor = false } = props;\n const { data, lineLegendText, lineLegendColor = tokens.colorPaletteYellowBackground1 } = props;\n const selectedPoint = data!.filter((xDataPoint: VerticalBarChartDataPoint) => xDataPoint.x === point.x);\n // Check if the line legend is highlighted or no legend is highlighted\n if (\n _isHavingLine &&\n selectedPoint[0].lineData?.y !== undefined &&\n (_legendHighlighted(lineLegendText) || _noLegendHighlighted())\n ) {\n // Add callout data for the line\n YValueHover.push({\n legend: lineLegendText,\n color: lineLegendColor,\n y: selectedPoint[0].lineData?.y,\n data: selectedPoint[0].lineData?.yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].lineData?.yAxisCalloutData,\n });\n }\n // Check if the bar legend is highlighted or no legend is highlighted\n if (selectedLegends.includes(selectedPoint[0].legend!) || _noLegendHighlighted()) {\n // Add callout data for the bar\n YValueHover.push({\n legend: selectedPoint[0].legend,\n y: selectedPoint[0].y,\n color: !useSingleColor\n ? selectedPoint[0].color\n ? selectedPoint[0].color\n : _createColors()(selectedPoint[0].y)\n : _createColors()(1),\n data: selectedPoint[0].yAxisCalloutData,\n yAxisCalloutData: selectedPoint[0].yAxisCalloutData,\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const hoverXValue = point.x instanceof Date ? point.x.toLocaleString() : point.x.toString();\n return {\n YValueHover,\n hoverXValue: point.xAxisCalloutData || hoverXValue,\n };\n }\n\n function _onBarHover(\n point: VerticalBarChartDataPoint,\n // eslint-disable-next-line @typescript-eslint/no-shadow\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n if (_calloutAnchorPoint !== point) {\n _calloutAnchorPoint = point;\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(point.legend));\n setDataForHoverCard(point.y);\n setCalloutLegend(point.legend!);\n setColor(point.color || color);\n // To display callout value, if no callout value given, taking given point.x value as a string.\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setDataPointCalloutProps(point);\n // Hovering over a bar should highlight corresponding line points only when no legend is selected\n setActiveXDatapoint(_noLegendHighlighted() ? point.x : null);\n setYValueHover(YValueHover);\n setHoverXValue(hoverXValue);\n setCalloutAccessibilityData(point.callOutAccessibilityData);\n }\n }\n\n function _onBarLeave(): void {\n /**/\n }\n\n function _handleChartMouseLeave(): void {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n setActiveXDatapoint(null);\n setYValueHover([]);\n setHoverXValue('');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-shadow\n function _onBarFocus(\n event: React.FocusEvent<SVGRectElement, Element>,\n point: VerticalBarChartDataPoint,\n refArrayIndexNumber: number,\n color: string,\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 // eslint-disable-next-line @typescript-eslint/no-shadow\n const { YValueHover, hoverXValue } = _getCalloutContentForLineAndBar(point);\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === point.legend! && refArrayIndexNumber === index) {\n /** Show the callout if highlighted bar is hovered and Hide it if unhighlighted bar is hovered */\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(point.legend));\n setDataForHoverCard(point.y);\n setCalloutLegend(point.legend!);\n setColor(point.color || color);\n // To display callout value, if no callout value given, taking given point.x value as a string.\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setYCalloutValue(point.yAxisCalloutData!);\n setDataPointCalloutProps(point);\n // Hovering over a bar should highlight corresponding line points only when no legend is selected\n setActiveXDatapoint(point.x);\n setYValueHover(YValueHover);\n setHoverXValue(hoverXValue);\n setCalloutAccessibilityData(point.callOutAccessibilityData);\n }\n });\n }\n\n function _lineHover(point: VerticalBarChartDataPoint, mouseEvent: React.MouseEvent<SVGElement>) {\n mouseEvent.persist();\n _lineHoverFocus(point, mouseEvent);\n }\n\n function _lineFocus(\n event: React.FocusEvent<SVGCircleElement, Element>,\n point: VerticalBarChartDataPoint,\n ref: { refElement: SVGCircleElement | null },\n ) {\n if (ref.refElement) {\n _lineHoverFocus(point, ref.refElement);\n }\n }\n\n function _lineHoverFocus(\n point: VerticalBarChartDataPoint,\n _refSelected: React.MouseEvent<SVGElement> | SVGCircleElement,\n ) {\n const { lineLegendText = '', lineLegendColor = tokens.colorPaletteYellowBackground1 } = props;\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(lineLegendText));\n setCalloutLegend(lineLegendText);\n setDataForHoverCard(point.lineData!.y);\n setColor(lineLegendColor);\n setXCalloutValue(\n point.xAxisCalloutData || (point.x instanceof Date ? point.x.toLocaleDateString() : point.x.toString()),\n );\n setYCalloutValue(point.lineData!.yAxisCalloutData);\n setDataPointCalloutProps(point);\n setActiveXDatapoint(point.x);\n }\n\n function _getScales(\n containerHeight: number,\n containerWidth: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): { xBarScale: any; yBarScale: any } {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xBarScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yBarScale: any = d3ScaleLinear()\n .domain([_yMin, _yMax])\n .range([0, containerHeight - margins.bottom! - margins.top!]);\n\n if (_xAxisType === XAxisTypes.NumericAxis) {\n const xMax = d3Max(_points, (point: VerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(_points, (point: VerticalBarChartDataPoint) => point.x as number)!;\n xBarScale = d3ScaleLinear()\n .domain(_useRtl ? [xMax, xMin] : [xMin, xMax])\n .range([margins.left! + _domainMargin, containerWidth - margins.right! - _domainMargin]);\n if (!isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding) && props.mode !== 'histogram') {\n xBarScale.nice();\n }\n } else if (_xAxisType === XAxisTypes.DateAxis) {\n const sDate = d3Min(_points, (point: VerticalBarChartDataPoint) => point.x as Date)!;\n const lDate = d3Max(_points, (point: VerticalBarChartDataPoint) => point.x as Date)!;\n xBarScale = d3ScaleUtc()\n .domain([sDate, lDate])\n .range(\n _useRtl\n ? [containerWidth - margins.right! - _domainMargin, margins.left! + _domainMargin]\n : [margins.left! + _domainMargin, containerWidth - margins.right! - _domainMargin],\n );\n } else {\n xBarScale = 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 }\n\n return { xBarScale, yBarScale };\n }\n\n const classes = useVerticalBarChartStyles(props);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _calculateMinBarHeight(yMin: number, yMax: number, yReferencePoint: number, yBarScale: any): number {\n const maxHeightFromBaseline =\n yMax < 0\n ? Math.abs(yMin - yReferencePoint)\n : Math.max(Math.abs(yMax - yReferencePoint), Math.abs(yMin - yReferencePoint));\n return Math.ceil(yBarScale(maxHeightFromBaseline) / 100.0);\n }\n\n function _createNumericBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = props;\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\n return (\n <g key={`${point.x}_${index}` as string}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n opacity={shouldHighlight ? 1 : 0.1}\n rx={props.roundCorners ? 3 : 0}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 bars;\n }\n\n function _createStringBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x);\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\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(props.barWidth, props.maxBarWidth, xBarScale.bandwidth(), props.mode);\n return (\n <g\n key={point.x instanceof Date ? `${point.x.getTime()}_${index}` : `${point.x}_${index}`}\n transform={`translate(${0.5 * (xBarScale.bandwidth() - _barWidth)}, 0)`}\n >\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n onMouseLeave={_onBarLeave}\n onBlur={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n fill={point.color ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n rx={props.roundCorners ? 3 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 showTooltip: props.showXAxisLablesTooltip,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return bars;\n }\n\n function _createDateBars(containerHeight: number, containerWidth: number, xElement: SVGElement): JSX.Element[] {\n const { useSingleColor = false } = props;\n const { xBarScale, yBarScale } = _getScales(containerHeight, containerWidth);\n const colorScale = _createColors();\n const yReferencePoint = _yMax < 0 ? _yMax : 0;\n const bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n let barHeight: number = yBarScale(point.y) - yBarScale(yReferencePoint);\n const isHeightNegative = barHeight < 0;\n barHeight = Math.abs(barHeight);\n // Calculate threshold for minimum visible bar height\n const minBarHeight = _calculateMinBarHeight(_yMin, _yMax, yReferencePoint, yBarScale);\n let adjustedBarHeight = barHeight;\n\n if (barHeight === 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n }\n // Adjust bar height if it's smaller than the threshold\n else if (barHeight <= minBarHeight) {\n adjustedBarHeight = minBarHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint =\n containerHeight -\n margins.bottom! -\n (isHeightNegative ? -1 * adjustedBarHeight : adjustedBarHeight) -\n yBarScale(yReferencePoint);\n const baselineHeight = containerHeight - margins.bottom! - yBarScale(yReferencePoint);\n return (\n <g key={point.x instanceof Date ? `${point.x.getTime()}_${index}` : `${point.x}_${index}`}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n className={classes.opacityChangeOnHover}\n y={!isHeightNegative ? yPoint : baselineHeight}\n width={_barWidth}\n height={adjustedBarHeight}\n ref={(e: SVGRectElement) => {\n _refCallback(e, point.legend!);\n }}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, colorScale(point.y), event)}\n aria-label={_getAriaLabel(point)}\n role=\"img\"\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(event, point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={!props.hideTooltip && shouldHighlight ? 0 : undefined}\n rx={props.roundCorners ? 3 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!, isHeightNegative)}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!props.showXAxisLablesTooltip) {\n try {\n // eslint-disable-next-line no-restricted-globals\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n // eslint-disable-next-line no-restricted-globals\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 bars;\n }\n\n function _onLegendHover(legendTitle: string): void {\n setActiveLegend(legendTitle);\n }\n\n function _onLegendLeave(): void {\n setActiveLegend(undefined);\n }\n\n function _getLegendData(data: VerticalBarChartDataPoint[]): JSX.Element {\n const { useSingleColor } = props;\n const { lineLegendText, lineLegendColor = tokens.colorPaletteYellowForeground1 } = props;\n const actions: Legend[] = [];\n const mapLegendToColor: Record<string, string> = {};\n data.forEach((point: VerticalBarChartDataPoint, _index: number) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const color: string = !useSingleColor ? point.color! : _createColors()(1);\n mapLegendToColor[point.legend!] = color;\n });\n Object.entries(mapLegendToColor).forEach(([legendTitle, color]) => {\n // mapping data to the format Legends component needs\n const legend: Legend = {\n title: legendTitle,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n actions.push(legend);\n });\n if (_isHavingLine && lineLegendText && lineLegendColor) {\n const lineLegend: Legend = {\n title: lineLegendText,\n color: lineLegendColor,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(lineLegendText);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n isLineLegendInBarChart: true,\n };\n actions.unshift(lineLegend);\n }\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n selectedLegends={selectedLegends}\n onChange={_onLegendSelectionChange}\n />\n );\n return legends;\n }\n\n function _onLegendSelectionChange(\n legendsSelected: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(legendsSelected);\n } else {\n setSelectedLegends(legendsSelected.slice(-1));\n }\n\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(legendsSelected, event, currentLegend);\n }\n }\n\n function _getAxisData(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 _yMin = Math.min(domainValue[0], props.yMinValue || 0);\n }\n }\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n function _legendHighlighted(legendTitle: string | undefined): boolean {\n return _getHighlightedLegend().includes(legendTitle!);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n function _noLegendHighlighted(): boolean {\n return _getHighlightedLegend().length === 0;\n }\n\n function _getHighlightedLegend() {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n }\n\n function _getAriaLabel(point: VerticalBarChartDataPoint): string {\n const xValue = point.xAxisCalloutData\n ? point.xAxisCalloutData\n : point.x instanceof Date\n ? point.x.toLocaleString()\n : point.x;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.y;\n const lineLegend = props.lineLegendText || 'Line';\n const lineYValue = point.lineData?.yAxisCalloutData || point.lineData?.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}. ` +\n (legend ? `${legend}, ` : '') +\n `${yValue}.` +\n (typeof lineYValue !== 'undefined' ? ` ${lineLegend}, ${lineYValue}.` : '')\n );\n }\n\n function _renderBarLabel(xPoint: number, yPoint: number, barValue: number, legend: string, isNegativeBar: boolean) {\n if (props.hideLabels || _barWidth < 16 || !(_legendHighlighted(legend) || _noLegendHighlighted())) {\n return null;\n }\n\n return (\n <text\n x={xPoint + _barWidth / 2}\n y={isNegativeBar ? yPoint + 12 : yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(barValue)\n : formatScientificLimitWidth(barValue)}\n </text>\n );\n }\n\n function _getDomainMargins(containerWidth: number): Margins {\n _domainMargin = MIN_DOMAIN_MARGIN;\n\n const mapX: Record<string, number | string | Date> = {};\n props.data?.forEach(point => {\n if (point.x instanceof Date) {\n mapX[point.x.getTime()] = point.x;\n } else {\n mapX[point.x] = point.x;\n }\n });\n const uniqueX = Object.values(mapX);\n\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 bars changes wrt the bar width */\n const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n const numBars = uniqueX.length + (uniqueX.length - 1) * barGapRate;\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding, props.xAxisPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first bar and after the last bar.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto' && props.mode !== 'histogram') {\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 /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = numBars * _barWidth;\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 (['plotly', 'histogram'].includes(props.mode!) && uniqueX.length > 1) {\n // Calculate the remaining width after rendering bars at their maximum allowable width\n const bandwidth = totalWidth / numBars;\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, bandwidth, props.mode);\n let reqWidth = numBars * barWidth;\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(uniqueX as string[]) + 20;\n reqWidth = (uniqueX.length - _xAxisInnerPadding) * step;\n margin2 = (totalWidth - reqWidth) / 2;\n }\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n } else {\n if (props.mode === 'histogram') {\n // Try center-aligning the bars to eliminate any gaps caused by a restricted barWidth.\n // This only works if the bin centers are consistent across all legend groups; otherwise,\n // the calculated domainMargin may be too small.\n const barWidth = props.maxBarWidth!;\n const reqWidth = numBars * barWidth;\n _domainMargin += Math.max(0, (totalWidth - reqWidth) / 2);\n }\n\n // The histogram may appear distorted when bin centers/sizes vary across different legend groups.\n // Currently, we calculate the appropriate bar width using the closest unique x-values to make\n // the bars of the same legend group adjacent. But these x-values can come from different legend groups\n // and result in misleading visuals. Even if we compute bar widths separately within each group,\n // we still lack support for rendering bars with different widths and must use the minimum width,\n // which can cause the same issue.\n // Solution: Instead of estimating the appropriate bar width, render each bar to span the full range\n // of its corresponding bin explicitly.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n calculateAppropriateBarWidth(\n uniqueX as number[] | Date[],\n totalWidth - 2 * (_domainMargin - MIN_DOMAIN_MARGIN),\n _xAxisInnerPadding,\n ),\n props.mode,\n );\n _domainMargin += _barWidth / 2;\n }\n\n return {\n ...margins,\n left: margins.left! + _domainMargin,\n right: margins.right! + _domainMargin,\n };\n }\n\n function _isChartEmpty(): boolean {\n return _points.length === 0 || (_points.every(point => point.y === 0) && !_isHavingLine);\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 _adjustProps();\n _xAxisLabels = _points.map((point: VerticalBarChartDataPoint) => point.x as string);\n _yMax = Math.max(d3Max(_points, (point: VerticalBarChartDataPoint) => point.y)!, props.yMaxValue || 0);\n _yMin = Math.min(d3Min(_points, (point: VerticalBarChartDataPoint) => point.y)!, props.yMinValue || 0);\n const legendBars: JSX.Element = _getLegendData(_points);\n const calloutProps = {\n ...(_isHavingLine && {\n YValueHover: hoveredYValues,\n hoverXValue: hoverXValue,\n }),\n color: color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData),\n clickPosition: clickPosition,\n isPopoverOpen: isPopoverOpen,\n isCalloutForStack: _isHavingLine && (_noLegendHighlighted() || _getHighlightedLegend().length > 1),\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n customCallout: {\n customizedCallout: _getCustomizedCallout() != null ? _getCustomizedCallout()! : undefined,\n customCalloutProps: props.calloutPropsPerDataPoint\n ? props.calloutPropsPerDataPoint(dataPointCalloutProps!)\n : undefined,\n },\n };\n\n const tickParams = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n points={_points}\n chartType={ChartTypes.VerticalBarChart}\n xAxisType={_xAxisType}\n createYAxis={createNumericYAxis}\n calloutProps={calloutProps}\n tickParams={tickParams}\n {...(_isHavingLine && _noLegendHighlighted() && { isCalloutForStack: true })}\n legendBars={legendBars}\n datasetForXAxisDomain={_xAxisLabels}\n barwidth={_barWidth}\n createStringYAxis={createStringYAxis}\n getmargins={_getMargins}\n getMinMaxOfYAxis={findVerticalNumericMinMaxOfY}\n getGraphData={_getGraphData}\n getDomainNRangeValues={_getDomainNRangeValues}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n componentRef={cartesianChartRef}\n showRoundOffXTickValues={\n !isScalePaddingDefined(props.xAxisInnerPadding, props.xAxisPadding) && props.mode !== 'histogram'\n }\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: ChildProps) => {\n return (\n <>\n <g>{_bars}</g>\n {_isHavingLine && (\n <g>\n {_createLine(\n props.xScale!,\n props.yScalePrimary!,\n props.containerHeight,\n props.containerWidth,\n props.yScaleSecondary,\n )}\n </g>\n )}\n </>\n );\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nVerticalBarChart.displayName = 'VerticalBarChart';\n"],"names":["React","useVerticalBarChartStyles","max","d3Max","min","d3Min","line","d3Line","select","d3Select","scaleLinear","d3ScaleLinear","scaleBand","d3ScaleBand","scaleUtc","d3ScaleUtc","useId","tokens","CartesianChart","Legends","ChartPopover","ChartTypes","getAccessibleDataObject","XAxisTypes","getTypeOfAxis","tooltipOfAxislabels","formatScientificLimitWidth","getBarWidth","getScalePadding","isScalePaddingDefined","calculateAppropriateBarWidth","useRtl","areArraysEqual","calculateLongestLabelWidth","findVerticalNumericMinMaxOfY","createNumericYAxis","domainRangeOfVerticalNumeric","domainRangeOfDateForAreaLineVerticalBarChart","domainRangeOfXStringAxis","createStringYAxis","CircleVisbility","MIN_DOMAIN_MARGIN","VerticalBarChart","forwardRef","props","forwardedRef","_points","_barWidth","_colors","_refArray","margins","_useRtl","_bars","_xAxisLabels","_yMax","_yMin","_isHavingLine","_checkForLine","_tooltipId","_xAxisType","data","length","x","StringAxis","_calloutAnchorPoint","_domainMargin","_emptyChartId","_vbcLineId","_vbcPointId","_vbcBarId","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","activeLegend","setActiveLegend","undefined","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","activeXdataPoint","setActiveXDatapoint","hoveredYValues","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","callOutAccessibilityData","setCalloutAccessibilityData","dataPointCalloutProps","setDataPointCalloutProps","clickPosition","setClickPosition","y","isPopoverOpen","setPopoverOpen","selectedLegends","setSelectedLegends","legendProps","prevPropsRef","useImperativeHandle","componentRef","chartContainer","current","useEffect","prevProps","height","width","_adjustProps","_getDomainNRangeValues","points","chartType","isRTL","xAxisType","barWidth","tickValues","shiftX","domainNRangeValue","NumericAxis","DateAxis","_createLine","xScale","yScalePrimary","containerHeight","containerWidth","yScaleSecondary","isStringAxis","colorScale","_createColors","lineLegendColor","colorPaletteYellowBackground1","lineLegendText","lineData","forEach","item","index","push","useSecondaryYScale","point","linePath","d","bandwidth","shouldHighlight","_legendHighlighted","_noLegendHighlighted","lineBorderWidth","lineOptions","Number","parseFloat","toString","path","key","id","opacity","fill","strokeLinecap","strokeWidth","className","classes","lineBorder","stroke","dots","map","circleRef","refElement","circle","cx","cy","onMouseOver","event","_lineHover","_onBarHover","onMouseOut","_onBarLeave","r","_getCircleVisibilityAndRadius","radius","colorNeutralBackground1","visibility","onClick","data-is-focusable","ref","e","onFocus","_lineFocus","onBlur","_handleChartMouseLeave","tabIndex","xAxisPoint","legend","some","maxBarWidth","mode","defaultColors","colorPaletteBlueForeground2","colorPaletteCornflowerForeground2","colorPaletteDarkGreenForeground2","colorPaletteNavyForeground2","colorPaletteDarkOrangeForeground2","colors","xAxisInnerPadding","xAxisPadding","xAxisOuterPadding","_getMargins","_margins","_renderContentForBothLineAndBars","YValueHover","_getCalloutContentForLineAndBar","content","culture","XValue","YValue","isCalloutForStack","_renderContentForOnlyBars","_props","xAxisCalloutData","yAxisCalloutData","useSingleColor","_renderCallout","_getCustomizedCallout","onRenderCalloutPerDataPoint","_getGraphData","yScale","xElement","_createNumericBars","_createDateBars","_createStringBars","increment","_p","colorPaletteBlueBackground2","domainValues","i","domain","range","_refCallback","element","legendTitle","selectedPoint","filter","xDataPoint","includes","Date","toLocaleString","mouseEvent","persist","updatePosition","clientX","clientY","toLocaleDateString","_onBarFocus","refArrayIndexNumber","targetRect","target","getBoundingClientRect","left","top","obj","_lineHoverFocus","_refSelected","_getScales","xBarScale","yBarScale","bottom","xMax","xMin","right","nice","sDate","lDate","paddingInner","paddingOuter","_calculateMinBarHeight","yMin","yMax","yReferencePoint","maxHeightFromBaseline","Math","abs","ceil","bars","barHeight","isHeightNegative","minBarHeight","adjustedBarHeight","Fragment","xPoint","yPoint","baselineHeight","g","rect","aria-label","_getAriaLabel","role","onMouseLeave","hideTooltip","rx","roundCorners","_renderBarLabel","showXAxisLablesTooltip","document","getElementById","remove","wrapXAxisLables","xAxisElement","call","tooltipProps","tooltipCls","tooltip","axis","getTime","transform","showTooltip","opacityChangeOnHover","_onLegendHover","_onLegendLeave","_getLegendData","colorPaletteYellowForeground1","actions","mapLegendToColor","_index","Object","entries","title","hoverAction","onMouseOutAction","lineLegend","isLineLegendInBarChart","unshift","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","onChange","_onLegendSelectionChange","legendsSelected","currentLegend","canSelectMultipleLegends","slice","_getAxisData","yAxisData","yAxisDomainValues","domainValue","yMaxValue","yMinValue","_getHighlightedLegend","xValue","yValue","lineYValue","ariaLabel","barValue","isNegativeBar","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","_getDomainMargins","mapX","uniqueX","values","totalWidth","barGapRate","numBars","reqWidth","margin1","margin2","POSITIVE_INFINITY","hideTickOverlap","step","_isChartEmpty","every","newX","newY","threshold","distance","sqrt","pow","legendBars","calloutProps","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","tickFormat","createYAxis","datasetForXAxisDomain","barwidth","getmargins","getMinMaxOfYAxis","getGraphData","getDomainNRangeValues","getAxisData","onChartMouseLeave","getDomainMargins","showRoundOffXTickValues","children","div","style","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,qCAAqC;AAC/E,SAASC,OAAOC,KAAK,EAAEC,OAAOC,KAAK,QAAQ,WAAW;AACtD,SAASC,QAAQC,MAAM,QAAQ,WAAW;AAC1C,SAASC,UAAUC,QAAQ,QAAQ,eAAe;AAClD,SACEC,eAAeC,aAAa,EAE5BC,aAAaC,WAAW,EACxBC,YAAYC,UAAU,QACjB,WAAW;AAClB,SAASC,KAAK,QAAQ,4BAA4B;AAClD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAEEC,cAAc,EAMdC,OAAO,EAGPC,YAAY,QAGP,cAAc;AACrB,SACEC,UAAU,EAEVC,uBAAuB,EACvBC,UAAU,EAEVC,aAAa,EACbC,mBAAmB,EACnBC,0BAA0B,EAC1BC,WAAW,EACXC,eAAe,EACfC,qBAAqB,EACrBC,4BAA4B,EAC5BC,MAAM,EACNC,cAAc,EACdC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,kBAAkB,EAElBC,4BAA4B,EAC5BC,4CAA4C,EAC5CC,wBAAwB,EACxBC,iBAAiB,QACZ,wBAAwB;AAE/B,IAAA,AAAKC,yCAAAA;;;WAAAA;EAAAA;AAKL,MAAMC,oBAAoB;AAE1B,kGAAkG;AAClG;;;CAGC,GACD,OAAO,MAAMC,iCAAmE1C,MAAM2C,UAAU,CAG9F,CAACC,OAAOC;QAyC+DD;IAxCvE,IAAIE,UAAuC,EAAE;IAC7C,IAAIC,YAAoB;IACxB,IAAIC;IACJ,MAAMC,YAA4B,EAAE;IACpC,IAAIC;IACJ,MAAMC,UAAmBpB;IACzB,IAAIqB;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC,gBAAyBC;IAC7B,MAAMC,aAAqB1C,MAAM;IACjC,MAAM2C,aACJf,MAAMgB,IAAI,IAAKhB,MAAMgB,IAAI,CAAEC,MAAM,GAAG,IAC/BrC,cAAcoB,MAAMgB,IAAI,AAAC,CAAC,EAAE,CAACE,CAAC,EAAE,QACjCvC,WAAWwC,UAAU;IAC3B,IAAIC;IACJ,IAAIC;IACJ,MAAMC,gBAAwBlD,MAAM;IACpC,MAAMmD,aAAqBnD,MAAM;IACjC,MAAMoD,cAAsBpD,MAAM;IAClC,MAAMqD,YAAoBrD,MAAM;IAChC,IAAIsD,qBAA6B;IACjC,IAAIC,qBAA6B;IAEjC,MAAMC,oBAAoBxE,MAAMyE,MAAM,CAAQ;IAE9C,MAAM,CAACC,OAAOC,SAAS,GAAG3E,MAAM4E,QAAQ,CAAS;IACjD,MAAM,CAACC,kBAAkBC,oBAAoB,GAAG9E,MAAM4E,QAAQ,CAAS;IACvE,MAAM,CAACG,cAAcC,gBAAgB,GAAGhF,MAAM4E,QAAQ,CAAqBK;IAC3E,MAAM,CAACC,eAAeC,iBAAiB,GAAGnF,MAAM4E,QAAQ,CAAqB;IAC7E,MAAM,CAACQ,eAAeC,iBAAiB,GAAGrF,MAAM4E,QAAQ,CAAqB;IAC7E,MAAM,CAACU,kBAAkBC,oBAAoB,GAAGvF,MAAM4E,QAAQ,CAAgC;IAC9F,MAAM,CAACY,gBAAgBC,eAAe,GAAGzF,MAAM4E,QAAQ;IACvD,MAAM,CAACc,aAAaC,eAAe,GAAG3F,MAAM4E,QAAQ,CAA8B;IAClF,MAAM,CAACgB,eAAeC,iBAAiB,GAAG7F,MAAM4E,QAAQ,CAAS;IACjE,MAAM,CAACkB,0BAA0BC,4BAA4B,GAAG/F,MAAM4E,QAAQ;IAC9E,MAAM,CAACoB,uBAAuBC,yBAAyB,GAAGjG,MAAM4E,QAAQ;IACxE,MAAM,CAACsB,eAAeC,iBAAiB,GAAGnG,MAAM4E,QAAQ,CAAC;QAAEd,GAAG;QAAGsC,GAAG;IAAE;IACtE,MAAM,CAACC,eAAeC,eAAe,GAAGtG,MAAM4E,QAAQ,CAAC;IACvD,MAAM,CAAC2B,iBAAiBC,mBAAmB,GAAGxG,MAAM4E,QAAQ,CAAWhC,EAAAA,qBAAAA,MAAM6D,WAAW,cAAjB7D,yCAAAA,mBAAmB2D,eAAe,KAAI,EAAE;IAC/G,MAAMG,eAAe1G,MAAMyE,MAAM,CAA+B;IAEhEzE,MAAM2G,mBAAmB,CACvB/D,MAAMgE,YAAY,EAClB;YACkBpC;YAAAA;eADX;YACLqC,gBAAgBrC,CAAAA,6CAAAA,6BAAAA,kBAAkBsC,OAAO,cAAzBtC,iDAAAA,2BAA2BqC,cAAc,cAAzCrC,uDAAAA,4CAA6C;QAC/D;OACA,EAAE;IAGJxE,MAAM+G,SAAS,CAAC;QACd,IAAIL,aAAaI,OAAO,EAAE;gBAEJE,wBAAwCpE;YAD5D,MAAMoE,YAAYN,aAAaI,OAAO;YACtC,IAAI,CAAC9E,gBAAegF,yBAAAA,UAAUP,WAAW,cAArBO,6CAAAA,uBAAuBT,eAAe,GAAE3D,qBAAAA,MAAM6D,WAAW,cAAjB7D,yCAAAA,mBAAmB2D,eAAe,GAAG;oBAC5E3D;gBAAnB4D,mBAAmB5D,EAAAA,sBAAAA,MAAM6D,WAAW,cAAjB7D,0CAAAA,oBAAmB2D,eAAe,KAAI,EAAE;YAC7D;YACA,IAAIS,UAAUC,MAAM,KAAKrE,MAAMqE,MAAM,IAAID,UAAUE,KAAK,KAAKtE,MAAMsE,KAAK,EAAE;gBACxEC;YACF;QACF;QACAT,aAAaI,OAAO,GAAGlE;IACzB,GAAG;QAACA;QAAO8D;QAAcS;KAAa;IAEtC,SAASC,uBACPC,MAAmB,EACnBnE,OAAgB,EAChBgE,KAAa,EACbI,SAAqB,EACrBC,KAAc,EACdC,SAAqB,EACrBC,QAAgB,EAChBC,UAAyC,EACzCC,MAAc;QAEd,IAAIC;QACJ,IAAIJ,cAAcjG,WAAWsG,WAAW,EAAE;YACxCD,oBAAoBxF,6BAA6BiF,QAAQnE,SAASgE,OAAOK,OAAOE;QAClF,OAAO,IAAID,cAAcjG,WAAWuG,QAAQ,EAAE;YAC5CF,oBAAoBvF,6CAClBgF,QACAnE,SACAgE,OACAK,OACAG,YACAJ,WACAG;QAEJ,OAAO;YACLG,oBAAoBtF,yBAAyBY,SAASgE,OAAOK;QAC/D;QACA,OAAOK;IACT;IAEA,SAASG,YACP,8DAA8D;IAC9DC,MAAW,EACX,8DAA8D;IAC9DC,aAAkB,EAClBC,kBAA0B,CAAC,EAC3BC,iBAAyB,CAAC,EAC1B,8DAA8D;IAC9DC,eAAqB;YA0BGxF;QAxBxB,MAAMyF,eAAe1E,eAAepC,WAAWwC,UAAU;QACzD,MAAMuE,aAAaC;QACnB,MAAM,EAAE3E,IAAI,EAAE4E,kBAAkBvH,OAAOwH,6BAA6B,EAAEC,cAAc,EAAE,GAAG9F;QACzF,8DAA8D;QAC9D,MAAM+F,WAAuB,EAAE;QAC/B,MAAMrI,OAAsB,EAAE;QAC9BsD,QACEA,KAAKgF,OAAO,CAAC,CAACC,MAAiCC;YAC7C,IAAID,KAAKF,QAAQ,IAAIE,KAAKF,QAAQ,CAACvC,CAAC,EAAE;oBAIdyC;gBAHtBF,SAASI,IAAI,CAAC;oBACZjF,GAAG+E,KAAK/E,CAAC;oBACTsC,GAAGyC,KAAKF,QAAQ,CAAEvC,CAAC;oBACnB4C,oBAAoBH,CAAAA,oCAAAA,KAAKF,QAAQ,CAAEK,kBAAkB,cAAjCH,+CAAAA,oCAAqC;oBACzDI,OAAOJ;oBACPC;gBACF;YACF;QACF;QACF,MAAMI,WAAW3I,QACf,8DAA8D;SAC7DuD,CAAC,CAAC,CAACqF,IAAYd,eAAeL,OAAOmB,EAAErF,CAAC,IAAI,MAAMkE,OAAOoB,SAAS,KAAKpB,OAAOmB,EAAErF,CAAC,EAClF,8DAA8D;SAC7DsC,CAAC,CAAC,CAAC+C,IAAYA,EAAEH,kBAAkB,IAAIZ,kBAAkBA,gBAAgBe,EAAE/C,CAAC,IAAI6B,cAAckB,EAAE/C,CAAC;QACpG,MAAMiD,kBAAkBC,mBAAmBZ,mBAAoBa,yBAAyB,OAAO;QAC/F,MAAMC,kBAAkB5G,EAAAA,qBAAAA,MAAM6G,WAAW,cAAjB7G,yCAAAA,mBAAmB4G,eAAe,IACtDE,OAAOC,UAAU,CAAC/G,MAAM6G,WAAW,CAAED,eAAe,CAAEI,QAAQ,MAC9D;QAEJ,IAAIJ,kBAAkB,GAAG;YACvBlJ,KAAKyI,IAAI,eACP,oBAACc;gBACCC,KAAK3F;gBACL4F,IAAI5F;gBACJ6F,SAASX,kBAAkB,IAAI;gBAC/BF,GAAGD,SAASP;gBACZsB,MAAK;gBACLC,eAAc;gBACdC,aAAa,IAAIX,kBAAkB;gBACnCY,WAAWC,QAAQC,UAAU;;QAGnC;QACAhK,KAAKyI,IAAI,eACP,oBAACc;YACCC,KAAK3F;YACL4F,IAAI5F;YACJ6F,SAASX,kBAAkB,IAAI;YAC/BF,GAAGD,SAASP;YACZsB,MAAK;YACLC,eAAc;YACdC,aAAa;YACbI,QAAQ/B;;QAIZ,MAAMgC,OAA0B7B,SAAS8B,GAAG,CAC1C,CACE5B,MAOAC;gBAqBaD;YAnBb,8GAA8G;YAC9G,MAAM6B,YAAqD;gBAAEC,YAAY;YAAK;YAC9E,qBACE,oBAACC;gBACCd,KAAKhB;gBACLiB,IAAI,GAAG3F,YAAY,CAAC,EAAE0E,OAAO;gBAC7B+B,IAAIxC,eAAeL,OAAOa,KAAK/E,CAAC,IAAI,MAAMkE,OAAOoB,SAAS,KAAKpB,OAAOa,KAAK/E,CAAC;gBAC5EgH,IAAIjC,KAAKG,kBAAkB,IAAIZ,kBAAkBA,gBAAgBS,KAAKzC,CAAC,IAAI6B,cAAcY,KAAKzC,CAAC;gBAC/F2E,aAAaC,CAAAA,QACX1B,mBAAmBZ,kBACfuC,WAAWpC,KAAKI,KAAK,EAAE+B,SACvBE,YAAYrC,KAAKI,KAAK,EAAEX,WAAWO,KAAKzC,CAAC,GAAG4E;gBAElDG,YAAYC;gBACZC,GAAGC,8BAA8BzC,KAAK/E,CAAC,EAAE4E,gBAAiB6C,MAAM;gBAChEhB,QAAQ/B;gBACRyB,MAAMhJ,OAAOuK,uBAAuB;gBACpCrB,aAAa;gBACbsB,YAAYH,8BAA8BzC,KAAK/E,CAAC,EAAE4E,gBAAiB+C,UAAU;gBAC7EC,OAAO,GAAE7C,uBAAAA,KAAKI,KAAK,CAACN,QAAQ,cAAnBE,2CAAAA,qBAAqB6C,OAAO;gBACrC,6FAA6F;gBAC7F,iGAAiG;gBACjG,4EAA4E;gBAC5EC,qBAAmBrC,mBAAmBZ;gBACtCkD,KAAKC,CAAAA,IAAMnB,UAAUC,UAAU,GAAGkB;gBAClCC,SAASd,CAAAA,QAASe,WAAWf,OAAOnC,KAAKI,KAAK,EAAEyB;gBAChDsB,QAAQC;gBACRC,UAAU5C,mBAAmBZ,kBAAmB,IAAIzD;;QAG1D;QAGF,qBACE,0CACG3E,MACAkK;IAGP;IAEA,SAASc,8BACPa,UAAkC,EAClCC,MAAc;QAEd,IAAI,CAAC7C,wBAAwB;YAC3B,IAAI4C,eAAe7G,oBAAoBgE,mBAAmB8C,SAAS;gBACjE,OAAO;oBAAEX,UAAU;oBAAwBF,QAAQ;gBAAE;YACvD,OAAO,IAAIjC,mBAAmB8C,SAAS;gBACrC,oEAAoE;gBACpE,qFAAqF;gBACrF,OAAO;oBAAEX,UAAU;oBAAwBF,QAAQ;gBAAI;YACzD,OAAO;gBACL,OAAO;oBAAEE,UAAU;oBAAwBF,QAAQ;gBAAE;YACvD;QACF,OAAO;YACL,OAAO;gBACLE,YAAYnG,qBAAqB6G;gBACjCZ,QAAQ;YACV;QACF;IACF;IAEA,SAAS9H;QACP,MAAM,EAAEG,IAAI,EAAE,GAAGhB;QACjB,OAAOgB,KAAMyI,IAAI,CAAC,CAACxD;gBAAoCA;mBAAAA,CAAAA,iBAAAA,4BAAAA,iBAAAA,KAAMF,QAAQ,cAAdE,qCAAAA,eAAgBzC,CAAC,MAAKnB;;IAC/E;IAEA,SAASkC;QACPrE,UAAUF,MAAMgB,IAAI,IAAI,EAAE;QAC1Bb,YAAYpB,YAAYiB,MAAM6E,QAAQ,EAAE7E,MAAM0J,WAAW,EAAErH,WAAWrC,MAAM2J,IAAI;QAChF,MAAMC,gBAA0B;YAC9BvL,OAAOwL,2BAA2B;YAClCxL,OAAOyL,iCAAiC;YACxCzL,OAAO0L,gCAAgC;YACvC1L,OAAO2L,2BAA2B;YAClC3L,OAAO4L,iCAAiC;SACzC;QACD7J,UAAUJ,MAAMkK,MAAM,IAAIN;QAC1BhJ,gBAAgBC;QAChBa,qBAAqB1C,gBACnBgB,MAAMmK,iBAAiB,EACvBnK,MAAMoK,YAAY,EAClBpK,MAAM2J,IAAI,KAAK,cAAc,IAAI5I,eAAepC,WAAWwC,UAAU,GAAG,IAAI,IAAI,IAAI;QAEtFQ,qBAAqB3C,gBAAgBgB,MAAMqK,iBAAiB,EAAErK,MAAMoK,YAAY,EAAE;IACpF;IAEA,SAASE,YAAYC,QAAiB;QACpCjK,UAAUiK;IACZ;IAEA,SAASC,iCAAiCnE,KAAgC;QACxE,wDAAwD;QACxD,MAAM,EAAEoE,WAAW,EAAE3H,WAAW,EAAE,GAAG4H,gCAAgCrE;QACrE,MAAMsE,UAAyBF,YAAY5C,GAAG,CAAC,CAAC5B,MAAmBC;gBAIlDlG;YAHf,qBACE,wDACE,oBAACxB;gBACCoM,SAAS5K,CAAAA,iBAAAA,MAAM4K,OAAO,cAAb5K,4BAAAA,iBAAiB;gBAC1BsD,eAAeA;gBACfG,eAAeA;gBACf+F,QAAQvD,KAAKuD,MAAM;gBAClB,GAAItD,UAAU,KAAK;oBAAE2E,QAAQ,GAAG/H,eAAemD,KAAKjF,IAAI,EAAE;gBAAC,CAAC;gBAC7D8J,QAAQ7E,KAAKjF,IAAI,IAAIiF,KAAKzC,CAAC;gBAC3B1B,OAAOmE,KAAKnE,KAAK;gBACjBiJ,mBAAmB;;QAI3B;QACA,qBAAO,0CAAGJ;IACZ;IAEA,SAASK,0BAA0BC,MAAiC;YAOnDjL;QANf,qBACE,wDACE,oBAACxB;YACCqM,QAAQI,OAAOC,gBAAgB,IAAKD,OAAO/J,CAAC;YAC5CoB,eAAeA;YACfE,eAAeA;YACfoI,SAAS5K,CAAAA,iBAAAA,MAAM4K,OAAO,cAAb5K,4BAAAA,iBAAiB;YAC1BsD,eAAeA;YACfG,eAAeA;YACf+F,QAAQyB,OAAOzB,MAAM;YACrBsB,QAAQG,OAAOE,gBAAgB,IAAIF,OAAOzH,CAAC;YAC3C1B,OAAO,CAAC9B,MAAMoL,cAAc,IAAIH,OAAOnJ,KAAK,GAAGmJ,OAAOnJ,KAAK,GAAG6D,gBAAgBsF,OAAOzH,CAAC;YACtFuH,mBAAmB;;IAI3B;IAEA,wDAAwD;IACxD,SAASM,eAAerL,KAAiC;QACvD,OAAOA,QAASY,gBAAgB4J,iCAAiCxK,SAASgL,0BAA0BhL,SAAU;IAChH;IAEA,SAASsL;QACP,OAAOtL,MAAMuL,2BAA2B,GACpCvL,MAAMuL,2BAA2B,CAACnI,uBAAuBiI,kBACzD;IACN;IAEA,SAASG,cACP,8DAA8D;IAC9DpG,MAAW,EACXqG,MAAmB,EACnBnG,eAAuB,EACvBC,cAAsB,EACtBmG,QAA4B;QAE5B,OAAQlL,QACNO,eAAepC,WAAWsG,WAAW,GACjC0G,mBAAmBrG,iBAAiBC,gBAAgBmG,YACpD3K,eAAepC,WAAWuG,QAAQ,GAClC0G,gBAAgBtG,iBAAiBC,gBAAgBmG,YACjDG,kBAAkBvG,iBAAiBC,gBAAgBmG;IAC3D;IAEA,SAAS/F;QACP,MAAMmG,YAAY1L,QAAQa,MAAM,IAAI,IAAI,IAAI,IAAKb,CAAAA,QAAQa,MAAM,GAAG,CAAA;QAClE,MAAM,EAAEmK,iBAAiB,KAAK,EAAE,GAAGpL;QACnC,IAAIoL,gBAAgB;YAClB,OAAO,CAACW;gBACN,MAAM,EAAE7B,MAAM,EAAE,GAAGlK;gBACnB,OAAOkK,UAAUA,OAAOjJ,MAAM,GAAG,IAAIiJ,MAAM,CAAC,EAAE,GAAG7L,OAAO2N,2BAA2B;YACrF;QACF;QACA,MAAMC,eAAe,EAAE;QACvB,IAAK,IAAIC,IAAI,GAAGA,IAAI9L,QAAQa,MAAM,EAAEiL,IAAK;YACvCD,aAAa9F,IAAI,CAAC2F,YAAYI,IAAIxL;QACpC;QACA,MAAMgF,aAAa3H,gBAAwBoO,MAAM,CAACF,cAAcG,KAAK,CAAChM;QACtE,OAAOsF;IACT;IAEA,SAAS2G,aAAaC,OAAuB,EAAEC,WAAmB;QAChElM,UAAU8F,IAAI,CAAC;YAAED,OAAOqG;YAAaxE,YAAYuE;QAAQ;IAC3D;IAEA,SAAS5B,gCAAgCrE,KAAgC;YAYrEmG;QARF,wDAAwD;QACxD,MAAM/B,cAA6B,EAAE;QACrC,MAAM,EAAEW,iBAAiB,KAAK,EAAE,GAAGpL;QACnC,MAAM,EAAEgB,IAAI,EAAE8E,cAAc,EAAEF,kBAAkBvH,OAAOwH,6BAA6B,EAAE,GAAG7F;QACzF,MAAMwM,gBAAgBxL,KAAMyL,MAAM,CAAC,CAACC,aAA0CA,WAAWxL,CAAC,KAAKmF,MAAMnF,CAAC;QACtG,sEAAsE;QACtE,IACEN,iBACA4L,EAAAA,2BAAAA,aAAa,CAAC,EAAE,CAACzG,QAAQ,cAAzByG,+CAAAA,yBAA2BhJ,CAAC,MAAKnB,aAChCqE,CAAAA,mBAAmBZ,mBAAmBa,sBAAqB,GAC5D;gBAKK6F,2BACGA,2BACYA;YANpB,gCAAgC;YAChC/B,YAAYtE,IAAI,CAAC;gBACfqD,QAAQ1D;gBACRhE,OAAO8D;gBACPpC,CAAC,GAAEgJ,4BAAAA,aAAa,CAAC,EAAE,CAACzG,QAAQ,cAAzByG,gDAAAA,0BAA2BhJ,CAAC;gBAC/BxC,IAAI,GAAEwL,4BAAAA,aAAa,CAAC,EAAE,CAACzG,QAAQ,cAAzByG,gDAAAA,0BAA2BrB,gBAAgB;gBACjDA,gBAAgB,GAAEqB,4BAAAA,aAAa,CAAC,EAAE,CAACzG,QAAQ,cAAzByG,gDAAAA,0BAA2BrB,gBAAgB;YAC/D;QACF;QACA,qEAAqE;QACrE,IAAIxH,gBAAgBgJ,QAAQ,CAACH,aAAa,CAAC,EAAE,CAAChD,MAAM,KAAM7C,wBAAwB;YAChF,+BAA+B;YAC/B8D,YAAYtE,IAAI,CAAC;gBACfqD,QAAQgD,aAAa,CAAC,EAAE,CAAChD,MAAM;gBAC/BhG,GAAGgJ,aAAa,CAAC,EAAE,CAAChJ,CAAC;gBACrB1B,OAAO,CAACsJ,iBACJoB,aAAa,CAAC,EAAE,CAAC1K,KAAK,GACpB0K,aAAa,CAAC,EAAE,CAAC1K,KAAK,GACtB6D,gBAAgB6G,aAAa,CAAC,EAAE,CAAChJ,CAAC,IACpCmC,gBAAgB;gBACpB3E,MAAMwL,aAAa,CAAC,EAAE,CAACrB,gBAAgB;gBACvCA,kBAAkBqB,aAAa,CAAC,EAAE,CAACrB,gBAAgB;YACrD;QACF;QACA,wDAAwD;QACxD,MAAMrI,cAAcuD,MAAMnF,CAAC,YAAY0L,OAAOvG,MAAMnF,CAAC,CAAC2L,cAAc,KAAKxG,MAAMnF,CAAC,CAAC8F,QAAQ;QACzF,OAAO;YACLyD;YACA3H,aAAauD,MAAM6E,gBAAgB,IAAIpI;QACzC;IACF;IAEA,SAASwF,YACPjC,KAAgC,EAChC,wDAAwD;IACxDvE,KAAa,EACbgL,UAAwC;QAExCA,WAAWC,OAAO;QAElB,wDAAwD;QACxD,MAAM,EAAEtC,WAAW,EAAE3H,WAAW,EAAE,GAAG4H,gCAAgCrE;QACrE,IAAIjF,wBAAwBiF,OAAO;YACjCjF,sBAAsBiF;YACtB,+FAA+F,GAC/F2G,eAAeF,WAAWG,OAAO,EAAEH,WAAWI,OAAO;YACrDxJ,eAAeiD,0BAA0BD,mBAAmBL,MAAMmD,MAAM;YACxEtH,oBAAoBmE,MAAM7C,CAAC;YAC3BP,iBAAiBoD,MAAMmD,MAAM;YAC7BzH,SAASsE,MAAMvE,KAAK,IAAIA;YACxB,+FAA+F;YAC/FS,iBACE8D,MAAM6E,gBAAgB,IAAK7E,CAAAA,MAAMnF,CAAC,YAAY0L,OAAOvG,MAAMnF,CAAC,CAACiM,kBAAkB,KAAK9G,MAAMnF,CAAC,CAAC8F,QAAQ,EAAC;YAEvG3D,yBAAyBgD;YACzB,iGAAiG;YACjG1D,oBAAoBgE,yBAAyBN,MAAMnF,CAAC,GAAG;YACvD2B,eAAe4H;YACf1H,eAAeD;YACfK,4BAA4BkD,MAAMnD,wBAAwB;QAC5D;IACF;IAEA,SAASsF;IACP,EAAE,GACJ;IAEA,SAASa;QACPjI,sBAAsB;QACtBsC,eAAe;QACff,oBAAoB;QACpBE,eAAe,EAAE;QACjBE,eAAe;IACjB;IAEA,wDAAwD;IACxD,SAASqK,YACPhF,KAAgD,EAChD/B,KAAgC,EAChCgH,mBAA2B,EAC3BvL,KAAa;QAEb,IAAIZ,IAAI;QACR,IAAIsC,IAAI;QAER,MAAM8J,aAAa,AAAClF,MAAMmF,MAAM,CAAoBC,qBAAqB;QACzEtM,IAAIoM,WAAWG,IAAI,GAAGH,WAAWhJ,KAAK,GAAG;QACzCd,IAAI8J,WAAWI,GAAG,GAAGJ,WAAWjJ,MAAM,GAAG;QACzC2I,eAAe9L,GAAGsC;QAClB,wDAAwD;QACxD,MAAM,EAAEiH,WAAW,EAAE3H,WAAW,EAAE,GAAG4H,gCAAgCrE;QACrEhG,UAAU2F,OAAO,CAAC,CAAC2H,KAAmBzH;YACpC,IAAIyH,IAAIzH,KAAK,KAAKG,MAAMmD,MAAM,IAAK6D,wBAAwBnH,OAAO;gBAChE,+FAA+F,GAC/FxC,eAAeiD,0BAA0BD,mBAAmBL,MAAMmD,MAAM;gBACxEtH,oBAAoBmE,MAAM7C,CAAC;gBAC3BP,iBAAiBoD,MAAMmD,MAAM;gBAC7BzH,SAASsE,MAAMvE,KAAK,IAAIA;gBACxB,+FAA+F;gBAC/FS,iBACE8D,MAAM6E,gBAAgB,IAAK7E,CAAAA,MAAMnF,CAAC,YAAY0L,OAAOvG,MAAMnF,CAAC,CAACiM,kBAAkB,KAAK9G,MAAMnF,CAAC,CAAC8F,QAAQ,EAAC;gBAEvGvE,iBAAiB4D,MAAM8E,gBAAgB;gBACvC9H,yBAAyBgD;gBACzB,iGAAiG;gBACjG1D,oBAAoB0D,MAAMnF,CAAC;gBAC3B2B,eAAe4H;gBACf1H,eAAeD;gBACfK,4BAA4BkD,MAAMnD,wBAAwB;YAC5D;QACF;IACF;IAEA,SAASmF,WAAWhC,KAAgC,EAAEyG,UAAwC;QAC5FA,WAAWC,OAAO;QAClBa,gBAAgBvH,OAAOyG;IACzB;IAEA,SAAS3D,WACPf,KAAkD,EAClD/B,KAAgC,EAChC2C,GAA4C;QAE5C,IAAIA,IAAIjB,UAAU,EAAE;YAClB6F,gBAAgBvH,OAAO2C,IAAIjB,UAAU;QACvC;IACF;IAEA,SAAS6F,gBACPvH,KAAgC,EAChCwH,YAA6D;QAE7D,MAAM,EAAE/H,iBAAiB,EAAE,EAAEF,kBAAkBvH,OAAOwH,6BAA6B,EAAE,GAAG7F;QACxF0D,eAAeiD,0BAA0BD,mBAAmBZ;QAC5D7C,iBAAiB6C;QACjB5D,oBAAoBmE,MAAMN,QAAQ,CAAEvC,CAAC;QACrCzB,SAAS6D;QACTrD,iBACE8D,MAAM6E,gBAAgB,IAAK7E,CAAAA,MAAMnF,CAAC,YAAY0L,OAAOvG,MAAMnF,CAAC,CAACiM,kBAAkB,KAAK9G,MAAMnF,CAAC,CAAC8F,QAAQ,EAAC;QAEvGvE,iBAAiB4D,MAAMN,QAAQ,CAAEoF,gBAAgB;QACjD9H,yBAAyBgD;QACzB1D,oBAAoB0D,MAAMnF,CAAC;IAC7B;IAEA,SAAS4M,WACPxI,eAAuB,EACvBC,cAAsB;QAGtB,8DAA8D;QAC9D,IAAIwI;QACJ,8DAA8D;QAC9D,MAAMC,YAAiBjQ,gBACpBoO,MAAM,CAAC;YAACxL;YAAOD;SAAM,EACrB0L,KAAK,CAAC;YAAC;YAAG9G,kBAAkBhF,QAAQ2N,MAAM,GAAI3N,QAAQoN,GAAG;SAAE;QAE9D,IAAI3M,eAAepC,WAAWsG,WAAW,EAAE;YACzC,MAAMiJ,OAAO3Q,MAAM2C,SAAS,CAACmG,QAAqCA,MAAMnF,CAAC;YACzE,MAAMiN,OAAO1Q,MAAMyC,SAAS,CAACmG,QAAqCA,MAAMnF,CAAC;YACzE6M,YAAYhQ,gBACToO,MAAM,CAAC5L,UAAU;gBAAC2N;gBAAMC;aAAK,GAAG;gBAACA;gBAAMD;aAAK,EAC5C9B,KAAK,CAAC;gBAAC9L,QAAQmN,IAAI,GAAIpM;gBAAekE,iBAAiBjF,QAAQ8N,KAAK,GAAI/M;aAAc;YACzF,IAAI,CAACpC,sBAAsBe,MAAMmK,iBAAiB,EAAEnK,MAAMoK,YAAY,KAAKpK,MAAM2J,IAAI,KAAK,aAAa;gBACrGoE,UAAUM,IAAI;YAChB;QACF,OAAO,IAAItN,eAAepC,WAAWuG,QAAQ,EAAE;YAC7C,MAAMoJ,QAAQ7Q,MAAMyC,SAAS,CAACmG,QAAqCA,MAAMnF,CAAC;YAC1E,MAAMqN,QAAQhR,MAAM2C,SAAS,CAACmG,QAAqCA,MAAMnF,CAAC;YAC1E6M,YAAY5P,aACTgO,MAAM,CAAC;gBAACmC;gBAAOC;aAAM,EACrBnC,KAAK,CACJ7L,UACI;gBAACgF,iBAAiBjF,QAAQ8N,KAAK,GAAI/M;gBAAef,QAAQmN,IAAI,GAAIpM;aAAc,GAChF;gBAACf,QAAQmN,IAAI,GAAIpM;gBAAekE,iBAAiBjF,QAAQ8N,KAAK,GAAI/M;aAAc;QAE1F,OAAO;YACL0M,YAAY9P,cACTkO,MAAM,CAAC1L,cACP2L,KAAK,CACJ7L,UACI;gBAACgF,iBAAiBjF,QAAQ8N,KAAK,GAAI/M;gBAAef,QAAQmN,IAAI,GAAIpM;aAAc,GAChF;gBAACf,QAAQmN,IAAI,GAAIpM;gBAAekE,iBAAiBjF,QAAQ8N,KAAK,GAAI/M;aAAc,EAErFmN,YAAY,CAAC9M,oBACb+M,YAAY,CAAC9M;QAClB;QAEA,OAAO;YAAEoM;YAAWC;QAAU;IAChC;IAEA,MAAMvG,UAAUpK,0BAA0B2C;IAE1C,8DAA8D;IAC9D,SAAS0O,uBAAuBC,IAAY,EAAEC,IAAY,EAAEC,eAAuB,EAAEb,SAAc;QACjG,MAAMc,wBACJF,OAAO,IACHG,KAAKC,GAAG,CAACL,OAAOE,mBAChBE,KAAKzR,GAAG,CAACyR,KAAKC,GAAG,CAACJ,OAAOC,kBAAkBE,KAAKC,GAAG,CAACL,OAAOE;QACjE,OAAOE,KAAKE,IAAI,CAACjB,UAAUc,yBAAyB;IACtD;IAEA,SAASnD,mBAAmBrG,eAAuB,EAAEC,cAAsB,EAAEmG,QAAoB;QAC/F,MAAM,EAAEN,iBAAiB,KAAK,EAAE,GAAGpL;QACnC,MAAM,EAAE+N,SAAS,EAAEC,SAAS,EAAE,GAAGF,WAAWxI,iBAAiBC;QAC7D,MAAMG,aAAaC;QACnB,MAAMkJ,kBAAkBnO,QAAQ,IAAIA,QAAQ;QAC5C,MAAMwO,OAAOhP,QAAQ2H,GAAG,CAAC,CAACxB,OAAkCH;YAC1D,MAAMO,kBAAkBC,mBAAmBL,MAAMmD,MAAM,KAAM7C,yBAAyB,OAAO;YAE7F,IAAIwI,YAAoBnB,UAAU3H,MAAM7C,CAAC,IAAIwK,UAAUa;YACvD,MAAMO,mBAAmBD,YAAY;YACrCA,YAAYJ,KAAKC,GAAG,CAACG;YACrB,qDAAqD;YACrD,MAAME,eAAeX,uBAAuB/N,OAAOD,OAAOmO,iBAAiBb;YAC3E,IAAIsB,oBAAoBH;YAExB,IAAIA,cAAc,GAAG;gBACnB,qBAAO,oBAAC/R,MAAMmS,QAAQ;oBAACrI,KAAKb,MAAMnF,CAAC;mBAAY;YACjD,OAEK,IAAIiO,aAAaE,cAAc;gBAClCC,oBAAoBD;YACtB;YACA,MAAMG,SAASzB,UAAU1H,MAAMnF,CAAC,IAAcf,YAAY;YAC1D,MAAMsP,SACJnK,kBACAhF,QAAQ2N,MAAM,GACbmB,CAAAA,mBAAmB,CAAC,IAAIE,oBAAoBA,iBAAgB,IAC7DtB,UAAUa;YACZ,MAAMa,iBAAiBpK,kBAAkBhF,QAAQ2N,MAAM,GAAID,UAAUa;YACrE,qBACE,oBAACc;gBAAEzI,KAAK,GAAGb,MAAMnF,CAAC,CAAC,CAAC,EAAEgF,OAAO;6BAC3B,oBAAC0J;gBACCzI,IAAI,GAAG1F,UAAU,CAAC,EAAEyE,OAAO;gBAC3BhF,GAAGsO;gBACHhM,GAAG,CAAC4L,mBAAmBK,SAASC;gBAChCpL,OAAOnE;gBACPkE,QAAQiL;gBACRtG,KAAK,CAACC;oBACJoD,aAAapD,GAAG5C,MAAMmD,MAAM;gBAC9B;gBACAV,SAASzC,MAAMyC,OAAO;gBACtBX,aAAaC,CAAAA,QAASE,YAAYjC,OAAOX,WAAWW,MAAM7C,CAAC,GAAG4E;gBAC9DyH,cAAYC,cAAczJ;gBAC1B0J,MAAK;gBACLC,cAAcxH;gBACdU,SAASd,CAAAA,QAASgF,YAAYhF,OAAO/B,OAAOH,OAAOR,WAAWW,MAAM7C,CAAC;gBACrE4F,QAAQZ;gBACRnB,MAAMhB,MAAMvE,KAAK,IAAI,CAACsJ,iBAAiB/E,MAAMvE,KAAK,GAAG4D,WAAWW,MAAM7C,CAAC;gBACvE8F,UAAU,CAACtJ,MAAMiQ,WAAW,IAAIxJ,kBAAkB,IAAIpE;gBACtD+E,SAASX,kBAAkB,IAAI;gBAC/ByJ,IAAIlQ,MAAMmQ,YAAY,GAAG,IAAI;gBAE9BC,gBAAgBZ,QAAQC,QAAQpJ,MAAM7C,CAAC,EAAE6C,MAAMmD,MAAM,EAAG4F;QAG/D;QACA,mEAAmE;QACnE,IAAI,CAACpP,MAAMqQ,sBAAsB,EAAE;YACjC,IAAI;gBACF,iDAAiD;gBACjDC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;QACf;QACA,4CAA4C;QAC5C,IAAI,CAACjJ,MAAMyQ,eAAe,IAAIzQ,MAAMqQ,sBAAsB,EAAE;YAC1D,MAAMK,eAAe7S,SAAS6N,UAAUiF,IAAI,CAAC5C;YAC7C,IAAI;gBACF,iDAAiD;gBACjDuC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;YACb,MAAM2H,eAAe;gBACnBC,YAAYpJ,QAAQqJ,OAAO;gBAC3B3J,IAAIrG;gBACJiQ,MAAML;YACR;YACAA,gBAAgB7R,oBAAoB+R;QACtC;QACA,OAAO1B;IACT;IAEA,SAASrD,kBAAkBvG,eAAuB,EAAEC,cAAsB,EAAEmG,QAAoB;QAC9F,MAAM,EAAEqC,SAAS,EAAEC,SAAS,EAAE,GAAGF,WAAWxI,iBAAiBC;QAC7D,MAAMG,aAAaC;QACnB,MAAMkJ,kBAAkBnO,QAAQ,IAAIA,QAAQ;QAC5C,MAAMwO,OAAOhP,QAAQ2H,GAAG,CAAC,CAACxB,OAAkCH;YAC1D,MAAMO,kBAAkBC,mBAAmBL,MAAMmD,MAAM,KAAM7C,yBAAyB,OAAO;YAC7F,IAAIwI,YAAoBnB,UAAU3H,MAAM7C,CAAC,IAAIwK,UAAUa;YACvD,MAAMO,mBAAmBD,YAAY;YACrCA,YAAYJ,KAAKC,GAAG,CAACG;YACrB,qDAAqD;YACrD,MAAME,eAAeX,uBAAuB/N,OAAOD,OAAOmO,iBAAiBb;YAC3E,IAAIsB,oBAAoBH;YAExB,IAAIA,cAAc,GAAG;gBACnB,qBAAO,oBAAC/R,MAAMmS,QAAQ;oBAACrI,KAAKb,MAAMnF,CAAC;mBAAY;YACjD,OAEK,IAAIiO,aAAaE,cAAc;gBAClCC,oBAAoBD;YACtB;YACA,MAAMG,SAASzB,UAAU1H,MAAMnF,CAAC;YAChC,MAAMuO,SACJnK,kBACAhF,QAAQ2N,MAAM,GACbmB,CAAAA,mBAAmB,CAAC,IAAIE,oBAAoBA,iBAAgB,IAC7DtB,UAAUa;YACZ,MAAMa,iBAAiBpK,kBAAkBhF,QAAQ2N,MAAM,GAAID,UAAUa;YACrE,2FAA2F;YAC3F,4EAA4E;YAC5E1O,YAAYpB,YAAYiB,MAAM6E,QAAQ,EAAE7E,MAAM0J,WAAW,EAAEqE,UAAUvH,SAAS,IAAIxG,MAAM2J,IAAI;YAC5F,qBACE,oBAACgG;gBACCzI,KAAKb,MAAMnF,CAAC,YAAY0L,OAAO,GAAGvG,MAAMnF,CAAC,CAAC8P,OAAO,GAAG,CAAC,EAAE9K,OAAO,GAAG,GAAGG,MAAMnF,CAAC,CAAC,CAAC,EAAEgF,OAAO;gBACtF+K,WAAW,CAAC,UAAU,EAAE,MAAOlD,CAAAA,UAAUvH,SAAS,KAAKrG,SAAQ,EAAG,IAAI,CAAC;6BAEvE,oBAACyP;gBACCzI,IAAI,GAAG1F,UAAU,CAAC,EAAEyE,OAAO;gBAC3BhF,GAAGsO;gBACHhM,GAAG,CAAC4L,mBAAmBK,SAASC;gBAChCpL,OAAOnE;gBACPkE,QAAQiL;gBACRO,cAAYC,cAAczJ;gBAC1B0J,MAAK;gBACL/G,KAAK,CAACC;oBACJoD,aAAapD,GAAG5C,MAAMmD,MAAM;gBAC9B;gBACAV,SAASzC,MAAMyC,OAAO;gBACtBX,aAAaC,CAAAA,QAASE,YAAYjC,OAAOX,WAAWW,MAAM7C,CAAC,GAAG4E;gBAC9D4H,cAAcxH;gBACdY,QAAQZ;gBACRU,SAASd,CAAAA,QAASgF,YAAYhF,OAAO/B,OAAOH,OAAOR,WAAWW,MAAM7C,CAAC;gBACrE6D,MAAMhB,MAAMvE,KAAK,GAAGuE,MAAMvE,KAAK,GAAG4D,WAAWW,MAAM7C,CAAC;gBACpD8F,UAAU,CAACtJ,MAAMiQ,WAAW,IAAIxJ,kBAAkB,IAAIpE;gBACtD6N,IAAIlQ,MAAMmQ,YAAY,GAAG,IAAI;gBAC7B/I,SAASX,kBAAkB,IAAI;gBAEhC2J,gBAAgBZ,QAAQC,QAAQpJ,MAAM7C,CAAC,EAAE6C,MAAMmD,MAAM,EAAG4F;QAG/D;QAEA,mEAAmE;QACnE,IAAI,CAACpP,MAAMqQ,sBAAsB,EAAE;YACjC,IAAI;gBACF,iDAAiD;gBACjDC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;QACf;QACA,4CAA4C;QAC5C,IAAI,CAACjJ,MAAMyQ,eAAe,IAAIzQ,MAAMqQ,sBAAsB,EAAE;YAC1D,MAAMK,eAAe7S,SAAS6N,UAAUiF,IAAI,CAAC5C;YAC7C,IAAI;gBACF,iDAAiD;gBACjDuC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;YACb,MAAM2H,eAAe;gBACnBC,YAAYpJ,QAAQqJ,OAAO;gBAC3B3J,IAAIrG;gBACJiQ,MAAML;gBACNQ,aAAalR,MAAMqQ,sBAAsB;YAC3C;YACAK,gBAAgB7R,oBAAoB+R;QACtC;QACA,OAAO1B;IACT;IAEA,SAAStD,gBAAgBtG,eAAuB,EAAEC,cAAsB,EAAEmG,QAAoB;QAC5F,MAAM,EAAEN,iBAAiB,KAAK,EAAE,GAAGpL;QACnC,MAAM,EAAE+N,SAAS,EAAEC,SAAS,EAAE,GAAGF,WAAWxI,iBAAiBC;QAC7D,MAAMG,aAAaC;QACnB,MAAMkJ,kBAAkBnO,QAAQ,IAAIA,QAAQ;QAC5C,MAAMwO,OAAOhP,QAAQ2H,GAAG,CAAC,CAACxB,OAAkCH;YAC1D,MAAMO,kBAAkBC,mBAAmBL,MAAMmD,MAAM,KAAM7C,yBAAyB,OAAO;YAC7F,IAAIwI,YAAoBnB,UAAU3H,MAAM7C,CAAC,IAAIwK,UAAUa;YACvD,MAAMO,mBAAmBD,YAAY;YACrCA,YAAYJ,KAAKC,GAAG,CAACG;YACrB,qDAAqD;YACrD,MAAME,eAAeX,uBAAuB/N,OAAOD,OAAOmO,iBAAiBb;YAC3E,IAAIsB,oBAAoBH;YAExB,IAAIA,cAAc,GAAG;gBACnB,qBAAO,oBAAC/R,MAAMmS,QAAQ;oBAACrI,KAAKb,MAAMnF,CAAC;mBAAY;YACjD,OAEK,IAAIiO,aAAaE,cAAc;gBAClCC,oBAAoBD;YACtB;YACA,MAAMG,SAASzB,UAAU1H,MAAMnF,CAAC,IAAcf,YAAY;YAC1D,MAAMsP,SACJnK,kBACAhF,QAAQ2N,MAAM,GACbmB,CAAAA,mBAAmB,CAAC,IAAIE,oBAAoBA,iBAAgB,IAC7DtB,UAAUa;YACZ,MAAMa,iBAAiBpK,kBAAkBhF,QAAQ2N,MAAM,GAAID,UAAUa;YACrE,qBACE,oBAACc;gBAAEzI,KAAKb,MAAMnF,CAAC,YAAY0L,OAAO,GAAGvG,MAAMnF,CAAC,CAAC8P,OAAO,GAAG,CAAC,EAAE9K,OAAO,GAAG,GAAGG,MAAMnF,CAAC,CAAC,CAAC,EAAEgF,OAAO;6BACvF,oBAAC0J;gBACCzI,IAAI,GAAG1F,UAAU,CAAC,EAAEyE,OAAO;gBAC3BhF,GAAGsO;gBACHhI,WAAWC,QAAQ0J,oBAAoB;gBACvC3N,GAAG,CAAC4L,mBAAmBK,SAASC;gBAChCpL,OAAOnE;gBACPkE,QAAQiL;gBACRtG,KAAK,CAACC;oBACJoD,aAAapD,GAAG5C,MAAMmD,MAAM;gBAC9B;gBACAV,SAASzC,MAAMyC,OAAO;gBACtBX,aAAaC,CAAAA,QAASE,YAAYjC,OAAOX,WAAWW,MAAM7C,CAAC,GAAG4E;gBAC9DyH,cAAYC,cAAczJ;gBAC1B0J,MAAK;gBACLC,cAAcxH;gBACdU,SAASd,CAAAA,QAASgF,YAAYhF,OAAO/B,OAAOH,OAAOR,WAAWW,MAAM7C,CAAC;gBACrE4F,QAAQZ;gBACRnB,MAAMhB,MAAMvE,KAAK,IAAI,CAACsJ,iBAAiB/E,MAAMvE,KAAK,GAAG4D,WAAWW,MAAM7C,CAAC;gBACvE8F,UAAU,CAACtJ,MAAMiQ,WAAW,IAAIxJ,kBAAkB,IAAIpE;gBACtD6N,IAAIlQ,MAAMmQ,YAAY,GAAG,IAAI;gBAC7B/I,SAASX,kBAAkB,IAAI;gBAEhC2J,gBAAgBZ,QAAQC,QAAQpJ,MAAM7C,CAAC,EAAE6C,MAAMmD,MAAM,EAAG4F;QAG/D;QACA,mEAAmE;QACnE,IAAI,CAACpP,MAAMqQ,sBAAsB,EAAE;YACjC,IAAI;gBACF,iDAAiD;gBACjDC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;QACf;QACA,4CAA4C;QAC5C,IAAI,CAACjJ,MAAMyQ,eAAe,IAAIzQ,MAAMqQ,sBAAsB,EAAE;YAC1D,MAAMK,eAAe7S,SAAS6N,UAAUiF,IAAI,CAAC5C;YAC7C,IAAI;gBACF,iDAAiD;gBACjDuC,SAASC,cAAc,CAACzP,eAAewP,SAASC,cAAc,CAACzP,YAAa0P,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAOvH,GAAG,CAAC;YACb,MAAM2H,eAAe;gBACnBC,YAAYpJ,QAAQqJ,OAAO;gBAC3B3J,IAAIrG;gBACJiQ,MAAML;YACR;YACAA,gBAAgB7R,oBAAoB+R;QACtC;QACA,OAAO1B;IACT;IAEA,SAASkC,eAAe7E,WAAmB;QACzCnK,gBAAgBmK;IAClB;IAEA,SAAS8E;QACPjP,gBAAgBC;IAClB;IAEA,SAASiP,eAAetQ,IAAiC;QACvD,MAAM,EAAEoK,cAAc,EAAE,GAAGpL;QAC3B,MAAM,EAAE8F,cAAc,EAAEF,kBAAkBvH,OAAOkT,6BAA6B,EAAE,GAAGvR;QACnF,MAAMwR,UAAoB,EAAE;QAC5B,MAAMC,mBAA2C,CAAC;QAClDzQ,KAAKgF,OAAO,CAAC,CAACK,OAAkCqL;YAC9C,wDAAwD;YACxD,MAAM5P,QAAgB,CAACsJ,iBAAiB/E,MAAMvE,KAAK,GAAI6D,gBAAgB;YACvE8L,gBAAgB,CAACpL,MAAMmD,MAAM,CAAE,GAAG1H;QACpC;QACA6P,OAAOC,OAAO,CAACH,kBAAkBzL,OAAO,CAAC,CAAC,CAACuG,aAAazK,MAAM;YAC5D,qDAAqD;YACrD,MAAM0H,SAAiB;gBACrBqI,OAAOtF;gBACPzK;gBACAgQ,aAAa;oBACXzI;oBACA+H,eAAe7E;gBACjB;gBACAwF,kBAAkB;oBAChBV;gBACF;YACF;YACAG,QAAQrL,IAAI,CAACqD;QACf;QACA,IAAI5I,iBAAiBkF,kBAAkBF,iBAAiB;YACtD,MAAMoM,aAAqB;gBACzBH,OAAO/L;gBACPhE,OAAO8D;gBACPkM,aAAa;oBACXzI;oBACA+H,eAAetL;gBACjB;gBACAiM,kBAAkB;oBAChBV;gBACF;gBACAY,wBAAwB;YAC1B;YACAT,QAAQU,OAAO,CAACF;QAClB;QACA,MAAMG,wBACJ,oBAAC5T;YACC4T,SAASX;YACTY,kBAAkBpS,MAAMqS,uBAAuB;YAC/CC,cAActS,MAAMuS,mBAAmB;YACtC,GAAGvS,MAAM6D,WAAW;YACrBF,iBAAiBA;YACjB6O,UAAUC;;QAGd,OAAON;IACT;IAEA,SAASM,yBACPC,eAAyB,EACzBtK,KAA0C,EAC1CuK,aAAsB;YAElB3S,oBAMAA;QANJ,KAAIA,qBAAAA,MAAM6D,WAAW,cAAjB7D,yCAAAA,mBAAmB4S,wBAAwB,EAAE;YAC/ChP,mBAAmB8O;QACrB,OAAO;YACL9O,mBAAmB8O,gBAAgBG,KAAK,CAAC,CAAC;QAC5C;QAEA,KAAI7S,sBAAAA,MAAM6D,WAAW,cAAjB7D,0CAAAA,oBAAmBwS,QAAQ,EAAE;YAC/BxS,MAAM6D,WAAW,CAAC2O,QAAQ,CAACE,iBAAiBtK,OAAOuK;QACrD;IACF;IAEA,SAASG,aAAaC,SAAoB;QACxC,IAAIA,aAAaA,UAAUC,iBAAiB,CAAC/R,MAAM,EAAE;YACnD,MAAM,EAAE+R,mBAAmBC,WAAW,EAAE,GAAGF;YAC3CrS,QAAQqO,KAAKzR,GAAG,CAAC2V,WAAW,CAACA,YAAYhS,MAAM,GAAG,EAAE,EAAEjB,MAAMkT,SAAS,IAAI;YACzEvS,QAAQoO,KAAKvR,GAAG,CAACyV,WAAW,CAAC,EAAE,EAAEjT,MAAMmT,SAAS,IAAI;QACtD;IACF;IAEA;;;;;GAKC,GACD,SAASzM,mBAAmB6F,WAA+B;QACzD,OAAO6G,wBAAwBzG,QAAQ,CAACJ;IAC1C;IAEA;;GAEC,GACD,SAAS5F;QACP,OAAOyM,wBAAwBnS,MAAM,KAAK;IAC5C;IAEA,SAASmS;QACP,OAAOzP,gBAAgB1C,MAAM,GAAG,IAAI0C,kBAAkBxB,eAAe;YAACA;SAAa,GAAG,EAAE;IAC1F;IAEA,SAAS2N,cAAczJ,KAAgC;YASlCA,iBAAoCA,kBAErDA;QAVF,MAAMgN,SAAShN,MAAM6E,gBAAgB,GACjC7E,MAAM6E,gBAAgB,GACtB7E,MAAMnF,CAAC,YAAY0L,OACnBvG,MAAMnF,CAAC,CAAC2L,cAAc,KACtBxG,MAAMnF,CAAC;QACX,MAAMsI,SAASnD,MAAMmD,MAAM;QAC3B,MAAM8J,SAASjN,MAAM8E,gBAAgB,IAAI9E,MAAM7C,CAAC;QAChD,MAAMwO,aAAahS,MAAM8F,cAAc,IAAI;QAC3C,MAAMyN,aAAalN,EAAAA,kBAAAA,MAAMN,QAAQ,cAAdM,sCAAAA,gBAAgB8E,gBAAgB,OAAI9E,mBAAAA,MAAMN,QAAQ,cAAdM,uCAAAA,iBAAgB7C,CAAC;QACxE,OACE6C,EAAAA,kCAAAA,MAAMnD,wBAAwB,cAA9BmD,sDAAAA,gCAAgCmN,SAAS,KACzC,GAAGH,OAAO,EAAE,CAAC,GACV7J,CAAAA,SAAS,GAAGA,OAAO,EAAE,CAAC,GAAG,EAAC,IAC3B,GAAG8J,OAAO,CAAC,CAAC,GACX,CAAA,OAAOC,eAAe,cAAc,CAAC,CAAC,EAAEvB,WAAW,EAAE,EAAEuB,WAAW,CAAC,CAAC,GAAG,EAAC;IAE/E;IAEA,SAASnD,gBAAgBZ,MAAc,EAAEC,MAAc,EAAEgE,QAAgB,EAAEjK,MAAc,EAAEkK,aAAsB;QAC/G,IAAI1T,MAAM2T,UAAU,IAAIxT,YAAY,MAAM,CAAEuG,CAAAA,mBAAmB8C,WAAW7C,sBAAqB,GAAI;YACjG,OAAO;QACT;QAEA,qBACE,oBAACiN;YACC1S,GAAGsO,SAASrP,YAAY;YACxBqD,GAAGkQ,gBAAgBjE,SAAS,KAAKA,SAAS;YAC1CoE,YAAW;YACXrM,WAAWC,QAAQqM,QAAQ;YAC3BC,eAAa;WAEZ,OAAO/T,MAAMgU,eAAe,KAAK,aAC9BhU,MAAMgU,eAAe,CAACP,YACtB3U,2BAA2B2U;IAGrC;IAEA,SAASQ,kBAAkB1O,cAAsB;YAI/CvF;QAHAqB,gBAAgBxB;QAEhB,MAAMqU,OAA+C,CAAC;SACtDlU,cAAAA,MAAMgB,IAAI,cAAVhB,kCAAAA,YAAYgG,OAAO,CAACK,CAAAA;YAClB,IAAIA,MAAMnF,CAAC,YAAY0L,MAAM;gBAC3BsH,IAAI,CAAC7N,MAAMnF,CAAC,CAAC8P,OAAO,GAAG,GAAG3K,MAAMnF,CAAC;YACnC,OAAO;gBACLgT,IAAI,CAAC7N,MAAMnF,CAAC,CAAC,GAAGmF,MAAMnF,CAAC;YACzB;QACF;QACA,MAAMiT,UAAUxC,OAAOyC,MAAM,CAACF;QAE9B,6CAA6C,GAC7C,MAAMG,aAAa9O,iBAAkBjF,CAAAA,QAAQmN,IAAI,GAAI5N,iBAAgB,IAAMS,CAAAA,QAAQ8N,KAAK,GAAIvO,iBAAgB;QAC5G,uEAAuE,GACvE,MAAMyU,aAAa5S,qBAAsB,CAAA,IAAIA,kBAAiB;QAC9D,MAAM6S,UAAUJ,QAAQlT,MAAM,GAAG,AAACkT,CAAAA,QAAQlT,MAAM,GAAG,CAAA,IAAKqT;QAExD,IAAIvT,eAAepC,WAAWwC,UAAU,EAAE;YACxC,IAAIlC,sBAAsBe,MAAMqK,iBAAiB,EAAErK,MAAMoK,YAAY,GAAG;gBACtE,uGAAuG;gBACvG,mEAAmE;gBACnE/I,gBAAgB;YAClB,OAAO,IAAIrB,MAAM6E,QAAQ,KAAK,UAAU7E,MAAM2J,IAAI,KAAK,aAAa;gBAClE,8DAA8D;gBAC9D,+DAA+D;gBAC/DxJ,YAAYpB,YAAYiB,MAAM6E,QAAQ,EAAE7E,MAAM0J,WAAW;gBACzD,gFAAgF,GAChF,MAAM8K,WAAWD,UAAUpU;gBAE3B,IAAIkU,cAAcG,UAAU;oBAC1B,4EAA4E;oBAC5EnT,gBAAgBxB,oBAAoB,AAACwU,CAAAA,aAAaG,QAAO,IAAK;gBAChE;YACF,OAAO,IAAI;gBAAC;gBAAU;aAAY,CAAC7H,QAAQ,CAAC3M,MAAM2J,IAAI,KAAMwK,QAAQlT,MAAM,GAAG,GAAG;gBAC9E,sFAAsF;gBACtF,MAAMuF,YAAY6N,aAAaE;gBAC/B,MAAM1P,WAAW9F,YAAYiB,MAAM6E,QAAQ,EAAE7E,MAAM0J,WAAW,EAAElD,WAAWxG,MAAM2J,IAAI;gBACrF,IAAI6K,WAAWD,UAAU1P;gBACzB,MAAM4P,UAAU,AAACJ,CAAAA,aAAaG,QAAO,IAAK;gBAE1C,IAAIE,UAAU5N,OAAO6N,iBAAiB;gBACtC,IAAI,CAAC3U,MAAM4U,eAAe,EAAE;oBAC1B,gGAAgG;oBAChG,MAAMC,OAAOxV,2BAA2B8U,WAAuB;oBAC/DK,WAAW,AAACL,CAAAA,QAAQlT,MAAM,GAAGS,kBAAiB,IAAKmT;oBACnDH,UAAU,AAACL,CAAAA,aAAaG,QAAO,IAAK;gBACtC;gBAEAnT,gBAAgBxB,oBAAoBkP,KAAKzR,GAAG,CAAC,GAAGyR,KAAKvR,GAAG,CAACiX,SAASC;YACpE;QACF,OAAO;YACL,IAAI1U,MAAM2J,IAAI,KAAK,aAAa;gBAC9B,sFAAsF;gBACtF,yFAAyF;gBACzF,gDAAgD;gBAChD,MAAM9E,WAAW7E,MAAM0J,WAAW;gBAClC,MAAM8K,WAAWD,UAAU1P;gBAC3BxD,iBAAiB0N,KAAKzR,GAAG,CAAC,GAAG,AAAC+W,CAAAA,aAAaG,QAAO,IAAK;YACzD;YAEA,iGAAiG;YACjG,8FAA8F;YAC9F,uGAAuG;YACvG,gGAAgG;YAChG,iGAAiG;YACjG,kCAAkC;YAClC,oGAAoG;YACpG,uCAAuC;YACvCrU,YAAYpB,YACViB,MAAM6E,QAAQ,EACd7E,MAAM0J,WAAW,EACjBxK,6BACEiV,SACAE,aAAa,IAAKhT,CAAAA,gBAAgBxB,iBAAgB,GAClD6B,qBAEF1B,MAAM2J,IAAI;YAEZtI,iBAAiBlB,YAAY;QAC/B;QAEA,OAAO;YACL,GAAGG,OAAO;YACVmN,MAAMnN,QAAQmN,IAAI,GAAIpM;YACtB+M,OAAO9N,QAAQ8N,KAAK,GAAI/M;QAC1B;IACF;IAEA,SAASyT;QACP,OAAO5U,QAAQe,MAAM,KAAK,KAAMf,QAAQ6U,KAAK,CAAC1O,CAAAA,QAASA,MAAM7C,CAAC,KAAK,MAAM,CAAC5C;IAC5E;IAEA,SAASoM,eAAegI,IAAY,EAAEC,IAAY;QAChD,MAAMC,YAAY,GAAG,+BAA+B;QACpD,MAAM,EAAEhU,CAAC,EAAEsC,CAAC,EAAE,GAAGF;QACjB,+BAA+B;QAC/B,MAAM6R,WAAWpG,KAAKqG,IAAI,CAACrG,KAAKsG,GAAG,CAACL,OAAO9T,GAAG,KAAK6N,KAAKsG,GAAG,CAACJ,OAAOzR,GAAG;QACtE,+EAA+E;QAC/E,IAAI2R,WAAWD,WAAW;YACxB3R,iBAAiB;gBAAErC,GAAG8T;gBAAMxR,GAAGyR;YAAK;YACpCvR,eAAe;QACjB;IACF;IAEAa;IACA9D,eAAeP,QAAQ2H,GAAG,CAAC,CAACxB,QAAqCA,MAAMnF,CAAC;IACxER,QAAQqO,KAAKzR,GAAG,CAACC,MAAM2C,SAAS,CAACmG,QAAqCA,MAAM7C,CAAC,GAAIxD,MAAMkT,SAAS,IAAI;IACpGvS,QAAQoO,KAAKvR,GAAG,CAACC,MAAMyC,SAAS,CAACmG,QAAqCA,MAAM7C,CAAC,GAAIxD,MAAMmT,SAAS,IAAI;IACpG,MAAMmC,aAA0BhE,eAAepR;QAepCF;IAdX,MAAMuV,eAAe;QACnB,GAAI3U,iBAAiB;YACnB6J,aAAa7H;YACbE,aAAaA;QACf,CAAC;QACDhB,OAAOA;QACP0H,QAAQxG;QACR6H,QAAQvI;QACRwI,QAAQtI,gBAAgBA,gBAAgBP;QACxC,GAAGjC,MAAMuV,YAAY;QACrB,GAAG7W,wBAAwBwE,yBAAyB;QACpDI,eAAeA;QACfG,eAAeA;QACfsH,mBAAmBnK,iBAAkB+F,CAAAA,0BAA0ByM,wBAAwBnS,MAAM,GAAG,CAAA;QAChG2J,SAAS5K,CAAAA,iBAAAA,MAAM4K,OAAO,cAAb5K,4BAAAA,iBAAiB;QAC1BwV,aAAa;QACbC,eAAe;YACbC,mBAAmBpK,2BAA2B,OAAOA,0BAA2BjJ;YAChFsT,oBAAoB3V,MAAM4V,wBAAwB,GAC9C5V,MAAM4V,wBAAwB,CAACxS,yBAC/Bf;QACN;IACF;IAEA,MAAMwT,aAAa;QACjB/Q,YAAY9E,MAAM8E,UAAU;QAC5BgR,YAAY9V,MAAM8V,UAAU;IAC9B;IACA,OAAO,CAAChB,gCACN,oBAACxW;QACE,GAAG0B,KAAK;QACTyE,QAAQvE;QACRwE,WAAWjG,WAAWqB,gBAAgB;QACtC8E,WAAW7D;QACXgV,aAAaxW;QACbgW,cAAcA;QACdM,YAAYA;QACX,GAAIjV,iBAAiB+F,0BAA0B;YAAEoE,mBAAmB;QAAK,CAAC;QAC3EuK,YAAYA;QACZU,uBAAuBvV;QACvBwV,UAAU9V;QACVR,mBAAmBA;QACnBuW,YAAY5L;QACZ6L,kBAAkB7W;QAClB8W,cAAc5K;QACd6K,uBAAuB7R;QACvB8R,aAAaxD;QACbyD,mBAAmBlN;QACnBmN,kBAAkBvC;QACjB,GAAIlT,eAAepC,WAAWwC,UAAU,IAAI;YAC3CgJ,mBAAmBzI;YACnB2I,mBAAmB1I;QACrB,CAAC;QACDqC,cAAcpC;QACd6U,yBACE,CAACxX,sBAAsBe,MAAMmK,iBAAiB,EAAEnK,MAAMoK,YAAY,KAAKpK,MAAM2J,IAAI,KAAK;QAExF,oCAAoC,GACpC,kDAAkD;QAClD+M,UAAU,CAAC1W;YACT,qBACE,wDACE,oBAAC2P,WAAGnP,QACHI,+BACC,oBAAC+O,WACExK,YACCnF,MAAMoF,MAAM,EACZpF,MAAMqF,aAAa,EACnBrF,MAAMsF,eAAe,EACrBtF,MAAMuF,cAAc,EACpBvF,MAAMwF,eAAe;QAMjC;uBAGF,oBAACmR;QAAIxP,IAAI7F;QAAeyO,MAAM;QAAS6G,OAAO;YAAExP,SAAS;QAAI;QAAGyI,cAAY;;AAEhF,GAAG;AACH/P,iBAAiB+W,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["VerticalBarChart.types.ts"],"sourcesContent":["import { RenderFunction } from '../../utilities/index';\nimport {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n VerticalBarChartDataPoint,\n} from '../../index';\nimport { LineChartLineOptions } from '../../types/index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: VerticalBarChartDataPoint[];\n\n /**\n * Define a custom callout renderer for a data point.\n */\n onRenderCalloutPerDataPoint?: RenderFunction<VerticalBarChartDataPoint>;\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 * Legend text for the line datapoint in the chart\n */\n lineLegendText?: string;\n\n /**\n * color for the legend of the line in the chart\n * @default theme.yellow\n */\n\n lineLegendColor?: 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?: Partial<VerticalBarChartStyles>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: LineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartStyleProps extends CartesianChartStyleProps {\n /**\n * color of the datapoint legend\n */\n legendColor?: string;\n}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n\n /**\n * Styles for line border\n */\n lineBorder: string;\n}\n"],"names":[],"
|
|
1
|
+
{"version":3,"sources":["../src/components/VerticalBarChart/VerticalBarChart.types.ts"],"sourcesContent":["import { RenderFunction } from '../../utilities/index';\nimport {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n VerticalBarChartDataPoint,\n} from '../../index';\nimport { LineChartLineOptions } from '../../types/index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: VerticalBarChartDataPoint[];\n\n /**\n * Define a custom callout renderer for a data point.\n */\n onRenderCalloutPerDataPoint?: RenderFunction<VerticalBarChartDataPoint>;\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 * Legend text for the line datapoint in the chart\n */\n lineLegendText?: string;\n\n /**\n * color for the legend of the line in the chart\n * @default theme.yellow\n */\n\n lineLegendColor?: 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?: Partial<VerticalBarChartStyles>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: LineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * @default false\n * The prop used to enable gradient fill color for the chart.\n */\n enableGradient?: boolean;\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly' | 'histogram';\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartStyleProps extends CartesianChartStyleProps {\n /**\n * color of the datapoint legend\n */\n legendColor?: string;\n}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface VerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n\n /**\n * Styles for line border\n */\n lineBorder: string;\n}\n"],"names":[],"mappings":"AAyIA;;;CAGC,GACD,WAUC"}
|