@fluentui/react-charts 1.2.0 → 9.0.0
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 +177 -15
- package/LICENSE +11 -17
- package/README.md +174 -23
- package/dist/index.d.ts +2143 -0
- package/lib/CartesianChart.js +1 -0
- package/lib/CartesianChart.js.map +1 -0
- package/lib/DeclarativeChart.js +1 -0
- package/lib/DeclarativeChart.js.map +1 -0
- package/lib/DonutChart.js +1 -0
- package/lib/DonutChart.js.map +1 -0
- package/lib/HorizontalBarChart.js +1 -0
- package/lib/HorizontalBarChart.js.map +1 -0
- package/lib/Legends.js +1 -0
- package/lib/Legends.js.map +1 -0
- package/lib/LineChart.js +1 -0
- package/lib/LineChart.js.map +1 -0
- package/lib/Popover.js +1 -0
- package/lib/Popover.js.map +1 -0
- package/lib/ResponsiveContainer.js +1 -0
- package/lib/ResponsiveContainer.js.map +1 -0
- package/lib/Sparkline.js +1 -0
- package/lib/Sparkline.js.map +1 -0
- package/lib/VerticalBarChart.js +1 -0
- package/lib/VerticalBarChart.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.js +462 -0
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.types.js +1 -0
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -0
- package/lib/components/CommonComponents/ChartPopover.js +187 -0
- package/lib/components/CommonComponents/ChartPopover.js.map +1 -0
- package/lib/components/CommonComponents/ChartPopover.types.js +1 -0
- package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -0
- package/lib/components/CommonComponents/index.js +4 -0
- package/lib/components/CommonComponents/index.js.map +1 -0
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +229 -0
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +178 -0
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
- package/lib/components/DeclarativeChart/DeclarativeChart.js +150 -0
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
- package/lib/components/DeclarativeChart/PlotlySchema.js +7 -0
- package/lib/components/DeclarativeChart/PlotlySchema.js.map +1 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +400 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
- package/lib/components/DeclarativeChart/imageExporter.js +221 -0
- package/lib/components/DeclarativeChart/imageExporter.js.map +1 -0
- package/lib/components/DeclarativeChart/index.js +1 -0
- package/lib/components/DeclarativeChart/index.js.map +1 -0
- package/lib/components/DonutChart/Arc/Arc.js +110 -0
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -0
- package/lib/components/DonutChart/Arc/Arc.types.js +1 -0
- package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -0
- package/lib/components/DonutChart/Arc/index.js +2 -0
- package/lib/components/DonutChart/Arc/index.js.map +1 -0
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +54 -0
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
- package/lib/components/DonutChart/DonutChart.js +291 -0
- package/lib/components/DonutChart/DonutChart.js.map +1 -0
- package/lib/components/DonutChart/DonutChart.types.js +1 -0
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -0
- package/lib/components/DonutChart/Pie/Pie.js +72 -0
- package/lib/components/DonutChart/Pie/Pie.js.map +1 -0
- package/lib/components/DonutChart/Pie/Pie.types.js +1 -0
- package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -0
- package/lib/components/DonutChart/Pie/index.js +2 -0
- package/lib/components/DonutChart/Pie/index.js.map +1 -0
- package/lib/components/DonutChart/Pie/usePieStyles.styles.js +44 -0
- package/lib/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
- package/lib/components/DonutChart/index.js +3 -0
- package/lib/components/DonutChart/index.js.map +1 -0
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +58 -0
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +402 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +6 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
- package/lib/components/HorizontalBarChart/index.js +3 -0
- package/lib/components/HorizontalBarChart/index.js.map +1 -0
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +163 -0
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
- package/lib/components/Legends/Legends.js +302 -0
- package/lib/components/Legends/Legends.js.map +1 -0
- package/lib/components/Legends/Legends.types.js +1 -0
- package/lib/components/Legends/Legends.types.js.map +1 -0
- package/lib/components/Legends/OverflowMenu.js +25 -0
- package/lib/components/Legends/OverflowMenu.js.map +1 -0
- package/lib/components/Legends/index.js +3 -0
- package/lib/components/Legends/index.js.map +1 -0
- package/lib/components/Legends/shape.js +35 -0
- package/lib/components/Legends/shape.js.map +1 -0
- package/lib/components/Legends/useLegendsStyles.styles.js +147 -0
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -0
- package/lib/components/LineChart/LineChart.js +1026 -0
- package/lib/components/LineChart/LineChart.js.map +1 -0
- package/lib/components/LineChart/LineChart.types.js +3 -0
- package/lib/components/LineChart/LineChart.types.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js +119 -0
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/LabelLink.js +57 -0
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
- package/lib/components/LineChart/eventAnnotation/Textbox.js +40 -0
- package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
- package/lib/components/LineChart/index.js +4 -0
- package/lib/components/LineChart/index.js.map +1 -0
- package/lib/components/LineChart/useLineChartStyles.styles.js +65 -0
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +65 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js +1 -0
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
- package/lib/components/ResponsiveContainer/index.js +1 -0
- package/lib/components/ResponsiveContainer/index.js.map +1 -0
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +23 -0
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
- package/lib/components/Sparkline/Sparkline.js +119 -0
- package/lib/components/Sparkline/Sparkline.js.map +1 -0
- package/lib/components/Sparkline/Sparkline.types.js +4 -0
- package/lib/components/Sparkline/Sparkline.types.js.map +1 -0
- package/lib/components/Sparkline/index.js +3 -0
- package/lib/components/Sparkline/index.js.map +1 -0
- package/lib/components/Sparkline/useSparklineStyles.styles.js +49 -0
- package/lib/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js +849 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js +4 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
- package/lib/components/VerticalBarChart/index.js +3 -0
- package/lib/components/VerticalBarChart/index.js.map +1 -0
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +74 -0
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
- package/lib/index.js +12 -8
- package/lib/index.js.map +1 -1
- package/lib/types/DataPoint.js +3 -0
- package/lib/types/DataPoint.js.map +1 -0
- package/lib/types/EventAnnotation.js +1 -0
- package/lib/types/EventAnnotation.js.map +1 -0
- package/lib/types/LegendDataItem.js +1 -0
- package/lib/types/LegendDataItem.js.map +1 -0
- package/lib/types/index.js +2 -2
- package/lib/types/index.js.map +1 -1
- package/lib/utilities/FocusableTooltipText.js +65 -0
- package/lib/utilities/FocusableTooltipText.js.map +1 -0
- package/lib/utilities/KeyCodes.js +8 -0
- package/lib/utilities/KeyCodes.js.map +1 -0
- package/lib/utilities/SVGTooltipText.js +138 -0
- package/lib/utilities/SVGTooltipText.js.map +1 -0
- package/lib/utilities/async-utils.js +380 -0
- package/lib/utilities/async-utils.js.map +1 -0
- package/lib/utilities/colors.js +249 -0
- package/lib/utilities/colors.js.map +1 -0
- package/lib/utilities/getWindow.js +25 -0
- package/lib/utilities/getWindow.js.map +1 -0
- package/lib/utilities/index.js +3 -0
- package/lib/utilities/index.js.map +1 -0
- package/lib/utilities/locale-util.js +15 -0
- package/lib/utilities/locale-util.js.map +1 -0
- package/lib/utilities/overflow-utils.js +27 -0
- package/lib/utilities/overflow-utils.js.map +1 -0
- package/lib/utilities/test-data.js +276 -0
- package/lib/utilities/test-data.js.map +1 -0
- package/lib/utilities/utilities.js +1215 -0
- package/lib/utilities/utilities.js.map +1 -0
- package/lib/utilities/vbc-utils.js +27 -0
- package/lib/utilities/vbc-utils.js.map +1 -0
- package/lib-commonjs/CartesianChart.js +6 -0
- package/lib-commonjs/CartesianChart.js.map +1 -0
- package/lib-commonjs/DeclarativeChart.js +6 -0
- package/lib-commonjs/DeclarativeChart.js.map +1 -0
- package/lib-commonjs/DonutChart.js +6 -0
- package/lib-commonjs/DonutChart.js.map +1 -0
- package/lib-commonjs/HorizontalBarChart.js +6 -0
- package/lib-commonjs/HorizontalBarChart.js.map +1 -0
- package/lib-commonjs/Legends.js +6 -0
- package/lib-commonjs/Legends.js.map +1 -0
- package/lib-commonjs/LineChart.js +6 -0
- package/lib-commonjs/LineChart.js.map +1 -0
- package/lib-commonjs/Popover.js +6 -0
- package/lib-commonjs/Popover.js.map +1 -0
- package/lib-commonjs/ResponsiveContainer.js +6 -0
- package/lib-commonjs/ResponsiveContainer.js.map +1 -0
- package/lib-commonjs/Sparkline.js +6 -0
- package/lib-commonjs/Sparkline.js.map +1 -0
- package/lib-commonjs/VerticalBarChart.js +6 -0
- package/lib-commonjs/VerticalBarChart.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +469 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js +6 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.js +197 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js +4 -0
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/index.js +9 -0
- package/lib-commonjs/components/CommonComponents/index.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +356 -0
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +261 -0
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +158 -0
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js +10 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +445 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js +231 -0
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +1 -0
- package/lib-commonjs/components/DeclarativeChart/index.js +6 -0
- package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.js +117 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js +4 -0
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/index.js +7 -0
- package/lib-commonjs/components/DonutChart/Arc/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +83 -0
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js +298 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js +6 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.js +79 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js +4 -0
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/index.js +7 -0
- package/lib-commonjs/components/DonutChart/Pie/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js +61 -0
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.js.map +1 -0
- package/lib-commonjs/components/DonutChart/index.js +8 -0
- package/lib-commonjs/components/DonutChart/index.js.map +1 -0
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +82 -0
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +408 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +17 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/index.js +8 -0
- package/lib-commonjs/components/HorizontalBarChart/index.js.map +1 -0
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +251 -0
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/Legends/Legends.js +313 -0
- package/lib-commonjs/components/Legends/Legends.js.map +1 -0
- package/lib-commonjs/components/Legends/Legends.types.js +6 -0
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -0
- package/lib-commonjs/components/Legends/OverflowMenu.js +36 -0
- package/lib-commonjs/components/Legends/OverflowMenu.js.map +1 -0
- package/lib-commonjs/components/Legends/index.js +8 -0
- package/lib-commonjs/components/Legends/index.js.map +1 -0
- package/lib-commonjs/components/Legends/shape.js +46 -0
- package/lib-commonjs/components/Legends/shape.js.map +1 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +304 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -0
- package/lib-commonjs/components/LineChart/LineChart.js +1032 -0
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -0
- package/lib-commonjs/components/LineChart/LineChart.types.js +6 -0
- package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js +129 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +68 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js +51 -0
- package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -0
- package/lib-commonjs/components/LineChart/index.js +9 -0
- package/lib-commonjs/components/LineChart/index.js.map +1 -0
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +96 -0
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +76 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js +6 -0
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js +6 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +47 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +1 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js +125 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -0
- package/lib-commonjs/components/Sparkline/Sparkline.types.js +7 -0
- package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -0
- package/lib-commonjs/components/Sparkline/index.js +8 -0
- package/lib-commonjs/components/Sparkline/index.js.map +1 -0
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +77 -0
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +851 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js +7 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/index.js +8 -0
- package/lib-commonjs/components/VerticalBarChart/index.js.map +1 -0
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +117 -0
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -0
- package/lib-commonjs/index.js +17 -0
- package/lib-commonjs/index.js.map +1 -0
- package/lib-commonjs/types/DataPoint.js +6 -0
- package/lib-commonjs/types/DataPoint.js.map +1 -0
- package/lib-commonjs/types/EventAnnotation.js +6 -0
- package/lib-commonjs/types/EventAnnotation.js.map +1 -0
- package/lib-commonjs/types/LegendDataItem.js +4 -0
- package/lib-commonjs/types/LegendDataItem.js.map +1 -0
- package/lib-commonjs/types/index.js +7 -0
- package/lib-commonjs/types/index.js.map +1 -0
- package/lib-commonjs/utilities/FocusableTooltipText.js +75 -0
- package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -0
- package/lib-commonjs/utilities/KeyCodes.js +18 -0
- package/lib-commonjs/utilities/KeyCodes.js.map +1 -0
- package/lib-commonjs/utilities/SVGTooltipText.js +148 -0
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -0
- package/lib-commonjs/utilities/async-utils.js +382 -0
- package/lib-commonjs/utilities/async-utils.js.map +1 -0
- package/lib-commonjs/utilities/colors.js +270 -0
- package/lib-commonjs/utilities/colors.js.map +1 -0
- package/lib-commonjs/utilities/getWindow.js +28 -0
- package/lib-commonjs/utilities/getWindow.js.map +1 -0
- package/lib-commonjs/utilities/index.js +8 -0
- package/lib-commonjs/utilities/index.js.map +1 -0
- package/lib-commonjs/utilities/locale-util.js +25 -0
- package/lib-commonjs/utilities/locale-util.js.map +1 -0
- package/lib-commonjs/utilities/overflow-utils.js +36 -0
- package/lib-commonjs/utilities/overflow-utils.js.map +1 -0
- package/lib-commonjs/utilities/test-data.js +324 -0
- package/lib-commonjs/utilities/test-data.js.map +1 -0
- package/lib-commonjs/utilities/utilities.js +1184 -0
- package/lib-commonjs/utilities/utilities.js.map +1 -0
- package/lib-commonjs/utilities/vbc-utils.js +45 -0
- package/lib-commonjs/utilities/vbc-utils.js.map +1 -0
- package/package.json +80 -72
- package/CHANGELOG.json +0 -65
- package/lib/chart/chart-legend.d.ts +0 -6
- package/lib/chart/chart-legend.js +0 -445
- package/lib/chart/chart-legend.js.map +0 -1
- package/lib/chart/chart-render.d.ts +0 -3
- package/lib/chart/chart-render.js +0 -50
- package/lib/chart/chart-render.js.map +0 -1
- package/lib/chart/chart.d.ts +0 -3
- package/lib/chart/chart.js +0 -10
- package/lib/chart/chart.js.map +0 -1
- package/lib/chart/index.d.ts +0 -1
- package/lib/chart/index.js +0 -2
- package/lib/chart/index.js.map +0 -1
- package/lib/index.d.ts +0 -7
- package/lib/lib/builder.d.ts +0 -89
- package/lib/lib/builder.js +0 -379
- package/lib/lib/builder.js.map +0 -1
- package/lib/lib/datasets.d.ts +0 -123
- package/lib/lib/datasets.js +0 -285
- package/lib/lib/datasets.js.map +0 -1
- package/lib/lib/patterns.d.ts +0 -43
- package/lib/lib/patterns.js +0 -433
- package/lib/lib/patterns.js.map +0 -1
- package/lib/lib/plugins.d.ts +0 -11
- package/lib/lib/plugins.js +0 -403
- package/lib/lib/plugins.js.map +0 -1
- package/lib/lib/settings.d.ts +0 -12
- package/lib/lib/settings.js +0 -368
- package/lib/lib/settings.js.map +0 -1
- package/lib/lib/storybook.d.ts +0 -11
- package/lib/lib/storybook.js +0 -13
- package/lib/lib/storybook.js.map +0 -1
- package/lib/lib/utils.d.ts +0 -34
- package/lib/lib/utils.js +0 -253
- package/lib/lib/utils.js.map +0 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/types.d.ts +0 -101
- package/lib/types/types.js +0 -41
- package/lib/types/types.js.map +0 -1
|
@@ -0,0 +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} from '../../index';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n NumericAxis,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n formatValueWithSIPrefix,\n getBarWidth,\n getScalePadding,\n isScalePaddingDefined,\n calculateAppropriateBarWidth,\n useRtl,\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 _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 [selectedLegend, setSelectedLegend] = React.useState<string | undefined>('');\n const [activeLegend, setActiveLegend] = React.useState<string | 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 [YValueHover, 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\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\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 yScale: 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) : yScale(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 stroke={tokens.colorNeutralBackground1}\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) : yScale(item.y)}\n onMouseOver={\n _legendHighlighted(lineLegendText!)\n ? _lineHover.bind(item.point)\n : event => _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={_lineFocus.bind(item.point, circleRef)}\n onBlur={_handleChartMouseLeave}\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 (selectedLegend !== '') {\n if (xAxisPoint === activeXdataPoint && selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (selectedLegend === 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 // there might be no y value of the line for the hovered bar. so we need to check this condition\n if (_isHavingLine && selectedPoint[0].lineData?.y !== undefined) {\n // 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 // 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 // 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(selectedLegend === '' || selectedLegend === 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(point: VerticalBarChartDataPoint, refArrayIndexNumber: number, color: string): void {\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(selectedLegend === '' || selectedLegend === 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(point: VerticalBarChartDataPoint, ref: { refElement: SVGCircleElement | null }) {\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(false);\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([0, _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 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 bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x as string}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(_yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(_yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint = containerHeight - margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x as string}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={yPoint}\n width={_barWidth}\n data-is-focusable={!props.hideTooltip && shouldHighlight}\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={_onBarFocus.bind(point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={point.legend !== '' ? 0 : undefined}\n opacity={shouldHighlight ? '1' : '0.1'}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\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 xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(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 bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x instanceof Date ? point.x.getTime() : point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(_yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(_yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x);\n const yPoint = containerHeight - margins.bottom! - adjustedBarHeight;\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() : point.x}\n transform={`translate(${0.5 * (xBarScale.bandwidth() - _barWidth)}, 0)`}\n >\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n y={yPoint}\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 data-is-focusable={!props.hideTooltip}\n onFocus={_onBarFocus.bind(point, index, colorScale(point.y))}\n fill={point.color ? point.color : colorScale(point.y)}\n tabIndex={point.legend !== '' ? 0 : undefined}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\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 xAxis: xAxisElement,\n showTooltip: props.showXAxisLablesTooltip,\n };\n xAxisElement && tooltipOfXAxislabels(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 bars = _points.map((point: VerticalBarChartDataPoint, index: number) => {\n const shouldHighlight = _legendHighlighted(point.legend!) || _noLegendHighlighted() ? true : false;\n const barHeight: number = Math.max(yBarScale(point.y), 0);\n let adjustedBarHeight = 0;\n if (barHeight <= 0) {\n return <React.Fragment key={point.x instanceof Date ? point.x.getTime() : point.x}> </React.Fragment>;\n } else if (barHeight <= Math.ceil(yBarScale(_yMax) / 100.0)) {\n adjustedBarHeight = Math.ceil(yBarScale(_yMax) / 100.0);\n } else {\n adjustedBarHeight = barHeight;\n }\n const xPoint = xBarScale(point.x as number) - _barWidth / 2;\n const yPoint = containerHeight - margins.bottom! - adjustedBarHeight;\n return (\n <g key={point.x instanceof Date ? point.x.getTime() : point.x}>\n <rect\n id={`${_vbcBarId}-${index}`}\n x={xPoint}\n className={classes.opacityChangeOnHover}\n y={yPoint}\n width={_barWidth}\n data-is-focusable={!props.hideTooltip && shouldHighlight}\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={_onBarFocus.bind(point, index, colorScale(point.y))}\n onBlur={_onBarLeave}\n fill={point.color && !useSingleColor ? point.color : colorScale(point.y)}\n tabIndex={point.legend !== '' ? 0 : undefined}\n />\n {_renderBarLabel(xPoint, yPoint, point.y, point.legend!)}\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 xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars;\n }\n\n function _onLegendClick(legendTitle: string): void {\n if (selectedLegend === legendTitle) {\n setSelectedLegend('');\n } else {\n setSelectedLegend(legendTitle);\n }\n }\n\n function _onLegendHover(legendTitle: string): void {\n setActiveLegend(legendTitle);\n }\n\n function _onLegendLeave(): void {\n setActiveLegend('');\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 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 // mapping data to the format Legends component needs\n const legend: Legend = {\n title: point.legend!,\n color,\n action: () => {\n _onLegendClick(point.legend!);\n },\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend!);\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 action: () => {\n _onLegendClick(lineLegendText);\n },\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 />\n );\n return legends;\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 }\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) {\n return selectedLegend === legendTitle || (selectedLegend === '' && activeLegend === legendTitle);\n }\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n function _noLegendHighlighted() {\n return selectedLegend === '' && 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) {\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={yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatValueWithSIPrefix(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\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 /** Rate at which the space between the bars changes wrt the bar width */\n const barGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\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 }\n } else {\n const data = (props.data?.map(point => point.x) as number[] | Date[] | undefined) || [];\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 (\n _points.length === 0 || (d3Max(_points, (point: VerticalBarChartDataPoint) => point.y)! <= 0 && !_isHavingLine)\n );\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 const legendBars: JSX.Element = _getLegendData(_points);\n const calloutProps = {\n ...(_isHavingLine && {\n YValueHover: YValueHover,\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(),\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 calloutProps={calloutProps}\n tickParams={tickParams}\n {...(_isHavingLine && _noLegendHighlighted() && { isCalloutForStack: true })}\n legendBars={legendBars}\n datasetForXAxisDomain={_xAxisLabels}\n barwidth={_barWidth}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n 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.yScale!,\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","tooltipOfXAxislabels","formatValueWithSIPrefix","getBarWidth","getScalePadding","isScalePaddingDefined","calculateAppropriateBarWidth","useRtl","CircleVisbility","MIN_DOMAIN_MARGIN","VerticalBarChart","forwardRef","props","forwardedRef","_points","_barWidth","_colors","_refArray","margins","_useRtl","_bars","_xAxisLabels","_yMax","_isHavingLine","_checkForLine","_tooltipId","_xAxisType","data","length","x","StringAxis","_calloutAnchorPoint","_domainMargin","_emptyChartId","_vbcLineId","_vbcPointId","_vbcBarId","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegend","setSelectedLegend","activeLegend","setActiveLegend","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","activeXdataPoint","setActiveXDatapoint","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","callOutAccessibilityData","setCalloutAccessibilityData","dataPointCalloutProps","setDataPointCalloutProps","clickPosition","setClickPosition","y","isPopoverOpen","setPopoverOpen","useImperativeHandle","componentRef","chartContainer","current","_createLine","xScale","yScale","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","stroke","colorNeutralBackground1","dots","map","circleRef","refElement","circle","cx","cy","onMouseOver","_lineHover","bind","event","_onBarHover","onMouseOut","_onBarLeave","r","_getCircleVisibilityAndRadius","radius","visibility","onClick","data-is-focusable","ref","e","onFocus","_lineFocus","onBlur","_handleChartMouseLeave","xAxisPoint","legend","some","undefined","_adjustProps","barWidth","maxBarWidth","defaultColors","colorPaletteBlueForeground2","colorPaletteCornflowerForeground2","colorPaletteDarkGreenForeground2","colorPaletteNavyForeground2","colorPaletteDarkOrangeForeground2","colors","xAxisInnerPadding","xAxisPadding","xAxisOuterPadding","_getMargins","_margins","_renderContentForBothLineAndBars","_getCalloutContentForLineAndBar","content","culture","XValue","YValue","isCalloutForStack","_renderContentForOnlyBars","_props","xAxisCalloutData","yAxisCalloutData","useSingleColor","_renderCallout","_getCustomizedCallout","onRenderCalloutPerDataPoint","_getGraphData","xElement","NumericAxis","_createNumericBars","DateAxis","_createDateBars","_createStringBars","increment","_p","colorPaletteBlueBackground2","domainValues","i","domain","range","_refCallback","element","legendTitle","selectedPoint","filter","xDataPoint","Date","toLocaleString","mouseEvent","persist","updatePosition","clientX","clientY","toLocaleDateString","_onBarFocus","refArrayIndexNumber","obj","_lineHoverFocus","_refSelected","_getScales","xBarScale","yBarScale","bottom","top","xMax","xMin","nice","left","right","sDate","lDate","paddingInner","paddingOuter","classes","bars","barHeight","Math","adjustedBarHeight","Fragment","ceil","xPoint","yPoint","g","rect","width","hideTooltip","height","aria-label","_getAriaLabel","role","onMouseLeave","tabIndex","_renderBarLabel","showXAxisLablesTooltip","document","getElementById","remove","wrapXAxisLables","xAxisElement","call","tooltipProps","tooltipCls","tooltip","xAxis","getTime","transform","showTooltip","className","opacityChangeOnHover","_onLegendClick","_onLegendHover","_onLegendLeave","_getLegendData","colorPaletteYellowForeground1","actions","_index","title","action","hoverAction","onMouseOutAction","lineLegend","isLineLegendInBarChart","unshift","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","legendProps","_getAxisData","yAxisData","yAxisDomainValues","domainValue","yMaxValue","xValue","yValue","lineYValue","ariaLabel","barValue","hideLabels","text","textAnchor","barLabel","aria-hidden","_getDomainMargins","totalWidth","barGapRate","reqWidth","_isChartEmpty","newX","newY","threshold","distance","sqrt","pow","legendBars","calloutProps","isCartesian","customCallout","customizedCallout","customCalloutProps","calloutPropsPerDataPoint","tickParams","tickValues","tickFormat","points","chartType","xAxisType","datasetForXAxisDomain","barwidth","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +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?: 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/**\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"],"names":[],"rangeMappings":";;;","mappings":"AAuHA;;;CAGC,GACD,WAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './VerticalBarChart';\nexport * from './VerticalBarChart.types';\nexport * from '../../types/index';\n"],"names":[],"rangeMappings":";;","mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,oBAAoB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { tokens, typographyStyles } from '@fluentui/react-theme';
|
|
3
|
+
export const verticalbarchartClassNames = {
|
|
4
|
+
opacityChangeOnHover: 'fui-vbc__opacityChangeOnHover',
|
|
5
|
+
tooltip: 'fui-vbc__tooltip',
|
|
6
|
+
barLabel: 'fui-vbc__barLabel',
|
|
7
|
+
root: '',
|
|
8
|
+
xAxis: '',
|
|
9
|
+
yAxis: '',
|
|
10
|
+
legendContainer: '',
|
|
11
|
+
hover: '',
|
|
12
|
+
calloutContentRoot: '',
|
|
13
|
+
calloutContentX: '',
|
|
14
|
+
calloutContentY: '',
|
|
15
|
+
descriptionMessage: '',
|
|
16
|
+
calloutDateTimeContainer: '',
|
|
17
|
+
calloutInfoContainer: '',
|
|
18
|
+
calloutBlockContainer: '',
|
|
19
|
+
calloutBlockContainertoDrawShapefalse: '',
|
|
20
|
+
calloutBlockContainertoDrawShapetrue: '',
|
|
21
|
+
calloutlegendText: '',
|
|
22
|
+
axisTitle: '',
|
|
23
|
+
chartTitle: '',
|
|
24
|
+
shapeStyles: '',
|
|
25
|
+
chartWrapper: ''
|
|
26
|
+
};
|
|
27
|
+
const useStyles = /*#__PURE__*/__styles({
|
|
28
|
+
opacityChangeOnHover: {},
|
|
29
|
+
tooltip: {
|
|
30
|
+
Bahqtrf: "fk6fouc",
|
|
31
|
+
Be2twd7: "fkhj508",
|
|
32
|
+
Bhrd7zp: "figsok6",
|
|
33
|
+
Bg96gwp: "f1i3iumi",
|
|
34
|
+
mc9l5x: "f22iagw",
|
|
35
|
+
Beiy3e4: "f1vx9l62",
|
|
36
|
+
z8tnut: "f17mpqex",
|
|
37
|
+
z189sj: ["f1vdfbxk", "f1f5gg8d"],
|
|
38
|
+
Byoj8tv: "fdvome7",
|
|
39
|
+
uwmqm3: ["f1f5gg8d", "f1vdfbxk"],
|
|
40
|
+
qhf8xq: "f1euv43f",
|
|
41
|
+
fsow6f: "f17mccla",
|
|
42
|
+
Bhzewxz: "fr6rvge",
|
|
43
|
+
Bkfmm31: "f5q6cfr",
|
|
44
|
+
Beyfa6y: 0,
|
|
45
|
+
Bbmb7ep: 0,
|
|
46
|
+
Btl43ni: 0,
|
|
47
|
+
B7oj6ja: 0,
|
|
48
|
+
Dimara: "fq9zq91",
|
|
49
|
+
Bkecrkj: "f1aehjj5"
|
|
50
|
+
},
|
|
51
|
+
barLabel: {
|
|
52
|
+
Bahqtrf: "fk6fouc",
|
|
53
|
+
Be2twd7: "fy9rknc",
|
|
54
|
+
Bhrd7zp: "fl43uef",
|
|
55
|
+
Bg96gwp: "fwrc4pm",
|
|
56
|
+
Bkfmm31: "fhuob2q"
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f22iagw{display:flex;}", ".f1vx9l62{flex-direction:column;}", ".f17mpqex{padding-top:var(--spacingHorizontalS);}", ".f1vdfbxk{padding-right:var(--spacingHorizontalS);}", ".f1f5gg8d{padding-left:var(--spacingHorizontalS);}", ".fdvome7{padding-bottom:var(--spacingHorizontalS);}", ".f1euv43f{position:absolute;}", ".f17mccla{text-align:center;}", ".fr6rvge{top:var(--spacingVerticalNone);}", ".f5q6cfr{fill:var(--colorNeutralBackground1);}", [".fq9zq91{border-radius:var(--borderRadiusSmall);}", {
|
|
60
|
+
p: -1
|
|
61
|
+
}], ".f1aehjj5{pointer-events:none;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fl43uef{font-weight:var(--fontWeightSemibold);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fhuob2q{fill:var(--colorNeutralForeground1);}"]
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Apply styling to the Carousel slots based on the state
|
|
65
|
+
*/
|
|
66
|
+
export const useVerticalBarChartStyles = props => {
|
|
67
|
+
const baseStyles = useStyles();
|
|
68
|
+
return {
|
|
69
|
+
opacityChangeOnHover: mergeClasses(verticalbarchartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/),
|
|
70
|
+
tooltip: mergeClasses(verticalbarchartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),
|
|
71
|
+
barLabel: mergeClasses(verticalbarchartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/)
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=useVerticalBarChartStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","verticalbarchartClassNames","opacityChangeOnHover","tooltip","barLabel","root","xAxis","yAxis","legendContainer","hover","calloutContentRoot","calloutContentX","calloutContentY","descriptionMessage","calloutDateTimeContainer","calloutInfoContainer","calloutBlockContainer","calloutBlockContainertoDrawShapefalse","calloutBlockContainertoDrawShapetrue","calloutlegendText","axisTitle","chartTitle","shapeStyles","chartWrapper","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","z8tnut","z189sj","Byoj8tv","uwmqm3","qhf8xq","fsow6f","Bhzewxz","Bkfmm31","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","Bkecrkj","d","p","useVerticalBarChartStyles","props","baseStyles"],"sources":["useVerticalBarChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const verticalbarchartClassNames = {\n opacityChangeOnHover: 'fui-vbc__opacityChangeOnHover',\n tooltip: 'fui-vbc__tooltip',\n barLabel: 'fui-vbc__barLabel',\n root: '',\n xAxis: '',\n yAxis: '',\n legendContainer: '',\n hover: '',\n calloutContentRoot: '',\n calloutContentX: '',\n calloutContentY: '',\n descriptionMessage: '',\n calloutDateTimeContainer: '',\n calloutInfoContainer: '',\n calloutBlockContainer: '',\n calloutBlockContainertoDrawShapefalse: '',\n calloutBlockContainertoDrawShapetrue: '',\n calloutlegendText: '',\n axisTitle: '',\n chartTitle: '',\n shapeStyles: '',\n chartWrapper: ''\n};\nconst useStyles = makeStyles({\n opacityChangeOnHover: {},\n tooltip: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.padding(tokens.spacingHorizontalS),\n position: 'absolute',\n textAlign: 'center',\n top: tokens.spacingVerticalNone,\n fill: tokens.colorNeutralBackground1,\n borderRadius: tokens.borderRadiusSmall,\n pointerEvents: 'none'\n },\n barLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n }\n});\n/**\n * Apply styling to the Carousel slots based on the state\n */ export const useVerticalBarChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n opacityChangeOnHover: mergeClasses(verticalbarchartClassNames.opacityChangeOnHover, baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/ ),\n tooltip: mergeClasses(verticalbarchartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/ ),\n barLabel: mergeClasses(verticalbarchartClassNames.barLabel, baseStyles.barLabel /*props.styles?.barLabel*/ )\n };\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AACrE,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,uBAAuB;AAChE,OAAO,MAAMC,0BAA0B,GAAG;EACtCC,oBAAoB,EAAE,+BAA+B;EACrDC,OAAO,EAAE,kBAAkB;EAC3BC,QAAQ,EAAE,mBAAmB;EAC7BC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,eAAe,EAAE,EAAE;EACnBC,KAAK,EAAE,EAAE;EACTC,kBAAkB,EAAE,EAAE;EACtBC,eAAe,EAAE,EAAE;EACnBC,eAAe,EAAE,EAAE;EACnBC,kBAAkB,EAAE,EAAE;EACtBC,wBAAwB,EAAE,EAAE;EAC5BC,oBAAoB,EAAE,EAAE;EACxBC,qBAAqB,EAAE,EAAE;EACzBC,qCAAqC,EAAE,EAAE;EACzCC,oCAAoC,EAAE,EAAE;EACxCC,iBAAiB,EAAE,EAAE;EACrBC,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,EAAE;EACdC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE;AAClB,CAAC;AACD,MAAMC,SAAS,gBAAG5B,QAAA;EAAAM,oBAAA;EAAAC,OAAA;IAAAsB,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;EAAAxC,QAAA;IAAAqB,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAU,OAAA;EAAA;AAAA;EAAAO,CAAA;IAAAC,CAAA;EAAA;AAAA,CAkBjB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,yBAAyB,GAAIC,KAAK,IAAG;EAClD,MAAMC,UAAU,GAAGzB,SAAS,CAAC,CAAC;EAC9B,OAAO;IACHtB,oBAAoB,EAAEL,YAAY,CAACI,0BAA0B,CAACC,oBAAoB,EAAE+C,UAAU,CAAC/C,oBAAoB,CAAC,sCAAuC,CAAC;IAC5JC,OAAO,EAAEN,YAAY,CAACI,0BAA0B,CAACE,OAAO,EAAE8C,UAAU,CAAC9C,OAAO,CAAC,yBAA0B,CAAC;IACxGC,QAAQ,EAAEP,YAAY,CAACI,0BAA0B,CAACG,QAAQ,EAAE6C,UAAU,CAAC7C,QAAQ,CAAC,0BAA2B;EAC/G,CAAC;AACL,CAAC","ignoreList":[]}
|
package/lib/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
|
|
1
|
+
export * from './HorizontalBarChart';
|
|
2
|
+
export * from './DonutChart';
|
|
3
|
+
export * from './Legends';
|
|
4
|
+
export * from './LineChart';
|
|
5
|
+
export * from './VerticalBarChart';
|
|
6
|
+
export * from './CartesianChart';
|
|
7
|
+
export * from './types/index';
|
|
8
|
+
export * from './Sparkline';
|
|
9
|
+
export * from './utilities/colors';
|
|
10
|
+
export * from './Popover';
|
|
11
|
+
export * from './ResponsiveContainer';
|
|
12
|
+
export * from './DeclarativeChart';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './HorizontalBarChart';\nexport * from './DonutChart';\nexport * from './Legends';\nexport * from './LineChart';\nexport * from './VerticalBarChart';\nexport * from './CartesianChart';\nexport * from './types/index';\nexport * from './Sparkline';\nexport * from './utilities/colors';\nexport * from './Popover';\nexport * from './ResponsiveContainer';\nexport * from './DeclarativeChart';\n"],"names":[],"rangeMappings":";;;;;;;;;;;","mappings":"AAAA,cAAc,uBAAuB;AACrC,cAAc,eAAe;AAC7B,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,cAAc;AAC5B,cAAc,qBAAqB;AACnC,cAAc,YAAY;AAC1B,cAAc,wBAAwB;AACtC,cAAc,qBAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["DataPoint.ts"],"sourcesContent":["import { SVGProps } from 'react';\nimport { LegendShape } from '../components/Legends/Legends.types';\n\nexport interface Basestate {\n _width?: number;\n _height?: number;\n activeLegend?: string;\n color?: string;\n dataForHoverCard?: number;\n isCalloutVisible: boolean;\n isLegendSelected?: boolean;\n isLegendHovered?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n refSelected?: any;\n YValueHover?: { legend?: string; y?: number; color?: string }[];\n hoverYValue?: string | number | null;\n hoverXValue?: string | number | null;\n xCalloutValue?: string;\n yCalloutValue?: string;\n lineColor?: string;\n hoveredLineColor?: string;\n selectedLegend?: string;\n containerWidth?: number;\n containerHeight?: number;\n}\n\nexport interface RefArrayData {\n index?: string;\n refElement?: SVGGElement;\n}\n\n/**\n * {@docCategory ChartProps}\n */\nexport interface Margins {\n /**\n * left margin for the chart.\n */\n left?: number;\n /**\n * Right margin for the chart.\n */\n right?: number;\n /**\n * Top margin for the chart.\n */\n top?: number;\n /**\n * Bottom margin for the chart.\n */\n bottom?: number;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface DataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n // NOTE: VerticalStackedBarChart, PieChart\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface VerticalStackedBarDataPoint extends Omit<DataPoint, 'x'> {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n * If data type on x is Date, then the data is spaced evenly by d3-scale.\n */\n x: number | string | Date;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface HorizontalDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number;\n\n /**\n * Total value of a single point bar chart.\n */\n total?: number;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface ChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * data the datapoint in the chart\n */\n data?: number;\n\n /**\n * data the datapoint in the chart\n */\n horizontalBarChartdata?: HorizontalDataPoint;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Color for the legend in the chart. If not provided, it will fallback on the default color palette.\n */\n color?: string;\n\n /**\n * placeholder data point\n */\n placeHolder?: boolean;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface VerticalBarChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If x is a string, then the data is evenly spaced along the x-axis.\n */\n x: number | string | Date;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * data to render the line along with bars\n */\n lineData?: LineDataInVerticalBarChart;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface HorizontalBarChartWithAxisDataPoint {\n /**\n * Dependent value of the data point, rendered along the x-axis.\n */\n x: number;\n\n /**\n * Independent value of the data point, rendered along the y-axis.\n * If y is a number, then each y-coordinate is plotted at its y-coordinate.\n * If y is a string, then the data is evenly spaced along the y-axis.\n */\n y: number | string;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface LineDataInVerticalBarChart {\n y: VerticalBarChartDataPoint['y'];\n yAxisCalloutData?: string | undefined;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n /**\n * Whether to use the secondary y scale or not\n * False by default.\n */\n useSecondaryYScale?: boolean;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface LineChartDataPoint {\n /**\n * Independent value of the data point, rendered along the x-axis.\n * If x is a number, then each y-coordinate is plotted at its x-coordinate.\n * If data type on x is Date, then the data is spaced evenly by d3-scale\n */\n x: number | Date;\n\n /**\n * Dependent value of the data point, rendered along the y-axis.\n */\n y: number;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onDataPointClick?: () => void;\n\n /**\n * Callout data for x axis\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n */\n yAxisCalloutData?: string | { [id: string]: number };\n\n /**\n * Whether to hide callout data for the point.\n */\n hideCallout?: boolean;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n\n /**\n * X axis Accessibility data for callout\n */\n xAxisCalloutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface LineChartGap {\n /**\n * Starting index of the gap.\n */\n startIndex: number;\n\n /**\n * Ending index of the gap.\n */\n endIndex: number;\n}\n\n/**\n * {@docCategory ChartProps}\n */\nexport interface LineChartLineOptions extends SVGProps<SVGPathElement> {\n /**\n * Width of the line/stroke.\n * Overrides the strokeWidth set on ICartesianChartProps level.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width\n */\n strokeWidth?: number | string;\n\n /**\n * Pattern of dashes and gaps.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray\n */\n strokeDasharray?: string | number;\n\n /**\n * Offset on rendering of stroke dash array.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dashoffset\n */\n strokeDashoffset?: string | number;\n\n /**\n * Shape at the end of a subpath.\n * Default round.\n * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap\n */\n strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit';\n\n /**\n * Width of border around the line. Default no border.\n */\n lineBorderWidth?: string | number;\n\n /**\n * Color of border around the line. Default white.\n */\n lineBorderColor?: string;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface LineChartPoints {\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * The shape for the legend\n * default: show the rect legend\n */\n legendShape?: LegendShape;\n\n /**\n * dataPoints for the line chart\n */\n data: LineChartDataPoint[];\n\n /**\n * gaps in the line chart where a line is not drawn\n */\n gaps?: LineChartGap[];\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * opacity for chart fill color\n */\n opacity?: number;\n\n /**\n * options for the line drawn\n */\n lineOptions?: LineChartLineOptions;\n\n /**\n * hide dots for points that are not active\n */\n hideNonActiveDots?: boolean;\n\n /**\n * Defines the function that is executed on clicking this legend\n */\n onLegendClick?: (selectedLegend: string | null | string[]) => void;\n\n /**\n * Defines the function that is executed on clicking line\n */\n onLineClick?: () => void;\n}\n\n/**\n * {@docCategory ChartProps}\n */\nexport interface ChartProps {\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * Accessibility data for chart title\n */\n chartTitleAccessibilityData?: AccessibilityProps;\n /**\n * data for the points in the chart\n */\n chartData?: ChartDataPoint[];\n\n /**\n * Accessibility data for chart data\n */\n chartDataAccessibilityData?: AccessibilityProps;\n\n /**\n * data for the points in the line chart\n */\n lineChartData?: LineChartPoints[];\n\n /**\n * data for the points in the line chart\n */\n pointOptions?: SVGProps<SVGCircleElement>;\n\n /**\n * data for the dotted line on hovering the point\n */\n pointLineOptions?: SVGProps<SVGLineElement>;\n}\n\n/**\n * {@docCategory ChartProps}\n */\nexport interface AccessibilityProps {\n /**\n * Accessibility aria-label\n */\n ariaLabel?: string;\n\n /**\n * Accessibility aria-labelledBy\n */\n ariaLabelledBy?: string;\n\n /**\n * Accessibility aria-describedBy\n */\n ariaDescribedBy?: string;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface VSChartDataPoint {\n /**\n * data the datapoint in the chart\n */\n data: number;\n\n /**\n * Legend text for the datapoint in the chart\n */\n legend: string;\n\n /**\n * color for the legend in the chart\n */\n color?: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartProps}\n */\nexport interface VerticalStackedChartProps {\n /**\n * data for the points in the chart\n */\n chartData: VSChartDataPoint[];\n\n /**\n * Data for x axis label for multistacked Vertical bar chart\n */\n xAxisPoint: number | string | Date;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven't given, legend will take\n */\n xAxisCalloutData?: string;\n /**\n * line data to render lines on stacked bar chart\n */\n lineData?: LineDataInVerticalStackedBarChart[];\n /**\n * Accessibility data for Whole stack callout\n */\n stackCallOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface LineDataInVerticalStackedBarChart {\n y: number;\n color: string;\n legend: string;\n /**\n * Data to show in callout\n */\n data?: number;\n yAxisCalloutData?: string;\n /**\n * Whether to use the secondary y scale or not\n * False by default.\n */\n useSecondaryYScale?: boolean;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface GVBarChartSeriesPoint {\n /**\n * Text for // need to check use of this\n */\n key: string;\n\n /**\n * Data for bar height of Grouped vertical bar chart\n */\n data: number;\n\n /**\n * Color for the legend in the chart\n */\n color: string;\n\n /**\n * Legend text in the chart\n */\n legend: string;\n\n /**\n * Callout data for x axis\n * This is an optional prop, If haven;t given legend will take\n */\n xAxisCalloutData?: string;\n\n /**\n * Callout data for y axis\n * This is an optional prop, If haven't given data will take\n */\n yAxisCalloutData?: string;\n\n /**\n * onClick action for each datapoint in the chart\n */\n onClick?: VoidFunction;\n\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: AccessibilityProps;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface GroupedVerticalBarChartData {\n /**\n * Data for X axis label\n */\n name: string;\n\n /**\n * Data points for Grouped vertical bar chart\n */\n series: GVBarChartSeriesPoint[];\n\n /**\n * Accessibility data for Group Bars Stack Callout\n */\n stackCallOutAccessibilityData?: AccessibilityProps;\n}\n\nexport interface GVDataPoint {\n /**\n * This interface used for - While forming datapoints from given prop \"data\" in code\n * datapoints are used for to draw graph\n */\n [key: string]: number | string;\n}\n\nexport interface GVSingleDataPoint {\n /**\n * While forming datapoints from given prop \"data\" in code.\n * These datapoints are used for to draw graph easily.\n */\n [key: string]: GVDataPoint;\n}\n\nexport interface GVForBarChart {\n /**\n * While forming datapoints from given prop \"data\"\n * These datapoints are used for to draw graph.\n */\n [key: string]: GVBarChartSeriesPoint;\n}\n\n/**\n * {@docCategory ChartData}\n */\nexport interface CustomizedCalloutDataPoint {\n legend: string;\n y: number;\n color: string;\n xAxisCalloutData?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n}\n\n/**\n * Used for custom callout data interface. As Area chart callout data will be prepared from given props.data,\n * Those required data passing to onRenderCalloutPerDataPoint and onRenderCalloutPerStack.\n * {@docCategory ChartData}\n */\nexport interface CustomizedCalloutData {\n x: number | string | Date;\n values: CustomizedCalloutDataPoint[];\n}\n\n/**\n * {@docCategory Chart}\n */\nexport interface Chart {\n chartContainer: HTMLElement | null;\n}\n"],"names":[],"rangeMappings":";;","mappings":"AAsrBA;;CAEC,GACD,WAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["EventAnnotation.ts"],"sourcesContent":["import * as React from 'react';\n\nexport interface EventAnnotation {\n date: Date;\n event: string;\n onRenderCard?: () => React.ReactNode;\n}\n"],"names":["React"],"rangeMappings":"","mappings":"AAAA,YAAYA,WAAW,QAAQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["LegendDataItem.ts"],"sourcesContent":["export interface LegendDataItem {\n /**\n * Text to be displayed for legend item.\n */\n legendText: string | number;\n\n /**\n * Color for the specific legend\n */\n legendColor: string;\n}\n"],"names":[],"rangeMappings":"","mappings":"AAAA,WAUC"}
|
package/lib/types/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
|
|
1
|
+
export * from './DataPoint';
|
|
2
|
+
export * from './LegendDataItem';
|
package/lib/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './DataPoint';\nexport * from './LegendDataItem';\n"],"names":[],"rangeMappings":";","mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,mBAAmB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/* eslint-disable no-restricted-globals */ import * as React from 'react';
|
|
2
|
+
import { useCallback, useState, useEffect, useRef } from 'react';
|
|
3
|
+
import { Tooltip } from '@fluentui/react-tooltip';
|
|
4
|
+
import { hasOverflow } from './overflow-utils';
|
|
5
|
+
import { getAccessibleDataObject } from './index';
|
|
6
|
+
import { Async } from './async-utils';
|
|
7
|
+
export const FocusableTooltipText = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
8
|
+
const [textOverflow, setTextOverflow] = useState(false);
|
|
9
|
+
const tooltipChild = useRef(null);
|
|
10
|
+
const async = useRef(new Async()).current;
|
|
11
|
+
const resizeObserver = useRef();
|
|
12
|
+
const getTargetElement = useCallback(()=>{
|
|
13
|
+
if (!tooltipChild.current || !tooltipChild.current.parentElement) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return tooltipChild.current.parentElement;
|
|
17
|
+
}, [
|
|
18
|
+
tooltipChild
|
|
19
|
+
]);
|
|
20
|
+
const checkTextOverflow = useCallback(()=>{
|
|
21
|
+
const overflowElement = getTargetElement();
|
|
22
|
+
const isTextOverflow = !!overflowElement && hasOverflow(overflowElement);
|
|
23
|
+
if (isTextOverflow !== textOverflow) {
|
|
24
|
+
setTextOverflow(isTextOverflow);
|
|
25
|
+
}
|
|
26
|
+
}, [
|
|
27
|
+
getTargetElement,
|
|
28
|
+
textOverflow,
|
|
29
|
+
setTextOverflow
|
|
30
|
+
]);
|
|
31
|
+
useEffect(()=>{
|
|
32
|
+
checkTextOverflow();
|
|
33
|
+
}, [
|
|
34
|
+
checkTextOverflow
|
|
35
|
+
]);
|
|
36
|
+
useEffect(()=>{
|
|
37
|
+
// setup part executed only when the component mounts/updates
|
|
38
|
+
const overflowElement = getTargetElement();
|
|
39
|
+
if (window.ResizeObserver && overflowElement) {
|
|
40
|
+
resizeObserver.current = new window.ResizeObserver(async.debounce(checkTextOverflow, 500));
|
|
41
|
+
resizeObserver.current.observe(overflowElement);
|
|
42
|
+
}
|
|
43
|
+
// cleanup part executed only when the component unmounts
|
|
44
|
+
return ()=>{
|
|
45
|
+
var _resizeObserver_current;
|
|
46
|
+
(_resizeObserver_current = resizeObserver.current) === null || _resizeObserver_current === void 0 ? void 0 : _resizeObserver_current.disconnect();
|
|
47
|
+
async.dispose();
|
|
48
|
+
};
|
|
49
|
+
}, [
|
|
50
|
+
async,
|
|
51
|
+
checkTextOverflow,
|
|
52
|
+
getTargetElement
|
|
53
|
+
]);
|
|
54
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
55
|
+
className: props.className,
|
|
56
|
+
tabIndex: 0
|
|
57
|
+
}, /*#__PURE__*/ React.createElement(Tooltip, {
|
|
58
|
+
content: props.content,
|
|
59
|
+
relationship: "description"
|
|
60
|
+
}, /*#__PURE__*/ React.createElement("span", {
|
|
61
|
+
...getAccessibleDataObject(props.accessibilityData),
|
|
62
|
+
ref: tooltipChild,
|
|
63
|
+
"data-is-focusable": textOverflow
|
|
64
|
+
}, props.content)));
|
|
65
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FocusableTooltipText.tsx"],"sourcesContent":["/* eslint-disable no-restricted-globals */\nimport * as React from 'react';\nimport { useCallback, useState, useEffect, useRef } from 'react';\nimport { Tooltip } from '@fluentui/react-tooltip';\nimport { hasOverflow } from './overflow-utils';\nimport { getAccessibleDataObject } from './index';\nimport { AccessibilityProps } from '../types/index';\nimport { Async } from './async-utils';\n\ninterface IFocusableTooltipTextProps {\n className?: string;\n content: string | JSX.Element | JSX.Element[];\n accessibilityData?: AccessibilityProps;\n}\n\nexport const FocusableTooltipText: React.FunctionComponent<IFocusableTooltipTextProps> = React.forwardRef<\n HTMLDivElement,\n IFocusableTooltipTextProps\n>((props, forwardedRef) => {\n const [textOverflow, setTextOverflow] = useState(false);\n const tooltipChild = useRef<HTMLSpanElement>(null);\n const async = useRef(new Async()).current;\n const resizeObserver = useRef<ResizeObserver>();\n\n const getTargetElement = useCallback((): HTMLElement | undefined => {\n if (!tooltipChild.current || !tooltipChild.current.parentElement) {\n return undefined;\n }\n return tooltipChild.current.parentElement;\n }, [tooltipChild]);\n\n const checkTextOverflow = useCallback(() => {\n const overflowElement = getTargetElement();\n const isTextOverflow = !!overflowElement && hasOverflow(overflowElement);\n if (isTextOverflow !== textOverflow) {\n setTextOverflow(isTextOverflow);\n }\n }, [getTargetElement, textOverflow, setTextOverflow]);\n\n useEffect(() => {\n checkTextOverflow();\n }, [checkTextOverflow]);\n\n useEffect(() => {\n // setup part executed only when the component mounts/updates\n const overflowElement = getTargetElement();\n if (window.ResizeObserver && overflowElement) {\n resizeObserver.current = new window.ResizeObserver(async.debounce(checkTextOverflow, 500));\n resizeObserver.current.observe(overflowElement);\n }\n // cleanup part executed only when the component unmounts\n return () => {\n resizeObserver.current?.disconnect();\n async.dispose();\n };\n }, [async, checkTextOverflow, getTargetElement]);\n\n return (\n <div className={props.className} tabIndex={0}>\n <Tooltip content={props.content} relationship=\"description\">\n <span {...getAccessibleDataObject(props.accessibilityData)} ref={tooltipChild} data-is-focusable={textOverflow}>\n {props.content}\n </span>\n </Tooltip>\n </div>\n );\n});\n"],"names":["React","useCallback","useState","useEffect","useRef","Tooltip","hasOverflow","getAccessibleDataObject","Async","FocusableTooltipText","forwardRef","props","forwardedRef","textOverflow","setTextOverflow","tooltipChild","async","current","resizeObserver","getTargetElement","parentElement","undefined","checkTextOverflow","overflowElement","isTextOverflow","window","ResizeObserver","debounce","observe","disconnect","dispose","div","className","tabIndex","content","relationship","span","accessibilityData","ref","data-is-focusable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wCAAwC,GACxC,YAAYA,WAAW,QAAQ;AAC/B,SAASC,WAAW,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,QAAQ;AACjE,SAASC,OAAO,QAAQ,0BAA0B;AAClD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,uBAAuB,QAAQ,UAAU;AAElD,SAASC,KAAK,QAAQ,gBAAgB;AAQtC,OAAO,MAAMC,qCAA4ET,MAAMU,UAAU,CAGvG,CAACC,OAAOC;IACR,MAAM,CAACC,cAAcC,gBAAgB,GAAGZ,SAAS;IACjD,MAAMa,eAAeX,OAAwB;IAC7C,MAAMY,QAAQZ,OAAO,IAAII,SAASS,OAAO;IACzC,MAAMC,iBAAiBd;IAEvB,MAAMe,mBAAmBlB,YAAY;QACnC,IAAI,CAACc,aAAaE,OAAO,IAAI,CAACF,aAAaE,OAAO,CAACG,aAAa,EAAE;YAChE,OAAOC;QACT;QACA,OAAON,aAAaE,OAAO,CAACG,aAAa;IAC3C,GAAG;QAACL;KAAa;IAEjB,MAAMO,oBAAoBrB,YAAY;QACpC,MAAMsB,kBAAkBJ;QACxB,MAAMK,iBAAiB,CAAC,CAACD,mBAAmBjB,YAAYiB;QACxD,IAAIC,mBAAmBX,cAAc;YACnCC,gBAAgBU;QAClB;IACF,GAAG;QAACL;QAAkBN;QAAcC;KAAgB;IAEpDX,UAAU;QACRmB;IACF,GAAG;QAACA;KAAkB;IAEtBnB,UAAU;QACR,6DAA6D;QAC7D,MAAMoB,kBAAkBJ;QACxB,IAAIM,OAAOC,cAAc,IAAIH,iBAAiB;YAC5CL,eAAeD,OAAO,GAAG,IAAIQ,OAAOC,cAAc,CAACV,MAAMW,QAAQ,CAACL,mBAAmB;YACrFJ,eAAeD,OAAO,CAACW,OAAO,CAACL;QACjC;QACA,yDAAyD;QACzD,OAAO;gBACLL;aAAAA,0BAAAA,eAAeD,OAAO,cAAtBC,8CAAAA,wBAAwBW,UAAU;YAClCb,MAAMc,OAAO;QACf;IACF,GAAG;QAACd;QAAOM;QAAmBH;KAAiB;IAE/C,qBACE,oBAACY;QAAIC,WAAWrB,MAAMqB,SAAS;QAAEC,UAAU;qBACzC,oBAAC5B;QAAQ6B,SAASvB,MAAMuB,OAAO;QAAEC,cAAa;qBAC5C,oBAACC;QAAM,GAAG7B,wBAAwBI,MAAM0B,iBAAiB,CAAC;QAAEC,KAAKvB;QAAcwB,qBAAmB1B;OAC/FF,MAAMuB,OAAO;AAKxB,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["KeyCodes.ts"],"sourcesContent":["/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport const KeyCodes = {\n escape: 27 as 27,\n};\nexport type KeyCodes = number;\n"],"names":["KeyCodes","escape"],"rangeMappings":";;;;;;;","mappings":"AAAA;;;;;CAKC,GACD,OAAO,MAAMA,WAAW;IACtBC,QAAQ;AACV,EAAE"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
+
import { usePortalMountNode } from '@fluentui/react-shared-contexts';
|
|
4
|
+
import { Tooltip } from '@fluentui/react-tooltip';
|
|
5
|
+
import { Async } from './async-utils';
|
|
6
|
+
import { KeyCodes } from './KeyCodes';
|
|
7
|
+
import { useId } from '@fluentui/react-utilities';
|
|
8
|
+
export const SVGTooltipText = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
|
9
|
+
const [isTooltipVisible, setIsTooltipVisible] = useState(false);
|
|
10
|
+
const [isOverflowing, setIsOverflowing] = useState(false);
|
|
11
|
+
const tooltipHostRef = useRef(null);
|
|
12
|
+
const async = useRef(new Async()).current;
|
|
13
|
+
const dismissTimerId = useRef();
|
|
14
|
+
const openTimerId = useRef();
|
|
15
|
+
const tooltipHostId = useRef(useId('tooltip-host')).current;
|
|
16
|
+
const ignoreNextFocusEvent = useRef(false);
|
|
17
|
+
const portalMountNode = usePortalMountNode();
|
|
18
|
+
const wrapContentCallback = useCallback(()=>{
|
|
19
|
+
var _props_maxWidth;
|
|
20
|
+
if (props.content && props.wrapContent && props.wrapContent(props.content, tooltipHostId, (_props_maxWidth = props.maxWidth) !== null && _props_maxWidth !== void 0 ? _props_maxWidth : 100, props.maxHeight) // ToDo - Specify a correct fallback value here
|
|
21
|
+
) {
|
|
22
|
+
setIsOverflowing(true);
|
|
23
|
+
} else {
|
|
24
|
+
setIsOverflowing(false);
|
|
25
|
+
}
|
|
26
|
+
}, [
|
|
27
|
+
props,
|
|
28
|
+
tooltipHostId
|
|
29
|
+
]);
|
|
30
|
+
useEffect(()=>{
|
|
31
|
+
wrapContentCallback();
|
|
32
|
+
return ()=>{
|
|
33
|
+
async.dispose();
|
|
34
|
+
};
|
|
35
|
+
}, [
|
|
36
|
+
wrapContentCallback,
|
|
37
|
+
async
|
|
38
|
+
]);
|
|
39
|
+
useEffect(()=>{
|
|
40
|
+
wrapContentCallback();
|
|
41
|
+
}, [
|
|
42
|
+
props.maxWidth,
|
|
43
|
+
props.maxHeight,
|
|
44
|
+
wrapContentCallback
|
|
45
|
+
]);
|
|
46
|
+
const hideTooltip = useCallback(()=>{
|
|
47
|
+
async.clearTimeout(openTimerId.current);
|
|
48
|
+
async.clearTimeout(dismissTimerId.current);
|
|
49
|
+
setIsTooltipVisible(false);
|
|
50
|
+
}, [
|
|
51
|
+
async
|
|
52
|
+
]);
|
|
53
|
+
const onTooltipMouseEnter = useCallback((ev)=>{
|
|
54
|
+
if (!isOverflowing) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (ev.target && (portalMountNode === null || portalMountNode === void 0 ? void 0 : portalMountNode.contains(ev.target))) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
async.clearTimeout(dismissTimerId.current);
|
|
61
|
+
async.clearTimeout(openTimerId.current);
|
|
62
|
+
if (props.delay !== 0) {
|
|
63
|
+
openTimerId.current = async.setTimeout(()=>{
|
|
64
|
+
setIsTooltipVisible(true);
|
|
65
|
+
}, props.delay);
|
|
66
|
+
} else {
|
|
67
|
+
setIsTooltipVisible(true);
|
|
68
|
+
}
|
|
69
|
+
}, [
|
|
70
|
+
isOverflowing,
|
|
71
|
+
portalMountNode,
|
|
72
|
+
async,
|
|
73
|
+
props.delay
|
|
74
|
+
]);
|
|
75
|
+
const onTooltipMouseLeave = useCallback((ev)=>{
|
|
76
|
+
async.clearTimeout(dismissTimerId.current);
|
|
77
|
+
async.clearTimeout(openTimerId.current);
|
|
78
|
+
if (props.closeDelay) {
|
|
79
|
+
dismissTimerId.current = async.setTimeout(()=>{
|
|
80
|
+
setIsTooltipVisible(false);
|
|
81
|
+
}, props.closeDelay);
|
|
82
|
+
} else {
|
|
83
|
+
setIsTooltipVisible(false);
|
|
84
|
+
}
|
|
85
|
+
}, [
|
|
86
|
+
async,
|
|
87
|
+
props.closeDelay
|
|
88
|
+
]);
|
|
89
|
+
const onTooltipFocus = useCallback((ev)=>{
|
|
90
|
+
if (ignoreNextFocusEvent.current) {
|
|
91
|
+
ignoreNextFocusEvent.current = false;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
onTooltipMouseEnter(ev);
|
|
95
|
+
}, [
|
|
96
|
+
onTooltipMouseEnter
|
|
97
|
+
]);
|
|
98
|
+
const onTooltipBlur = useCallback((ev)=>{
|
|
99
|
+
var _document;
|
|
100
|
+
ignoreNextFocusEvent.current = ((_document = document) === null || _document === void 0 ? void 0 : _document.activeElement) === ev.target;
|
|
101
|
+
dismissTimerId.current = async.setTimeout(()=>{
|
|
102
|
+
setIsTooltipVisible(false);
|
|
103
|
+
}, 0);
|
|
104
|
+
}, [
|
|
105
|
+
async
|
|
106
|
+
]);
|
|
107
|
+
const onTooltipKeyDown = useCallback((ev)=>{
|
|
108
|
+
if ((ev.which === KeyCodes.escape || ev.ctrlKey) && isTooltipVisible) {
|
|
109
|
+
hideTooltip();
|
|
110
|
+
ev.stopPropagation();
|
|
111
|
+
}
|
|
112
|
+
}, [
|
|
113
|
+
isTooltipVisible,
|
|
114
|
+
hideTooltip
|
|
115
|
+
]);
|
|
116
|
+
const showTooltip = props.isTooltipVisibleProp && isOverflowing && !!props.content || isTooltipVisible && !!props.content;
|
|
117
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Tooltip, {
|
|
118
|
+
relationship: "description",
|
|
119
|
+
...props.tooltipProps,
|
|
120
|
+
withArrow: true,
|
|
121
|
+
content: props.content,
|
|
122
|
+
// targetElement={getTargetElement()} ToDo - This assignment is causing build failure. Needs to be fixed.
|
|
123
|
+
visible: showTooltip
|
|
124
|
+
}, /*#__PURE__*/ React.createElement("text", {
|
|
125
|
+
...props.textProps,
|
|
126
|
+
id: tooltipHostId,
|
|
127
|
+
ref: tooltipHostRef,
|
|
128
|
+
onFocusCapture: onTooltipFocus,
|
|
129
|
+
onBlurCapture: onTooltipBlur,
|
|
130
|
+
onMouseEnter: onTooltipMouseEnter,
|
|
131
|
+
onMouseLeave: onTooltipMouseLeave,
|
|
132
|
+
onKeyDown: onTooltipKeyDown,
|
|
133
|
+
"data-is-focusable": props.shouldReceiveFocus && isOverflowing
|
|
134
|
+
}, props.content)));
|
|
135
|
+
});
|
|
136
|
+
SVGTooltipText.defaultProps = {
|
|
137
|
+
delay: 0
|
|
138
|
+
};
|