@fluentui/react-charting 5.17.12 → 5.18.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.json +30 -1
- package/CHANGELOG.md +16 -2
- package/config/api-extractor.json +3 -0
- package/dist/react-charting.d.ts +3637 -0
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +1518 -0
- package/lib/components/AreaChart/AreaChart.d.ts +4 -0
- package/lib/components/AreaChart/AreaChart.js +4 -0
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.types.d.ts +4 -0
- package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.d.ts +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.d.ts +4 -0
- package/lib/components/DonutChart/DonutChart.js +4 -0
- package/lib/components/DonutChart/DonutChart.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.types.d.ts +4 -0
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.d.ts +4 -0
- package/lib/components/GaugeChart/GaugeChart.js +4 -0
- package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.types.d.ts +8 -0
- package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.d.ts +4 -0
- package/lib/components/HeatMapChart/HeatMapChart.js +4 -0
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/Legends/Legends.d.ts +4 -0
- package/lib/components/Legends/Legends.js +4 -0
- package/lib/components/Legends/Legends.js.map +1 -1
- package/lib/components/Legends/Legends.types.d.ts +20 -0
- package/lib/components/Legends/Legends.types.js.map +1 -1
- package/lib/components/LineChart/LineChart.d.ts +4 -0
- package/lib/components/LineChart/LineChart.js +4 -0
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.types.d.ts +4 -0
- package/lib/components/LineChart/LineChart.types.js.map +1 -1
- package/lib/components/PieChart/PieChart.d.ts +4 -0
- package/lib/components/PieChart/PieChart.js +4 -0
- package/lib/components/PieChart/PieChart.js.map +1 -1
- package/lib/components/PieChart/PieChart.types.d.ts +4 -0
- package/lib/components/PieChart/PieChart.types.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.d.ts +4 -0
- package/lib/components/SankeyChart/SankeyChart.js +4 -0
- package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.types.d.ts +4 -0
- package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib/components/Sparkline/Sparkline.d.ts +4 -0
- package/lib/components/Sparkline/Sparkline.js +4 -0
- package/lib/components/Sparkline/Sparkline.js.map +1 -1
- package/lib/components/Sparkline/Sparkline.types.d.ts +4 -0
- package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
- package/lib/components/StackedBarChart/MultiStackedBarChart.js +4 -0
- package/lib/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
- package/lib/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
- package/lib/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
- package/lib/components/StackedBarChart/StackedBarChart.d.ts +4 -0
- package/lib/components/StackedBarChart/StackedBarChart.js +4 -0
- package/lib/components/StackedBarChart/StackedBarChart.js.map +1 -1
- package/lib/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
- package/lib/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
- package/lib/components/TreeChart/TreeChart.d.ts +4 -0
- package/lib/components/TreeChart/TreeChart.js +4 -0
- package/lib/components/TreeChart/TreeChart.js.map +1 -1
- package/lib/components/TreeChart/TreeChart.types.d.ts +4 -0
- package/lib/components/TreeChart/TreeChart.types.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js +4 -0
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +3 -3
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.d.ts +4 -0
- package/lib-amd/components/AreaChart/AreaChart.js +4 -0
- package/lib-amd/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.types.d.ts +4 -0
- package/lib-amd/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.d.ts +4 -0
- package/lib-amd/components/DonutChart/DonutChart.js +4 -0
- package/lib-amd/components/DonutChart/DonutChart.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.types.d.ts +4 -0
- package/lib-amd/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.d.ts +4 -0
- package/lib-amd/components/GaugeChart/GaugeChart.js +4 -0
- package/lib-amd/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.types.d.ts +8 -0
- package/lib-amd/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.d.ts +4 -0
- package/lib-amd/components/HeatMapChart/HeatMapChart.js +4 -0
- package/lib-amd/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-amd/components/Legends/Legends.d.ts +4 -0
- package/lib-amd/components/Legends/Legends.js +4 -0
- package/lib-amd/components/Legends/Legends.js.map +1 -1
- package/lib-amd/components/Legends/Legends.types.d.ts +20 -0
- package/lib-amd/components/Legends/Legends.types.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.d.ts +4 -0
- package/lib-amd/components/LineChart/LineChart.js +4 -0
- package/lib-amd/components/LineChart/LineChart.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.types.d.ts +4 -0
- package/lib-amd/components/LineChart/LineChart.types.js.map +1 -1
- package/lib-amd/components/PieChart/PieChart.d.ts +4 -0
- package/lib-amd/components/PieChart/PieChart.js +4 -0
- package/lib-amd/components/PieChart/PieChart.js.map +1 -1
- package/lib-amd/components/PieChart/PieChart.types.d.ts +4 -0
- package/lib-amd/components/PieChart/PieChart.types.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.d.ts +4 -0
- package/lib-amd/components/SankeyChart/SankeyChart.js +4 -0
- package/lib-amd/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.types.d.ts +4 -0
- package/lib-amd/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-amd/components/Sparkline/Sparkline.d.ts +4 -0
- package/lib-amd/components/Sparkline/Sparkline.js +4 -0
- package/lib-amd/components/Sparkline/Sparkline.js.map +1 -1
- package/lib-amd/components/Sparkline/Sparkline.types.d.ts +4 -0
- package/lib-amd/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.js +4 -0
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
- package/lib-amd/components/StackedBarChart/StackedBarChart.d.ts +4 -0
- package/lib-amd/components/StackedBarChart/StackedBarChart.js +4 -0
- package/lib-amd/components/StackedBarChart/StackedBarChart.js.map +1 -1
- package/lib-amd/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
- package/lib-amd/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
- package/lib-amd/components/TreeChart/TreeChart.d.ts +4 -0
- package/lib-amd/components/TreeChart/TreeChart.js +4 -0
- package/lib-amd/components/TreeChart/TreeChart.js.map +1 -1
- package/lib-amd/components/TreeChart/TreeChart.types.d.ts +4 -0
- package/lib-amd/components/TreeChart/TreeChart.types.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.js +4 -0
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +3 -3
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-amd/version.js +1 -1
- package/lib-amd/version.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.d.ts +4 -0
- package/lib-commonjs/components/AreaChart/AreaChart.js +4 -0
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.types.d.ts +4 -0
- package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.d.ts +4 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js +4 -0
- package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.types.d.ts +4 -0
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.d.ts +4 -0
- package/lib-commonjs/components/GaugeChart/GaugeChart.js +4 -0
- package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.d.ts +8 -0
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +1 -0
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +13 -8
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.d.ts +4 -0
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +4 -0
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.d.ts +10 -6
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.d.ts +4 -0
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +4 -0
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.d.ts +4 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +4 -0
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.d.ts +5 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.d.ts +4 -0
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +4 -0
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +4 -0
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.d.ts +4 -0
- package/lib-commonjs/components/Legends/Legends.js +4 -0
- package/lib-commonjs/components/Legends/Legends.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.types.d.ts +20 -0
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.d.ts +4 -0
- package/lib-commonjs/components/LineChart/LineChart.js +4 -0
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.types.d.ts +4 -0
- package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
- package/lib-commonjs/components/PieChart/PieChart.d.ts +4 -0
- package/lib-commonjs/components/PieChart/PieChart.js +4 -0
- package/lib-commonjs/components/PieChart/PieChart.js.map +1 -1
- package/lib-commonjs/components/PieChart/PieChart.types.d.ts +4 -0
- package/lib-commonjs/components/PieChart/PieChart.types.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.d.ts +4 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.js +4 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.d.ts +4 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-commonjs/components/Sparkline/Sparkline.d.ts +4 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js +4 -0
- package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
- package/lib-commonjs/components/Sparkline/Sparkline.types.d.ts +4 -0
- package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.d.ts +4 -0
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.js +4 -0
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.types.d.ts +4 -0
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.d.ts +4 -0
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.js +4 -0
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.types.d.ts +4 -0
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/TreeChart/TreeChart.d.ts +4 -0
- package/lib-commonjs/components/TreeChart/TreeChart.js +4 -0
- package/lib-commonjs/components/TreeChart/TreeChart.js.map +1 -1
- package/lib-commonjs/components/TreeChart/TreeChart.types.d.ts +4 -0
- package/lib-commonjs/components/TreeChart/TreeChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +20 -6
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.d.ts +4 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +4 -0
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.d.ts +11 -7
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +3 -3
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.d.ts +4 -0
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +4 -0
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.d.ts +4 -0
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/version.js +1 -1
- package/lib-commonjs/version.js.map +1 -1
- package/package.json +2 -1
- package/src/components/AreaChart/AreaChart.types.ts +5 -0
- package/src/components/CommonComponents/CartesianChart.types.ts +1 -1
- package/src/components/DonutChart/DonutChart.types.ts +4 -0
- package/src/components/GaugeChart/GaugeChart.types.ts +8 -0
- package/src/components/HeatMapChart/HeatMapChart.types.ts +4 -0
- package/src/components/HorizontalBarChart/HorizontalBarChart.types.ts +5 -1
- package/src/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.ts +4 -0
- package/src/components/Legends/Legends.types.ts +20 -0
- package/src/components/LineChart/LineChart.types.ts +5 -0
- package/src/components/PieChart/PieChart.types.ts +4 -0
- package/src/components/SankeyChart/SankeyChart.types.ts +4 -0
- package/src/components/Sparkline/Sparkline.types.ts +4 -0
- package/src/components/StackedBarChart/MultiStackedBarChart.types.ts +4 -0
- package/src/components/StackedBarChart/StackedBarChart.types.ts +4 -0
- package/src/components/TreeChart/TreeChart.types.ts +4 -0
- package/src/components/VerticalBarChart/VerticalBarChart.types.ts +11 -7
- package/src/components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\nimport { formatPrefix as d3FormatPrefix } from 'd3-format';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _calloutAnchorPoint: IVSChartDataPoint | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n selectedLegend: '',\n activeLegend: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VSBC_empty');\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\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 return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.selectedLegend !== '') {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n secondaryYScale?: NumericScale,\n ): JSX.Element => {\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const xScaleBandwidthTranslate = isNumeric ? 0 : (xBarScale as any).bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._legendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i - 1].xItem.xAxisPoint as string);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && secondaryYScale;\n const y1 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i - 1].y) : yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i].xItem.xAxisPoint as string);\n const y2 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i].y) : yScale(lineObject[item][i].y);\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.palette.white}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n strokeLinecap=\"round\"\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(this.state.selectedLegend === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(circlePoint.xItem.xAxisPoint as string)\n }\n cy={\n circlePoint.useSecondaryYScale && secondaryYScale ? secondaryYScale(circlePoint.y) : yScale(circlePoint.y)\n }\n onMouseOver={\n this.state.selectedLegend === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(this.state.selectedLegend === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { selectedLegend, activeXAxisDataPoint } = this.state;\n if (selectedLegend !== '') {\n if (xAxispoint === activeXAxisDataPoint && selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType === XAxisTypes.NumericAxis ? 0 : (xBarScale.bandwidth() - this._barWidth) / 2;\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._legendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < barMinimumHeight) {\n barHeight = barMinimumHeight;\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n barTotalValue += point.data;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 1) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!this.props.hideLabels && this._barWidth >= 16 && (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barTotalValue}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {d3FormatPrefix(barTotalValue < 1000 ? '.2~' : '.1', barTotalValue)(barTotalValue)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n\n return { xBarScale, yBarScale };\n } else {\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin])\n .paddingInner(2 / 3);\n\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _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 (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.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 private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (singleChartData: IVerticalStackedChartProps, point?: IVSChartDataPoint): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue = singleChartData.xAxisCalloutData || singleChartData.xAxisPoint;\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue = singleChartData.xAxisCalloutData || point.xAxisCalloutData || singleChartData.xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType !== XAxisTypes.NumericAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.filter(item => item.chartData.length === 0).length === 0\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":";;;;IAoCA,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAAsE,CAAC;IAG/G,IAAM,cAAc,GAAG,4BAA4B,CAAC;IAEpD,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAM,gBAAgB,GAAG,GAAG,CAAC;IAC7B,IAAM,SAAS,GAAG,CAAC,CAAC;IAEpB,IAAM,iBAAiB,GAAG,CAAC,CAAC;IAY5B,IAAK,eAGJ;IAHD,WAAK,eAAe;QAClB,sCAAmB,CAAA;QACnB,kCAAe,CAAA;IACjB,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB;IASD;QAAiD,uDAGhD;QAoBC,qCAAmB,KAAoC;YAAvD,YACE,kBAAM,KAAK,CAAC,SA6Bb;YAxCO,YAAM,GAAY,IAAA,kBAAM,GAAE,CAAC;YAoJnC;;;;;;;eAOG;YACK,wBAAkB,GAAG,UAAC,cAAuB;gBAC3C,IAAA,KAA8B,KAAI,CAAC,KAAK,kBAAf,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,CAAgB;gBACjD,IAAI,oBAAoB,GAAY,KAAK,CAAC;gBAC1C,IAAI,cAAc,EAAE;oBAClB,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE;wBACpC,oBAAoB,GAAG,KAAK,CAAC;qBAC9B;yBAAM;wBACL,oBAAoB,GAAG,IAAI,CAAC;qBAC7B;iBACF;qBAAM;oBACL,oBAAoB,GAAG,iBAAiB,CAAC;iBAC1C;gBACD,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YAEM,2BAAqB,GAAG,UAAC,IAAkC;gBACjE,IAAM,SAAS,GAAgB,EAAE,CAAC;gBAClC,IAAM,iBAAiB,GAAe,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAgC,EAAE,KAAa;oBAC3D,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,gEAAgE;wBAChE,yEAAyE;wBACzE,iBAAiB;wBACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI;4BACxB,SAAS,CAAC,IAAI,uCACT,IAAI,KACP,KAAK,OAAA,EACL,KAAK,EAAE,IAAI,IACX,CAAC;wBACL,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI;oBACpB,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBAClC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC3C;yBAAM;wBACL,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACzC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YAEM,qBAAe,GAAG,UAAC,IAAkC;gBAC3D,IAAM,UAAU,GAAe,KAAI,CAAC,WAAW,CAAC;gBAChD,IAAM,WAAW,GAAkB,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY;oBAC3C,WAAW,CAAC,IAAI,CAAC;wBACf,KAAK,EAAE,IAAI;wBACX,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;qBACjC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YAEM,kBAAY,GAAG,UACrB,MAAoB,EACpB,MAAoB,EACpB,eAAuB,EACvB,cAAsB,EACtB,eAA8B;;gBAE9B,IAAM,SAAS,GAAG,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW,CAAC;gBACrD,IAAA,SAAS,GAAK,KAAI,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,EAAE,SAAS,CAAC,UAAhE,CAAiE;gBAClF,IAAM,UAAU,GAAe,KAAI,CAAC,qBAAqB,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3E,IAAM,KAAK,GAAsB,EAAE,CAAC;gBACpC,IAAM,cAAc,GAAsB,EAAE,CAAC;gBAC7C,IAAM,IAAI,GAAsB,EAAE,CAAC;gBAC3B,IAAA,KAAK,GAAK,KAAI,CAAC,KAAK,MAAf,CAAgB;gBAC7B,IAAM,eAAe,GAAG,CAAA,MAAA,KAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,eAAe;oBAC7D,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAI,CAAC,KAAK,CAAC,WAAY,CAAC,eAAgB,CAAC,QAAQ,EAAE,CAAC;oBACxE,CAAC,CAAC,CAAC,CAAC;gBACN,8DAA8D;gBAC9D,IAAM,wBAAwB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,SAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACpF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY,EAAE,KAAa;oBAC1D,IAAM,eAAe,GAAG,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,sBAAsB;oBAC5G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAChD,IAAM,EAAE,GAAG,SAAS;4BAClB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAoB,CAAC;4BAC5D,CAAC,CAAC,8DAA8D;gCAC7D,SAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC;wBAC3E,IAAM,kBAAkB,GACtB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,eAAe,CAAC;wBAC1G,IAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,eAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChH,IAAM,EAAE,GAAG,SAAS;4BAClB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAoB,CAAC;4BACxD,CAAC,CAAC,8DAA8D;gCAC7D,SAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC;wBACvE,IAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,eAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAExG,IAAI,eAAe,GAAG,CAAC,EAAE;4BACvB,cAAc,CAAC,IAAI,CACjB,8BACE,GAAG,EAAE,UAAG,KAAK,cAAI,CAAC,gBAAa,EAC/B,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAClC,WAAW,EAAE,CAAC,GAAG,eAAe,GAAG,CAAC,EACpC,IAAI,EAAC,aAAa,EAClB,aAAa,EAAC,OAAO,EACrB,MAAM,EAAE,KAAM,CAAC,OAAO,CAAC,KAAK,EAC5B,SAAS,EAAE,oBAAa,wBAAwB,SAAM,GACtD,CACH,CAAC;yBACH;wBACD,KAAK,CAAC,IAAI,CACR,+CACE,GAAG,EAAE,UAAG,KAAK,cAAI,CAAC,UAAO,EACzB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAClC,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EACjC,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IAClD,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI;4BACzC,WAAW,EAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BAChE,YAAY,EAAE,KAAI,CAAC,aAAa;yBACjC,CAAC,EACF,CACH,CAAC;qBACH;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY,EAAE,KAAa;oBAC1D,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,WAAsB,EAAE,QAAgB;wBAChE,IAAI,CAAC,IAAI,CACP,iDACE,GAAG,EAAE,UAAG,KAAK,cAAI,QAAQ,SAAM,EAC/B,EAAE,EACA,SAAS;gCACP,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAoB,CAAC;gCAChD,CAAC,CAAC,8DAA8D;oCAC7D,SAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,UAAoB,CAAC,EAEhE,EAAE,EACA,WAAW,CAAC,kBAAkB,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAE5G,WAAW,EACT,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;gCAChC,CAAC,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,WAAW,CAAC;gCACzC,CAAC,CAAC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAElD,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,IAAI;4BACzC,YAAY,EAAE,KAAI,CAAC,aAAa;yBACjC,CAAC,IACF,CAAC,EAAE,KAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAC9F,MAAM,EAAE,WAAW,CAAC,KAAK,EACzB,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,OAAO,CAAC,KAAK,EACrC,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,KAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAC3G,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IACtD,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,CACL;oBACG,cAAc;oBACd,KAAK;oBACL,IAAI,CACJ,CACJ,CAAC;YACJ,CAAC,CAAC;YAEM,mCAA6B,GAAG,UACtC,UAA2B,EAC3B,MAAc;gBAER,IAAA,KAA2C,KAAI,CAAC,KAAK,EAAnD,cAAc,oBAAA,EAAE,oBAAoB,0BAAe,CAAC;gBAC5D,IAAI,cAAc,KAAK,EAAE,EAAE;oBACzB,IAAI,UAAU,KAAK,oBAAoB,IAAI,cAAc,KAAK,MAAM,EAAE;wBACpE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACxD;yBAAM,IAAI,cAAc,KAAK,MAAM,EAAE;wBACpC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;qBAC1D;yBAAM;wBACL,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;qBACxD;iBACF;qBAAM;oBACL,OAAO;wBACL,UAAU,EAAE,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI;wBAC7F,MAAM,EAAE,CAAC;qBACV,CAAC;iBACH;YACH,CAAC,CAAC;YA8BM,iBAAW,GAAG,UAAC,OAAiB;gBACtC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,CAAC,CAAC;YAcM,2BAAqB,GAAG;gBAC9B,IAAM,cAAc,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;gBACF,OAAO,KAAI,CAAC,KAAK,CAAC,uBAAuB;oBACvC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;oBAClE,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,cAAc;wBAC3D,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,KAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAI,CAAC,cAAc,CAAC;wBAC/F,CAAC,CAAC,IAAI,CAAC;YACX,CAAC,CAAC;YAsIM,gBAAU,GAAG,UAAC,QAAmB,EAAE,UAAwC;gBACjF,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,KAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,UAAU;oBACvB,gBAAgB,EAAE,IAAI;oBACtB,aAAa,EAAE,UAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAE;oBAC7C,aAAa,EAAE,UAAG,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAE;oBAC5E,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU;oBAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC;YAEM,mBAAa,GAAG;gBACtB,KAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,EAAE,IAAI;oBACjB,gBAAgB,EAAE,KAAK;oBACvB,aAAa,EAAE,EAAE;oBACjB,aAAa,EAAE,EAAE;oBACjB,oBAAoB,EAAE,EAAE;oBACxB,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;YACL,CAAC,CAAC;YA4CM,qBAAe,GAAG;gBACxB,IAAI;YACN,CAAC,CAAC;YAEM,4BAAsB,GAAG;gBAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;oBACvB,oBAAoB,EAAE,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC;YAkCM,gBAAU,GAAG;YACnB,8DAA8D;YAC9D,SAAc,EACd,SAAuB,EACvB,eAAuB,EACvB,QAAoB;gBAEd,IAAA,KAAgD,KAAI,CAAC,KAAK,EAAxD,uBAAmB,EAAnB,eAAe,mBAAG,CAAC,KAAA,EAAE,wBAAoB,EAApB,gBAAgB,mBAAG,CAAC,KAAe,CAAC;gBACjE,IAAM,cAAc,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;gBACF,IAAM,qBAAqB,GAAG,KAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;gBAEtE,IAAM,IAAI,GAAG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,eAA2C,EAAE,WAAmB;oBAC7F,IAAI,MAAM,GAAG,eAAe,GAAG,KAAI,CAAC,OAAO,CAAC,MAAO,CAAC;oBACpD,IAAM,MAAM,GAAG,SAAS,CACtB,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW;wBACxC,CAAC,CAAE,eAAe,CAAC,UAAqB;wBACxC,CAAC,CAAE,eAAe,CAAC,UAAqB,CAC3C,CAAC;oBACF,IAAM,wBAAwB,GAC5B,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAChG,IAAI,aAAa,GAAG,CAAC,CAAC;oBAEtB,qCAAqC;oBACrC,IAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,GAAG,CAAC,EAAd,CAAc,CAAC,CAAC;oBAEhF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;wBACzB,OAAO,SAAS,CAAC;qBAClB;oBAEK,IAAA,KAAkC,KAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAjF,SAAS,eAAA,EAAE,gBAAgB,sBAAsD,CAAC;oBAE1F,IAAI,gBAAgB,GAAG,CAAC,EAAE;wBACxB,OAAO,SAAS,CAAC;qBAClB;oBAED,IAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAC,KAAwB,EAAE,KAAa;wBAC1E,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC9D,IAAM,GAAG,GAAkB,EAAE,CAAC;wBAE9B,IAAM,eAAe,GAAG,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC5G,KAAI,CAAC,WAAW,GAAG,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,MAAO,EAAE;4BACnD,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM;4BACxB,eAAe,EAAE,eAAe;4BAChC,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI;yBACtB,CAAC,CAAC;wBACH,IAAM,cAAc,GAAG,CAAC,qBAAqB,IAAI;4BAC/C,mBAAmB,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW;4BAC5C,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC;4BACxD,WAAW,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;4BACnF,WAAW,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC;4BACnF,YAAY,EAAE,KAAI,CAAC,eAAe;4BAClC,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,KAAK,EAAE,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC;4BACpF,MAAM,EAAE,KAAI,CAAC,eAAe;4BAC5B,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,KAAK,CAAC;4BACxC,IAAI,EAAE,KAAK;yBACZ,CAAC;wBAEF,IAAI,SAAS,GAAG,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC;wBAC9C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,gBAAgB,CAAC,EAAE;4BACzE,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC;yBACvE;wBACD,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtD,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC;wBAE5B,8DAA8D;wBAC9D,IAAI,eAAe,IAAI,SAAS,GAAG,eAAe,IAAI,KAAK,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;4BACxF,OAAO,CACL,+CACE,GAAG,EAAE,KAAK,GAAG,WAAW,GAAG,UAAG,qBAAqB,CAAE,EACrD,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,oBAAoB,EAChD,CAAC,EAAE,8BACG,MAAM,cAAI,MAAM,GAAG,eAAe,iCAClC,eAAe,cAAI,eAAe,oBAAU,eAAe,cAAI,CAAC,eAAe,iCAC/E,KAAI,CAAC,SAAS,GAAG,CAAC,GAAG,eAAe,iCACpC,eAAe,cAAI,eAAe,oBAAU,eAAe,cAAI,eAAe,iCAC9E,SAAS,GAAG,eAAe,iCAC3B,CAAC,KAAI,CAAC,SAAS,wCAEpB,EACD,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAApB,CAAoB,EAC9B,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IAClD,cAAc,EAClB,CACH,CAAC;yBACH;wBACD,IAAI,SAAS,GAAG,CAAC,EAAE;4BACjB,OAAO,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,GAAG,WAAW,QAAoB,CAAC;yBACrE;wBACD,OAAO,CACL,+CACE,GAAG,EAAE,KAAK,GAAG,WAAW,EACxB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,oBAAoB,EAChD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAI,CAAC,SAAS,EACrB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,EAApB,CAAoB,IAC1B,cAAc,IAClB,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IACtD,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,IAAM,QAAQ,GAAkB,EAAE,CAAC;oBACnC,IAAM,eAAe,GAAG,qBAAqB,IAAI;wBAC/C,mBAAmB,EAAE,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW;wBAC5C,YAAY,EAAE,KAAI,CAAC,aAAa,CAAC,eAAe,CAAC;wBACjD,WAAW,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;wBAC3D,WAAW,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;wBAC3D,YAAY,EAAE,KAAI,CAAC,eAAe;wBAClC,OAAO,EAAE,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,EAAE,QAAQ,CAAC;wBACjE,MAAM,EAAE,KAAI,CAAC,eAAe;wBAC5B,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,eAAe,CAAC;wBAClD,IAAI,EAAE,KAAK;qBACZ,CAAC;oBACF,OAAO,CACL,2BAAG,GAAG,EAAE,WAAW,GAAG,UAAG,qBAAqB,CAAE;wBAC9C,4CAAG,EAAE,EAAE,UAAG,WAAW,eAAY,EAAE,GAAG,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,EAAzB,CAAyB,IAAM,eAAe,GACxF,SAAS,CACR;wBACH,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAI,CAAC,SAAS,IAAI,EAAE,IAAI,CACjD,8BACE,CAAC,EAAE,MAAM,GAAG,KAAI,CAAC,SAAS,GAAG,CAAC,EAC9B,CAAC,EAAE,MAAM,GAAG,CAAC,EACb,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,QAAQ,gBACxB,iBAAU,aAAa,CAAE,EACrC,IAAI,EAAC,KAAK,EACV,SAAS,EAAE,oBAAa,wBAAwB,SAAM,IAErD,IAAA,wBAAc,EAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,aAAa,CAAC,CAC7E,CACR,CACC,CACL,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,mEAAmE;gBACnE,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;oBACtC,IAAI;wBACF,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;wBAC/F,oCAAoC;qBACrC;oBAAC,OAAO,CAAC,EAAE,GAAE;iBACf;gBACD,4CAA4C;gBAC5C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;oBACpE,IAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI;wBACF,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;wBAC/F,oCAAoC;qBACrC;oBAAC,OAAO,CAAC,EAAE,GAAE;oBACd,IAAM,YAAY,GAAG;wBACnB,UAAU,EAAE,KAAI,CAAC,WAAW,CAAC,OAAQ;wBACrC,EAAE,EAAE,KAAI,CAAC,UAAU;wBACnB,KAAK,EAAE,YAAY;qBACpB,CAAC;oBACF,YAAY,IAAI,IAAA,4BAAoB,EAAC,YAAY,CAAC,CAAC;iBACpD;gBACD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,IAAyB,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;YACzD,CAAC,CAAC;YAEM,gBAAU,GAAG,UAAC,eAAuB,EAAE,cAAsB,EAAE,SAAkB;gBACvF,IAAM,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC;gBACxB,IAAM,SAAS,GAAG,IAAA,sBAAa,GAAE;qBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBACjB,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,GAAG,KAAI,CAAC,OAAO,CAAC,MAAO,GAAG,KAAI,CAAC,OAAO,CAAC,GAAI,CAAC,CAAC,CAAC;gBAC1E,IAAI,SAAS,EAAE;oBACb,IAAM,IAAI,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAiB,IAAK,OAAA,KAAK,CAAC,CAAW,EAAjB,CAAiB,CAAE,CAAC;oBAC7E,IAAM,IAAI,GAAG,IAAA,cAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,UAAC,KAAiB,IAAK,OAAA,KAAK,CAAC,CAAW,EAAjB,CAAiB,CAAE,CAAC;oBAE7E,IAAM,SAAS,GAAG,IAAA,sBAAa,GAAE;yBAC9B,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;yBACjD,IAAI,EAAE;yBACN,KAAK,CAAC;wBACL,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa;wBACvC,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa;qBAC3E,CAAC,CAAC;oBAEL,OAAO,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAC;iBACjC;qBAAM;oBACL,IAAM,SAAS,GAAG,IAAA,oBAAW,GAAE;yBAC5B,MAAM,CAAC,KAAI,CAAC,YAAY,CAAC;yBACzB,KAAK,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAAE,cAAc,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,CAAC,CAAC;yBAC3G,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAEvB,OAAO,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAC;iBACjC;YACH,CAAC,CAAC;YAEM,wBAAkB,GAAG,UAC3B,eAAuB,EACvB,cAAsB,EACtB,QAAoB;gBAEd,IAAA,KAA2B,KAAI,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,EAA/E,SAAS,eAAA,EAAE,SAAS,eAA2D,CAAC;gBAExF,OAAO,KAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC,CAAC;YAEM,uBAAiB,GAAG,UAC1B,eAAuB,EACvB,cAAsB,EACtB,QAAoB;gBAEd,IAAA,KAA2B,KAAI,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,CAAC,EAAhF,SAAS,eAAA,EAAE,SAAS,eAA4D,CAAC;gBAEzF,OAAO,KAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC,CAAC;YAEM,mBAAa,GAAG;YACtB,8DAA8D;YAC9D,MAAW,EACX,MAAmB,EACnB,eAAuB,EACvB,cAAsB,EACtB,QAA2B;gBAE3B,OAAO,CAAC,KAAI,CAAC,KAAK;oBAChB,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW;wBACxC,CAAC,CAAC,KAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,EAAE,QAAS,CAAC;wBACrE,CAAC,CAAC,KAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,cAAc,EAAE,QAAS,CAAC,CAAC,CAAC;YAC5E,CAAC,CAAC;YAEM,mBAAa,GAAG;gBACtB,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEM,kBAAY,GAAG,UAAC,SAAoB;gBAC1C,IAAI,SAAS,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE;oBAC3C,IAAmB,WAAW,GAAK,SAAS,kBAAd,CAAe;oBACrD,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;iBACvF;YACH,CAAC,CAAC;YAEF;;;;;eAKG;YACK,wBAAkB,GAAG,UAAC,WAAmB;gBAC/C,OAAO,CACL,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW;oBACzC,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAC9E,CAAC;YACJ,CAAC,CAAC;YAEF;;eAEG;YACK,0BAAoB,GAAG;gBAC7B,OAAO,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;YAC5E,CAAC,CAAC;YAEM,mBAAa,GAAG,UAAC,eAA2C,EAAE,KAAyB;;gBAC7F,IAAI,CAAC,KAAK,EAAE;oBACV,uCAAuC;oBACvC,IAAM,QAAM,GAAG,eAAe,CAAC,gBAAgB,IAAI,eAAe,CAAC,UAAU,CAAC;oBAC9E,IAAM,WAAW,GAAG,eAAe,CAAC,SAAS;yBAC1C,GAAG,CAAC,UAAA,EAAE;wBACL,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;wBACzB,IAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC;wBAC9C,OAAO,UAAG,MAAM,eAAK,MAAM,MAAG,CAAC;oBACjC,CAAC,CAAC;yBACD,IAAI,CAAC,GAAG,CAAC,CAAC;oBACb,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,QAAQ,0CACvC,GAAG,CAAC,UAAA,EAAE;wBACN,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;wBACzB,IAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;wBACtD,OAAO,UAAG,MAAM,eAAK,MAAM,MAAG,CAAC;oBACjC,CAAC,EACA,IAAI,CAAC,GAAG,CAAC,CAAC;oBACb,OAAO,CACL,CAAA,MAAA,eAAe,CAAC,6BAA6B,0CAAE,SAAS;wBACxD,UAAG,QAAM,eAAK,WAAW,CAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAI,UAAU,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnE,CAAC;iBACH;gBACD,wCAAwC;gBACxC,IAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,IAAI,eAAe,CAAC,UAAU,CAAC;gBACxG,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC;gBACpD,OAAO,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS,KAAI,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,CAAC;YACzF,CAAC,CAAC;YAEM,uBAAiB,GAAG,UAAC,cAAsB;gBACjD,IAAI,KAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW,EAAE;oBAC9C,+CAA+C;oBAC/C,IAAM,UAAU,GACd,cAAc,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,iBAAiB,CAAC,CAAC;oBACxG,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;oBACvD,kFAAkF;oBAClF,IAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;oBAE/D,KAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;oBACvC,IAAI,UAAU,IAAI,QAAQ,EAAE;wBAC1B,4EAA4E;wBAC5E,KAAI,CAAC,aAAa,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;qBACnD;yBAAM;wBACL,yDAAyD;wBACzD,IAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACrE,QAAQ,GAAG,YAAY,CAAC;qBACzB;oBACD,KAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;iBAC3B;gBAED,6CACK,KAAI,CAAC,OAAO,KACf,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,aAAa,EAC7C,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,KAAI,CAAC,aAAa,IAC/C;YACJ,CAAC,CAAC;YA96BA,KAAI,CAAC,KAAK,GAAG;gBACX,gBAAgB,EAAE,KAAK;gBACvB,cAAc,EAAE,EAAE;gBAClB,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,EAAE;gBACjB,oBAAoB,EAAE,EAAE;gBACxB,aAAa,EAAE,EAAE;aAClB,CAAC;YACF,IAAA,4BAAgB,EAAC,cAAc,EAAE,KAAK,EAAE;gBACtC,MAAM,EAAE,yBAAyB;gBACjC,UAAU,EAAE,8BAA8B;aAC3C,CAAC,CAAC;YACH,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;YACvD,KAAI,CAAC,UAAU,GAAG,IAAA,iBAAK,EAAC,SAAS,CAAC,CAAC;YACnC,KAAI,CAAC,UAAU,GAAG,IAAA,iBAAK,EAAC,gBAAgB,CAAC,CAAC;YAC1C,IAAI,KAAI,CAAC,aAAa,EAAE,EAAE;gBACxB,KAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5C;YACD,KAAI,CAAC,qBAAqB,GAAG,IAAA,2BAAe,EAAC,UAAC,IAAkC,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAA1B,CAA0B,CAAC,CAAC;YACjH,KAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;YACvC,KAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,aAAa,CAAC,CAAC;;QAC5C,CAAC;QAEM,wDAAkB,GAAzB,UAA0B,SAAwC;YAChE,IACE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;gBACtC,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;gBACpC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAClC;gBACA,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5C;QACH,CAAC;QAEM,4CAAM,GAAb;YAAA,iBA6FC;YA5FC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;gBACzB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAM,gBAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACzC,UAAC,IAAgC,IAAK,OAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAzC,CAAyC,CAChF,CAAC;gBACF,IAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAc,CAAC,CAAC;gBAC9D,IAAA,KAA8B,IAAI,CAAC,KAAK,kBAAf,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,CAAgB;gBACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,IAAM,UAAU,GAAgB,IAAI,CAAC,cAAc,CACjD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,OAAO,EACzB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAC5C,CAAC;gBACF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;oBACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;oBACxB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK;iBACvB,CAAC,CAAC;gBACH,IAAM,YAAY,uCAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,EAAE,EAAE,iBAAU,IAAI,CAAC,UAAU,CAAE,EAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC9B,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAc,EACjC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EACzF,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,yBAAyB,EAAE,IAAI,IAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,GACvB,IAAA,+BAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAChE,CAAC;gBACF,IAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;oBACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;iBAClC,CAAC;gBAEF,OAAO,CACL,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,SAAS,EAAE,kBAAU,CAAC,uBAAuB,EAC7C,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,IAAI,CAAC,YAAY,EACxC,iBAAiB,EAAE,qBAAqB,EACxC,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,kBAAkB,EAChB,iBAAiB,IAAI,gBAAc,CAAC,CAAC,CAAC,gCAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,gCAAkB,CAAC,QAAQ,EAEnG,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAC/C,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAC9C,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,IACpC,CAAC,IAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,WAAW,IAAI,EAAE,iBAAiB,EAAE,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;oBACtG,sCAAsC;oBACtC,kDAAkD;oBAClD,QAAQ,EAAE,UAAC,KAAkB;wBAC3B,OAAO,CACL;4BACE,+BAAI,KAAI,CAAC,KAAK,CAAK;4BACnB,+BACG,gBAAc;gCACb,KAAI,CAAC,YAAY,CACf,KAAK,CAAC,MAAO,EACb,KAAK,CAAC,MAAO,EACb,KAAK,CAAC,eAAgB,EACtB,KAAK,CAAC,cAAe,EACrB,KAAK,CAAC,eAAe,CACtB,CACD,CACH,CACJ,CAAC;oBACJ,CAAC,IACD,CACH,CAAC;aACH;YACD,OAAO,CACL,6BACE,EAAE,EAAE,IAAI,CAAC,aAAa,EACtB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBACX,8BAA8B,GAC1C,CACH,CAAC;QACJ,CAAC;QAsMO,kDAAY,GAApB;YACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YACnC,IAAA,KAAK,GAAK,IAAI,CAAC,KAAK,MAAf,CAAgB;YACrB,IAAA,OAAO,GAAK,KAAM,QAAX,CAAY;YAC3B,mDAAmD;YACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACnH,IAAI,CAAC,UAAU,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAe,CAAC;YACnF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAEO,yDAAmB,GAA3B;YACE,IAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAM,OAAO,GAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,eAAe;gBAC5D,IAAI,KAAK,GAAW,CAAC,CAAC;gBACtB,eAAe,CAAC,SAAU,CAAC,OAAO,CAAC,UAAC,KAAwB;oBAC1D,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,UAAoB,CAAC,CAAC;gBACnD,OAAO;oBACL,CAAC,EAAE,eAAe,CAAC,UAAU;oBAC7B,CAAC,EAAE,KAAK;iBACT,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,OAAO,OAAO,CAAC;QACjB,CAAC;QAMO,oDAAc,GAAtB,UAAuB,KAAyB;YAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,sBAAc,IACb,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAC3B,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QAaO,oDAAc,GAAtB,UAAuB,WAAmB;YACxC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW,EAAE;gBAC7C,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;aACJ;QACH,CAAC;QAEO,oDAAc,GAAtB,UAAuB,WAAmB;YACxC,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC;QAEO,oDAAc,GAAtB;YACE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;QAEO,oDAAc,GAAtB,UACE,IAAkC,EAClC,OAAiB,EACjB,WAA0B;YAH5B,iBAsEC;YAjEC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACzB,OAAO,yCAAK,CAAC;aACd;YACD,IAAM,cAAc,GAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAChH,IAAM,OAAO,GAAc,EAAE,CAAC;YACtB,IAAA,KAA8B,IAAI,CAAC,KAAK,mBAAf,EAAzB,kBAAkB,mBAAG,IAAI,KAAA,CAAgB;YAEjD,IAAI,CAAC,OAAO,CAAC,UAAC,eAA2C;gBACvD,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,UAAC,KAAwB;oBACzD,IAAM,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpG,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,GAAY,IAAK,OAAA,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAAjD,CAAiD,CAAC,CAAC;oBAChH,IAAI,mBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;wBACnC,OAAO;qBACR;oBAED,IAAM,MAAM,GAAY;wBACtB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE;4BACN,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpC,CAAC;wBACD,WAAW,EAAE,kBAAkB;4BAC7B,CAAC,CAAC;gCACE,KAAI,CAAC,sBAAsB,EAAE,CAAC;gCAC9B,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BACpC,CAAC;4BACH,CAAC,CAAC,SAAS;wBACb,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,SAAS;qBAC/E,CAAC;oBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAM,aAAa,GAAc,EAAE,CAAC;YACpC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,WAAW,CAAC,OAAO,CAAC,UAAC,KAAkB;oBACrC,IAAM,MAAM,GAAY;wBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,sBAAsB,EAAE,IAAI;wBAC5B,MAAM,EAAE;4BACN,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;wBACD,WAAW,EAAE,kBAAkB;4BAC7B,CAAC,CAAC;gCACE,KAAI,CAAC,sBAAsB,EAAE,CAAC;gCAC9B,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACnC,CAAC;4BACH,CAAC,CAAC,SAAS;wBACb,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,SAAS;qBAC/E,CAAC;oBACF,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;aACJ;YACD,IAAM,YAAY,GAAc,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,CACL,oBAAC,eAAO,qBACN,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAC9C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB,EACpD,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,mCAAmC,EACzE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,IACxC,IAAI,CAAC,KAAK,CAAC,WAAW,EAC1B,CACH,CAAC;QACJ,CAAC;QAEO,kDAAY,GAApB,UACE,UAAkB,EAClB,KAAwB,EACxB,KAAa,EACb,UAAwC;YAExC,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;QAEO,uDAAiB,GAAzB,UACE,UAAkB,EAClB,KAAwB,EACxB,KAAa,EACb,WAAuD;YAEvD,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;gBACtC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC;oBACZ,WAAW,aAAA;oBACX;;;uBAGG;oBACH,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,MAAM;oBAChG,aAAa,EAAE,KAAK,CAAC,MAAM;oBAC3B,gBAAgB,EAAE,KAAK,CAAC,IAAI;oBAC5B,KAAK,OAAA;oBACL,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;oBAC3E,aAAa,EAAE,KAAK,CAAC,gBAAgB;oBACrC,qBAAqB,EAAE,KAAK;oBAC5B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;iBACzD,CAAC,CAAC;aACJ;QACH,CAAC;QAyBO,mDAAa,GAArB,UAAsB,KAAiC,EAAE,UAAwC;YAC/F,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QAEO,wDAAkB,GAA1B,UACE,KAAiC,EACjC,WAAuD;YAEvD,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAM,cAAc,GAAY,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9E,IAAI,cAAc,EAAE;gBAClB,QAAS,CAAC,OAAO,CAAC,UAAC,IAA+E;oBAChG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACrC,CAAC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,QAAQ,CAAC;gBACZ,WAAW,aAAA;gBACX,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,cAAc;oBACzB,CAAC,iDAAK,QAAS,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,IAAK,GAAG,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA5B,CAA4B,CAAC,SAAK,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAClG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;gBACrC,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,iBAAiB,EAAE,KAAK;gBACxB,oBAAoB,EAAE,KAAK,CAAC,UAAU;gBACtC,wBAAwB,EAAE,KAAK,CAAC,6BAA6B;aAC9D,CAAC,CAAC;QACL,CAAC;QAEO,kDAAY,GAApB,UAAqB,KAAwB,EAAE,UAAkB,EAAE,KAAa,EAAE,GAAkB;YAClG,IAAI,GAAG,CAAC,UAAU,EAAE;gBAClB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;aAClE;QACH,CAAC;QAEO,mDAAa,GAArB,UAAsB,KAAiC,EAAE,QAAuB;YAC9E,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;aACrD;QACH,CAAC;QAcO,8CAAQ,GAAhB,UACE,IAAoD,EACpD,UAAwC;;YAExC,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,UAAU,mDAAG,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,CAAC;QAEO,wDAAkB,GAA1B,UACE,IAAyB,EACzB,SAAuB,EACvB,kBAA2B;YAKnB,IAAA,KAAkB,IAAI,CAAC,KAAK,UAAf,EAAb,SAAS,mBAAG,CAAC,KAAA,CAAgB;YAErC,mEAAmE;YACnE,oEAAoE;YACpE,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,IAAI,GAAG,KAAK,CAAC,IAAI,EAAjB,CAAiB,EAAE,CAAC,CAAC,CAAC;YACrE,IAAM,WAAW,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,SAAS,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAM,IAAI,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,IAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC5G,IAAM,gBAAgB,GAAG,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;YAEtE,OAAO;gBACL,SAAS,WAAA;gBACT,gBAAgB,kBAAA;aACR,CAAC;QACb,CAAC;QA8TO,mDAAa,GAArB;YACE,OAAO,CAAC,CACN,IAAI,CAAC,KAAK,CAAC,IAAI;gBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC,MAAM,KAAK,CAAC,CACzE,CAAC;QACJ,CAAC;QACH,kCAAC;IAAD,CAAC,AAh9BD,CAAiD,KAAK,CAAC,SAAS,GAg9B/D;IAh9BY,kEAA2B","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette, IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\nimport { formatPrefix as d3FormatPrefix } from 'd3-format';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\nconst MIN_DOMAIN_MARGIN = 8;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n calloutLegend: string;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n private _calloutAnchorPoint: IVSChartDataPoint | null;\n private _domainMargin: number;\n private _classNames: IProcessedStyleSet<IVerticalStackedBarChartStyles>;\n private _emptyChartId: string;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n selectedLegend: '',\n activeLegend: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n calloutLegend: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n if (this._isChartEmpty()) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n this._domainMargin = MIN_DOMAIN_MARGIN;\n this._emptyChartId = getId('_VSBC_empty');\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n if (!this._isChartEmpty()) {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n href: this.props.href!,\n });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.calloutLegend,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n getDomainMargins={this._getDomainMargins}\n {...(this._xAxisType !== XAxisTypes.NumericAxis && { xAxisInnerPadding: 2 / 3, xAxisOuterPadding: 0 })}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(\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 return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.selectedLegend !== '') {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n secondaryYScale?: NumericScale,\n ): JSX.Element => {\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const borderForLines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n const { theme } = this.props;\n const lineBorderWidth = this.props.lineOptions?.lineBorderWidth\n ? Number.parseFloat(this.props.lineOptions!.lineBorderWidth!.toString())\n : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const xScaleBandwidthTranslate = isNumeric ? 0 : (xBarScale as any).bandwidth() / 2;\n Object.keys(lineObject).forEach((item: string, index: number) => {\n const shouldHighlight = this._legendHighlighted(item) || this._noLegendHighlighted(); // item is legend name\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i - 1].xItem.xAxisPoint as string);\n const useSecondaryYScale =\n lineObject[item][i - 1].useSecondaryYScale && lineObject[item][i].useSecondaryYScale && secondaryYScale;\n const y1 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i - 1].y) : yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(lineObject[item][i].xItem.xAxisPoint as string);\n const y2 = useSecondaryYScale ? secondaryYScale!(lineObject[item][i].y) : yScale(lineObject[item][i].y);\n\n if (lineBorderWidth > 0) {\n borderForLines.push(\n <line\n key={`${index}-${i}-BorderLine`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3 + lineBorderWidth * 2}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n stroke={theme!.palette.white}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n }\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n strokeLinecap=\"round\"\n stroke={lineObject[item][i].color}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...(this.state.selectedLegend === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (xBarScale as any)(circlePoint.xItem.xAxisPoint as string)\n }\n cy={\n circlePoint.useSecondaryYScale && secondaryYScale ? secondaryYScale(circlePoint.y) : yScale(circlePoint.y)\n }\n onMouseOver={\n this.state.selectedLegend === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(this.state.selectedLegend === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />,\n );\n });\n });\n return (\n <>\n {borderForLines}\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { selectedLegend, activeXAxisDataPoint } = this.state;\n if (selectedLegend !== '') {\n if (xAxispoint === activeXAxisDataPoint && selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (selectedLegend === legend) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 16;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(legendTitle: string): void {\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.legend);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend\n ? () => {\n this._handleChartMouseLeave();\n this._onLegendHover(point.title);\n }\n : undefined,\n onMouseOutAction: allowHoverOnLegend ? () => this._onLegendLeave() : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected,\n /**\n * Show the callout if highlighted bar is focused/hovered\n * and Hide it if unhighlighted bar is focused/hovered\n */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === point.legend,\n calloutLegend: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis\n ? (singleChartData.xAxisPoint as number)\n : (singleChartData.xAxisPoint as string),\n );\n const xScaleBandwidthTranslate =\n this._xAxisType === XAxisTypes.NumericAxis ? 0 : (xBarScale.bandwidth() - this._barWidth) / 2;\n let barTotalValue = 0;\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n const shouldHighlight = this._legendHighlighted(point.legend) || this._noLegendHighlighted() ? true : false;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData, point),\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n role: 'img',\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < Math.max(Math.ceil(this._yMax / 100.0), barMinimumHeight)) {\n barHeight = Math.max(Math.ceil(this._yMax / 100.0), barMinimumHeight);\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n barTotalValue += point.data;\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={this._classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 0) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={this._classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-label': this._getAriaLabel(singleChartData),\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'img',\n };\n return (\n <g key={indexNumber + `${shouldFocusWholeStack}`}>\n <g id={`${indexNumber}-singleBar`} ref={e => (groupRef.refElement = e)} {...stackFocusProps}>\n {singleBar}\n </g>\n {!this.props.hideLabels && this._barWidth >= 16 && (\n <text\n x={xPoint + this._barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={this._classNames.barLabel}\n aria-label={`Total: ${barTotalValue}`}\n role=\"img\"\n transform={`translate(${xScaleBandwidthTranslate}, 0)`}\n >\n {d3FormatPrefix(barTotalValue < 1000 ? '.2~' : '.1', barTotalValue)(barTotalValue)}\n </text>\n )}\n </g>\n );\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n const xMin = d3Min(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, xMin] : [xMin, xMax])\n .nice()\n .range([\n this.margins.left! + this._domainMargin,\n containerWidth - this.margins.right! - this._barWidth - this._domainMargin,\n ]);\n\n return { xBarScale, yBarScale };\n } else {\n const xBarScale = d3ScaleBand()\n .domain(this._xAxisLabels)\n .range([this.margins.left! + this._domainMargin, containerWidth - this.margins.right! - this._domainMargin])\n .paddingInner(2 / 3);\n\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _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 (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.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 private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (singleChartData: IVerticalStackedChartProps, point?: IVSChartDataPoint): string => {\n if (!point) {\n /** if shouldFocusWholeStack is true */\n const xValue = singleChartData.xAxisCalloutData || singleChartData.xAxisPoint;\n const pointValues = singleChartData.chartData\n .map(pt => {\n const legend = pt.legend;\n const yValue = pt.yAxisCalloutData || pt.data;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n const lineValues = singleChartData.lineData\n ?.map(ln => {\n const legend = ln.legend;\n const yValue = ln.yAxisCalloutData || ln.data || ln.y;\n return `${legend}, ${yValue}.`;\n })\n .join(' ');\n return (\n singleChartData.stackCallOutAccessibilityData?.ariaLabel ||\n `${xValue}. ${pointValues}` + (lineValues ? ` ${lineValues}` : '')\n );\n }\n /** if shouldFocusWholeStack is false */\n const xValue = singleChartData.xAxisCalloutData || point.xAxisCalloutData || singleChartData.xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n private _getDomainMargins = (containerWidth: number): IMargins => {\n if (this._xAxisType !== XAxisTypes.NumericAxis) {\n /** Total width available to render the bars */\n const totalWidth =\n containerWidth - (this.margins.left! + MIN_DOMAIN_MARGIN) - (this.margins.right! + MIN_DOMAIN_MARGIN);\n let barWidth = Math.min(this.props.barWidth || 16, 24);\n /** Total width required to render the bars. Directly proportional to bar width */\n const reqWidth = (3 * this._xAxisLabels.length - 2) * barWidth;\n\n this._domainMargin = MIN_DOMAIN_MARGIN;\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n this._domainMargin += (totalWidth - reqWidth) / 2;\n } else {\n /** Maximum possible bar width to maintain 2:1 spacing */\n const maxBandwidth = totalWidth / (3 * this._xAxisLabels.length - 2);\n barWidth = maxBandwidth;\n }\n this._barWidth = barWidth;\n }\n\n return {\n ...this.margins,\n left: this.margins.left! + this._domainMargin,\n right: this.margins.right! + this._domainMargin,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.length > 0 &&\n this.props.data.filter(item => item.chartData.length === 0).length === 0\n );\n }\n}\n"]}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IVerticalStackedBarChartProps } from './VerticalStackedBarChart.types';
|
|
3
|
+
/**
|
|
4
|
+
* VerticalStackedBarchart component.
|
|
5
|
+
* {@docCategory VerticalStackedBarChart}
|
|
6
|
+
*/
|
|
3
7
|
export declare const VerticalStackedBarChart: React.FunctionComponent<IVerticalStackedBarChartProps>;
|
|
@@ -3,6 +3,10 @@ define(["require", "exports", "../../Utilities", "./VerticalStackedBarChart.base
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.VerticalStackedBarChart = void 0;
|
|
5
5
|
// Create a VerticalStackedBarChart variant which uses these default styles and this styled subcomponent.
|
|
6
|
+
/**
|
|
7
|
+
* VerticalStackedBarchart component.
|
|
8
|
+
* {@docCategory VerticalStackedBarChart}
|
|
9
|
+
*/
|
|
6
10
|
exports.VerticalStackedBarChart = (0, Utilities_1.styled)(VerticalStackedBarChart_base_1.VerticalStackedBarChartBase, VerticalStackedBarChart_styles_1.getStyles);
|
|
7
11
|
});
|
|
8
12
|
//# sourceMappingURL=VerticalStackedBarChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalStackedBarChart.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.tsx"],"names":[],"mappings":";;;;IAUA,yGAAyG;
|
|
1
|
+
{"version":3,"file":"VerticalStackedBarChart.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.tsx"],"names":[],"mappings":";;;;IAUA,yGAAyG;IACzG;;;OAGG;IACU,QAAA,uBAAuB,GAA2D,IAAA,kBAAM,EAInG,0DAA2B,EAAE,0CAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport {\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n} from './VerticalStackedBarChart.types';\nimport { VerticalStackedBarChartBase } from './VerticalStackedBarChart.base';\nimport { getStyles } from './VerticalStackedBarChart.styles';\n\n// Create a VerticalStackedBarChart variant which uses these default styles and this styled subcomponent.\n/**\n * VerticalStackedBarchart component.\n * {@docCategory VerticalStackedBarChart}\n */\nexport const VerticalStackedBarChart: React.FunctionComponent<IVerticalStackedBarChartProps> = styled<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles\n>(VerticalStackedBarChartBase, getStyles);\n"]}
|
|
@@ -3,6 +3,10 @@ import { IStyle } from '@fluentui/react/lib/Styling';
|
|
|
3
3
|
import { ICalloutProps } from '@fluentui/react/lib/Callout';
|
|
4
4
|
import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';
|
|
5
5
|
import { ICartesianChartProps, ICartesianChartStyleProps, ICartesianChartStyles, ILineChartLineOptions, IVerticalStackedChartProps, IVSChartDataPoint } from '../../index';
|
|
6
|
+
/**
|
|
7
|
+
* IVerticalStackedBarChartProps for VerticalStackedBarchart component.
|
|
8
|
+
* {@docCategory VerticalStackedBarChart}
|
|
9
|
+
*/
|
|
6
10
|
export interface IVerticalStackedBarChartProps extends ICartesianChartProps {
|
|
7
11
|
/**
|
|
8
12
|
* Data to render in the chart.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart.\n */\n barWidth?: number;\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is not supported for bar charts, so only allow \"undefined\"\n */\n yMinValue?: undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\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?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n}\n\nexport interface IVerticalStackedBarChartStyleProps extends ICartesianChartStyleProps {}\n\nexport interface IVerticalStackedBarChartStyles extends ICartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * Style for the bar labels\n */\n barLabel: IStyle;\n\n /**\n * Style for the chart.\n * @deprecated use root instead.\n */\n chart?: IStyle;\n\n /**\n * Style for the line representing the domain of the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisText?: IStyle;\n\n /**\n * Style for the line representing the domain of the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisText?: IStyle;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"VerticalStackedBarChart.types.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n ICartesianChartProps,\n ICartesianChartStyleProps,\n ICartesianChartStyles,\n ILineChartLineOptions,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n} from '../../index';\n\n/**\n * IVerticalStackedBarChartProps for VerticalStackedBarchart component.\n * {@docCategory VerticalStackedBarChart}\n */\nexport interface IVerticalStackedBarChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IVerticalStackedChartProps[];\n\n /**\n * Width of each bar in the chart.\n */\n barWidth?: number;\n\n /**\n * Gap (max) between bars in a stack. When non-zero, the bars in a stack will\n * be separated by gaps. The actual size of each gap is calculated as 20% of\n * the height of that stack, with a minimum size of 1px and a maximum given by\n * this prop.\n * @default 0\n */\n barGapMax?: number;\n\n /**\n * Corner radius of the bars\n * @default 0\n */\n barCornerRadius?: number;\n\n /**\n * The minimum height of a bar; bars below this height will be displayed at\n * this height. Note that this setting will result in the height of these data\n * points not being to scale.\n * @default 0\n */\n barMinimumHeight?: number;\n\n /**\n * Colors from which to select the color of each bar.\n * @deprecated Not using this prop. DIrectly taking color from given data.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default flase\n */\n isCalloutForStack?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<IVerticalStackedChartProps>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<IVSChartDataPoint>;\n\n /**\n * props for the callout in the chart\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * yMinValue is not supported for bar charts, so only allow \"undefined\"\n */\n yMinValue?: undefined;\n\n /**\n * Allow hover actions on the legend\n * @default true\n */\n allowHoverOnLegend?: boolean;\n\n /**\n * Click handler for bars; type of data is dependant on isCalloutForStack\n */\n onBarClick?: (event: React.MouseEvent<SVGElement>, data: IVerticalStackedChartProps | IVSChartDataPoint) => void;\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?: ILineChartLineOptions;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n}\n\nexport interface IVerticalStackedBarChartStyleProps extends ICartesianChartStyleProps {}\n\nexport interface IVerticalStackedBarChartStyles extends ICartesianChartStyles {\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * Style for the bar labels\n */\n barLabel: IStyle;\n\n /**\n * Style for the chart.\n * @deprecated use root instead.\n */\n chart?: IStyle;\n\n /**\n * Style for the line representing the domain of the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the x-axis.\n * @deprecated - use xAxis instead.\n */\n xAxisText?: IStyle;\n\n /**\n * Style for the line representing the domain of the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisDomain?: IStyle;\n\n /**\n * Style for the lines representing the ticks along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisTicks?: IStyle;\n\n /**\n * Style for the text labeling each tick along the y-axis.\n * @deprecated - use xAxis instead.\n */\n yAxisText?: IStyle;\n}\n"]}
|
package/lib-amd/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
define(["require", "exports", "@fluentui/set-version"], function (require, exports, set_version_1) {
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
(0, set_version_1.setVersion)('@fluentui/react-charting', '5.
|
|
4
|
+
(0, set_version_1.setVersion)('@fluentui/react-charting', '5.18.0');
|
|
5
5
|
});
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
package/lib-amd/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,IAAA,wBAAU,EAAC,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,IAAA,wBAAU,EAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.18.0');"]}
|
|
@@ -5,5 +5,9 @@ var Utilities_1 = require("@fluentui/react/lib/Utilities");
|
|
|
5
5
|
var AreaChart_base_1 = require("../AreaChart/AreaChart.base");
|
|
6
6
|
var AreaChart_styles_1 = require("./AreaChart.styles");
|
|
7
7
|
// Create a AreaChart variant which uses these default styles and this styled subcomponent.
|
|
8
|
+
/**
|
|
9
|
+
* Areachart component.
|
|
10
|
+
* {@docCategory AreaChart}
|
|
11
|
+
*/
|
|
8
12
|
exports.AreaChart = (0, Utilities_1.styled)(AreaChart_base_1.AreaChartBase, AreaChart_styles_1.getStyles);
|
|
9
13
|
//# sourceMappingURL=AreaChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.tsx"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD,8DAA4D;AAC5D,uDAA+C;AAE/C,2FAA2F;
|
|
1
|
+
{"version":3,"file":"AreaChart.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.tsx"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD,8DAA4D;AAC5D,uDAA+C;AAE/C,2FAA2F;AAC3F;;;GAGG;AACU,QAAA,SAAS,GAA6C,IAAA,kBAAM,EAIvE,8BAAa,EAAE,4BAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '@fluentui/react/lib/Utilities';\nimport { IAreaChartProps, IAreaChartStyleProps, IAreaChartStyles } from '../../index';\nimport { AreaChartBase } from '../AreaChart/AreaChart.base';\nimport { getStyles } from './AreaChart.styles';\n\n// Create a AreaChart variant which uses these default styles and this styled subcomponent.\n/**\n * Areachart component.\n * {@docCategory AreaChart}\n */\nexport const AreaChart: React.FunctionComponent<IAreaChartProps> = styled<\n IAreaChartProps,\n IAreaChartStyleProps,\n IAreaChartStyles\n>(AreaChartBase, getStyles);\n"]}
|
|
@@ -2,6 +2,10 @@ import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Uti
|
|
|
2
2
|
import { IChartProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, ICustomizedCalloutData, IMargins } from '../../types/index';
|
|
3
3
|
import { ICartesianChartStyles, ICartesianChartStyleProps, ICartesianChartProps, IChildProps } from '../CommonComponents/CartesianChart.types';
|
|
4
4
|
export type { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins };
|
|
5
|
+
/**
|
|
6
|
+
* IAreaChartProps properties for area chart.
|
|
7
|
+
* {@docCategory AreaChart}
|
|
8
|
+
*/
|
|
5
9
|
export interface IAreaChartProps extends ICartesianChartProps {
|
|
6
10
|
/**
|
|
7
11
|
* Data to render in the chart.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.types.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n IChartProps,\n IRefArrayData,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n} from '../../types/index';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n ICartesianChartProps,\n IChildProps,\n} from '../CommonComponents/CartesianChart.types';\n\nexport type { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins };\nexport interface IAreaChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IChartProps;\n\n /**\n * This prop is used to draw Y axis grid lines on the chart. Default value will be false\n * @deprecated now lines are shown by default\n * no need to use this prop\n */\n showYAxisGridLines?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<ICustomizedCalloutData>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<ICustomizedCalloutData>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * @default false\n * The prop used to enable the perf optimization\n */\n enablePerfOptimization?: boolean;\n\n /*\n * Optimize area chart rendering for large data set.\n */\n optimizeLargeData?: boolean;\n}\n\nexport interface IAreaChartStyles extends ICartesianChartStyles {}\n\nexport interface IAreaChartStyleProps extends ICartesianChartStyleProps {}\n"]}
|
|
1
|
+
{"version":3,"file":"AreaChart.types.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IRenderFunction, IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport {\n IChartProps,\n IRefArrayData,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n} from '../../types/index';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n ICartesianChartProps,\n IChildProps,\n} from '../CommonComponents/CartesianChart.types';\n\nexport type { IChildProps, IRefArrayData, IBasestate, ILineChartDataPoint, ILineChartPoints, IMargins };\n\n/**\n * IAreaChartProps properties for area chart.\n * {@docCategory AreaChart}\n */\nexport interface IAreaChartProps extends ICartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data: IChartProps;\n\n /**\n * This prop is used to draw Y axis grid lines on the chart. Default value will be false\n * @deprecated now lines are shown by default\n * no need to use this prop\n */\n showYAxisGridLines?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n\n /**\n * Define a custom callout renderer for a data point\n */\n onRenderCalloutPerDataPoint?: IRenderFunction<ICustomizedCalloutData>;\n\n /**\n * Define a custom callout renderer for a stack; default is to render per data point\n */\n onRenderCalloutPerStack?: IRenderFunction<ICustomizedCalloutData>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * @default false\n * The prop used to enable the perf optimization\n */\n enablePerfOptimization?: boolean;\n\n /*\n * Optimize area chart rendering for large data set.\n */\n optimizeLargeData?: boolean;\n}\n\nexport interface IAreaChartStyles extends ICartesianChartStyles {}\n\nexport interface IAreaChartStyleProps extends ICartesianChartStyleProps {}\n"]}
|
|
@@ -430,7 +430,7 @@ export interface IModifiedCartesianChartProps extends ICartesianChartProps {
|
|
|
430
430
|
/**
|
|
431
431
|
* To enable callout for individualbar or complete stack. Using for only Vertical stacked bar chart.
|
|
432
432
|
* @default false
|
|
433
|
-
* @type {boolean}
|
|
433
|
+
* @type \{boolean \}
|
|
434
434
|
*/
|
|
435
435
|
isCalloutForStack?: boolean;
|
|
436
436
|
/** dataset values to find out domain of the String axis
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartesianChart.types.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport { ITheme, IStyle } from '@fluentui/react/lib/Styling';\nimport { IOverflowSetProps } from '@fluentui/react/lib/OverflowSet';\nimport { IFocusZoneProps, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { ILegendsProps } from '../Legends/index';\nimport { IAccessibilityProps, IMargins } from '../../types/index';\nimport { ChartTypes, IChartHoverCardProps, XAxisTypes, YAxisType } from '../../utilities/index';\nimport * as d3TimeFormat from 'd3-time-format';\n\nexport interface ICartesianChartStyleProps {\n /**\n * Theme (provided through customization.)\n */\n theme: ITheme;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n\n /**\n * Width of the chart.\n */\n width?: number;\n\n /**\n * Height of the chart.\n */\n height?: number;\n\n /**\n * Color of the chart.\n */\n color?: string;\n\n /**\n * Link to redirect if click action for graph\n */\n href?: string;\n\n /**\n * prop to check if the chart is selected or hovered upon to determine opacity\n */\n shouldHighlight?: boolean;\n\n /**\n * prop to check if the Page is in Rtl\n */\n isRtl?: boolean;\n\n /**\n * color of the line\n */\n lineColor?: string;\n\n /**\n * boolean flag which determines if shape is drawn in callout\n */\n toDrawShape?: boolean;\n}\n\nexport interface ICartesianChartStyles {\n /**\n * Style for the root element.\n */\n root?: IStyle;\n\n /**\n * Style for the element containing the x-axis.\n */\n xAxis?: IStyle;\n\n /**\n * Style for the element containing the y-axis.\n */\n yAxis?: IStyle;\n\n /**\n * Style for legend container\n */\n legendContainer?: IStyle;\n\n /**\n * line hover box css\n */\n hover?: IStyle;\n\n /**\n * styles for callout root-content\n */\n calloutContentRoot?: IStyle;\n\n /**\n * styles for callout x-content\n */\n calloutContentX?: IStyle;\n\n /**\n * styles for callout y-content\n */\n calloutContentY?: IStyle;\n\n /**\n * styles for description message\n */\n descriptionMessage?: IStyle;\n\n /**\n * styles for callout Date time container\n */\n calloutDateTimeContainer?: IStyle;\n\n /**\n * styles for callout info container\n */\n calloutInfoContainer?: IStyle;\n\n /**\n * styles for callout block container\n */\n calloutBlockContainer?: IStyle;\n\n /**\n * styles for callout legend text\n */\n calloutlegendText?: IStyle;\n\n /**\n * styles for tooltip\n */\n tooltip?: IStyle;\n\n /**\n * styles for tooltip\n */\n axisTitle?: IStyle;\n\n /**\n * Style for the chart Title.\n */\n chartTitle?: IStyle;\n\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * styles for the shape object in the callout\n */\n shapeStyles?: IStyle;\n\n /**\n * Styles for the chart wrapper div\n */\n chartWrapper?: IStyle;\n}\n\nexport interface ICartesianChartProps {\n /**\n * Below height used for resizing of the chart\n * Wrap chart in your container and send the updated height and width to these props.\n * These values decide wheather chart re render or not. Please check examples for reference\n */\n height?: number;\n\n /**\n * Below width used for resizing of the chart\n * Wrap chart in your container and send the updated height and width to these props.\n * These values decide wheather chart re render or not. Please check examples for reference\n */\n width?: number;\n\n /**\n * this prop takes its parent as a HTML element to define the width and height of the chart\n */\n parentRef?: HTMLElement | null;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Margins for the chart\n * @default `{ top: 20, bottom: 35, left: 40, right: 20 }`\n * To avoid edge cuttings to the chart, we recommend you use default values or greater then default values\n */\n margins?: IMargins;\n\n /** decides wether to show/hide legends\n * @defaultvalue false\n */\n hideLegend?: boolean;\n\n /**\n * Do not show tooltips in chart\n * @default false\n */\n hideTooltip?: boolean;\n\n /**\n * this prop takes values that you want the chart to render on x-axis\n * This is a optional parameter if not specified D3 will decide which values appear on the x-axis for you\n * Please look at https://github.com/d3/d3-scale for more information on how D3 decides what data to appear on the axis of chart\n */\n tickValues?: number[] | Date[];\n\n /**\n * the format for the data on x-axis. For date object this can be specified to your requirement. Eg: '%m/%d', '%d'\n * Please look at https://github.com/d3/d3-time-format for all the formats supported for date axis\n * Only applicable for date axis. For y-axis format use yAxisTickFormat prop.\n */\n tickFormat?: string;\n\n /**\n * Width of line stroke\n */\n strokeWidth?: number;\n\n /**\n * x Axis labels tick padding. This defines the gap between tick labels and tick lines.\n * @default 10\n */\n xAxisTickPadding?: number;\n\n /**\n * the format in for the data on y-axis. For data object this can be specified to your requirement.\n * Eg: d3.format(\".0%\")(0.123),d3.format(\"+20\")(42);\n * Please look at https://github.com/d3/d3-format for all the formats supported\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxisTickFormat?: any;\n\n /**\n * Secondary y-scale options\n * By default this is not defined, meaning there will be no secondary y-scale.\n */\n secondaryYScaleOptions?: {\n /** Minimum value (0 by default) */\n yMinValue?: number;\n /** Maximum value (100 by default) */\n yMaxValue?: number;\n };\n\n /**\n * minimum data value point in y-axis\n */\n yMinValue?: number;\n\n /**\n * maximum data value point in y-axis\n */\n yMaxValue?: number;\n\n /**\n * maximum data value point in x-axis\n */\n xMaxValue?: number;\n\n /**\n * Number of ticks on the y-axis.\n * Tick count should be factor of difference between (yMinValue, yMaxValue)?\n * @default 4\n */\n yAxisTickCount?: number;\n\n /**\n * defines the number of ticks on the x-axis. Tries to match the nearest interval satisfying the count.\n * Does not work for string axis.\n * @default 6\n */\n xAxisTickCount?: number;\n\n /**\n * define the size of the tick lines on the x-axis\n * @default 10\n */\n xAxistickSize?: number;\n\n /**\n * defines the space between the tick line and the data label\n * @default 10\n */\n tickPadding?: number;\n\n /**\n * Url that the data-viz needs to redirect to upon clicking on it\n */\n href?: string;\n\n /**\n * Label to apply to the whole chart.\n * @deprecated - Use your chart label for the chart.\n */\n chartLabel?: string;\n\n /**\n * overflow props for the legends\n */\n legendsOverflowProps?: Partial<IOverflowSetProps>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n legendsOverflowText?: any;\n\n /**\n * focus zone props in hover card for legends\n */\n focusZonePropsForLegendsInHoverCard?: IFocusZoneProps;\n\n /**\n * Enable the legends to wrap lines if there is not enough space to show all legends on a single line\n */\n enabledLegendsWrapLines?: boolean;\n\n /*\n * props for the legends in the chart\n */\n legendProps?: Partial<ILegendsProps>;\n\n /**\n *@default false\n *Used for to elipse x axis labes and show tooltip on x axis labels\n */\n showXAxisLablesTooltip?: boolean;\n\n /**\n * @default 4\n * Used for X axis labels\n * While Giving showXAxisLablesTooltip prop, need to define after how many chars, we need to truncate the word.\n */\n noOfCharsToTruncate?: number;\n\n /**\n * @default false\n * Used to wrap x axis labels values (whole value)\n */\n wrapXAxisLables?: boolean;\n\n /**\n * @default false\n * Used to rotate x axis labels by 45 degrees\n */\n rotateXAxisLables?: boolean;\n\n /**\n * The prop used to define the date time localization options\n */\n dateLocalizeOptions?: Intl.DateTimeFormatOptions;\n\n /**\n * The prop used to define a custom locale for the date time format.\n */\n timeFormatLocale?: d3TimeFormat.TimeLocaleDefinition;\n\n /**\n * The prop used to define a custom datetime formatter for date axis.\n */\n customDateTimeFormatter?: (dateTime: Date) => string;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n\n /**\n * Callout customization props\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * props for the svg; use this to include aria-* or other attributes on the tag\n */\n svgProps?: React.SVGProps<SVGSVGElement>;\n\n /**\n * Prop to disable shrinking of the chart beyond a certain limit and enable scrolling when the chart overflows\n * @default True for LineChart but False for other charts\n */\n enableReflow?: boolean;\n\n /**\n * Prop to set the x axis title\n * @default undefined\n * Minimum bottom margin required for x axis title is 55px\n */\n\n xAxisTitle?: string;\n\n /**\n * Prop to set the y axis title\n * @default undefined\n * Minimum left margin required for y axis title is 60px and for RTL is 40px\n * Minimum right margin required for y axis title is 40px and for RTL is 60px\n */\n yAxisTitle?: string;\n\n /**\n * Prop to set the secondary y axis title\n * @default undefined\n * If RTL is enabled, minimum left and right margins required for secondary y axis title is 60px\n */\n secondaryYAxistitle?: string;\n}\n\nexport interface IYValueHover {\n legend?: string;\n y?: number;\n color?: string;\n data?: string | number;\n shouldDrawBorderBottom?: boolean;\n yAxisCalloutData?: string | { [id: string]: number };\n index?: number;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IChildProps {\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any;\n containerHeight?: number;\n containerWidth?: number;\n}\n\n// Only used for Cartesian chart base\nexport interface IModifiedCartesianChartProps extends ICartesianChartProps {\n /**\n * Define the chart title\n */\n chartTitle?: string;\n\n /**\n * Only used for Area chart\n * Value used to draw y axis of that chart.\n */\n maxOfYVal?: number;\n\n /**\n * Data of the chart\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any;\n\n /**\n * Define type of the chart\n */\n chartType: ChartTypes;\n\n /** X axis type */\n xAxisType: XAxisTypes;\n\n /** Y axis type */\n yAxisType?: YAxisType;\n\n /**\n * Legends of the chart.\n */\n legendBars: JSX.Element | null;\n\n /**\n * Callout props\n */\n calloutProps: Partial<ICalloutProps> & {\n isCalloutVisible: boolean;\n id: string;\n YValueHover?: IYValueHover[];\n hoverXValue?: string | number | null;\n legend?: string;\n color?: string;\n YValue?: string | number;\n XValue?: string;\n descriptionMessage?: string;\n };\n\n /**\n * Callback method used for to get margins to the chart.\n */\n getmargins?: (margins: IMargins) => void;\n\n /**\n * This is a call back method to the chart from cartesian chart.\n * params are xScale, yScale, containerHeight, containerWidth. These values were used to draw the graph.\n * It also contians an optional param xAxisElement - defines as x axis scale element.\n * This param used to enable feature word wrap of Xaxis.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getGraphData?: any;\n\n /**\n * Used for bar chart graphs.\n * To define width of the bar\n */\n barwidth?: number;\n\n /**\n * Used for tick styles of the x axis of the chart\n * Tick params are applicable for date axis only.\n */\n tickParams?: {\n tickValues?: number[] | Date[];\n tickFormat?: string;\n };\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n yAxisPadding?: number;\n\n /**\n * Children elements specific to derived chart types.\n */\n children(props: IChildProps): React.ReactNode;\n\n /**\n * To enable callout for individualbar or complete stack. Using for only Vertical stacked bar chart.\n * @default false\n * @type {boolean}\n */\n isCalloutForStack?: boolean;\n\n /** dataset values to find out domain of the String axis\n * Present using for only vertical stacked bar chart and grouped vertical bar chart\n */\n datasetForXAxisDomain?: string[];\n\n /** Own callout design */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customizedCallout?: any;\n\n /**\n * if the data points for the y-axis is of type string, then we need to give this\n * prop to construct the y-axis\n */\n stringDatasetForYAxisDomain?: string[];\n\n /**\n * Focus zone direction to the chart\n * @default FocusZoneDirection.horizontal\n */\n focusZoneDirection?: FocusZoneDirection;\n\n /**\n * props to send into the chart hover card\n */\n chartHoverProps?: IChartHoverCardProps;\n\n /**\n * props to send to the focuszone\n */\n svgFocusZoneProps?: IFocusZoneProps;\n\n /**\n * The prop used to define the culture to localize the numbers and date\n */\n culture?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getAxisData?: any;\n\n /**\n * Callback method used when mouse leaves the chart boundary.\n */\n onChartMouseLeave?: () => void;\n\n /** Callback method to get extra margins for domain */\n getDomainMargins?: (containerWidth: number) => IMargins;\n\n /** Padding between each bar/line-point */\n xAxisInnerPadding?: number;\n\n /** Padding before first bar/line-point and after last bar/line-point */\n xAxisOuterPadding?: number;\n\n /**\n *@default false\n *Used for to elipse y axis labes and show tooltip on x axis labels\n */\n showYAxisLablesTooltip?: boolean;\n\n /**\n *@default false\n *Used for showing complete y axis lables */\n showYAxisLables?: boolean;\n\n /**\n * @default false\n * Used to control the first render cycle Performance optimization code.\n */\n enableFirstRenderOptimization?: boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CartesianChart.types.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport { ITheme, IStyle } from '@fluentui/react/lib/Styling';\nimport { IOverflowSetProps } from '@fluentui/react/lib/OverflowSet';\nimport { IFocusZoneProps, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ICalloutProps } from '@fluentui/react/lib/Callout';\nimport { ILegendsProps } from '../Legends/index';\nimport { IAccessibilityProps, IMargins } from '../../types/index';\nimport { ChartTypes, IChartHoverCardProps, XAxisTypes, YAxisType } from '../../utilities/index';\nimport * as d3TimeFormat from 'd3-time-format';\n\nexport interface ICartesianChartStyleProps {\n /**\n * Theme (provided through customization.)\n */\n theme: ITheme;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n\n /**\n * Width of the chart.\n */\n width?: number;\n\n /**\n * Height of the chart.\n */\n height?: number;\n\n /**\n * Color of the chart.\n */\n color?: string;\n\n /**\n * Link to redirect if click action for graph\n */\n href?: string;\n\n /**\n * prop to check if the chart is selected or hovered upon to determine opacity\n */\n shouldHighlight?: boolean;\n\n /**\n * prop to check if the Page is in Rtl\n */\n isRtl?: boolean;\n\n /**\n * color of the line\n */\n lineColor?: string;\n\n /**\n * boolean flag which determines if shape is drawn in callout\n */\n toDrawShape?: boolean;\n}\n\nexport interface ICartesianChartStyles {\n /**\n * Style for the root element.\n */\n root?: IStyle;\n\n /**\n * Style for the element containing the x-axis.\n */\n xAxis?: IStyle;\n\n /**\n * Style for the element containing the y-axis.\n */\n yAxis?: IStyle;\n\n /**\n * Style for legend container\n */\n legendContainer?: IStyle;\n\n /**\n * line hover box css\n */\n hover?: IStyle;\n\n /**\n * styles for callout root-content\n */\n calloutContentRoot?: IStyle;\n\n /**\n * styles for callout x-content\n */\n calloutContentX?: IStyle;\n\n /**\n * styles for callout y-content\n */\n calloutContentY?: IStyle;\n\n /**\n * styles for description message\n */\n descriptionMessage?: IStyle;\n\n /**\n * styles for callout Date time container\n */\n calloutDateTimeContainer?: IStyle;\n\n /**\n * styles for callout info container\n */\n calloutInfoContainer?: IStyle;\n\n /**\n * styles for callout block container\n */\n calloutBlockContainer?: IStyle;\n\n /**\n * styles for callout legend text\n */\n calloutlegendText?: IStyle;\n\n /**\n * styles for tooltip\n */\n tooltip?: IStyle;\n\n /**\n * styles for tooltip\n */\n axisTitle?: IStyle;\n\n /**\n * Style for the chart Title.\n */\n chartTitle?: IStyle;\n\n /**\n * Style to change the opacity of bars in dataviz when we hover on a single bar or legends\n */\n opacityChangeOnHover?: IStyle;\n\n /**\n * styles for the shape object in the callout\n */\n shapeStyles?: IStyle;\n\n /**\n * Styles for the chart wrapper div\n */\n chartWrapper?: IStyle;\n}\n\nexport interface ICartesianChartProps {\n /**\n * Below height used for resizing of the chart\n * Wrap chart in your container and send the updated height and width to these props.\n * These values decide wheather chart re render or not. Please check examples for reference\n */\n height?: number;\n\n /**\n * Below width used for resizing of the chart\n * Wrap chart in your container and send the updated height and width to these props.\n * These values decide wheather chart re render or not. Please check examples for reference\n */\n width?: number;\n\n /**\n * this prop takes its parent as a HTML element to define the width and height of the chart\n */\n parentRef?: HTMLElement | null;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n\n /**\n * Theme (provided through customization.)\n */\n theme?: ITheme;\n\n /**\n * Margins for the chart\n * @default `{ top: 20, bottom: 35, left: 40, right: 20 }`\n * To avoid edge cuttings to the chart, we recommend you use default values or greater then default values\n */\n margins?: IMargins;\n\n /** decides wether to show/hide legends\n * @defaultvalue false\n */\n hideLegend?: boolean;\n\n /**\n * Do not show tooltips in chart\n * @default false\n */\n hideTooltip?: boolean;\n\n /**\n * this prop takes values that you want the chart to render on x-axis\n * This is a optional parameter if not specified D3 will decide which values appear on the x-axis for you\n * Please look at https://github.com/d3/d3-scale for more information on how D3 decides what data to appear on the axis of chart\n */\n tickValues?: number[] | Date[];\n\n /**\n * the format for the data on x-axis. For date object this can be specified to your requirement. Eg: '%m/%d', '%d'\n * Please look at https://github.com/d3/d3-time-format for all the formats supported for date axis\n * Only applicable for date axis. For y-axis format use yAxisTickFormat prop.\n */\n tickFormat?: string;\n\n /**\n * Width of line stroke\n */\n strokeWidth?: number;\n\n /**\n * x Axis labels tick padding. This defines the gap between tick labels and tick lines.\n * @default 10\n */\n xAxisTickPadding?: number;\n\n /**\n * the format in for the data on y-axis. For data object this can be specified to your requirement.\n * Eg: d3.format(\".0%\")(0.123),d3.format(\"+20\")(42);\n * Please look at https://github.com/d3/d3-format for all the formats supported\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxisTickFormat?: any;\n\n /**\n * Secondary y-scale options\n * By default this is not defined, meaning there will be no secondary y-scale.\n */\n secondaryYScaleOptions?: {\n /** Minimum value (0 by default) */\n yMinValue?: number;\n /** Maximum value (100 by default) */\n yMaxValue?: number;\n };\n\n /**\n * minimum data value point in y-axis\n */\n yMinValue?: number;\n\n /**\n * maximum data value point in y-axis\n */\n yMaxValue?: number;\n\n /**\n * maximum data value point in x-axis\n */\n xMaxValue?: number;\n\n /**\n * Number of ticks on the y-axis.\n * Tick count should be factor of difference between (yMinValue, yMaxValue)?\n * @default 4\n */\n yAxisTickCount?: number;\n\n /**\n * defines the number of ticks on the x-axis. Tries to match the nearest interval satisfying the count.\n * Does not work for string axis.\n * @default 6\n */\n xAxisTickCount?: number;\n\n /**\n * define the size of the tick lines on the x-axis\n * @default 10\n */\n xAxistickSize?: number;\n\n /**\n * defines the space between the tick line and the data label\n * @default 10\n */\n tickPadding?: number;\n\n /**\n * Url that the data-viz needs to redirect to upon clicking on it\n */\n href?: string;\n\n /**\n * Label to apply to the whole chart.\n * @deprecated - Use your chart label for the chart.\n */\n chartLabel?: string;\n\n /**\n * overflow props for the legends\n */\n legendsOverflowProps?: Partial<IOverflowSetProps>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n legendsOverflowText?: any;\n\n /**\n * focus zone props in hover card for legends\n */\n focusZonePropsForLegendsInHoverCard?: IFocusZoneProps;\n\n /**\n * Enable the legends to wrap lines if there is not enough space to show all legends on a single line\n */\n enabledLegendsWrapLines?: boolean;\n\n /*\n * props for the legends in the chart\n */\n legendProps?: Partial<ILegendsProps>;\n\n /**\n *@default false\n *Used for to elipse x axis labes and show tooltip on x axis labels\n */\n showXAxisLablesTooltip?: boolean;\n\n /**\n * @default 4\n * Used for X axis labels\n * While Giving showXAxisLablesTooltip prop, need to define after how many chars, we need to truncate the word.\n */\n noOfCharsToTruncate?: number;\n\n /**\n * @default false\n * Used to wrap x axis labels values (whole value)\n */\n wrapXAxisLables?: boolean;\n\n /**\n * @default false\n * Used to rotate x axis labels by 45 degrees\n */\n rotateXAxisLables?: boolean;\n\n /**\n * The prop used to define the date time localization options\n */\n dateLocalizeOptions?: Intl.DateTimeFormatOptions;\n\n /**\n * The prop used to define a custom locale for the date time format.\n */\n timeFormatLocale?: d3TimeFormat.TimeLocaleDefinition;\n\n /**\n * The prop used to define a custom datetime formatter for date axis.\n */\n customDateTimeFormatter?: (dateTime: Date) => string;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n\n /**\n * Callout customization props\n */\n calloutProps?: Partial<ICalloutProps>;\n\n /**\n * props for the svg; use this to include aria-* or other attributes on the tag\n */\n svgProps?: React.SVGProps<SVGSVGElement>;\n\n /**\n * Prop to disable shrinking of the chart beyond a certain limit and enable scrolling when the chart overflows\n * @default True for LineChart but False for other charts\n */\n enableReflow?: boolean;\n\n /**\n * Prop to set the x axis title\n * @default undefined\n * Minimum bottom margin required for x axis title is 55px\n */\n\n xAxisTitle?: string;\n\n /**\n * Prop to set the y axis title\n * @default undefined\n * Minimum left margin required for y axis title is 60px and for RTL is 40px\n * Minimum right margin required for y axis title is 40px and for RTL is 60px\n */\n yAxisTitle?: string;\n\n /**\n * Prop to set the secondary y axis title\n * @default undefined\n * If RTL is enabled, minimum left and right margins required for secondary y axis title is 60px\n */\n secondaryYAxistitle?: string;\n}\n\nexport interface IYValueHover {\n legend?: string;\n y?: number;\n color?: string;\n data?: string | number;\n shouldDrawBorderBottom?: boolean;\n yAxisCalloutData?: string | { [id: string]: number };\n index?: number;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport interface IChildProps {\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yScaleSecondary?: any;\n containerHeight?: number;\n containerWidth?: number;\n}\n\n// Only used for Cartesian chart base\nexport interface IModifiedCartesianChartProps extends ICartesianChartProps {\n /**\n * Define the chart title\n */\n chartTitle?: string;\n\n /**\n * Only used for Area chart\n * Value used to draw y axis of that chart.\n */\n maxOfYVal?: number;\n\n /**\n * Data of the chart\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any;\n\n /**\n * Define type of the chart\n */\n chartType: ChartTypes;\n\n /** X axis type */\n xAxisType: XAxisTypes;\n\n /** Y axis type */\n yAxisType?: YAxisType;\n\n /**\n * Legends of the chart.\n */\n legendBars: JSX.Element | null;\n\n /**\n * Callout props\n */\n calloutProps: Partial<ICalloutProps> & {\n isCalloutVisible: boolean;\n id: string;\n YValueHover?: IYValueHover[];\n hoverXValue?: string | number | null;\n legend?: string;\n color?: string;\n YValue?: string | number;\n XValue?: string;\n descriptionMessage?: string;\n };\n\n /**\n * Callback method used for to get margins to the chart.\n */\n getmargins?: (margins: IMargins) => void;\n\n /**\n * This is a call back method to the chart from cartesian chart.\n * params are xScale, yScale, containerHeight, containerWidth. These values were used to draw the graph.\n * It also contians an optional param xAxisElement - defines as x axis scale element.\n * This param used to enable feature word wrap of Xaxis.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getGraphData?: any;\n\n /**\n * Used for bar chart graphs.\n * To define width of the bar\n */\n barwidth?: number;\n\n /**\n * Used for tick styles of the x axis of the chart\n * Tick params are applicable for date axis only.\n */\n tickParams?: {\n tickValues?: number[] | Date[];\n tickFormat?: string;\n };\n\n /**\n * it's padding between bar's or lines in the graph\n */\n xAxisPadding?: number;\n\n /**\n * it's padding between bar's or lines in the graph\n */\n yAxisPadding?: number;\n\n /**\n * Children elements specific to derived chart types.\n */\n children(props: IChildProps): React.ReactNode;\n\n /**\n * To enable callout for individualbar or complete stack. Using for only Vertical stacked bar chart.\n * @default false\n * @type \\{boolean \\}\n */\n isCalloutForStack?: boolean;\n\n /** dataset values to find out domain of the String axis\n * Present using for only vertical stacked bar chart and grouped vertical bar chart\n */\n datasetForXAxisDomain?: string[];\n\n /** Own callout design */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customizedCallout?: any;\n\n /**\n * if the data points for the y-axis is of type string, then we need to give this\n * prop to construct the y-axis\n */\n stringDatasetForYAxisDomain?: string[];\n\n /**\n * Focus zone direction to the chart\n * @default FocusZoneDirection.horizontal\n */\n focusZoneDirection?: FocusZoneDirection;\n\n /**\n * props to send into the chart hover card\n */\n chartHoverProps?: IChartHoverCardProps;\n\n /**\n * props to send to the focuszone\n */\n svgFocusZoneProps?: IFocusZoneProps;\n\n /**\n * The prop used to define the culture to localize the numbers and date\n */\n culture?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getAxisData?: any;\n\n /**\n * Callback method used when mouse leaves the chart boundary.\n */\n onChartMouseLeave?: () => void;\n\n /** Callback method to get extra margins for domain */\n getDomainMargins?: (containerWidth: number) => IMargins;\n\n /** Padding between each bar/line-point */\n xAxisInnerPadding?: number;\n\n /** Padding before first bar/line-point and after last bar/line-point */\n xAxisOuterPadding?: number;\n\n /**\n *@default false\n *Used for to elipse y axis labes and show tooltip on x axis labels\n */\n showYAxisLablesTooltip?: boolean;\n\n /**\n *@default false\n *Used for showing complete y axis lables */\n showYAxisLables?: boolean;\n\n /**\n * @default false\n * Used to control the first render cycle Performance optimization code.\n */\n enableFirstRenderOptimization?: boolean;\n}\n"]}
|
|
@@ -5,5 +5,9 @@ var Utilities_1 = require("../../Utilities");
|
|
|
5
5
|
var DonutChart_base_1 = require("./DonutChart.base");
|
|
6
6
|
var DonutChart_styles_1 = require("./DonutChart.styles");
|
|
7
7
|
// Create a DonutChart variant which uses these default styles and this styled subcomponent.
|
|
8
|
+
/**
|
|
9
|
+
* Donutchart component.
|
|
10
|
+
* {@docCategory DonutChart}
|
|
11
|
+
*/
|
|
8
12
|
exports.DonutChart = (0, Utilities_1.styled)(DonutChart_base_1.DonutChartBase, DonutChart_styles_1.getStyles);
|
|
9
13
|
//# sourceMappingURL=DonutChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonutChart.js","sourceRoot":"../src/","sources":["components/DonutChart/DonutChart.tsx"],"names":[],"mappings":";;;AACA,6CAAyC;AAEzC,qDAAmD;AACnD,yDAAgD;AAEhD,4FAA4F;
|
|
1
|
+
{"version":3,"file":"DonutChart.js","sourceRoot":"../src/","sources":["components/DonutChart/DonutChart.tsx"],"names":[],"mappings":";;;AACA,6CAAyC;AAEzC,qDAAmD;AACnD,yDAAgD;AAEhD,4FAA4F;AAC5F;;;GAGG;AACU,QAAA,UAAU,GAA8C,IAAA,kBAAM,EAIzE,gCAAc,EAAE,6BAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { IDonutChartProps, IDonutChartStyleProps, IDonutChartStyles } from './DonutChart.types';\nimport { DonutChartBase } from './DonutChart.base';\nimport { getStyles } from './DonutChart.styles';\n\n// Create a DonutChart variant which uses these default styles and this styled subcomponent.\n/**\n * Donutchart component.\n * {@docCategory DonutChart}\n */\nexport const DonutChart: React.FunctionComponent<IDonutChartProps> = styled<\n IDonutChartProps,\n IDonutChartStyleProps,\n IDonutChartStyles\n>(DonutChartBase, getStyles);\n"]}
|