@evergis/charts 3.1.6 → 3.1.7
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/LICENSE +2 -2
- package/README.md +10 -0
- package/dist/charts/BarChart/draw.d.ts +2 -2
- package/dist/charts/BarChart/drawGrid/index.d.ts +2 -2
- package/dist/charts/BarChart/drawGrid/types.d.ts +8 -8
- package/dist/charts/BarChart/drawLines/index.d.ts +13 -13
- package/dist/charts/BarChart/drawLines/types.d.ts +9 -9
- package/dist/charts/BarChart/drawTooltip/getLabel.d.ts +2 -2
- package/dist/charts/BarChart/drawTooltip/getLabelY.d.ts +2 -2
- package/dist/charts/BarChart/drawTooltip/index.d.ts +2 -2
- package/dist/charts/BarChart/drawTooltip/types.d.ts +12 -13
- package/dist/charts/BarChart/getBars/index.d.ts +3 -3
- package/dist/charts/BarChart/getBars/types.d.ts +6 -6
- package/dist/charts/BarChart/getDomain.d.ts +5 -5
- package/dist/charts/BarChart/hooks/useSelection.d.ts +2 -2
- package/dist/charts/BarChart/index.d.ts +3 -3
- package/dist/charts/BarChart/marshaling.d.ts +2 -2
- package/dist/charts/BarChart/resizeBarWidth/index.d.ts +2 -2
- package/dist/charts/BarChart/resizeBarWidth/types.d.ts +5 -5
- package/dist/charts/BarChart/styled.d.ts +37 -37
- package/dist/charts/BarChart/types.d.ts +148 -148
- package/dist/charts/BubbleChart/bubbleChartDefaultProps.d.ts +14 -14
- package/dist/charts/BubbleChart/draw.d.ts +2 -2
- package/dist/charts/BubbleChart/drawGrid/index.d.ts +2 -2
- package/dist/charts/BubbleChart/drawGrid/types.d.ts +8 -8
- package/dist/charts/BubbleChart/drawTooltip/index.d.ts +2 -2
- package/dist/charts/BubbleChart/drawTooltip/styled.d.ts +1 -1
- package/dist/charts/BubbleChart/drawTooltip/types.d.ts +4 -4
- package/dist/charts/BubbleChart/index.d.ts +3 -3
- package/dist/charts/BubbleChart/styled.d.ts +17 -17
- package/dist/charts/BubbleChart/types.d.ts +55 -55
- package/dist/charts/BubbleChart/unmount.d.ts +1 -1
- package/dist/charts/CalendarChart/draw.d.ts +2 -2
- package/dist/charts/CalendarChart/index.d.ts +3 -3
- package/dist/charts/CalendarChart/styled.d.ts +18 -18
- package/dist/charts/CalendarChart/types.d.ts +22 -22
- package/dist/charts/HorizontalBarChart/Bar/index.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/Bar/styled.d.ts +1 -1
- package/dist/charts/HorizontalBarChart/Bar/types.d.ts +11 -11
- package/dist/charts/HorizontalBarChart/Tooltip/index.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/Tooltip/types.d.ts +5 -5
- package/dist/charts/HorizontalBarChart/XScale/hooks/useScale.d.ts +2 -2
- package/dist/charts/HorizontalBarChart/XScale/index.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/XScale/styled.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/hooks/useMarshaling.d.ts +5 -5
- package/dist/charts/HorizontalBarChart/hooks/useStackWrapper.d.ts +12 -12
- package/dist/charts/HorizontalBarChart/hooks/useTooltip/index.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/hooks/useTooltip/types.d.ts +6 -3
- package/dist/charts/HorizontalBarChart/index.d.ts +3 -3
- package/dist/charts/HorizontalBarChart/styled.d.ts +30 -30
- package/dist/charts/HorizontalBarChart/types.d.ts +41 -41
- package/dist/charts/LineChart/draw.d.ts +2 -2
- package/dist/charts/LineChart/drawGrid/index.d.ts +2 -2
- package/dist/charts/LineChart/drawGrid/types.d.ts +9 -9
- package/dist/charts/LineChart/drawLabel/index.d.ts +3 -3
- package/dist/charts/LineChart/drawLabel/styled.d.ts +2 -2
- package/dist/charts/LineChart/drawLabel/types.d.ts +7 -7
- package/dist/charts/LineChart/drawTooltip/index.d.ts +2 -2
- package/dist/charts/LineChart/drawTooltip/types.d.ts +9 -9
- package/dist/charts/LineChart/index.d.ts +3 -3
- package/dist/charts/LineChart/styled.d.ts +27 -27
- package/dist/charts/LineChart/types.d.ts +78 -78
- package/dist/charts/PieChart/draw.d.ts +2 -2
- package/dist/charts/PieChart/drawRadialLabels/helpers.d.ts +3 -3
- package/dist/charts/PieChart/drawRadialLabels/index.d.ts +2 -2
- package/dist/charts/PieChart/drawRadialLabels/types.d.ts +11 -11
- package/dist/charts/PieChart/drawTooltips/index.d.ts +2 -2
- package/dist/charts/PieChart/drawTooltips/types.d.ts +8 -8
- package/dist/charts/PieChart/index.d.ts +3 -3
- package/dist/charts/PieChart/styled.d.ts +18 -18
- package/dist/charts/PieChart/types.d.ts +54 -54
- package/dist/charts/RadarChart/draw.d.ts +2 -2
- package/dist/charts/RadarChart/drawRadialLabels/index.d.ts +2 -2
- package/dist/charts/RadarChart/drawRadialLabels/styled.d.ts +2 -2
- package/dist/charts/RadarChart/drawRadialLabels/types.d.ts +25 -25
- package/dist/charts/RadarChart/helpers.d.ts +2 -2
- package/dist/charts/RadarChart/index.d.ts +3 -3
- package/dist/charts/RadarChart/styled.d.ts +13 -13
- package/dist/charts/RadarChart/types.d.ts +42 -42
- package/dist/charts.esm.js +10174 -3323
- package/dist/charts.esm.js.map +1 -1
- package/dist/common/components/SwipeScroll/animate.d.ts +6 -6
- package/dist/common/components/SwipeScroll/hooks/useSwipe.d.ts +2 -2
- package/dist/common/components/SwipeScroll/index.d.ts +3 -3
- package/dist/common/components/SwipeScroll/styled.d.ts +1 -1
- package/dist/common/components/SwipeScroll/types.d.ts +8 -8
- package/dist/common/components/Wrapper.d.ts +1 -1
- package/dist/common/components/labels/index.d.ts +7 -7
- package/dist/common/components/labels/types.d.ts +6 -6
- package/dist/common/components/tooltips/index.d.ts +14 -14
- package/dist/common/types/interpolator.d.ts +1 -1
- package/dist/common/types/margin.d.ts +6 -6
- package/dist/helpers/appendSvg.d.ts +2 -2
- package/dist/helpers/common.d.ts +2 -2
- package/dist/helpers/computeDimensions.d.ts +2 -2
- package/dist/helpers/getLegend/index.d.ts +19 -19
- package/dist/helpers/getLegend/types.d.ts +15 -15
- package/dist/helpers/getTextWidth.d.ts +1 -1
- package/dist/helpers/index.d.ts +1 -1
- package/dist/helpers/math.d.ts +2 -2
- package/dist/helpers/stackedData.d.ts +2 -2
- package/dist/helpers/textAlignCenter.d.ts +2 -2
- package/dist/helpers/throttle.d.ts +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/useNode.d.ts +2 -2
- package/dist/hooks/useResize.d.ts +1 -1
- package/dist/index.d.ts +26 -26
- package/dist/index.js +10355 -5
- package/dist/index.js.map +1 -0
- package/dist/src/charts/BarChart/draw.d.ts +2 -0
- package/dist/src/charts/BarChart/drawGrid/index.d.ts +2 -0
- package/dist/src/charts/BarChart/drawGrid/types.d.ts +8 -0
- package/dist/src/charts/BarChart/drawLines/index.d.ts +13 -0
- package/dist/src/charts/BarChart/drawLines/types.d.ts +9 -0
- package/dist/src/charts/BarChart/drawTooltip/getLabel.d.ts +2 -0
- package/dist/src/charts/BarChart/drawTooltip/getLabelY.d.ts +2 -0
- package/dist/src/charts/BarChart/drawTooltip/index.d.ts +2 -0
- package/dist/src/charts/BarChart/drawTooltip/types.d.ts +12 -0
- package/dist/src/charts/BarChart/getBars/index.d.ts +3 -0
- package/dist/src/charts/BarChart/getBars/types.d.ts +6 -0
- package/dist/src/charts/BarChart/getDomain.d.ts +5 -0
- package/dist/src/charts/BarChart/hooks/useSelection.d.ts +2 -0
- package/dist/src/charts/BarChart/index.d.ts +3 -0
- package/dist/src/charts/BarChart/marshaling.d.ts +2 -0
- package/dist/src/charts/BarChart/resizeBarWidth/index.d.ts +2 -0
- package/dist/src/charts/BarChart/resizeBarWidth/types.d.ts +5 -0
- package/dist/src/charts/BarChart/styled.d.ts +37 -0
- package/dist/src/charts/BarChart/types.d.ts +148 -0
- package/dist/src/charts/BubbleChart/bubbleChartDefaultProps.d.ts +14 -0
- package/dist/src/charts/BubbleChart/draw.d.ts +2 -0
- package/dist/src/charts/BubbleChart/drawGrid/index.d.ts +2 -0
- package/dist/src/charts/BubbleChart/drawGrid/types.d.ts +8 -0
- package/dist/src/charts/BubbleChart/drawTooltip/index.d.ts +2 -0
- package/dist/src/charts/BubbleChart/drawTooltip/styled.d.ts +1 -0
- package/dist/src/charts/BubbleChart/drawTooltip/types.d.ts +4 -0
- package/dist/src/charts/BubbleChart/index.d.ts +3 -0
- package/dist/src/charts/BubbleChart/styled.d.ts +17 -0
- package/dist/src/charts/BubbleChart/types.d.ts +55 -0
- package/dist/src/charts/BubbleChart/unmount.d.ts +1 -0
- package/dist/src/charts/CalendarChart/draw.d.ts +2 -0
- package/dist/src/charts/CalendarChart/index.d.ts +3 -0
- package/dist/src/charts/CalendarChart/styled.d.ts +18 -0
- package/dist/src/charts/CalendarChart/types.d.ts +22 -0
- package/dist/src/charts/HorizontalBarChart/Bar/index.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/Bar/styled.d.ts +1 -0
- package/dist/src/charts/HorizontalBarChart/Bar/types.d.ts +11 -0
- package/dist/src/charts/HorizontalBarChart/Tooltip/index.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/Tooltip/types.d.ts +5 -0
- package/dist/src/charts/HorizontalBarChart/XScale/hooks/useScale.d.ts +2 -0
- package/dist/src/charts/HorizontalBarChart/XScale/index.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/XScale/styled.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/hooks/useMarshaling.d.ts +5 -0
- package/dist/src/charts/HorizontalBarChart/hooks/useStackWrapper.d.ts +12 -0
- package/dist/src/charts/HorizontalBarChart/hooks/useTooltip/index.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/hooks/useTooltip/types.d.ts +6 -0
- package/dist/src/charts/HorizontalBarChart/index.d.ts +3 -0
- package/dist/src/charts/HorizontalBarChart/styled.d.ts +30 -0
- package/dist/src/charts/HorizontalBarChart/types.d.ts +41 -0
- package/dist/src/charts/LineChart/draw.d.ts +2 -0
- package/dist/src/charts/LineChart/drawGrid/index.d.ts +2 -0
- package/dist/src/charts/LineChart/drawGrid/types.d.ts +9 -0
- package/dist/src/charts/LineChart/drawLabel/index.d.ts +3 -0
- package/dist/src/charts/LineChart/drawLabel/styled.d.ts +2 -0
- package/dist/src/charts/LineChart/drawLabel/types.d.ts +7 -0
- package/dist/src/charts/LineChart/drawTooltip/index.d.ts +2 -0
- package/dist/src/charts/LineChart/drawTooltip/types.d.ts +9 -0
- package/dist/src/charts/LineChart/index.d.ts +3 -0
- package/dist/src/charts/LineChart/styled.d.ts +27 -0
- package/dist/src/charts/LineChart/types.d.ts +78 -0
- package/dist/src/charts/PieChart/draw.d.ts +2 -0
- package/dist/src/charts/PieChart/drawRadialLabels/helpers.d.ts +3 -0
- package/dist/src/charts/PieChart/drawRadialLabels/index.d.ts +2 -0
- package/dist/src/charts/PieChart/drawRadialLabels/types.d.ts +11 -0
- package/dist/src/charts/PieChart/drawTooltips/index.d.ts +2 -0
- package/dist/src/charts/PieChart/drawTooltips/types.d.ts +8 -0
- package/dist/src/charts/PieChart/index.d.ts +3 -0
- package/dist/src/charts/PieChart/styled.d.ts +18 -0
- package/dist/src/charts/PieChart/types.d.ts +54 -0
- package/dist/src/charts/RadarChart/draw.d.ts +2 -0
- package/dist/src/charts/RadarChart/drawRadialLabels/index.d.ts +2 -0
- package/dist/src/charts/RadarChart/drawRadialLabels/styled.d.ts +2 -0
- package/dist/src/charts/RadarChart/drawRadialLabels/types.d.ts +25 -0
- package/dist/src/charts/RadarChart/helpers.d.ts +2 -0
- package/dist/src/charts/RadarChart/index.d.ts +3 -0
- package/dist/src/charts/RadarChart/styled.d.ts +13 -0
- package/dist/src/charts/RadarChart/types.d.ts +42 -0
- package/dist/src/common/components/SwipeScroll/animate.d.ts +6 -0
- package/dist/src/common/components/SwipeScroll/hooks/useSwipe.d.ts +2 -0
- package/dist/src/common/components/SwipeScroll/index.d.ts +3 -0
- package/dist/src/common/components/SwipeScroll/styled.d.ts +1 -0
- package/dist/src/common/components/SwipeScroll/types.d.ts +8 -0
- package/dist/src/common/components/Wrapper.d.ts +1 -0
- package/dist/src/common/components/labels/index.d.ts +7 -0
- package/dist/src/common/components/labels/types.d.ts +6 -0
- package/dist/src/common/components/tooltips/index.d.ts +14 -0
- package/dist/src/common/types/interpolator.d.ts +1 -0
- package/dist/src/common/types/margin.d.ts +6 -0
- package/dist/src/helpers/appendSvg.d.ts +2 -0
- package/dist/src/helpers/common.d.ts +2 -0
- package/dist/src/helpers/computeDimensions.d.ts +2 -0
- package/dist/src/helpers/getLegend/index.d.ts +19 -0
- package/dist/src/helpers/getLegend/types.d.ts +15 -0
- package/dist/src/helpers/getTextWidth.d.ts +1 -0
- package/dist/src/helpers/index.d.ts +1 -0
- package/dist/src/helpers/math.d.ts +2 -0
- package/dist/src/helpers/stackedData.d.ts +2 -0
- package/dist/src/helpers/textAlignCenter.d.ts +2 -0
- package/dist/src/helpers/throttle.d.ts +1 -0
- package/dist/src/hooks/index.d.ts +2 -0
- package/dist/src/hooks/useNode.d.ts +2 -0
- package/dist/src/hooks/useResize.d.ts +1 -0
- package/dist/src/index.d.ts +26 -0
- package/package.json +17 -34
- package/dist/charts.cjs.development.js +0 -3513
- package/dist/charts.cjs.development.js.map +0 -1
- package/dist/charts.cjs.production.min.js +0 -2
- package/dist/charts.cjs.production.min.js.map +0 -1
- package/dist/jest.config.d.ts +0 -14
- package/dist/stories/Bar/Examples.stories.d.ts +0 -23
- package/dist/stories/Bar/HorizontalBar.stories.d.ts +0 -25
- package/dist/stories/Bar/Statistics.stories.d.ts +0 -7
- package/dist/stories/Bar/VerticalBar.stories.d.ts +0 -41
- package/dist/stories/Bubble/Bubble.stories.d.ts +0 -23
- package/dist/stories/Bubble/Examples.stories.d.ts +0 -4
- package/dist/stories/Bubble/examples/VEB/InvestBubble.d.ts +0 -5
- package/dist/stories/Bubble/examples/VEB/hooks/useCustomize.d.ts +0 -3
- package/dist/stories/Bubble/examples/VEB/hooks/useRenderTooltip/index.d.ts +0 -4
- package/dist/stories/Bubble/examples/VEB/hooks/useRenderTooltip/styled.d.ts +0 -8
- package/dist/stories/Bubble/examples/VEB/styled.d.ts +0 -1
- package/dist/stories/Calendar/Calendar.stories.d.ts +0 -23
- package/dist/stories/Calendar/ColorScheme.stories.d.ts +0 -7
- package/dist/stories/Calendar/Examples.stories.d.ts +0 -11
- package/dist/stories/Calendar/Legend.stories.d.ts +0 -30
- package/dist/stories/Common/SwipeScroll/SwipeScroll.stories.d.ts +0 -13
- package/dist/stories/Common/SwipeScroll/hooks/useSwipe.d.ts +0 -1
- package/dist/stories/Line/Examples.stories.d.ts +0 -7
- package/dist/stories/Line/Line.stories.d.ts +0 -48
- package/dist/stories/Line/examples/Beeline.d.ts +0 -5
- package/dist/stories/Line/examples/GeoVeb.d.ts +0 -5
- package/dist/stories/Line/examples/GeoVebInterval/data.d.ts +0 -9
- package/dist/stories/Line/examples/GeoVebInterval/index.d.ts +0 -5
- package/dist/stories/Line/examples/GeoVebInterval/styled.d.ts +0 -4
- package/dist/stories/Line/examples/Msp.d.ts +0 -5
- package/dist/stories/Pie/ColorScheme.stories.d.ts +0 -7
- package/dist/stories/Pie/Examples.stories.d.ts +0 -7
- package/dist/stories/Pie/Pie.stories.d.ts +0 -47
- package/dist/stories/Radar/Chart.stories.d.ts +0 -38
- package/dist/stories/Radar/Github.stories.d.ts +0 -7
- package/dist/stories/Radar/Gradient.stories.d.ts +0 -7
- package/dist/stories/Radar/Veb.stories.d.ts +0 -7
- package/dist/stories/Sankey/Examples.stories.d.ts +0 -4
- package/dist/stories/Sankey/examples/RelatedIndustries/data.d.ts +0 -2
- package/dist/stories/Sankey/examples/RelatedIndustries/index.d.ts +0 -5
- package/dist/stories/__internal__/colors.d.ts +0 -40
- package/dist/stories/__internal__/components/BeelineLineChart/hooks/useCustomize.d.ts +0 -11
- package/dist/stories/__internal__/components/BeelineLineChart/hooks/useLineRenderTooltip/index.d.ts +0 -5
- package/dist/stories/__internal__/components/BeelineLineChart/hooks/useLineRenderTooltip/styled.d.ts +0 -5
- package/dist/stories/__internal__/components/BeelineLineChart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/BeelineLineChart/styled.d.ts +0 -3
- package/dist/stories/__internal__/components/BeelineRangeLineChart/Range/index.d.ts +0 -7
- package/dist/stories/__internal__/components/BeelineRangeLineChart/Range/styled.d.ts +0 -3
- package/dist/stories/__internal__/components/BeelineRangeLineChart/hooks/useChange.d.ts +0 -8
- package/dist/stories/__internal__/components/BeelineRangeLineChart/index.d.ts +0 -2
- package/dist/stories/__internal__/components/BeelineRangeLineChart/styled.d.ts +0 -4
- package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/data.d.ts +0 -5
- package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/hooks/useRenderDataTable.d.ts +0 -2
- package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/index.d.ts +0 -2
- package/dist/stories/__internal__/components/BeelineTrafficHorizontalBarChart/styled.d.ts +0 -3
- package/dist/stories/__internal__/components/Divider.d.ts +0 -6
- package/dist/stories/__internal__/components/GeoVebBarCharts.d.ts +0 -2
- package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/data.d.ts +0 -47
- package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/hooks/useRenderTooltip.d.ts +0 -3
- package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/hooks/useSimpleRenderTooltip.d.ts +0 -3
- package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/index.d.ts +0 -4
- package/dist/stories/__internal__/components/GeoVebHorizontalBarCharts/styled.d.ts +0 -4
- package/dist/stories/__internal__/components/GeoYearsBarChart/index.d.ts +0 -2
- package/dist/stories/__internal__/components/GeoYearsBarChart/styled.d.ts +0 -4
- package/dist/stories/__internal__/components/MixedTableChart/Chart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/MixedTableChart/Chart/styled.d.ts +0 -2
- package/dist/stories/__internal__/components/MixedTableChart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/MixedTableChart/styled.d.ts +0 -5
- package/dist/stories/__internal__/components/MixedTableChart/types.d.ts +0 -21
- package/dist/stories/__internal__/components/MspDashboardChart/hooks/useAnimation.d.ts +0 -5
- package/dist/stories/__internal__/components/MspDashboardChart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/MspDashboardChart/styled.d.ts +0 -5
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useAnimationAreas.d.ts +0 -6
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useAnimationBars.d.ts +0 -5
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useCustomize.d.ts +0 -4
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useData.d.ts +0 -8
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useMarshalledMap.d.ts +0 -1
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/hooks/useRenderTooltip.d.ts +0 -2
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/index.d.ts +0 -9
- package/dist/stories/__internal__/components/MspPromSupplyBarChart/styled.d.ts +0 -22
- package/dist/stories/__internal__/components/SankeyTriChart/Groups/getCSSProperties.d.ts +0 -4
- package/dist/stories/__internal__/components/SankeyTriChart/Groups/helpers.d.ts +0 -1
- package/dist/stories/__internal__/components/SankeyTriChart/Groups/index.d.ts +0 -5
- package/dist/stories/__internal__/components/SankeyTriChart/Groups/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/getCSSProperties.d.ts +0 -3
- package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/index.d.ts +0 -5
- package/dist/stories/__internal__/components/SankeyTriChart/ItemContent/styled.d.ts +0 -8
- package/dist/stories/__internal__/components/SankeyTriChart/draw.d.ts +0 -2
- package/dist/stories/__internal__/components/SankeyTriChart/helpers.d.ts +0 -9
- package/dist/stories/__internal__/components/SankeyTriChart/index.d.ts +0 -10
- package/dist/stories/__internal__/components/SankeyTriChart/marshaling.d.ts +0 -6
- package/dist/stories/__internal__/components/SankeyTriChart/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/SankeyTriChart/types.d.ts +0 -40
- package/dist/stories/__internal__/components/SberBarMixChart/colors.d.ts +0 -3
- package/dist/stories/__internal__/components/SberBarMixChart/data.d.ts +0 -8
- package/dist/stories/__internal__/components/SberBarMixChart/hooks/styled.d.ts +0 -3
- package/dist/stories/__internal__/components/SberBarMixChart/hooks/useRenderTooltip.d.ts +0 -2
- package/dist/stories/__internal__/components/SberBarMixChart/index.d.ts +0 -2
- package/dist/stories/__internal__/components/SberBarMixChart/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/StatisticsBarCharts/NumbersStatistics.d.ts +0 -2
- package/dist/stories/__internal__/components/StatisticsBarCharts/StringsStatistics.d.ts +0 -2
- package/dist/stories/__internal__/components/StatisticsBarCharts/index.d.ts +0 -2
- package/dist/stories/__internal__/components/StatisticsBarCharts/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/VebEstimationBarChart/data.d.ts +0 -38
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useCustomize.d.ts +0 -5
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useDrawBars.d.ts +0 -4
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderLabel/index.d.ts +0 -9
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderLabel/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderTooltip/index.d.ts +0 -8
- package/dist/stories/__internal__/components/VebEstimationBarChart/hooks/useRenderTooltip/styled.d.ts +0 -13
- package/dist/stories/__internal__/components/VebEstimationBarChart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/VebEstimationBarChart/styled.d.ts +0 -2
- package/dist/stories/__internal__/components/VebFilterBarChart/index.d.ts +0 -2
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderSum/index.d.ts +0 -3
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderSum/styled.d.ts +0 -1
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderTooltip/index.d.ts +0 -1
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/hooks/useRenderTooltip/styled.d.ts +0 -5
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/index.d.ts +0 -3
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/styled.d.ts +0 -5
- package/dist/stories/__internal__/components/VebGroupHorizontalBarChart/types.d.ts +0 -11
- package/dist/stories/__internal__/curves.d.ts +0 -8
- package/dist/stories/__internal__/data/msp.d.ts +0 -14
- package/dist/stories/__internal__/data/mspDashboard.d.ts +0 -1
- package/dist/stories/__internal__/data/mspPromSupply.d.ts +0 -11
- package/dist/stories/__internal__/data/population.d.ts +0 -4
- package/dist/stories/__internal__/data/veb.d.ts +0 -31
- package/dist/stories/__internal__/helpers/Path.d.ts +0 -10
- package/dist/stories/__internal__/helpers/Vector.d.ts +0 -9
- package/dist/stories/__internal__/helpers/animation.d.ts +0 -15
- package/dist/stories/__internal__/helpers/hexToRGB.d.ts +0 -1
- package/dist/stories/__internal__/helpers/random.d.ts +0 -1
- package/dist/stories/__internal__/helpers/randomData.d.ts +0 -14
- package/dist/stories/__internal__/helpers/randomHorizontalBarData.d.ts +0 -5
- package/dist/stories/__internal__/helpers/randomIntervalData.d.ts +0 -11
- package/dist/stories/__internal__/helpers/randomLineData.d.ts +0 -8
- package/dist/stories/__internal__/helpers/randomText.d.ts +0 -1
- package/dist/stories/__internal__/helpers/roundedRect.d.ts +0 -10
- package/dist/stories/__internal__/helpers/shuffleArray.d.ts +0 -1
- package/dist/stories/__internal__/hooks/useBarData.d.ts +0 -10
- package/dist/stories/__internal__/hooks/useLegend.d.ts +0 -1
- package/dist/stories/__internal__/hooks/useMinMaxValue.d.ts +0 -4
- package/dist/stories/__internal__/interpolates.d.ts +0 -23
- package/dist/storybook-static/1.05dfd83c.iframe.bundle.d.ts +0 -0
- package/dist/storybook-static/189.8c077122866758d3cf20.manager.bundle.d.ts +0 -0
- package/dist/storybook-static/190.58050c9beb344d4cefd9.manager.bundle.d.ts +0 -2
- package/dist/storybook-static/191.b202c06c72968435b80b.manager.bundle.d.ts +0 -0
- package/dist/storybook-static/192.83987c5b15f8a80893c5.manager.bundle.d.ts +0 -0
- package/dist/storybook-static/193.8a12aa992b466e778018.manager.bundle.d.ts +0 -2
- package/dist/storybook-static/2.0231c7b6.iframe.bundle.d.ts +0 -0
- package/dist/storybook-static/6.6185fd0d.iframe.bundle.d.ts +0 -0
- package/dist/storybook-static/7.0ede09e9.iframe.bundle.d.ts +0 -0
- package/dist/storybook-static/8.6f0230ef.iframe.bundle.d.ts +0 -2
- package/dist/storybook-static/main.6b7543c14993fcfcab71.manager.bundle.d.ts +0 -2
- package/dist/storybook-static/main.724b5942.iframe.bundle.d.ts +0 -9
- package/dist/storybook-static/runtime~main.92273705.iframe.bundle.d.ts +0 -1
- package/dist/storybook-static/runtime~main.c89e55a461c11ef29193.manager.bundle.d.ts +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"charts.cjs.development.js","sources":["../src/common/components/Wrapper.ts","../src/hooks/useNode.ts","../src/helpers/throttle.ts","../src/hooks/useResize.ts","../src/helpers/appendSvg.ts","../src/common/components/SwipeScroll/styled.ts","../src/common/components/SwipeScroll/animate.ts","../src/common/components/SwipeScroll/hooks/useSwipe.ts","../src/common/components/SwipeScroll/index.tsx","../src/charts/RadarChart/helpers.ts","../src/charts/RadarChart/drawRadialLabels/styled.ts","../src/charts/RadarChart/drawRadialLabels/index.tsx","../src/common/components/labels/index.ts","../src/charts/RadarChart/styled.ts","../src/charts/RadarChart/draw.tsx","../src/charts/RadarChart/index.tsx","../src/helpers/math.ts","../src/charts/PieChart/styled.ts","../src/charts/PieChart/drawRadialLabels/helpers.ts","../src/charts/PieChart/drawRadialLabels/index.tsx","../src/common/components/tooltips/index.ts","../src/charts/PieChart/drawTooltips/index.tsx","../src/charts/PieChart/draw.tsx","../src/charts/PieChart/index.tsx","../src/helpers/getLegend/index.ts","../src/charts/CalendarChart/styled.ts","../src/charts/CalendarChart/draw.ts","../src/charts/CalendarChart/index.tsx","../src/helpers/computeDimensions.ts","../src/helpers/common.ts","../src/helpers/stackedData.ts","../src/charts/LineChart/styled.ts","../src/charts/LineChart/drawGrid/index.ts","../src/charts/LineChart/drawLabel/styled.ts","../src/charts/LineChart/drawLabel/index.tsx","../src/charts/LineChart/drawTooltip/index.tsx","../src/charts/LineChart/draw.ts","../src/charts/LineChart/index.tsx","../src/charts/BarChart/drawLines/index.ts","../src/charts/BarChart/styled.ts","../src/charts/BarChart/hooks/useSelection.ts","../src/charts/BarChart/drawGrid/index.ts","../src/charts/BarChart/getDomain.ts","../src/charts/BarChart/marshaling.ts","../src/charts/BarChart/drawTooltip/getLabelY.ts","../src/charts/BarChart/drawTooltip/getLabel.tsx","../src/charts/BarChart/drawTooltip/index.tsx","../src/charts/BarChart/resizeBarWidth/index.ts","../src/charts/BarChart/getBars/index.ts","../src/charts/BarChart/draw.ts","../src/charts/BarChart/index.tsx","../src/charts/HorizontalBarChart/hooks/useMarshaling.ts","../src/charts/HorizontalBarChart/styled.ts","../src/charts/HorizontalBarChart/Tooltip/index.tsx","../src/charts/HorizontalBarChart/hooks/useTooltip/index.tsx","../src/charts/HorizontalBarChart/hooks/useStackWrapper.tsx","../src/charts/HorizontalBarChart/Bar/styled.ts","../src/charts/HorizontalBarChart/Bar/index.tsx","../src/charts/HorizontalBarChart/XScale/hooks/useScale.ts","../src/charts/HorizontalBarChart/XScale/styled.ts","../src/charts/HorizontalBarChart/XScale/index.tsx","../src/charts/HorizontalBarChart/index.tsx","../src/charts/BubbleChart/bubbleChartDefaultProps.ts","../src/charts/BubbleChart/styled.ts","../src/charts/BubbleChart/drawGrid/index.ts","../src/charts/BubbleChart/drawTooltip/styled.ts","../src/charts/BubbleChart/drawTooltip/index.tsx","../src/charts/BubbleChart/draw.ts","../src/charts/BubbleChart/unmount.ts","../src/charts/BubbleChart/index.tsx"],"sourcesContent":["import styled from \"styled-components\";\n\nexport const Wrapper = styled.div`\n position: relative;\n width: 100%;\n box-sizing: border-box;\n`;\n","import { PropsWithRef, useCallback, useState } from \"react\";\n\nexport function useNode(): [PropsWithRef<any>, HTMLElement | null] {\n const [node, onSetNode] = useState<HTMLElement | null>(null);\n\n const ref = useCallback(onSetNode, [onSetNode]);\n\n return [ref, node];\n}\n","export function throttle(fn: Function, wait: number) {\n let isCalled = false;\n\n return function(...args: any) {\n if (!isCalled) {\n fn(...args);\n isCalled = true;\n setTimeout(function() {\n isCalled = false;\n }, wait);\n }\n };\n}\n","import { useEffect, useMemo } from \"react\";\n\nimport { throttle } from \"../helpers/throttle\";\n\nconst THROTTLE_DELAY = 44;\n\nexport const useResize = (\n width?: number,\n callback?: (...args: any) => any,\n delay?: number,\n) => {\n const throttledCallback: VoidFunction | undefined = useMemo(() => {\n return callback ? throttle(callback, delay || THROTTLE_DELAY) : undefined;\n }, [callback, delay]);\n\n useEffect(() => {\n throttledCallback &&\n typeof width !== \"number\" &&\n window.addEventListener(\"resize\", throttledCallback);\n\n return () =>\n throttledCallback &&\n window.removeEventListener(\"resize\", throttledCallback);\n }, [width, throttledCallback]);\n};\n","import * as d3 from 'd3';\n\nexport const appendSvg = (node: HTMLElement, width: number, height: number) => {\n d3.select(node)\n .select('svg')\n .remove();\n\n const svg = d3\n .select(node)\n .append('svg')\n .attr('width', width)\n .attr('height', height);\n\n return svg;\n};\n","import styled from \"styled-components\";\n\nexport const SwipeScrollContainer = styled.div`\n width: 100%;\n overflow: hidden;\n user-select: none;\n`;\n","export function animate({\n duration,\n timing,\n draw,\n}: {\n duration: number;\n timing: (n: number) => number;\n draw: (progress: number, requestId: number) => void;\n}): void {\n const start = performance.now();\n let requestId: number;\n\n requestAnimationFrame(function requestAnimate(time) {\n let timeFraction = (time - start) / duration;\n\n if (timeFraction < 1) {\n requestId = requestAnimationFrame(requestAnimate);\n }\n\n if (timeFraction > 1) cancelAnimationFrame(requestId);\n const progress = timing(timeFraction);\n\n draw(progress, requestId);\n });\n}\n\nexport const easeOutQuad = (time: number): number => time * (2 - time);\n","import { useEffect, useRef, useCallback } from 'react';\nimport * as d3 from 'd3';\n\nimport { animate, easeOutQuad } from '../animate';\n\nimport { SwipeScrollProps } from '../types';\n\nconst range = (num: number, min: number, max: number) =>\n Math.min(Math.max(num, min), max);\n\nconst defaultRefs = {\n animation: 0,\n speed: 0,\n timestamp: 0,\n startX: 0,\n currentX: 0,\n};\n\nexport const useSwipe = (\n node: HTMLElement | null,\n { width, duration, animationFunc, onSwipe }: SwipeScrollProps\n) => {\n const container = d3.select(node);\n const body = d3.select('body');\n const documentSelect = d3.select(document);\n const refs = useRef(defaultRefs);\n\n useEffect(() => {\n if (width && refs.current.animation) {\n cancelAnimationFrame(refs.current.animation);\n refs.current = defaultRefs;\n }\n }, [width]);\n\n const onMove = useCallback(\n (event: any) => {\n const { width: nodeWidth } = node\n ? node.getBoundingClientRect()\n : { width: 0 };\n const [x] = d3.pointer(\n event.type.includes('touch') ? event.touches[0] : event\n );\n const newX = x - refs.current.startX;\n const maxX = width - nodeWidth;\n const translateX = range(newX, -maxX, 0);\n\n container.style('transform', `translateX(${translateX}px)`);\n\n if (refs.current.currentX) {\n const hundred = 100;\n const now = Date.now();\n const dt = now - refs.current.timestamp;\n const dx = translateX - refs.current.currentX;\n const speedX = Math.round((dx / dt) * hundred);\n\n refs.current.speed = speedX;\n refs.current.timestamp = now;\n }\n\n refs.current.currentX = translateX;\n\n onSwipe && onSwipe(translateX, container);\n },\n [onSwipe, width, node, container]\n );\n\n const onEnd = useCallback(() => {\n const { width: nodeWidth } = node\n ? node.getBoundingClientRect()\n : { width: 0 };\n\n documentSelect.on(\n 'mousemove.swipe touchmove.swipe mouseup.swipe touchend.swipe',\n null\n );\n body.style('cursor', null);\n if (width > nodeWidth) {\n container.style('cursor', 'grab');\n } else {\n container.style('cursor', null);\n }\n\n const dt = Date.now() - refs.current.timestamp;\n const dtEnd = 44;\n\n if (dt < dtEnd) {\n animate({\n duration: duration as number,\n timing: animationFunc || easeOutQuad,\n draw: (progress, requestId) => {\n refs.current.animation = requestId;\n const px = Math.round(refs.current.speed * 2 * progress);\n const currX = refs.current.currentX + px;\n const maxX = width - nodeWidth;\n const translateX = range(currX, -maxX, 0);\n\n const transX = Math.max(Math.min(currX, maxX), 0);\n\n if (refs.current.currentX !== transX) {\n container.style('transform', `translateX(${translateX}px)`);\n\n onSwipe && onSwipe(translateX, container);\n }\n },\n });\n }\n }, [\n body,\n animationFunc,\n onSwipe,\n container,\n duration,\n node,\n width,\n documentSelect,\n ]);\n\n const onStart = useCallback(\n (event: any) => {\n const isTouch = event.type.includes('touch');\n const [x] = d3.pointer(isTouch ? event.touches[0] : event, node);\n\n const { left } =\n node && node.parentElement\n ? node.parentElement.getBoundingClientRect()\n : { left: 0 };\n body.style('cursor', 'grabbing');\n container.style('cursor', 'grabbing');\n\n if (refs.current.animation) {\n cancelAnimationFrame(refs.current.animation);\n refs.current = defaultRefs;\n }\n\n refs.current.startX = Math.max(x + left, 0);\n\n documentSelect.on('mousemove.swipe touchmove.swipe', onMove);\n documentSelect.on('mouseup.swipe touchend.swipe', onEnd);\n },\n [container, body, node, onEnd, onMove, documentSelect]\n );\n\n useEffect(() => {\n if (node) {\n const { width: nodeWidth } = node.getBoundingClientRect();\n\n if (width > nodeWidth) {\n container.style('cursor', 'grab');\n container.on('mousedown.swipe touchstart.swipe', onStart);\n }\n }\n }, [container, onStart, node, width]);\n};\n","import React, { FC } from \"react\";\n\nimport { SwipeScrollContainer } from './styled';\n\nimport { useNode } from '../../../hooks';\nimport { useSwipe } from './hooks/useSwipe';\n\nimport { SwipeScrollProps } from './types';\n\nexport const SwipeScroll: FC<SwipeScrollProps> = ({\n children,\n width,\n onSwipe,\n ...props\n}) => {\n const [ref, draggingNode] = useNode();\n\n useSwipe(draggingNode, { width, onSwipe, ...props });\n\n return (\n <SwipeScrollContainer {...props}>\n <div ref={ref}>{children}</div>\n </SwipeScrollContainer>\n );\n};\n\nSwipeScroll.defaultProps = {\n duration: 1400,\n};\n","const degByIndex = (index: number, count: number): number => {\n const degs = 360;\n const deg = (degs / count) * index;\n\n return deg;\n};\n\nexport const getTextAnchor = (\n index: number,\n length: number\n): 'start' | 'middle' | 'end' => {\n const deg = degByIndex(index, length);\n const halfAngle = 180;\n\n if ([0, halfAngle].includes(deg)) {\n return 'middle';\n }\n if (deg < halfAngle) {\n return 'start';\n }\n\n return 'end';\n};\n\nexport const getMaxWidth = (elements: SVGElement[]) => {\n let maxWidth = 0;\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n\n if (element && 'getBoundingClientRect' in element) {\n maxWidth = Math.max(maxWidth, element.getBoundingClientRect().width);\n }\n }\n\n return maxWidth;\n};\n","import styled from 'styled-components';\n\nimport { LabelContainerProps } from './types';\n\nconst getTranslate = ({\n anchor,\n index,\n translateX,\n translateY,\n}: LabelContainerProps) => {\n if (index === 0 && anchor === 'middle') {\n return `translate(calc(-50% + ${translateX}px), calc(-100% + ${translateY}px))`;\n } else if (anchor === 'middle') {\n return `translate(calc(-50% + ${translateX}px), calc(${translateY}px))`;\n } else if (anchor === 'start') {\n return `translate(calc(${translateX}px), calc(-50% + ${translateY}px))`;\n } else if (anchor === 'end') {\n return `translate(calc(-100% + ${translateX}px), calc(-50% + ${translateY}px))`;\n }\n return `translate(${translateX}px, ${translateY}px)`;\n};\n\nexport const LabelContainer = styled.div.attrs<LabelContainerProps>(props => ({\n style: {\n transform: getTranslate(props),\n },\n}))<LabelContainerProps>`\n position: absolute;\n`;\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\nimport React from 'react';\n\nimport { DrawRadialLabels } from './types';\n\nimport { getTextAnchor } from '../helpers';\nimport { LabelContainer } from './styled';\n\nconst labelClassName = 'd3-chart-label';\n\nexport const drawRadialLabels = ({\n node,\n dataLength,\n radiusScale,\n maxValue,\n angleSlice,\n radius,\n xOffset,\n yOffset,\n translateX,\n translateY,\n renderLabel,\n selectLabel,\n}: DrawRadialLabels) => {\n const d3container = d3.select(node);\n d3container.selectAll(`.${labelClassName}`).remove();\n\n const pxToValue = (value: number) => (maxValue / radius) * value;\n const axisX = (i: number) =>\n (radiusScale(maxValue + pxToValue(xOffset || 0)) as number) *\n Math.cos(angleSlice * i - Math.PI / 2);\n\n const axisY = (i: number) =>\n radiusScale(\n (maxValue + pxToValue(yOffset || 0)) *\n Math.sin(angleSlice * i - Math.PI / 2)\n ) as number;\n\n const labels = Array.from({ length: dataLength }, (_, index) => ({\n x: Math.ceil(axisX(index)),\n y: Math.ceil(axisY(index)),\n }));\n\n labels.forEach(({ x, y }: { x: number; y: number }, index: number) => {\n const anchor = getTextAnchor(index, dataLength);\n const html = ReactDOMServer.renderToString(\n <LabelContainer\n anchor={anchor}\n translateX={translateX || 0}\n translateY={translateY || 0}\n index={index}\n style={{\n left: x,\n top: y,\n }}\n >\n {typeof renderLabel === 'function'\n ? renderLabel(anchor, index)\n : renderLabel}\n </LabelContainer>\n );\n\n const label = d3container\n .append('div')\n .attr('class', labelClassName)\n .html(html);\n\n selectLabel(label, anchor, index);\n });\n};\n","import styled, { css } from \"styled-components\";\n\nimport { LabelContainerProps } from \"./types\";\n\nexport const getTranslate = ({\n anchor,\n index,\n translateX,\n translateY,\n}: LabelContainerProps) => {\n if (index === 0 && anchor === \"middle\") {\n return `translate(calc(-50% + ${translateX}px), calc(-100% + ${translateY}px))`;\n } else if (anchor === \"middle\") {\n return `translate(calc(-50% + ${translateX}px), calc(${translateY}px))`;\n } else if (anchor === \"start\") {\n return `translate(calc(${translateX}px), calc(-50% + ${translateY}px))`;\n } else if (anchor === \"end\") {\n return `translate(calc(-100% + ${translateX}px), calc(-50% + ${translateY}px))`;\n }\n return `translate(${translateX}px, ${translateY}px)`;\n};\n\nexport const Label = styled.div`\n display: flex;\n align-items: center;\n font-size: 12px;\n`;\n\nexport const Name = styled.div`\n text-align: center;\n max-width: 120px;\n`;\n\nconst middleBadgeStyles = css`\n position: absolute;\n top: 50%;\n right: 0;\n transform: translate(calc(100% + 6px), -50%);\n`;\n\nexport const DefaultBadge = styled.div`\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border-radius: 4px;\n color: rgb(255, 255, 255);\n background-color: rgb(144, 197, 61);\n margin-left: 8px;\n`;\n\nexport const MiddleBadge = styled(DefaultBadge)`\n ${middleBadgeStyles}\n`;\n\nexport const BadgePrefix = styled.div`\n margin-left: 4px;\n font-size: 10px;\n color: rgba(255, 255, 255, 0.54);\n`;\n","import styled from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\n\nexport const radarChartclassNames = {\n radar: 'radar',\n radarAxis: 'radarAxis',\n radarAxisTextGlobal: 'radarAxisTextGlobal',\n radarAxisText: 'radarAxisText',\n radarPolygon: 'radarPolygon',\n radarLabel: 'radarLabel',\n radarLabelName: 'radarLabelName',\n radarLabelBadge: 'radarLabelBadge',\n radarLabelBadgePrefix: 'radarLabelBadgePrefix',\n radarCircle: 'radarCircle',\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${radarChartclassNames.radarAxis} {\n path,\n line,\n circle {\n fill: none;\n stroke-width: 1px;\n stroke: rgba(149, 149, 149, 0.18);\n }\n }\n .${radarChartclassNames.radarAxisText} {\n font-size: 12px;\n fill-opacity: 0.56;\n }\n .${radarChartclassNames.radarPolygon} {\n fill-opacity: 0.06;\n stroke-width: 2px;\n fill: rgb(144, 197, 61);\n stroke: rgb(144, 197, 61);\n }\n .${radarChartclassNames.radarCircle} {\n fill: rgb(144, 197, 61);\n }\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { RadarChartProps } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { drawRadialLabels } from './drawRadialLabels';\n\nimport {\n Label,\n MiddleBadge,\n DefaultBadge,\n Name,\n BadgePrefix,\n} from '../../common/components/labels';\nimport { radarChartclassNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: RadarChartProps\n): void => {\n const {\n data,\n curve,\n polar,\n formatValue,\n badgePrefix,\n labelOffset,\n circleRadius,\n svgElements,\n renderLabel,\n customize,\n formatAxisValue,\n radarStyles,\n labelIndex,\n selectLabel,\n } = props;\n\n if (node !== null && data.length) {\n const defaultBleedLength = 10;\n const bleedLength =\n typeof props.bleedLength === 'number'\n ? props.bleedLength\n : defaultBleedLength;\n\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const defaultHeight = 400;\n const height = props.height || defaultHeight;\n\n const minValue =\n props.minValue ||\n Math.min(\n 0,\n d3.min(data, i => d3.min(i.map(({ value }) => value))) as number\n );\n const maxValue =\n (props.maxValue ||\n Math.max(\n 0,\n d3.max(data, i => d3.max(i.map(({ value }) => value))) as number\n )) - minValue;\n const paddingX = props.paddingX || 0;\n const paddingY = props.paddingY || 0;\n const radius = Math.min(\n (width - paddingX * 2 - bleedLength * 2) / 2,\n (height - paddingY * 2 - bleedLength * 2) / 2\n );\n\n const defaultLevels = 4;\n const ticks = d3\n .scaleLinear()\n .domain([0, maxValue || 1])\n .range([])\n .ticks(props.levels || defaultLevels);\n const lastTick = ticks[ticks.length - 1];\n const newLastTick = lastTick + (ticks[1] - ticks[0]);\n\n if (lastTick < maxValue) {\n ticks.push(newLastTick);\n }\n\n const levels = props.levels || ticks.length - 1;\n const newMaxValue = ticks[ticks.length - 1];\n const angleSlice = (Math.PI * 2) / data[0].length;\n\n const radiusScale = d3\n .scaleLinear()\n .range([0, radius])\n .domain([0, newMaxValue]);\n\n const radarLine = d3\n .lineRadial()\n .curve(d3.curveLinearClosed)\n // @ts-ignore\n .radius(({ value }) => radiusScale(value) as number)\n .angle((_, i) => i * angleSlice);\n const radarValue = d3\n .lineRadial()\n .curve(curve || d3.curveLinearClosed)\n // @ts-ignore\n .radius(({ value }) => radiusScale(value) as number)\n .angle((_, i) => i * angleSlice);\n\n const svg = appendSvg(node, width, height);\n const globalCenter = svg.append('g');\n\n const levelsGrid = d3.range(1, levels + 1).reverse();\n const axisGridY = (value: number) => (-value * radius) / levels;\n const getAxisValue = (value: number) => (newMaxValue * value) / levels;\n\n const gridGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarAxis)\n .selectAll()\n .data([data[0]])\n .enter();\n\n const radarGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radar);\n\n const axis = gridGlobal\n .selectAll()\n .data(data[0].map(({ name }) => name))\n .enter();\n\n let maxGridHeight = 0;\n\n if (polar) {\n levelsGrid.forEach(value => {\n const path = gridGlobal\n .append('circle')\n .attr('cx', 0)\n .attr('cy', 0)\n .attr('r', () => (radius / levels) * value);\n\n const circleNode = path.node() as SVGCircleElement;\n const circleHeight = circleNode.getBoundingClientRect().height;\n maxGridHeight = Math.max(maxGridHeight, circleHeight);\n });\n } else {\n levelsGrid.map(getAxisValue).forEach(value => {\n const path = gridGlobal.append('path').attr('d', () =>\n // @ts-ignore\n radarLine(Array.from({ length: data[0].length }, () => ({ value })))\n );\n const pathNode = path.node() as SVGPathElement;\n const pathHeight = pathNode.getBoundingClientRect().height;\n maxGridHeight = Math.max(maxGridHeight, pathHeight);\n });\n }\n\n const radiusByMaxValue = (radiusScale(newMaxValue) as number) + bleedLength;\n\n axis\n .append('line')\n .attr('x1', 0)\n .attr('y1', 0)\n .attr('x2', (_, i) =>\n Math.round(radiusByMaxValue * Math.cos(angleSlice * i - Math.PI / 2))\n )\n .attr('y2', (_, i) =>\n Math.round(radiusByMaxValue * Math.sin(angleSlice * i - Math.PI / 2))\n );\n\n radarGlobal\n .selectAll('path')\n .data(data)\n .join('path')\n .attr('class', radarChartclassNames.radarPolygon)\n .attr('style', (_, index) => radarStyles?.[index] || '')\n .attr('d', d =>\n radarValue(\n // @ts-ignore\n d.map(dataItem => ({\n ...dataItem,\n value: dataItem.value - minValue,\n }))\n )\n );\n\n const format = d3.format(',');\n const axisTextGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarAxisTextGlobal);\n axisTextGlobal\n .selectAll('text')\n .data(levelsGrid)\n .enter()\n .append('text')\n .attr('class', radarChartclassNames.radarAxisText)\n .attr('x', '4')\n .attr('y', axisGridY)\n .attr('dy', 0)\n .attr('dominant-baseline', 'central')\n .text((value, index) => {\n const axisValue = getAxisValue(value) + minValue;\n\n return formatAxisValue\n ? formatAxisValue(axisValue, index)\n : format(axisValue);\n });\n\n circleRadius &&\n data.forEach(item => {\n const circleGlobal = globalCenter\n .append('g')\n .attr('class', radarChartclassNames.radarCircle);\n\n item.forEach(({ value }, i) => {\n circleGlobal\n .append('circle')\n .attr(\n 'cx',\n Math.round(\n (radiusScale(value) as number) *\n Math.cos(angleSlice * i - Math.PI / 2)\n )\n )\n .attr(\n 'cy',\n Math.round(\n radiusScale(\n value * Math.sin(angleSlice * i - Math.PI / 2)\n ) as number\n )\n )\n .attr('r', circleRadius);\n });\n });\n\n const defaultLabelOffset = 8;\n const heightInner = height - bleedLength - paddingY;\n const translateX = width / 2;\n const translateY = heightInner / 2 + (heightInner - maxGridHeight) / 2;\n const offset = bleedLength + (labelOffset || defaultLabelOffset);\n\n globalCenter.attr('transform', `translate(${translateX},${translateY})`);\n\n drawRadialLabels({\n node,\n maxValue: newMaxValue,\n translateX,\n translateY,\n dataLength: data[labelIndex || 0].length,\n angleSlice,\n radius,\n radiusScale,\n xOffset: offset,\n yOffset: offset,\n renderLabel: (anchor, index) => {\n const items = data.map(item => item[index]);\n const Badge = anchor === 'middle' ? MiddleBadge : DefaultBadge;\n const item = data[labelIndex || 0][index];\n const { name, value } = item;\n\n return renderLabel ? (\n renderLabel({ item, items, anchor, index })\n ) : (\n <Label className={radarChartclassNames.radarLabel}>\n <Name className={radarChartclassNames.radarLabelName}>{name}</Name>\n <Badge className={radarChartclassNames.radarLabelBadge}>\n {formatValue ? formatValue(value, index) : format(value)}\n {badgePrefix && (\n <BadgePrefix\n className={radarChartclassNames.radarLabelBadgePrefix}\n >\n {badgePrefix}\n </BadgePrefix>\n )}\n </Badge>\n </Label>\n );\n },\n selectLabel: (label, anchor, index) => {\n if (selectLabel) {\n const items = data.map(item => item[index]);\n const item = data[labelIndex || 0][index];\n\n selectLabel(label, { index, item, items, anchor });\n }\n },\n });\n\n if (svgElements) {\n const html = ReactDOMServer.renderToString(svgElements);\n\n svg.append('g').html(html);\n }\n\n customize && customize(svg);\n }\n};\n","import React, { useEffect } from 'react';\nimport * as d3 from 'd3';\n\nimport { RadarChartProps } from './types';\n\nimport { useNode } from '../../hooks';\nimport { useResize } from '../../hooks';\n\nimport { draw } from './draw';\n\nimport { SvgWrapper } from './styled';\n\nexport const RadarChart: React.FC<RadarChartProps> = (\n props\n): React.ReactElement => {\n const { className, style } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <SvgWrapper ref={ref} />\n </div>\n );\n};\n\nRadarChart.defaultProps = {\n height: 400,\n data: [],\n curve: d3.curveLinearClosed,\n};\n","export function radiansToDegrees(radians: number): number {\n const flatAngle = 180;\n\n return (radians * flatAngle) / Math.PI;\n}\n\nexport function degreesToRadians(degrees: number): number {\n const flatAngle = 180;\n\n return degrees * (Math.PI / flatAngle);\n}\n","import styled from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\n\nexport const pieChartclassNames = {\n pieGlobal: 'pieGlobal',\n pieSlice: 'pieSlice',\n pieSliceLabel: 'pieSliceLabel',\n pieSliceLabelValue: 'pieSliceLabelValue',\n pieSliceLabelName: 'pieSliceLabelName',\n pieRadialLabel: 'pieRadialLabel',\n pieRadialLink: 'pieRadialLink',\n pieTooltipContainer: 'pieTooltipContainer',\n pieTooltipFlex: 'pieTooltipFlex',\n pieTooltip: 'pieTooltip',\n pieTooltipItem: 'pieTooltipItem',\n pieTooltipName: 'pieTooltipName',\n pieTooltipValue: 'pieTooltipValue',\n pieTooltipColorBox: 'pieTooltipColorBox',\n pieFullChartTooltipCircle: 'pieFullChartTooltipCircle',\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${pieChartclassNames.pieSliceLabel} {\n fill: #4a4a4a;\n }\n .${pieChartclassNames.pieRadialLabel} {\n position: absolute;\n max-width: 128px;\n }\n .${pieChartclassNames.pieRadialLink} {\n stroke: #000;\n }\n .${pieChartclassNames.pieFullChartTooltipCircle} {\n fill: transparent;\n cursor: pointer;\n }\n`;\n","import { PieChartDatum } from '../types';\n\nexport const getMidFactor = (d: PieChartDatum) =>\n d.startAngle + (d.endAngle - d.startAngle) / 2 < Math.PI ? 1 : -1;\n\nexport const getAlign = (d: PieChartDatum): 'start' | 'end' => {\n const midangle = d.startAngle + (d.endAngle - d.startAngle) / 2;\n\n return midangle < Math.PI ? 'start' : 'end';\n};\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawRadialLabels } from './types';\nimport { PieChartDatum } from '../types';\n\nimport { pieChartclassNames } from '../styled';\nimport { getMidFactor, getAlign } from './helpers';\nimport { getTranslate } from '../../../common/components/labels';\n\nexport const drawRadialLabels = ({\n arc,\n enableRadialLabels,\n global,\n node,\n radius,\n dataReady,\n radialLabelsLinkHorizontalLength,\n formatRadialLabel,\n radialLabelsTextXOffset,\n translateX,\n translateY,\n radialLabelYOffset,\n radialAngleXOffset,\n}: DrawRadialLabels): void => {\n const d3container = d3.select(node);\n d3container.selectAll(`.${pieChartclassNames.pieRadialLabel}`).remove();\n\n if (enableRadialLabels) {\n const defaultRadialLabelsLinkHorizontalLength = 4;\n const outerArc = d3\n .arc()\n .innerRadius(radius)\n .outerRadius(radius);\n\n global\n .selectAll('allPolylines')\n .data(dataReady)\n .enter()\n .append('polyline')\n .attr('class', pieChartclassNames.pieRadialLink)\n .style('fill', 'none')\n .attr('points', (d: PieChartDatum) => {\n const midFactor = getMidFactor(d);\n const posA = arc.centroid(d);\n const posB = outerArc.centroid(d);\n const posC = outerArc.centroid(d);\n const posCPi = [\n (radius +\n (radialLabelsLinkHorizontalLength ||\n defaultRadialLabelsLinkHorizontalLength)) *\n midFactor,\n posC[1],\n ];\n return [\n [posA[0], posA[1]],\n [\n posB[0] + (radialAngleXOffset || 0) * midFactor,\n posB[1] - (radialLabelYOffset || 0) * d.index,\n ],\n [posCPi[0], posCPi[1] - (radialLabelYOffset || 0) * d.index],\n ];\n });\n\n const getPosition = (d: PieChartDatum): [number, number] => {\n const pos = outerArc.centroid(d);\n return [\n (radius +\n (radialLabelsLinkHorizontalLength ||\n defaultRadialLabelsLinkHorizontalLength)) *\n getMidFactor(d),\n pos[1],\n ];\n };\n\n const defaultRadialLabelsTextXOffset = 4;\n d3container\n .selectAll('allLabels')\n .data(dataReady)\n .enter()\n .append('div')\n // @ts-ignore\n .html((d: PieChartDatum) => {\n const html = ReactDOMServer.renderToString(\n // @ts-ignore\n formatRadialLabel ? formatRadialLabel(d) : d.data.name\n );\n\n return html;\n })\n .attr('class', pieChartclassNames.pieRadialLabel)\n // @ts-ignore\n .style('transform', (d: PieChartDatum) =>\n getTranslate({\n anchor: getAlign(d),\n index: d.index,\n translateX,\n translateY: translateY - (radialLabelYOffset || 0) * d.index,\n })\n )\n // @ts-ignore\n .style(\n 'left',\n // @ts-ignore\n (d: PieChartDatum) =>\n `${getPosition(d)[0] -\n (getAlign(d) === 'start'\n ? -(radialLabelsTextXOffset || defaultRadialLabelsTextXOffset)\n : radialLabelsTextXOffset || defaultRadialLabelsTextXOffset)}px`\n )\n // @ts-ignore\n .style('top', (d: PieChartDatum) => `${getPosition(d)[1]}px`)\n // @ts-ignore\n .style('text-align', getAlign);\n }\n};\n","import styled from \"styled-components\";\n\nexport const TooltipFlex = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n pointer-events: none;\n white-space: nowrap;\n`;\n\nexport const LabelFlex = styled(TooltipFlex)``;\n\nexport const LabelFlexCenter = styled(LabelFlex)`\n align-items: center;\n`;\n\nexport const TooltipContainer = styled.div`\n position: relative;\n font-size: 11px;\n color: #fff;\n margin-bottom: 8px;\n padding: 4px 6px;\n background-color: rgba(48, 69, 79, 1);\n border-radius: 4px;\n box-shadow: 0 0.1875rem 0.5rem rgba(48, 69, 79, 0.06);\n\n :before {\n content: '';\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translate(-50%, 100%);\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 3px 0 3px;\n border-color: rgba(48, 69, 79, 1) transparent transparent transparent;\n }\n`;\n\nexport const TooltipGroupName = styled.div`\n font-size: 14px;\n margin-bottom: 6px;\n`;\n\nexport const TooltipItem = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 0.25rem;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`;\n\nexport const ColFlex = styled.div`\n display: flex;\n align-items: center;\n margin-right: 4px;\n`;\n\nexport const ColorBox = styled.div`\n margin-right: 4px;\n width: 10px;\n height: 10px;\n border-radius: 2px;\n`;\n\nexport const ColorLine = styled(ColorBox)`\n height: 2px;\n border-radius: 0;\n`;\n\nexport const Name = styled.div`\n margin-right: 4px;\n`;\n\nexport const Value = styled.div`\n text-align: right;\n flex-shrink: 0;\n flex-grow: 1;\n`;\n\nexport const Label = styled.div`\n position: relative;\n font-size: 11px;\n color: #fff;\n font-weight: bold;\n letter-spacing: 0.52px;\n`;\n\nexport const LabelTop = styled(Label)`\n top: 6px;\n`;\n\nexport const LabelBottom = styled(Label)`\n bottom: 6px;\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { pieChartclassNames as classNames } from '../styled';\n\nimport { DrawTooltipProps } from './types';\n\nimport {\n TooltipContainer,\n TooltipFlex,\n TooltipItem,\n Value,\n Name,\n ColorBox,\n} from '../../../common/components/tooltips';\nimport { PieChartData, PieChartDatum } from '../types';\n\nexport const drawTooltip = ({\n fullChartTooltip,\n global,\n tooltipRoot,\n data,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n arc,\n allSlices,\n tooltipStyle,\n width,\n height,\n radius,\n}: DrawTooltipProps) => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n const pieTooltipContainer: d3.Selection<\n HTMLDivElement,\n unknown,\n null,\n undefined\n > = d3.select(container).select(`.${classNames.pieTooltipContainer}`);\n const isEmpty = pieTooltipContainer.empty();\n\n const tooltipContainer = isEmpty\n ? d3\n .select(container)\n .append('div')\n .attr(\n 'class',\n `${classNames.pieTooltipContainer} ${tooltipClassName || ''}`\n )\n .style('position', 'absolute')\n .style('opacity', '0')\n .style('z-index', '103')\n : pieTooltipContainer;\n\n if (tooltipStyle) {\n Object.entries(tooltipStyle).forEach(([prop, val]) =>\n tooltipContainer.style(prop, val)\n );\n }\n\n tooltipContainer.html('');\n let isVisible = false;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n const opacity = isVisible ? '1' : '0';\n tooltipContainer.style('opacity', opacity);\n };\n\n const setPosition = (event: any, pieChartDatum?: PieChartDatum) => {\n let [x, y] = d3.pointer(event, document);\n\n if (!tooltipBind && fullChartTooltip) {\n const [itemX, itemY] = d3.pointer(event, event.target);\n\n x = x - itemX;\n y = y - itemY;\n } else if (!tooltipBind) {\n const globalNode = global.node();\n const {\n x: itemX,\n y: itemY,\n width: itemWidth,\n height: itemHeight,\n } = globalNode\n ? globalNode.getBoundingClientRect()\n : { x: 0, y: 0, width: 0, height: 0 };\n const [arcX, arcY] = arc.centroid(pieChartDatum as d3.DefaultArcObject);\n x = itemX + itemWidth / 2 + arcX;\n y = itemY + itemHeight / 2 + arcY;\n }\n\n tooltipContainer.style('left', x + 'px').style('top', y + 'px');\n };\n\n const setTooltip = (event: any, pieChartDatum?: PieChartDatum) => {\n setVisible(true);\n setPosition(event, pieChartDatum);\n const pieChartData = pieChartDatum ? [pieChartDatum.data] : data;\n\n tooltipContainer.html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipFlex className={classNames.pieTooltipFlex}>\n <TooltipContainer className={classNames.pieTooltip}>\n {renderTooltip ? (\n renderTooltip(pieChartData)\n ) : (\n <>\n {pieChartData.map(\n ({ color, name, value }: PieChartData, index: number) => (\n <TooltipItem\n key={`${name}-${index}`}\n className={classNames.pieTooltipItem}\n >\n {color && (\n <ColorBox\n className={classNames.pieTooltipColorBox}\n style={{ backgroundColor: color }}\n />\n )}\n {name && (\n <Name className={classNames.pieTooltipName}>\n {name}\n </Name>\n )}\n <Value className={classNames.pieTooltipValue}>\n {format(value)}\n </Value>\n </TooltipItem>\n )\n )}\n </>\n )}\n </TooltipContainer>\n </TooltipFlex>\n );\n\n return html;\n });\n };\n\n if (fullChartTooltip) {\n global.on('mouseover.fulltooltip', event => setTooltip(event));\n global.on('mouseout.fulltooltip', () => {\n tooltipContainer.html('');\n setVisible();\n });\n\n if (width && height) {\n global\n .append('circle')\n .attr('class', classNames.pieFullChartTooltipCircle)\n .attr('r', radius)\n .attr('cx', 0)\n .attr('cy', 0);\n }\n\n if (!tooltipBind) {\n global.on('touchmove.tooltipBind mousemove.tooltipBind', event =>\n setPosition(event)\n );\n }\n } else {\n allSlices.on('mouseover.slice', setTooltip);\n if (!tooltipBind) {\n allSlices.on('touchmove.slice mousemove.slice', setPosition);\n }\n allSlices.on('mouseout.slice', () => {\n tooltipContainer.html('');\n setVisible();\n });\n }\n};\n","import * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { PieChartProps, PieChartDatum } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { degreesToRadians, radiansToDegrees } from '../../helpers/math';\nimport { drawRadialLabels } from './drawRadialLabels';\nimport { drawTooltip } from './drawTooltips';\n\nimport { pieChartclassNames } from './styled';\n\nexport const draw = (node: HTMLElement | null, props: PieChartProps): void => {\n const {\n data,\n padAngle,\n onClick,\n outerRadius,\n startAngle,\n endAngle,\n cornerRadius,\n margin,\n enableSlicesLabels,\n formatSliceLabel,\n slicesLabelsSkipAngle,\n enableSlicesLabelsName,\n formatSliceLabelName,\n borderWidth,\n borderColor,\n enableRadialLabels,\n backgroundColor,\n radialLabelsLinkHorizontalLength,\n radialLabelsTextXOffset,\n formatRadialLabel,\n radialLabelYOffset,\n svgElements,\n formatSliceTitle,\n radialAngleXOffset,\n withTooltip,\n fullChartTooltip,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n tooltipStyle,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const defaultHeight = 240;\n const height = props.height || defaultHeight;\n const radius =\n (Math.min(width, height) -\n (borderWidth || 0) * 2 -\n (width > height\n ? marginTop + marginBottom\n : marginRight + marginLeft)) /\n 2;\n\n const svg = appendSvg(node, width, height);\n const global = svg\n .append('g')\n .attr('class', pieChartclassNames.pieGlobal)\n .attr(\n 'transform',\n `translate(${(width - (marginLeft + marginRight)) / 2 +\n marginLeft},${(height - (marginBottom + marginTop)) / 2 + marginTop})`\n );\n\n const maxPadAngle = 45;\n const dividerPadAngle = 100;\n const fullAngle = 360;\n\n const pie = d3\n .pie()\n .startAngle(-degreesToRadians(startAngle || 0))\n .endAngle(degreesToRadians(endAngle || fullAngle))\n .padAngle(\n padAngle\n ? Math.max(Math.min(padAngle / dividerPadAngle, maxPadAngle), 0)\n : 0\n )\n .sort(null)\n // @ts-ignore\n .value(({ value }) => value);\n\n // @ts-ignore\n const dataReady = pie(data) as PieChartDatum[];\n\n const maxOuterRadius = 0.95;\n const arc = d3\n .arc()\n .cornerRadius(cornerRadius || 0)\n .innerRadius(radius)\n .outerRadius(\n radius * Math.min(Math.max(outerRadius || 0, 0), maxOuterRadius)\n );\n\n if (typeof backgroundColor === 'string') {\n global\n .append('path')\n .attr('fill', backgroundColor)\n .attr('d', () =>\n // @ts-ignore\n arc({\n startAngle: degreesToRadians(0),\n endAngle: degreesToRadians(fullAngle),\n })\n );\n }\n\n const format = d3.format(',');\n const allSlices = global\n .selectAll('allSlices')\n .data(dataReady)\n .enter()\n .append('path')\n // @ts-ignore\n .attr('d', arc);\n\n allSlices\n .attr('class', pieChartclassNames.pieSlice)\n .attr('fill', ({ index }) => data[index].color || '')\n .attr('stroke', borderColor || '')\n .attr('stroke-width', borderWidth || 0)\n .attr('style', onClick ? 'cursor: pointer' : '')\n .on(\n 'click',\n // @ts-ignore\n (_, d) => onClick && onClick(data[d.index])\n )\n .append('svg:title')\n .text(d =>\n formatSliceTitle\n ? // @ts-ignore\n formatSliceTitle(d)\n : fullChartTooltip || withTooltip\n ? ''\n : `${data[d.index].name || ''} (${format(data[d.index].value)})`\n );\n\n if (enableSlicesLabels) {\n const text = global\n .selectAll('allSlices')\n .data(dataReady)\n .enter()\n .append('text')\n .attr('class', pieChartclassNames.pieSliceLabel)\n .attr('text-anchor', 'middle')\n .attr('dominant-baseline', 'central')\n .attr(\n 'transform',\n // @ts-ignore\n (d: PieChartDatum) => 'translate(' + arc.centroid(d) + ')'\n );\n\n text\n .append('tspan')\n .attr('class', pieChartclassNames.pieSliceLabelValue)\n // @ts-ignore\n .text((d: PieChartDatum) => {\n const deg = radiansToDegrees(d.endAngle - d.startAngle);\n\n if (!slicesLabelsSkipAngle || deg > slicesLabelsSkipAngle) {\n return formatSliceLabel ? formatSliceLabel(d) : d.value;\n }\n });\n\n if (enableSlicesLabelsName) {\n text\n .append('tspan')\n .attr('class', pieChartclassNames.pieSliceLabelName)\n // @ts-ignore\n .text((d: PieChartDatum) =>\n formatSliceLabelName ? formatSliceLabelName(d) : d.data.name\n )\n .attr('x', '0')\n .attr('dy', '1.2em');\n }\n }\n\n drawRadialLabels({\n arc,\n enableRadialLabels,\n global,\n radius,\n node,\n dataReady,\n translateX: (width - (marginLeft - marginRight)) / 2,\n translateY: (height + (marginTop - marginBottom)) / 2,\n radialLabelsLinkHorizontalLength,\n radialLabelsTextXOffset,\n formatRadialLabel,\n radialLabelYOffset,\n radialAngleXOffset,\n });\n\n if (withTooltip || fullChartTooltip) {\n drawTooltip({\n fullChartTooltip,\n global,\n data,\n tooltipClassName,\n tooltipBind,\n renderTooltip,\n allSlices,\n arc,\n tooltipStyle,\n width,\n height,\n radius,\n });\n }\n\n if (svgElements) {\n const html = ReactDOMServer.renderToString(svgElements);\n\n svg.append('g').html(html);\n }\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { PieChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\n\nimport { SvgWrapper } from \"./styled\";\n\nexport const PieChart: FC<PieChartProps> = (\n props,\n) => {\n const { className, style, children } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nPieChart.defaultProps = {\n data: [],\n startAngle: 0,\n endAngle: 360,\n slicesLabelsSkipAngle: 0,\n radialLabelYOffset: 16,\n radialAngleXOffset: 8,\n};\n","import * as d3 from 'd3';\n\nimport { Interpolator } from '../../common/types/interpolator';\nimport { GetLegendProps } from './types';\n\nconst defaultN = 256;\n\nexport const legendClassNames = {\n legendContainer: 'd3-legend-container',\n legendTitle: 'd3-legend-title',\n legendTick: 'd3-legend-tick',\n legendTickLine: 'd3-legend-tick-line',\n legendTickText: 'd3-legend-tick-text',\n};\n\nfunction ramp(color: Interpolator, n: number = defaultN) {\n const canvas = document.createElement('canvas');\n canvas.width = n;\n canvas.height = 1;\n const context = canvas.getContext('2d') as CanvasRenderingContext2D;\n\n for (let i = 0; i < n; ++i) {\n context.fillStyle = color(i / (n - 1));\n context.fillRect(i, 0, 1, 1);\n }\n\n return canvas;\n}\n\nexport const legendDefaultParams = {\n tickSize: 6,\n height: 44,\n width: 320,\n marginTop: 18,\n marginBottom: 16,\n ticksDivier: 64,\n titleMarginBottom: 6,\n};\n\nexport const getLegend = ({\n color,\n title,\n tickSize = legendDefaultParams.tickSize,\n width = legendDefaultParams.width,\n height = legendDefaultParams.height + tickSize,\n marginTop = legendDefaultParams.marginTop,\n marginRight = 0,\n marginBottom = legendDefaultParams.marginBottom + tickSize,\n marginLeft = 0,\n ticks = legendDefaultParams.width / legendDefaultParams.ticksDivier,\n tickFormat,\n tickValues,\n titleMarginBottom,\n}: GetLegendProps) => {\n const svg = d3\n .create('svg')\n .attr('width', width)\n .attr('height', height)\n // @ts-ignore\n .attr('viewBox', [0, 0, width, height])\n .style('overflow', 'visible')\n .style('display', 'block');\n\n let tickAdjust = (g: d3.Selection<SVGGElement, any, any, any>) => {\n const tick = g.selectAll('.tick');\n\n tick\n .selectAll('.tick line')\n .attr('y1', marginTop + marginBottom - height)\n .attr('class', legendClassNames.legendTickLine);\n tick.selectAll('.tick text').attr('class', legendClassNames.legendTickText);\n tick.attr('class', legendClassNames.legendTick);\n\n return tick;\n };\n let x: any;\n\n // Continuous\n if (color.interpolate) {\n const n = Math.min(color.domain().length, color.range().length);\n\n x = color\n .copy()\n .rangeRound(\n d3.quantize(d3.interpolate(marginLeft, width - marginRight), n)\n );\n\n svg\n .append('image')\n .attr('x', marginLeft)\n .attr('y', marginTop)\n .attr('class', legendClassNames.legendContainer)\n .attr('width', width - marginLeft - marginRight)\n .attr('height', height - marginTop - marginBottom)\n .attr('preserveAspectRatio', 'none')\n .attr(\n 'xlink:href',\n ramp(\n color.copy().domain(d3.quantize(d3.interpolate(0, 1), n))\n ).toDataURL()\n );\n }\n\n // Sequential\n else if (color.interpolator) {\n x = Object.assign(\n color\n .copy()\n .interpolator(d3.interpolateRound(marginLeft, width - marginRight)),\n {\n range() {\n return [marginLeft, width - marginRight];\n },\n }\n );\n\n svg\n .append('image')\n .attr('x', marginLeft)\n .attr('y', marginTop)\n .attr('width', width - marginLeft - marginRight)\n .attr('height', height - marginTop - marginBottom)\n .attr('preserveAspectRatio', 'none')\n .attr('xlink:href', ramp(color.interpolator()).toDataURL());\n\n // scaleSequentialQuantile doesn’t implement ticks or tickFormat.\n if (!x.ticks) {\n if (tickValues === undefined) {\n const n = Math.round(ticks + 1);\n tickValues = d3\n .range(n)\n .map(i => d3.quantile(color.domain(), i / (n - 1)));\n }\n if (typeof tickFormat !== 'function') {\n tickFormat = d3.format(tickFormat === undefined ? ',f' : tickFormat);\n }\n }\n }\n\n svg\n .append('g')\n .attr('transform', `translate(0,${height - marginBottom})`)\n // @ts-ignore\n .call(\n d3\n .axisBottom(x)\n .ticks(ticks, typeof tickFormat === 'string' ? tickFormat : undefined)\n // @ts-ignore\n .tickFormat(typeof tickFormat === 'function' ? tickFormat : undefined)\n .tickSize(tickSize)\n // @ts-ignore\n .tickValues(tickValues),\n )\n .call(tickAdjust)\n .call(g => g.select('.domain').remove())\n .call(g =>\n g\n .append('text')\n .attr('x', marginLeft)\n .attr('class', legendClassNames.legendTitle)\n .attr(\n 'y',\n marginTop +\n marginBottom -\n height -\n (titleMarginBottom || legendDefaultParams.titleMarginBottom)\n )\n .attr('fill', 'currentColor')\n .attr('text-anchor', 'start')\n .attr('font-weight', 'bold')\n .text(title as string)\n );\n\n return svg;\n};\n","import styled from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\nimport { legendClassNames } from \"../../helpers/getLegend\";\n\nexport const calendarChartClassNames = {\n calendarChart: \"calendarChart\",\n calendarYear: \"calendarYear\",\n calendarAxis: \"calendarAxis\",\n calendarBody: \"calendarBody\",\n calendarHeader: \"calendarHeader\",\n calendarYearTitle: \"calendarYearTitle\",\n calendarWeekDay: \"calendarWeekDay\",\n calendarMonth: \"calendarMonth\",\n calendarDays: \"calendarDays\",\n calendarDay: \"calendarDay\",\n ...legendClassNames,\n};\n\nconst headerHeight = \"20px\";\n\nexport const SvgWrapper = styled(Wrapper)`\n .${calendarChartClassNames.calendarYear} {\n display: flex;\n margin-bottom: 16px;\n }\n\n .${calendarChartClassNames.calendarYearTitle} {\n display: inline-flex;\n align-items: flex-end;\n height: ${headerHeight};\n margin-bottom: 4px;\n font-weight: bold;\n }\n\n .${calendarChartClassNames.calendarHeader} {\n height: ${headerHeight};\n margin-bottom: 4px;\n position: relative;\n display: flex;\n }\n\n .${calendarChartClassNames.calendarMonth} {\n font-size: 14px;\n bottom: 0;\n position: absolute;\n }\n\n .${calendarChartClassNames.calendarAxis} {\n display: flex;\n flex-direction: column;\n margin-right: 10px;\n }\n\n .${calendarChartClassNames.calendarWeekDay} {\n font-size: 12px;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n .${calendarChartClassNames.calendarDays} {\n position: relative;\n }\n\n .${calendarChartClassNames.calendarDay} {\n position: absolute;\n }\n`;\n","import * as d3 from 'd3';\n\nimport { Interpolator } from '../../common/types/interpolator';\nimport { CalendarChartProps, CalendarChartData } from './types';\n\nimport { getLegend } from '../../helpers/getLegend';\n\nimport { calendarChartClassNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: CalendarChartProps\n): void => {\n const {\n data,\n startSunday,\n weekdays,\n interpolator,\n monthSpacing,\n onEachDay,\n colorRange,\n legendProps,\n } = props;\n\n if (node !== null && data.length) {\n const years: Map<number, CalendarChartData[]> = d3.group(data, d =>\n d.date.getUTCFullYear()\n );\n const cellOffset =\n typeof props.cellOffset === 'number' ? props.cellOffset : 0;\n const weekDays = 7;\n const defaultCellSize = 18;\n const cellSize = props.cellSize || defaultCellSize;\n const countDay = (i: number) =>\n startSunday ? i : (i + (weekDays - 1)) % weekDays;\n const days = weekdays || ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];\n const sundayIndex = 6;\n const formatDay = (i: number) =>\n startSunday ? days[i] : i === sundayIndex ? days[0] : days[i + 1];\n const formatDate = d3.utcFormat('%x');\n const timeWeek = startSunday ? d3.utcSunday : d3.utcMonday;\n const getTimeWeekCount = (from: Date, to: Date) =>\n timeWeek.count(d3.utcYear(from), to);\n const getMonthSpacing = (date: Date) =>\n date.getUTCMonth() * (monthSpacing || 0);\n const formatMonth = d3.utcFormat('%b');\n const max = d3.max(data.map(({ value }) => value)) as number;\n const min = d3.min(data.map(({ value }) => value)) as number;\n\n const color = colorRange\n ? d3\n .scaleLinear()\n .domain([min, max])\n // @ts-ignore\n .range(colorRange)\n : d3\n .scaleSequential(interpolator || d3.interpolateGreens)\n .domain([min, +max]);\n\n let chartWidth = 0;\n\n years.forEach((values, year) => {\n const min = new Date(year, 1);\n const max = d3.max(values.map(d => d.date)) as Date;\n const months = max.getUTCMonth() - min.getUTCMonth();\n const weekCount = getTimeWeekCount(min, max) + 1;\n const width =\n weekCount * (cellSize + cellOffset) + (monthSpacing || 0) * months;\n\n chartWidth = Math.max(chartWidth, width);\n });\n\n d3.select(node)\n .select(`.${calendarChartClassNames.calendarChart}`)\n .remove();\n\n const container = d3\n .select(node)\n .append('div')\n .attr('class', calendarChartClassNames.calendarChart);\n\n const year = container\n .selectAll('div')\n // @ts-ignore\n .data(years)\n .join('div')\n .attr('class', calendarChartClassNames.calendarYear);\n\n const calendarWeekdays = year\n .append('div')\n .attr('class', calendarChartClassNames.calendarAxis);\n\n calendarWeekdays\n .append('div')\n .attr('class', calendarChartClassNames.calendarYearTitle)\n // @ts-ignore\n .text(([key]) => key);\n\n calendarWeekdays\n .selectAll('span')\n .data(d3.range(weekDays))\n .join('div')\n .attr('class', calendarChartClassNames.calendarWeekDay)\n .style('height', cellSize + 'px')\n .style('margin-bottom', cellOffset + 'px')\n .text(formatDay);\n\n const body = year\n .append('div')\n .attr('class', calendarChartClassNames.calendarBody);\n\n const header = body\n .append('div')\n .attr('class', calendarChartClassNames.calendarHeader);\n\n header\n .selectAll('div')\n // @ts-ignore\n .data(([_, values]) => {\n const fullYearlastMonth = 12;\n const fullYearlastDate = 31;\n\n return d3.utcMonths(\n d3.utcMonth(new Date(values[0].date.getUTCFullYear(), 1, 1)),\n d3.utcMonth(\n new Date(\n values[0].date.getUTCFullYear(),\n fullYearlastMonth,\n fullYearlastDate\n )\n )\n );\n })\n .join('div')\n .attr('class', calendarChartClassNames.calendarMonth)\n .style(\n 'left',\n (d: any) =>\n getTimeWeekCount(d, timeWeek.ceil(d)) * (cellSize + cellOffset) +\n getMonthSpacing(d) +\n 'px'\n )\n // @ts-ignore\n .text(formatMonth);\n\n // @ts-ignore\n body\n .append('div')\n .attr('class', calendarChartClassNames.calendarDays)\n .style('height', (cellSize + cellOffset) * weekDays + 'px')\n .style('width', chartWidth + 'px')\n .selectAll('div')\n // @ts-ignore\n .data(([, values]) => values)\n .join('div')\n // @ts-ignore\n .each((data: CalendarChartData, index, elements) => {\n if (onEachDay) {\n const element = elements[index] as HTMLDivElement;\n const currColor = color(data.value) as string;\n\n onEachDay(data, element, currColor);\n }\n })\n .attr('class', calendarChartClassNames.calendarDay)\n .style('width', cellSize + 'px')\n .style('height', cellSize + 'px')\n // @ts-ignore\n .style(\n 'left',\n (d: any) =>\n getTimeWeekCount(d.date, d.date) * (cellSize + cellOffset) +\n getMonthSpacing(d.date) +\n 'px'\n )\n .style(\n 'top',\n // @ts-ignore\n d => countDay(d.date.getUTCDay()) * (cellSize + cellOffset) + 'px'\n )\n // @ts-ignore\n .style('background-color', d => color(d.value))\n // @ts-ignore\n .attr('title', d => `${formatDate(d.date)} - ${d.value}`);\n\n if (typeof legendProps === 'object') {\n const legend = getLegend({\n color: color as Interpolator,\n ...legendProps,\n });\n\n const containerNode = container.node() as HTMLDivElement;\n const legendSvg = legend.node() as SVGElement;\n\n containerNode.appendChild(legendSvg);\n }\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { SvgWrapper } from \"./styled\";\n\nimport { useNode } from \"../../hooks\";\nimport { draw } from \"./draw\";\n\nimport { CalendarChartProps } from \"./types\";\n\nexport const CalendarChart: FC<CalendarChartProps> = (props) => {\n const {\n className,\n style,\n children,\n data,\n startSunday,\n weekdays,\n cellOffset,\n cellSize,\n interpolator,\n monthSpacing,\n colorRange,\n legendProps,\n } = props;\n\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n // eslint-disable-next-line\n }, [\n node,\n data,\n startSunday,\n weekdays,\n cellOffset,\n cellSize,\n interpolator,\n monthSpacing,\n colorRange,\n legendProps,\n ]);\n\n return (\n <SvgWrapper ref={ref} className={className} style={style}>\n {children}\n </SvgWrapper>\n );\n};\n\nCalendarChart.defaultProps = {\n data: [],\n};\n","import * as d3 from 'd3';\n\nexport function computeDimensions(\n selection: d3.Selection<any, any, any, any>\n): SVGRect | DOMRect {\n let dimensions;\n const node = selection.node();\n\n if (node instanceof SVGGraphicsElement) {\n // check if node is svg element\n dimensions = node.getBBox();\n } else {\n // else is html element\n dimensions = node.getBoundingClientRect();\n }\n\n return dimensions;\n}\n","export function none() {\n return;\n}\n\nexport function isVoid(value: any) {\n return value === undefined || value === null || Number.isNaN(value);\n}\n","import { LineChartData } from '../charts/LineChart/types';\n\nexport const stackedData = (data: LineChartData[]) => {\n const stacks: { [key: string]: { [key: string]: number } } = {};\n\n return data.map((item, index) => {\n stacks[index] = {};\n\n if (index > 0) {\n return {\n ...item,\n values: item.values.map((value, valuesIndex) => {\n const prevValue = stacks[index - 1][valuesIndex];\n stacks[index][valuesIndex] = Number(\n (typeof prevValue !== 'number' ? 0 : Math.abs(prevValue)) +\n (typeof value !== 'number' ? 0 : Math.abs(value))\n );\n\n return stacks[index][valuesIndex];\n }),\n };\n } else {\n item.values.forEach((value, valuesIndex) => {\n stacks[index][valuesIndex] = Number(value);\n });\n }\n\n return item;\n });\n};\n","import { JSXElementConstructor } from \"react\";\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\n\nexport const lineChartClassNames = {\n lineChartYScaleGlobal: \"lineChartYScaleGlobal\",\n lineChartYScaleRight: \"lineChartYScaleRight\",\n lineChartXScaleGlobal: \"lineChartXScaleGlobal\",\n lineChartLinesGlobal: \"lineChartLinesGlobal\",\n lineChartLine: \"lineChartLine\",\n lineChartAreasGlobal: \"lineChartAreasGlobal\",\n lineChartArea: \"lineChartArea\",\n lineChartDotsGlobalContainer: \"lineChartDotsGlobalContainer\",\n lineChartDotsGlobal: \"lineChartDotsGlobal\",\n lineChartDot: \"lineChartDot\",\n lineChartGridGlobal: \"lineChartGridGlobal\",\n lineChartGridLineX: \"lineChartGridLineX\",\n lineChartGridLineY: \"lineChartGridLineY\",\n lineChartLabelContainer: \"lineChartLabelContainer\",\n lineChartLabelFlex: \"lineChartLabelFlex\",\n lineChartLabel: \"lineChartLabel\",\n lineChartMouseGlobal: \"lineChartMouseGlobal\",\n lineChartMouseLine: \"lineChartMouseLine\",\n lineChartMouseRect: \"lineChartMouseRect\",\n lineChartMouseCircle: \"lineChartMouseCircle\",\n lineChartMouseLabelContainer: \"lineChartMouseLabelContainer\",\n lineChartMouseLabel: \"lineChartMouseLabel\",\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${lineChartClassNames.lineChartYScaleGlobal},\n .${lineChartClassNames.lineChartXScaleGlobal},\n .${lineChartClassNames.lineChartGridGlobal} {\n shape-rendering: crispEdges;\n }\n\n .${lineChartClassNames.lineChartLinesGlobal} {\n fill: none;\n stroke: steelblue;\n stroke-width: 1.5px;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .${lineChartClassNames.lineChartArea} {\n fill-opacity: 0.24;\n }\n\n .${lineChartClassNames.lineChartGridLineX},\n .${lineChartClassNames.lineChartGridLineY},\n .${lineChartClassNames.lineChartMouseLine} {\n stroke: rgba(149, 149, 149, 0.24);\n }\n\n .${lineChartClassNames.lineChartMouseLine},\n .${lineChartClassNames.lineChartMouseCircle} {\n transition: opacity linear 200ms;\n pointer-events: none;\n stroke-width: 1px;\n }\n\n .${lineChartClassNames.lineChartDot} {\n stroke: #fff;\n stroke-width: 2px;\n }\n\n .${lineChartClassNames.lineChartMouseLine} {\n shape-rendering: crispEdges;\n }\n\n .${lineChartClassNames.lineChartMouseRect} {\n fill: none;\n pointer-events: all;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${lineChartClassNames.lineChartMouseLabel} {\n transition: opacity linear 200ms;\n z-index: 100;\n\n .${lineChartClassNames.lineChartLabelFlex} {\n justify-content: flex-start;\n align-items: center;\n pointer-events: none;\n }\n\n .${lineChartClassNames.lineChartLabel} {\n margin: 0 0 0 10px;\n }\n }\n` as JSXElementConstructor<any>;\n","import { DrawGridProps } from './types';\n\nimport { lineChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n lastIndex,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n\n const global = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', lineChartClassNames.lineChartGridLineX)\n .attr('x1', () => xScale(0))\n .attr('x2', () => xScale(lastIndex))\n .attr('y1', (d: number) => Math.round(yScale(d)))\n .attr('y2', (d: number) => Math.round(yScale(d)));\n }\n\n if (drawGridY) {\n global\n .append('g')\n .selectAll('line')\n .data(Array.from({ length: lastIndex + 1 }, (_, index) => index))\n .join('line')\n .attr('class', lineChartClassNames.lineChartGridLineY)\n .attr('x1', (_, index: number) => Math.round(xScale(index) as number))\n .attr('x2', (_, index: number) => Math.round(xScale(index) as number))\n .attr('y1', () => Math.round(yScale(yTicks[0]) as number))\n .attr('y2', () =>\n Math.round(yScale(yTicks[yTicks.length - 1]) as number)\n );\n }\n};\n","import styled from 'styled-components';\n\nexport const LabelContainer = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n font-size: 12px;\n white-space: nowrap;\n`;\n\nexport const Label = styled.div`\n margin-bottom: 4px;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawLabelProps } from './types';\n\nimport { none } from '../../../helpers/common';\n\nimport { lineChartClassNames } from '../styled';\nimport { LabelContainer, Label } from './styled';\n\nexport const labelClassName = 'd3-chart-label';\n\nexport const drawLabel = ({\n node,\n data,\n yScale,\n xScale,\n formatLabel,\n eachLabel,\n}: DrawLabelProps) => {\n const labelsDiv = d3\n .select(node)\n .append('div')\n .attr('class', labelClassName);\n const format = d3.format(',');\n\n // @ts-ignore\n data.forEach(({ values }: { values: number[] }) => {\n labelsDiv\n .append('div')\n .selectAll('div')\n .data(values)\n .join('div')\n .attr('class', lineChartClassNames.lineChartLabelContainer)\n .style('position', 'absolute')\n .style('left', (_, index) => xScale(index) + 'px')\n .style('top', d => yScale(d) + 'px')\n .html((d: number, index, elements: any) => {\n const html = ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n <Label className={lineChartClassNames.lineChartLabel}>\n {formatLabel ? formatLabel(d, index, elements) : format(d)}\n </Label>\n </LabelContainer>\n );\n\n return html;\n })\n // @ts-ignore\n .each(eachLabel ? eachLabel : none);\n });\n};\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawTooltipProps } from './types';\n\nimport { isVoid } from '../../../helpers/common';\n\nimport { lineChartClassNames } from '../styled';\nimport { Label, LabelContainer } from '../drawLabel/styled';\n\nexport const drawTooltip = ({\n svg,\n node,\n data: argData,\n xScale,\n yScale,\n dynamicCircleRadius,\n formatDynamicTooltip,\n renderTooltip,\n stackedTooltipIndex,\n stackedTooltip,\n tooltipLineTop,\n tooltipRoot,\n tooltipClassName,\n dotSnapping,\n lastIndex,\n}: DrawTooltipProps) => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n const chartData = argData.filter(({ tooltipOff }) => !tooltipOff);\n\n const data =\n typeof stackedTooltipIndex === 'number'\n ? [chartData[stackedTooltipIndex]]\n : stackedTooltip\n ? [chartData[0]]\n : chartData;\n\n const [x1, x2] = xScale.range();\n const [y1, y2] = yScale.range();\n\n const mouseGlobal = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartMouseGlobal);\n\n const mouseRect = mouseGlobal\n .append('rect')\n .attr('width', x2 - x1)\n .attr('height', Math.abs(y1 - y2))\n .attr('class', lineChartClassNames.lineChartMouseRect)\n .attr('transform', `translate(${x1}, ${y2})`);\n\n const mouseLine = mouseGlobal\n .append('path')\n .attr('class', lineChartClassNames.lineChartMouseLine)\n .style('opacity', '0');\n\n const lines = svg\n .selectAll(`.${lineChartClassNames.lineChartLine}`)\n .nodes() as SVGPathElement[];\n\n const circles = mouseGlobal\n .selectAll('circle')\n .data(chartData.filter(({ dynamicDotOff }) => !dynamicDotOff))\n .join('circle')\n .attr('class', lineChartClassNames.lineChartMouseCircle)\n .attr('r', dynamicCircleRadius as number)\n .attr('fill', ({ stroke }) => stroke || 'none')\n .attr('stroke', ({ stroke }) => stroke || 'none')\n .style('opacity', '0');\n\n let labelContainer: d3.Selection<any, unknown, any, any> = d3.select(\n `.${lineChartClassNames.lineChartMouseLabelContainer}`\n );\n\n if (labelContainer.size() === 0) {\n labelContainer = d3\n .select(container)\n .append('div')\n .attr('class', lineChartClassNames.lineChartMouseLabelContainer);\n }\n\n let labels: d3.Selection<any, any, any, any> | null = null;\n\n let isVisible = false;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n const opacity = isVisible ? '1' : '0';\n mouseLine.style('opacity', opacity);\n circles.style('opacity', opacity);\n labels && labels.style('opacity', opacity);\n };\n\n const mouseMove = (event: MouseEvent | TouchEvent) => {\n const [docX, docY] = d3.pointer(event, document);\n const [rectrX] = d3.pointer(event, mouseRect);\n const [nodeX, nodeY] = d3.pointer(event, node);\n const x = rectrX - (rectrX - nodeX);\n const left = nodeX + (docX - nodeX);\n const currIndex = Math.abs(xScale.invert(x));\n const positions: { [key: string]: { x: number; y: number } } = {};\n\n const getValue = (values: (number | null)[]) => {\n // The returning result is fixed for the task: https://jr.everpoint.ru/browse/PUB-5648\n // Before the task it was like this (and I don't know why):\n /* return !isVoid(values[Math.floor(currIndex + 1)])\n ? values[Math.floor(currIndex)]\n : null;*/\n\n return values[Math.floor(currIndex)];\n }\n\n lines.forEach((line, index) => {\n let pos = {\n x: 0,\n y: 0,\n };\n\n if (!line.hasAttribute('d') || argData[index].tooltipOff) {\n positions[index] = pos;\n return;\n }\n\n if (!dotSnapping) {\n let beginning = 0;\n let end = line.getTotalLength();\n let target = null;\n\n while (true) {\n target = Math.floor((beginning + end) / 2);\n pos = line.getPointAtLength(target);\n\n if ((target === end || target === beginning) && pos.x !== x) {\n break;\n }\n\n if (pos.x > x) {\n end = target;\n } else if (pos.x < x) {\n beginning = target;\n } else {\n break;\n }\n }\n\n positions[index] = pos;\n } else {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n const step = chartWidth / lastIndex;\n\n positions[index] = {\n x: x1 + Math.round(currIndex) * step,\n y: typeof argData[index].values[Math.round(currIndex)] === \"number\"\n ? yScale(argData[index].values[Math.round(currIndex)] as number)\n : 0,\n };\n }\n });\n\n circles\n .attr('transform', (lineChartData, index) => {\n const value = getValue(lineChartData.values);\n\n return positions[index] && value\n ? 'translate(' + (!dotSnapping ? x : positions[index].x) + ',' + positions[index].y + ')'\n : 'translate(-9999, -9999)';\n })\n .attr('style', ({ dynamicDotStyle }) => dynamicDotStyle || '');\n\n const datas = chartData.map(({ values, ...rest }, i) => ({\n ...rest,\n value: getValue(values),\n invertValue: positions[i] ? yScale.invert(positions[i].y) : 0,\n }));\n\n const noHasData = datas.every(({ value }) => isVoid(value));\n\n if (noHasData && isVisible) {\n setVisible();\n } else if (!isVisible && !noHasData) {\n setVisible(true);\n }\n\n const topIndex = Object.keys(positions).reduce((acc, key, index) => {\n const prevValue = datas[Number(acc)]?.value;\n const value = datas[Number(key)]?.value;\n const dynamicDotOff = argData?.[index].dynamicDotOff;\n\n return index === 0 || isVoid(value) || dynamicDotOff\n ? acc\n : isVoid(prevValue) || positions[acc].y > positions[key].y\n ? key\n : acc;\n }, '0');\n\n const labelTexts =\n labels &&\n labels\n .style('left', (_, i) => {\n return !dotSnapping ? `${left}px` : `${positions[i]?.x ?? 0}px`;\n })\n .style('top', (_, i) => {\n const index =\n typeof stackedTooltipIndex === 'number'\n ? stackedTooltipIndex\n : stackedTooltip\n ? topIndex\n : i;\n\n return `${(positions[index]?.y ?? 0) + (docY - nodeY)}px`;\n })\n .select(`.${lineChartClassNames.lineChartLabel}`);\n\n if (renderTooltip && labels) {\n labels.html((_, index) => {\n return ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n {renderTooltip(datas, {\n indexX: Math.round(currIndex),\n indexY: index,\n svg,\n event,\n })}\n </LabelContainer>\n );\n });\n } else {\n labelTexts &&\n labelTexts.text((_, i) => {\n const value = datas[i].value;\n const invertValue = datas[i].invertValue;\n\n return formatDynamicTooltip\n ? formatDynamicTooltip(invertValue, value)\n : format(invertValue);\n });\n }\n\n mouseLine.attr('d', () => {\n let d = 'M' + x + ',' + y1;\n d += ' ' + x + ',' + (tooltipLineTop ? y2 : positions[topIndex]?.y || 0);\n return d;\n });\n };\n\n mouseRect.on('mouseover.tooltip', event => {\n labels = labelContainer\n .selectAll('div')\n .data(data)\n .join('div')\n .attr(\n 'class',\n `${lineChartClassNames.lineChartMouseLabel} ${tooltipClassName || ''}`\n )\n .style('opacity', '0')\n .style('position', 'absolute')\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <LabelContainer className={lineChartClassNames.lineChartLabelFlex}>\n <Label className={lineChartClassNames.lineChartLabel} />\n </LabelContainer>\n );\n\n return html;\n });\n\n mouseMove(event);\n });\n\n mouseRect.on('mouseout.tooltip', () => {\n d3.select(`.${lineChartClassNames.lineChartMouseLabelContainer}`)\n .selectAll('*')\n .remove();\n setVisible();\n });\n\n mouseRect.on('touchmove.tooltip mousemove.tooltip', mouseMove);\n};\n","import * as d3 from 'd3';\n\nimport { LineChartProps, LineChartData, LineChartDot } from './types';\n\nimport { computeDimensions } from '../../helpers/computeDimensions';\nimport { appendSvg } from '../../helpers';\nimport { none } from '../../helpers/common';\nimport { stackedData } from '../../helpers/stackedData';\nimport { drawGrid } from './drawGrid';\nimport { drawLabel, labelClassName } from './drawLabel';\nimport { drawTooltip } from './drawTooltip';\n\nimport { lineChartClassNames } from './styled';\n\nexport const draw = (node: HTMLElement | null, props: LineChartProps): void => {\n const {\n data: chartData,\n labels,\n margin,\n customYAxisSelection,\n customXAxisSelection,\n customYAxis,\n customXAxis,\n curve,\n yAxisPadding,\n xAxisPadding,\n drawGridY,\n drawGridX,\n withLabels,\n formatLabel,\n eachLabel,\n stacked,\n dynamicTooltipEnable,\n dynamicCircleRadius,\n formatDynamicTooltip,\n renderTooltip,\n stackedTooltip,\n stackedTooltipIndex,\n tooltipLineTop,\n customize,\n customYScale,\n customLine,\n tooltipClassName,\n xScaleItemWidth,\n areaCurve,\n dotSnapping,\n rightAxis,\n } = props;\n\n if (node !== null && chartData.length) {\n const data = stacked ? stackedData(chartData) : chartData;\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const min =\n typeof props.min === 'number'\n ? props.min\n : d3.min(data, ({ values }) => d3.min(values as number[]));\n const max =\n typeof props.max === 'number'\n ? props.max\n : d3.max(data, ({ values }) => d3.max(values as number[]));\n\n const svg = appendSvg(node, width, height || 0);\n\n const yRange = [\n height - marginTop - marginBottom - (xAxisPadding || 0),\n marginTop,\n ];\n const yScale = d3\n .scaleLinear()\n .domain([min || 0, max || 0])\n .range(yRange)\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicksCountDefault = 8;\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n customYAxis && customYAxis(yAxisLeft);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartYScaleGlobal)\n .call(yAxisLeft)\n .call(customYAxisSelection ? customYAxisSelection : none);\n const { width: yAxisWidth } = computeDimensions(yAxis);\n\n yAxis.attr('transform', `translate(${marginLeft + yAxisWidth}, 0)`);\n\n let yAxisRightWidth = 0;\n\n if (rightAxis) {\n const rightAxisMin = d3.min(rightAxis);\n const rightAxisMax = d3.max(rightAxis);\n const yRightScale = d3\n .scaleLinear()\n .domain([rightAxisMin || 0, rightAxisMax || 0])\n .range(yRange)\n .nice();\n\n const yAxisRightTicks = d3.axisRight(yRightScale).ticks(yTicksCountDefault);\n const yAxisRight = svg\n .append('g')\n .attr('class', `${lineChartClassNames.lineChartYScaleGlobal} ${lineChartClassNames.lineChartYScaleRight}`)\n .call(yAxisRightTicks)\n .call(customYAxisSelection ? customYAxisSelection : none);\n\n ({ width: yAxisRightWidth } = computeDimensions(yAxisRight));\n\n yAxisRight.attr('transform', `translate(${width - yAxisRightWidth}, 0)`);\n }\n\n /** xScale **/\n const lastIndex =\n labels && labels.length\n ? labels.length - 1\n : data.reduce((acc, { values }) => Math.max(acc, values.length), 0) - 1;\n\n const xScale = d3\n .scaleLinear()\n .domain([0, lastIndex])\n .range([\n marginLeft + yAxisWidth + (yAxisPadding || 0),\n width - yAxisRightWidth - marginRight,\n ]);\n\n const xAxisBottom = d3\n .axisBottom(xScale)\n .tickFormat((value: d3.NumberValue) =>\n // @ts-ignore\n labels && labels.length > 0 ? labels[value] : 0\n )\n .ticks(lastIndex);\n\n if (typeof xScaleItemWidth === 'number') {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n\n xAxisBottom\n .ticks(Math.round(chartWidth / xScaleItemWidth))\n .tickSizeOuter(0);\n }\n\n customXAxis && customXAxis(xAxisBottom);\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n lastIndex,\n drawGridY,\n drawGridX,\n });\n\n if (Array.isArray(labels) && labels.length > 0) {\n const xAxis = svg\n .append('g')\n .call(customXAxisSelection ? customXAxisSelection : none)\n .attr('class', lineChartClassNames.lineChartXScaleGlobal)\n .call(xAxisBottom);\n\n const { height: xAxisHeight } = computeDimensions(xAxis);\n\n xAxis.attr(\n 'transform',\n `translate(0, ${height - Math.ceil(xAxisHeight) - marginBottom})`\n );\n }\n\n const line = d3\n .line()\n .defined(d => d !== null)\n .x((_, index) => xScale(index))\n .y((d: unknown) => yScale(d as d3.NumberValue))\n .curve(curve || d3.curveLinear);\n\n customLine && customLine(line);\n\n const withAreas = data.some(({ fill }) => fill);\n\n if (withAreas) {\n let dataIndex = -2;\n\n const getArea = (d: LineChartData): d3.Area<[number, number]> => {\n const { minAreaValues } = d;\n const minTick = yScale.ticks()[0];\n\n return d3\n .area()\n .defined(d => d !== null)\n .x((_, index) => xScale(index))\n .y0((value: unknown, index) => {\n if (index === 0) {\n dataIndex = dataIndex + 1;\n }\n\n let minValue: number = minTick;\n\n if (minAreaValues && typeof minAreaValues[index] === 'number') {\n minValue = minAreaValues[index] || minValue;\n } else if (minAreaValues) {\n minValue = yScale(\n (minValue - (value as number)) as d3.NumberValue\n );\n }\n\n const currData = data[dataIndex];\n\n return stacked\n ? dataIndex > -1\n ? yScale(\n typeof currData.values[index] !== 'number'\n ? 0\n : (currData.values[index] as number)\n )\n : yScale(minValue)\n : yScale(minValue);\n })\n .y1((d: unknown) => yScale(d as d3.NumberValue))\n .curve(areaCurve || curve || d3.curveLinear);\n };\n\n svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartAreasGlobal)\n .selectAll('path')\n .data(data.filter(({ fill }) => Boolean(fill)))\n .join('path')\n .attr('class', lineChartClassNames.lineChartArea)\n .attr('d', (d: LineChartData) => {\n const area = getArea(d);\n\n return area((d.values as unknown) as [number, number][]);\n })\n .attr('fill', ({ fill }) => fill || 'none')\n .attr('style', ({ areaStyle }) => areaStyle || '');\n }\n\n svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartLinesGlobal)\n .selectAll('path')\n .data(data)\n .join('path')\n .attr('class', lineChartClassNames.lineChartLine)\n .attr('d', (d: LineChartData | any) => line(d.values))\n .attr('stroke', ({ stroke }) => stroke || 'steelblue')\n .attr('style', ({ style }) => style || '');\n\n const dots = data.filter(({ dot }) => dot) as (Omit<\n LineChartData,\n 'dot'\n > & {\n dot: LineChartDot;\n })[];\n\n if (dots.length > 0) {\n const dotsGlobal = svg\n .append('g')\n .attr('class', lineChartClassNames.lineChartDotsGlobalContainer);\n\n dots.forEach(item => {\n const { values, dot } = item;\n const { radius, style, filter } = dot;\n\n const dotsGroup = dotsGlobal\n .append('g')\n .attr('class', lineChartClassNames.lineChartDotsGlobal);\n\n dotsGroup\n .selectAll('circle')\n .data(values)\n .join('circle')\n .attr('cx', (_, index) => xScale(index))\n .attr('class', lineChartClassNames.lineChartDot)\n .attr('cy', d => yScale(d as d3.NumberValue))\n .attr('r', radius || 0)\n .attr('style', style || '');\n\n if (filter) {\n dotsGroup\n .selectAll('circle')\n .select((_, i, g) => (filter(item, i, g) ? g[i] : null))\n .remove();\n }\n });\n }\n\n d3.select(node)\n .select(`.${labelClassName}`)\n .remove();\n withLabels &&\n drawLabel({ node, eachLabel, data, yScale, xScale, formatLabel });\n\n if (dynamicTooltipEnable) {\n drawTooltip({\n tooltipLineTop,\n stackedTooltip,\n renderTooltip,\n stackedTooltipIndex,\n formatDynamicTooltip,\n node,\n svg,\n data,\n xScale,\n yScale,\n dynamicCircleRadius,\n tooltipClassName,\n dotSnapping,\n lastIndex,\n });\n }\n\n customize && customize({ svg, yScale, xScale });\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { LineChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nexport const LineChart: FC<LineChartProps> = (props) => {\n const { className, style, children } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nLineChart.defaultProps = {\n data: [],\n labels: [],\n height: 240,\n yAxisPadding: 10,\n xAxisPadding: 20,\n margin: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 0,\n },\n dynamicCircleRadius: 4,\n stackedTooltip: false,\n};\n","import * as d3 from 'd3';\n\nimport { BarChartLineData } from '../types';\nimport { DrawLinesProps } from './types';\n\nexport const barChartLinesClassNames = {\n barChartLinesGlobal: 'barChartLinesGlobal',\n barChartLine: 'barChartLine',\n barChartAreasGlobal: 'barChartAreasGlobal',\n barChartArea: 'barChartArea',\n};\n\nexport const drawLines = ({\n svg,\n lineData,\n min,\n yScale,\n xScale,\n curve,\n stackedLine,\n}: DrawLinesProps) => {\n let linesSelection = null;\n let areasSelection = null;\n let area: d3.Area<[number, number]> | null = null;\n\n const line = d3\n .line()\n .defined(d => d !== null)\n .x(\n (_, index) =>\n (xScale((index as unknown) as string) as number) + bandwidth / 2\n )\n // @ts-ignore\n .y((d: number) => yScale(d))\n .curve(curve || d3.curveLinear);\n const bandwidth = xScale.bandwidth();\n\n const linesData = lineData.filter(({ lineType }) => lineType === 'line');\n const areasData = lineData.filter(({ lineType }) => lineType === 'area');\n\n if (linesData.length > 0) {\n linesSelection = svg\n .append('g')\n .attr('class', barChartLinesClassNames.barChartLinesGlobal)\n .selectAll('path')\n .data(linesData)\n .join('path')\n .attr('class', barChartLinesClassNames.barChartLine)\n .attr('d', (d: BarChartLineData) =>\n line(d.values as Iterable<[number, number]>)\n )\n .attr('stroke', ({ stroke }) => stroke || '')\n .attr('fill', ({ fill }) => fill || 'none');\n }\n\n if (areasData.length > 0) {\n let dataIndex = -2;\n\n area = d3\n .area()\n .x(\n (_, index) =>\n (xScale((index as unknown) as string) as number) + bandwidth / 2\n )\n .y0((_, index) => {\n if (index === 0) {\n dataIndex = dataIndex + 1;\n }\n\n return stackedLine\n ? dataIndex > -1\n ? yScale(\n typeof lineData[dataIndex].values[index] !== 'number'\n ? 0\n : (lineData[dataIndex].values[index] as number)\n )\n : yScale(min as number)\n : yScale(min as number);\n })\n // @ts-ignore\n .y1(d => yScale(d))\n .curve(curve || d3.curveLinear);\n\n areasSelection = svg\n .append('g')\n .attr('class', barChartLinesClassNames.barChartAreasGlobal)\n .selectAll('path')\n .data(areasData)\n .join('path')\n .attr('class', barChartLinesClassNames.barChartArea)\n .attr('d', (d: BarChartLineData | any) => area && area(d.values))\n .attr('fill', ({ fill }) => fill || 'none');\n }\n\n return {\n areasSelection,\n linesSelection,\n area,\n };\n};\n","import styled, { createGlobalStyle } from 'styled-components';\n\nimport { Wrapper } from '../../common/components/Wrapper';\nimport { barChartLinesClassNames } from './drawLines';\nimport { JSXElementConstructor } from \"react\";\n\nconst tooltipClassnames = {\n barChartMouseRect: 'barChartMouseRect',\n barChartMouseContainer: 'barChartMouseContainer',\n barChartTooltipFlex: 'barChartTooltipFlex',\n barChartMouseTooltip: 'barChartMouseTooltip',\n barChartTooltip: 'barChartTooltip',\n barChartTooltipItem: 'barChartTooltipItem',\n barChartTooltipColFlex: 'barChartTooltipColFlex',\n barChartTooltipGroupName: 'barChartTooltipGroupName',\n barChartColorBox: 'barChartColorBox',\n barChartColorLine: 'barChartColorLine',\n barChartTooltipName: 'barChartTooltipName',\n barChartTooltipValue: 'barChartTooltipValue',\n};\n\nconst labelClassnames = {\n barChartLabelContainer: 'barChartLabelContainer',\n barChartLabelFlex: 'barChartLabelFlex',\n barChartLabel: 'barChartLabel',\n};\n\nexport const barChartClassNames = {\n barChartBarGlobal: 'barChartBarGlobal',\n barChartYScaleGlobal: 'barChartYScaleGlobal',\n barChartYAxis: 'barChartYAxis',\n barChartXAxis: 'barChartXAxis',\n barChartYAxisZeroTick: 'barChartYAxisZeroTick',\n barChartGridGlobal: 'barChartGridGlobal',\n barChartGridLineX: 'barChartGridLineX',\n barChartGridLineXZero: 'barChartGridLineXZero',\n barChartGridLineYZero: 'barChartGridLineYZero',\n barChartGridLineY: 'barChartGridLineY',\n barChartSelection: 'barChartSelection',\n ...tooltipClassnames,\n ...labelClassnames,\n ...barChartLinesClassNames,\n};\n\nexport const SvgWrapper = styled(Wrapper)<{ selectable?: boolean }>`\n display: ${({ selectable }) => selectable && \"inline-block\"};\n user-select: ${({ selectable }) => selectable && \"none\"};\n width: ${({ selectable }) => selectable && \"auto\"};\n\n line {\n stroke-width: 1px;\n shape-rendering: crispEdges;\n }\n\n .${barChartClassNames.barChartGridLineX},\n .${barChartClassNames.barChartGridLineY} {\n stroke: rgba(48, 69, 79, 0.06);\n }\n\n .${barChartClassNames.barChartMouseRect} {\n }\n\n .${barChartClassNames.barChartMouseRect} {\n fill: none;\n pointer-events: all;\n }\n\n .${barChartClassNames.barChartLinesGlobal} {\n stroke-width: 1.5px;\n stroke-linejoin: round;\n stroke-linecap: round;\n }\n\n .${barChartClassNames.barChartLine} {\n shape-rendering: auto;\n }\n\n .${barChartClassNames.barChartArea} {\n fill-opacity: 0.24;\n }\n\n .${barChartClassNames.barChartSelection} {\n position: absolute;\n top: 0;\n width: 0;\n background: rgba(0, 170, 255, 0.06);\n box-shadow: 1px 0 0 #00AAFF, -1px 0 0 #00AAFF;\n pointer-events: none;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${barChartClassNames.barChartMouseTooltip} {\n z-index: 100;\n transition: all linear 144ms;\n\n .${barChartClassNames.barChartTooltipItem} {\n margin-bottom: 4px;\n :last-of-type {\n margin-bottom: 0;\n }\n }\n }\n` as JSXElementConstructor<any>;\n","import { useCallback, useEffect, useRef } from \"react\";\n\nimport { barChartClassNames } from \"../styled\";\n\nimport { BarChartProps } from \"../types\";\n\nexport const useSelection = (node: HTMLElement | null, props: BarChartProps) => {\n const drawing = useRef<boolean>(false);\n const startX = useRef<number>(0);\n const selection = useRef<HTMLDivElement | undefined>();\n\n const clearSelection = useCallback(() => {\n if (node && selection.current) {\n drawing.current = false;\n\n node.removeChild(selection.current);\n\n selection.current = undefined;\n }\n }, [node]);\n\n const onStartDrawing = useCallback((e: any) => {\n const isTouch = Boolean(e.touches);\n\n e.stopPropagation();\n\n if (node && e.which !== 3) {\n clearSelection();\n\n selection.current = document.createElement(\"div\");\n selection.current.setAttribute(\"class\", barChartClassNames.barChartSelection);\n selection.current.setAttribute(\"style\", `height: calc(100% - ${props.margin?.bottom ?? 0}px)`);\n\n node.appendChild(selection.current);\n\n drawing.current = true;\n startX.current = isTouch\n ? (e.touches[0]?.pageX - (node.firstChild as HTMLElement).getBoundingClientRect().left)\n : e.offsetX;\n selection.current.style.display = \"block\";\n selection.current.style.width = \"0px\";\n selection.current.style.left = `${startX.current}px`;\n }\n }, [node]);\n\n const onDraw = useCallback((e: any) => {\n const isTouch = Boolean(e.touches);\n\n e.stopPropagation();\n\n if (node && drawing.current && selection.current) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n const offsetX = isTouch\n ? (e.touches[0]?.pageX - (node.firstChild as HTMLElement).getBoundingClientRect().left)\n : e.offsetX;\n const newWidth = offsetX - startX.current;\n\n if (offsetX >= 0) {\n if (newWidth > 0) {\n selection.current.style.marginLeft = \"0px\";\n selection.current.style.width = offsetX <= nodeWidth ? `${newWidth}px` : `${nodeWidth - startX.current}px`;\n } else {\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${Math.abs(newWidth)}px`;\n selection.current.style.marginLeft = `${newWidth}px`;\n }\n }\n\n if (isTouch) {\n if (node.offsetLeft > e.touches[0].pageX) {\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${startX.current}px`;\n selection.current.style.marginLeft = `-${startX.current}px`;\n }\n }\n }\n }, [node]);\n\n const onMouseLeave = useCallback((e: any) => {\n if (drawing.current && node && selection.current) {\n if (node.offsetLeft > e.pageX) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n\n selection.current.style.right = `${nodeWidth - startX.current}px`;\n selection.current.style.width = `${startX.current}px`;\n selection.current.style.marginLeft = `-${startX.current}px`;\n }\n\n if (node.offsetLeft + node.offsetWidth < e.pageX) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n\n selection.current.style.left = `${startX.current}px`;\n selection.current.style.width = `${nodeWidth - startX.current}px`;\n selection.current.style.marginLeft = \"0px\";\n }\n }\n }, [node]);\n\n const onStopDrawing = useCallback(() => {\n if (node && selection.current) {\n const nodeWidth = (node.firstChild as HTMLElement).getBoundingClientRect().width;\n const selectionMinX = selection.current.offsetLeft >= 0\n ? selection.current.offsetLeft <= nodeWidth ? selection.current.offsetLeft : nodeWidth\n : 0;\n const selectionWidth = selection.current.getBoundingClientRect().right - selection.current.getBoundingClientRect().left;\n const selectionMaxX = selection.current.offsetLeft + selectionWidth <= nodeWidth\n ? selection.current.offsetLeft + selectionWidth >= 0 ? selection.current.offsetLeft + selectionWidth : 0\n : nodeWidth;\n const min = Math.round(selectionMinX);\n const max = Math.round(selectionMaxX);\n\n if (max - min > 0 && props.onSelect) {\n props.onSelect([min, max]);\n }\n }\n\n clearSelection();\n }, [node, clearSelection]);\n\n useEffect(() => {\n if (node) {\n node.childNodes.forEach((child) => {\n (child as HTMLElement).style.userSelect = \"none\";\n });\n\n node.addEventListener(\"mousedown\", onStartDrawing);\n node.addEventListener(\"touchstart\", onStartDrawing);\n node.addEventListener(\"mousemove\", onDraw);\n node.addEventListener(\"touchmove\", onDraw);\n node.addEventListener(\"mouseleave\", onMouseLeave);\n node.addEventListener(\"mouseup\", onStopDrawing);\n node.addEventListener(\"touchend\", onStopDrawing);\n document.addEventListener(\"mouseup\", onStopDrawing);\n }\n\n return () => {\n node?.removeEventListener(\"mousedown\", onStartDrawing);\n node?.removeEventListener(\"touchstart\", onStartDrawing);\n node?.removeEventListener(\"mousemove\", onDraw);\n node?.removeEventListener(\"touchmove\", onDraw);\n node?.removeEventListener(\"mouseleave\", onMouseLeave);\n node?.removeEventListener(\"mouseup\", onStopDrawing);\n node?.removeEventListener(\"touchend\", onStopDrawing);\n document.removeEventListener(\"mouseup\", onStopDrawing);\n };\n }, [node]);\n};\n","import { BarChartData } from '../types';\nimport { DrawGridProps } from './types';\n\nimport { barChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n\n const global = svg\n .append('g')\n .attr('class', barChartClassNames.barChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n const range = xScale.range();\n const domain = xScale.domain();\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', d =>\n d === 0\n ? `${barChartClassNames.barChartGridLineX} ${barChartClassNames.barChartGridLineXZero}`\n : barChartClassNames.barChartGridLineX\n )\n .attr('x1', () => range[0])\n .attr('x2', () => range[1])\n .attr('y1', (d: BarChartData | any) => Math.round(yScale(d) as number))\n .attr('y2', (d: BarChartData | any) => Math.round(yScale(d) as number));\n }\n\n if (drawGridY) {\n const getX = (index: number) =>\n domain[index] !== void 0\n ? index === 0\n ? range[0]\n : Math.round(\n xScale.step() * index +\n range[0] -\n (xScale.step() / 2) * xScale.padding()\n )\n : range[1];\n\n global\n .append('g')\n .selectAll('line')\n .data(Array.from({ length: domain.length + 1 }, (_, index) => index))\n .join('line')\n .attr('class', d =>\n d === 0\n ? `${barChartClassNames.barChartGridLineY} ${barChartClassNames.barChartGridLineYZero}`\n : barChartClassNames.barChartGridLineY\n )\n .attr('x1', getX)\n .attr('x2', getX)\n .attr('y1', () => Math.round(yScale(yTicks[0]) as number))\n .attr('y2', () =>\n Math.round(yScale(yTicks[yTicks.length - 1]) as number)\n );\n }\n};\n","import { BarChartProps } from './types';\n\nexport const getDomain = ({\n data,\n minDomainValue,\n maxDomainValue,\n}: Pick<BarChartProps, 'data' | 'minDomainValue' | 'maxDomainValue'>) => {\n let MIN = Number.POSITIVE_INFINITY;\n let MAX = Number.NEGATIVE_INFINITY;\n\n data.forEach(({ groupName, ...groups }) => {\n let groupMax = 0;\n let groupMin = 0;\n\n Object.keys(groups).forEach(key => {\n const group = groups[key as never];\n\n let stackMax = 0;\n let stackMin = 0;\n\n Object.keys(group).forEach(groupKey => {\n const value = group[groupKey];\n\n if (value > 0) {\n stackMax += value;\n } else {\n stackMin += value;\n }\n });\n\n groupMax = Math.min(groupMax, stackMin);\n groupMin = Math.max(groupMin, stackMax);\n });\n\n MIN = Math.min(MIN, groupMax);\n MAX = Math.max(MAX, groupMin);\n });\n\n if (MIN === 0 && MAX === 0) {\n return {\n min: typeof minDomainValue === 'number' ? minDomainValue : 0,\n max: typeof maxDomainValue === 'number' ? maxDomainValue : 1,\n };\n }\n\n return {\n min: typeof minDomainValue === 'number' ? minDomainValue : MIN,\n max: typeof maxDomainValue === 'number' ? maxDomainValue : MAX,\n };\n};\n","import { BarChartMarshalledGroup, BarChartMarshaling } from './types';\n\nexport const marshaling = ({\n data,\n yScale,\n xScale,\n barWidth,\n barPadding,\n colors,\n marginTop,\n}: BarChartMarshaling): BarChartMarshalledGroup[][] =>\n data.map(({ groupName, ...groups }, groupIndex) => {\n const marshalledGroup: BarChartMarshalledGroup[] = [];\n const hundred = 100;\n const bandwidth = xScale.bandwidth();\n const groupsKeys = Object.keys(groups);\n\n groupsKeys.forEach((key: string, stackIndex: number) => {\n const group = groups[key as never];\n const groupKeys = Object.keys(group);\n const barGroupWidth =\n ((barWidth as number) + (barPadding as number)) * groupsKeys.length -\n (groupKeys.length > 1 ? (barPadding as number) : 0);\n\n let stackMax = 0;\n let stackMin = 0;\n\n groupKeys.forEach(groupKey => {\n const value = group[groupKey];\n const color = colors[groupKey];\n const x =\n ((barWidth as number) + (barPadding as number)) * stackIndex +\n bandwidth / 2 -\n barGroupWidth / 2;\n const isPositiveValue = value > 0;\n const height = isPositiveValue\n ? Math.abs(\n ((yScale(stackMax - value) - yScale(stackMax) + Number.EPSILON) *\n hundred) /\n hundred\n )\n : Math.abs(\n ((yScale(stackMin - value) - yScale(stackMin) + Number.EPSILON) *\n hundred) /\n hundred\n );\n\n if (isPositiveValue) {\n stackMax += value;\n }\n\n const y = isPositiveValue\n ? ((yScale(stackMax) + Number.EPSILON) * hundred) / hundred\n : yScale(stackMin) - yScale(0) + yScale(0);\n\n marshalledGroup.push({\n x,\n y: y + (marginTop || 0),\n height,\n color,\n value,\n groupName: groupName as string,\n name: groupKey,\n stackIndex,\n groupIndex,\n });\n\n if (!isPositiveValue) {\n stackMin += value;\n }\n });\n });\n\n return marshalledGroup;\n });\n","import { BarChartLabelPosition, BarChartMarshalledGroup } from '../types';\n\nexport const getLabelY = (\n labelPosition: BarChartLabelPosition,\n y2: number,\n item: BarChartMarshalledGroup\n): number => {\n switch (labelPosition) {\n case 'center':\n return item.y + item.height / 2 - y2;\n case 'bottom':\n return item.y + item.height - y2;\n default:\n return item.y;\n }\n};\n","import { BarChartLabelPosition } from '../types';\n\nimport {\n Label as LabelUI,\n LabelTop,\n LabelBottom,\n} from '../../../common/components/tooltips';\n\nexport const getLabel = (labelPosition: BarChartLabelPosition) => {\n switch (labelPosition) {\n case 'top':\n return LabelTop;\n case 'bottom':\n return LabelBottom;\n default:\n return LabelUI;\n }\n};\n","import React from 'react';\nimport * as d3 from 'd3';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { DrawTooltipProps } from './types';\nimport {\n BarChartMarshalledGroup,\n BarChartLineData,\n BarChartMergedData,\n} from '../types';\n\nimport { getLabelY } from './getLabelY';\nimport { getLabel } from './getLabel';\nimport { barChartClassNames } from '../styled';\nimport {\n TooltipFlex,\n TooltipGroupName,\n LabelFlex,\n LabelFlexCenter,\n TooltipContainer,\n TooltipItem,\n ColFlex,\n ColorBox,\n ColorLine,\n Name,\n Value,\n} from '../../../common/components/tooltips';\n\nexport const drawTooltip = ({\n svg,\n node,\n data,\n marshalledData,\n xScale,\n yScale,\n renderTooltip,\n labelPosition,\n marginTop,\n renderLabel,\n barWidth,\n barPadding,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n tooltipY,\n tooltipBind,\n lineData,\n formatTooltipValue,\n formatTooltipName,\n tooltipYDomain,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n bars,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n}: DrawTooltipProps) => {\n d3.select(node)\n .select(`.${barChartClassNames.barChartMouseContainer}`)\n .remove();\n\n const xScaleBandDomain = xScale.domain();\n const [x1, x2] = xScale.range();\n const [y1, y2] = yScale.range();\n const bandwidth = xScale.bandwidth();\n const format = d3.format(',');\n\n const getX = (index: number): number =>\n xScaleBandDomain[index] !== void 0\n ? index === 0\n ? x1\n : Math.round(\n xScale.step() * index + x1 - (xScale.step() / 2) * xScale.padding()\n )\n : x2;\n const groups = xScaleBandDomain.map(value => getX(Number(value) + 1));\n\n const topYDomain = tooltipYDomain\n ? tooltipYDomain({ data: marshalledData, lineData, yScale })\n : marshalledData.reduce((acc, curr, index) => {\n const lineMin =\n d3.min(lineData as BarChartLineData[], ({ values }) =>\n typeof values[index] === 'number'\n ? yScale((values[index] || 0) - y2)\n : Number.POSITIVE_INFINITY\n ) || Number.POSITIVE_INFINITY;\n\n acc.push(\n curr.reduce(\n (acc, { y }) => Math.min(acc, y, lineMin as number),\n Number.POSITIVE_INFINITY\n ) as any\n );\n return acc;\n }, []);\n\n const mouseGlobal = svg.append('g').attr('class', 'lineChartMouseGlobal');\n const mouseRect = mouseGlobal\n .append('rect')\n .attr('width', x2 - x1)\n .attr('height', Math.abs(y1 - y2))\n .attr('class', barChartClassNames.barChartMouseRect)\n .attr('transform', `translate(${x1}, ${y2})`);\n\n if (dynamicTooltipEnable) {\n const tooltipContainer: Element | null =\n tooltipRoot || document.querySelector('body');\n let tooltip: d3.Selection<any, unknown, any, any> = d3.select(\n `.${barChartClassNames.barChartMouseTooltip}`\n );\n\n if (tooltip.size() === 0) {\n tooltip = d3\n .select(tooltipContainer)\n .append('div')\n .attr('class', barChartClassNames.barChartMouseTooltip)\n .style('opacity', '0')\n .style('position', 'absolute')\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipFlex className={barChartClassNames.barChartTooltipFlex} />\n );\n\n return html;\n });\n }\n\n const barChartTootipFlex = tooltip.select(\n `.${barChartClassNames.barChartTooltipFlex}`\n );\n\n let isVisible = false;\n let flagCurrIndex: number | null = null;\n\n const setVisible = (visible?: boolean) => {\n isVisible = Boolean(visible);\n\n const opacity = isVisible ? '1' : '0';\n tooltip.style('opacity', opacity);\n\n if (!isVisible) {\n tooltip.attr('class', barChartClassNames.barChartMouseTooltip);\n flagCurrIndex = null;\n tooltip.style('transition', 'none');\n tooltip.style('top', null);\n tooltip.style('left', null);\n } else {\n tooltip.attr(\n 'class',\n `${barChartClassNames.barChartMouseTooltip} ${tooltipClassName || ''}`\n );\n tooltip.style('transition', null);\n }\n };\n\n mouseRect.on('mouseout.tooltip', () => setVisible());\n mouseRect.on('touchmove.tooltip mousemove.tooltip', event => {\n const [docX, docY] = d3.pointer(event, document);\n const [rectrX] = d3.pointer(event, mouseRect);\n const [nodeX, nodeY] = d3.pointer(event, node);\n const x = rectrX - (rectrX - nodeX);\n const offsetX = docX - nodeX;\n const offsetY = docY - nodeY;\n\n const currIndex = groups.findIndex(value => x <= value);\n\n if (isBarTooltip) {\n const containts = document.elementsFromPoint(\n event.clientX,\n event.clientY\n );\n const currBars = d3\n .select(bars.nodes()[currIndex])\n .selectAll('rect')\n .nodes();\n const isContains = containts.some(item => currBars.includes(item));\n\n if (!isContains) {\n if (isVisible) {\n setVisible(false);\n }\n mouseRect.style('cursor', 'default');\n return;\n } else {\n mouseRect.style('cursor', 'pointer');\n }\n }\n\n const top =\n (typeof tooltipY === 'number'\n ? tooltipY\n : ((topYDomain[currIndex] as unknown) as number) - y2) + offsetY;\n const left =\n (tooltipBind\n ? (xScale((currIndex as unknown) as string) || 0) + bandwidth / 2\n : x) + offsetX;\n\n if (tooltipBind && flagCurrIndex === currIndex) {\n return;\n }\n\n let currData = marshalledData[currIndex] as BarChartMergedData;\n if (Array.isArray(currData) && currData.length === 0) {\n return;\n }\n\n if (lineData) {\n const currLineData = lineData.map(({ values, ...rest }) => ({\n ...rest,\n value: values[currIndex],\n groupName: data[currIndex] && data[currIndex].groupName,\n }));\n\n if (Array.isArray(currLineData) && Array.isArray(currData)) {\n currData = currData.concat(currLineData as BarChartMergedData);\n }\n }\n\n const svgWidth = (svg.node() as SVGElement).getBoundingClientRect()\n .width as number;\n\n if (typeof setTooltipPosition === 'function') {\n setTooltipPosition({\n left,\n top,\n tooltip,\n svgWidth,\n });\n } else if (!setTooltipPosition) {\n tooltip.style('left', `${left}px`).style('top', `${top}px`);\n }\n\n if (renderTooltip) {\n barChartTootipFlex.html(() => {\n const html = ReactDOMServer.renderToString(\n <>\n {renderTooltip(\n currData,\n setTooltipPosition\n ? {\n left,\n top,\n tooltip,\n svgWidth,\n }\n : undefined,\n barWidth\n )}\n </>\n );\n\n return html;\n });\n } else {\n if (!isVisible) {\n setVisible(true);\n }\n\n barChartTootipFlex.html(() => {\n const html = ReactDOMServer.renderToString(\n <TooltipContainer className={barChartClassNames.barChartTooltip}>\n {currData && currData[0] && !hideTooltipGroupName && (\n <TooltipGroupName\n className={barChartClassNames.barChartTooltipGroupName}\n >\n {currData[0].groupName}\n </TooltipGroupName>\n )}\n {currData &&\n currData.map(\n ({ name, value, stroke, fill, color, lineType }) => (\n <TooltipItem\n key={name}\n className={barChartClassNames.barChartTooltipItem}\n >\n <ColFlex\n className={barChartClassNames.barChartTooltipColFlex}\n >\n {lineType ? (\n <ColorLine\n className={barChartClassNames.barChartColorLine}\n style={{ backgroundColor: stroke || fill }}\n />\n ) : (\n <ColorBox\n className={barChartClassNames.barChartColorBox}\n style={{ backgroundColor: color }}\n />\n )}\n <Name\n className={barChartClassNames.barChartTooltipName}\n >\n {formatTooltipName ? formatTooltipName(name) : name}\n </Name>\n </ColFlex>\n <Value\n className={barChartClassNames.barChartTooltipValue}\n >\n {formatTooltipValue\n ? formatTooltipValue(value, name)\n : format(value)}\n </Value>\n </TooltipItem>\n )\n )}\n </TooltipContainer>\n );\n\n return html;\n });\n }\n\n flagCurrIndex = currIndex;\n if (!isVisible) {\n setVisible(true);\n }\n });\n }\n\n const container = d3\n .select(node)\n .append('div')\n .attr('class', barChartClassNames.barChartMouseContainer);\n\n const labelContainer = container\n .append('div')\n .attr('class', barChartClassNames.barChartLabelContainer)\n .style('position', 'absolute')\n .style('top', `${y2}px`);\n\n const isMouseWithin = (e: MouseEvent, callback: (group: BarChartMarshalledGroup) => void) => {\n const [rectrX, rectrY] = d3.pointer(e, mouseRect);\n const [nodeX, nodeY] = d3.pointer(e, node);\n const x = rectrX - (rectrX - nodeX);\n const y = rectrY - nodeY;\n\n const currIndex = groups.findIndex(value => x <= value);\n const dataItem = marshalledData[currIndex][0];\n\n if (dataItem.height >= y1 - y) {\n callback(dataItem);\n }\n };\n\n mouseGlobal\n .on(\"click\", e => isMouseWithin(e, (dataItem) => onBarClick && onBarClick(dataItem)))\n .on(\"mousemove\", e => isMouseWithin(e, (dataItem) => onBarHover && onBarHover(dataItem)))\n .on(\"mouseleave\", () => onBarHover && onBarHover(undefined));\n\n if (labelPosition) {\n const concatedData: BarChartMarshalledGroup[][] = lineData\n ? marshalledData.map((stack, index) =>\n stack.concat(\n lineData.map(({ values, name, stroke }) => {\n const { stacksCount } = stack.reduce(\n (acc, { stackIndex }) => {\n const { indexFlag, stacksCount } = acc;\n if (stackIndex !== indexFlag) {\n return {\n indexFlag: stackIndex,\n stacksCount: stacksCount + 1,\n };\n }\n return acc;\n },\n {\n indexFlag: -1,\n stacksCount: 0,\n }\n );\n const barsWidth =\n (barWidth * stacksCount +\n (barPadding || 0) * (stacksCount - 1)) /\n 2;\n\n return {\n x: stack[0].x - barWidth / 2 + barsWidth,\n y: yScale(values[index] as number) + marginTop,\n height: 0,\n color: stroke,\n value: values[index],\n groupName: stack[0].groupName,\n name,\n stackIndex: 0,\n groupIndex: index,\n };\n }) as BarChartMarshalledGroup[]\n )\n )\n : marshalledData;\n\n const groups = labelContainer\n .selectAll('div')\n .data(concatedData)\n .enter()\n .append('div')\n .style('position', 'absolute')\n .style(\n 'transform',\n (_: BarChartMarshalledGroup[], index) =>\n `translate(${Math.round(\n xScale((index as unknown) as string) as number\n )}px,${-(marginTop || 0)}px)`\n );\n\n const LabelFlexStyled =\n labelPosition === 'center' ? LabelFlexCenter : LabelFlex;\n\n const LabelStyle = getLabel(labelPosition);\n\n groups\n .selectAll('span')\n .data((item: BarChartMarshalledGroup[]) =>\n onLabelItem ? onLabelItem(item) : item\n )\n .join('div')\n .style('left', item => `${Math.round(item.x + barWidth / 2)}px`)\n .style(\n 'top',\n (item: BarChartMarshalledGroup) =>\n `${getLabelY(labelPosition, y2, item)}px`\n )\n .style('position', 'absolute')\n .html((item: BarChartMarshalledGroup) =>\n ReactDOMServer.renderToString(\n <LabelFlexStyled className={barChartClassNames.barChartLabelFlex}>\n {renderLabel ? (\n renderLabel({ ...item, barWidth })\n ) : (\n <LabelStyle className={barChartClassNames.barChartLabel}>\n {format(item.value)}\n </LabelStyle>\n )}\n </LabelFlexStyled>\n )\n );\n }\n};\n","import { ResizeBarWidthProps } from './types';\n\nexport const resizeBarWidth = ({\n data,\n range,\n barWidth,\n barPadding,\n sectionPadding,\n}: ResizeBarWidthProps): number => {\n const groupPadding = typeof sectionPadding === 'number' ? sectionPadding : 0;\n const chartWidth = range[1] - range[0];\n const barsWidth = data.reduce((acc, { groupName, ...curr }) => {\n return (\n acc +\n Object.keys(curr).reduce(\n (acc, _key, index) =>\n index > 0\n ? acc + (barWidth || 0) + (barPadding || 0)\n : acc + barWidth,\n 0\n ) +\n groupPadding\n );\n }, groupPadding);\n\n if (chartWidth < barsWidth) {\n return Math.floor(barWidth * (chartWidth / barsWidth));\n }\n\n return barWidth;\n};\n","import { BarChartMarshalledGroup } from '../types';\nimport { GetBarsProps } from './types';\n\nconst MIN_BAR_HEIGHT = 2;\n\nexport const getBars = ({ groups, barWidth }: GetBarsProps) => {\n return groups\n .selectAll('rect')\n .data((item: BarChartMarshalledGroup[]) => item)\n .join('rect')\n .attr('x', (item: BarChartMarshalledGroup) => item.x)\n .attr('y', (item: BarChartMarshalledGroup) => item.y)\n .attr('width', barWidth)\n .attr('height', (item: BarChartMarshalledGroup) =>\n item.value === null ? 0 : Math.max(item.height, MIN_BAR_HEIGHT))\n .style('fill', (item: BarChartMarshalledGroup) => item.color);\n};\n","import * as d3 from 'd3';\nimport { uniqueId } from 'lodash';\n\nimport { barChartClassNames as classNames } from './styled';\nimport { drawGrid } from './drawGrid';\nimport { appendSvg } from '../../helpers';\nimport { computeDimensions } from '../../helpers/computeDimensions';\nimport { getDomain } from './getDomain';\nimport { marshaling } from './marshaling';\nimport { drawTooltip } from './drawTooltip';\nimport { resizeBarWidth } from './resizeBarWidth';\nimport { drawLines } from './drawLines';\nimport { getBars } from './getBars';\nimport { BarChartProps, BarChartData, BarChartMarshalledGroup } from './types';\n\nconst MIN_BAR_HEIGHT = 2;\n\nexport const draw = (node: HTMLElement | null, props: BarChartProps): void => {\n const {\n data,\n lineData = [],\n markers = [],\n barWidth: barWidthProp,\n barPadding,\n colors,\n margin,\n xAxisPadding,\n yAxisPadding,\n drawGridY,\n drawGridX,\n customYScale,\n customXScale,\n customYAxisLeft,\n customXAxisBottom,\n customYAxis,\n customXAxis,\n customBars,\n customize,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n renderTooltip,\n labelPosition,\n renderLabel,\n tooltipY,\n tooltipBind,\n stackedLine,\n curve,\n formatTooltipValue,\n formatTooltipName,\n sectionPadding,\n minValuesLine,\n tooltipYDomain,\n marshalledMap,\n minValue,\n maxValue,\n minDomainValue,\n maxDomainValue,\n drawBars,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n xScaleItemWidth,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const defaultBarWidth = 12;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const barDomain = getDomain({\n data,\n minDomainValue,\n maxDomainValue,\n });\n\n const min =\n typeof minValue === 'number'\n ? minValue\n : Math.min(\n d3.min(lineData, ({ values }) => d3.min(values as number[])) ||\n Number.POSITIVE_INFINITY,\n barDomain.min || 0\n );\n const max =\n typeof maxValue === 'number'\n ? maxValue\n : Math.max(\n d3.max(lineData, ({ values }) => d3.max(values as number[])) ||\n Number.NEGATIVE_INFINITY,\n barDomain.max\n );\n const svg = appendSvg(node, width, height || 0);\n const yTicksCountDefault = 6;\n const labels = data.map((item: BarChartData) => item.groupName as string);\n let barWidth = barWidthProp || defaultBarWidth;\n\n const yScale = d3\n .scaleLinear()\n .domain([min, max])\n .range([\n height - marginTop - marginBottom - (xAxisPadding || 0),\n marginTop,\n ])\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicks = yScale.ticks();\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n customYAxisLeft && customYAxisLeft(yAxisLeft);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', classNames.barChartYAxis)\n .call(yAxisLeft);\n\n yAxis.selectAll('.tick').attr('class', value => {\n return value === 0 ? `tick ${classNames.barChartYAxisZeroTick}` : 'tick';\n });\n\n customYAxis && customYAxis(yAxis);\n\n const { width: yAxisWidth } = computeDimensions(yAxis);\n const range = [\n marginLeft + yAxisWidth + (yAxisPadding || 0),\n width - marginRight,\n ];\n\n const xScale = d3\n .scaleBand()\n .domain(d3.range(data.length) as [])\n .range(range);\n\n barWidth = resizeBarWidth({\n data,\n sectionPadding,\n range,\n barWidth,\n barPadding,\n });\n\n customXScale && customXScale(xScale);\n\n const [x1, x2] = xScale.range();\n\n const xAxisBottom = d3\n .axisBottom(xScale)\n .tickFormat(value => labels[Number(value)]);\n\n if (typeof xScaleItemWidth === 'number') {\n xAxisBottom\n .tickValues(\n xScale.domain().filter((_, i, array) => {\n const chartWidth = x2 - x1;\n const ticks = Math.round(chartWidth / xScaleItemWidth);\n const length = array.length;\n const divider = Math.round(length / ticks);\n\n return !(i % divider);\n })\n )\n .tickSizeOuter(0);\n }\n\n customXAxisBottom && customXAxisBottom(xAxisBottom, { node, labels });\n\n const xAxis = svg\n .append('g')\n .call(xAxisBottom)\n .attr('class', classNames.barChartXAxis);\n\n customXAxis && customXAxis(xAxis);\n\n const marshalled = marshaling({\n data,\n yScale,\n xScale,\n barWidth,\n barPadding: typeof barPadding === 'number' ? barPadding : 0,\n colors,\n marginTop,\n });\n\n const marshalledData = marshalledMap\n ? marshalledMap(marshalled)\n : marshalled;\n\n yAxis.attr('transform', `translate( ${marginLeft + yAxisWidth}, 0)`);\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridY,\n drawGridX,\n });\n\n xAxis.attr(\n 'transform',\n `translate(0, ${yScale(yTicks[0]) + (xAxisPadding || 0)})`\n );\n\n const maskId = `height-limit-mask-${uniqueId()}`;\n\n svg.append('defs')\n .append('mask')\n .attr('id', maskId)\n .append('rect')\n .attr('width', '100%')\n .attr('height', height - marginBottom + MIN_BAR_HEIGHT)\n .attr('fill', 'white');\n\n const gSvg = svg.append('g')\n .attr('class', classNames.barChartBarGlobal)\n .attr('mask', `url(#${maskId})`);\n\n const groups = gSvg\n .selectAll('g')\n .data(marshalledData)\n .enter()\n .append('g')\n .attr(\n 'transform',\n (_: BarChartMarshalledGroup[], i) =>\n `translate(${Math.round(\n xScale((i as unknown) as string) as number\n )},${-(marginTop || 0)})`\n );\n\n const bars = drawBars\n ? drawBars({ groups, yScale, marshalledData, barWidth })\n : getBars({ groups, barWidth });\n\n markers.forEach((marker) => {\n if (!marker) {\n return;\n }\n\n if (marker.horizontal) {\n if (marker.line) {\n svg.append('line')\n .style(\"stroke\", marker.lineColor || marker.color || \"inherit\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", (\"5, 3\"))\n .attr(\"x1\", marginLeft + yAxisWidth)\n .attr(\"y1\", yScale(marker.value) + 1)\n .attr(\"x2\", width)\n .attr(\"y2\", yScale(marker.value) + 1);\n }\n\n svg.append(\"text\")\n .attr(\"y\", yScale(marker.value) + 1)\n .attr(\"x\", marginLeft + yAxisWidth)\n .attr('text-anchor', 'middle')\n .attr(\"class\", [\"marker\", marker.className].filter(Boolean).join(\" \"))\n .style(\"fill\", marker?.color || \"inherit\")\n .text(marker.label);\n\n return;\n }\n\n if (marker.line) {\n svg.append('line')\n .style(\"stroke\", marker.lineColor || marker.color || \"inherit\")\n .style(\"stroke-width\", 1)\n .style(\"stroke-dasharray\", (\"5, 3\"))\n .attr(\"x1\", width / data.length * marker.value + 1)\n .attr(\"y1\", 0)\n .attr(\"x2\", width / data.length * marker.value + 1)\n .attr(\"y2\", (height - marginTop - marginBottom + 8));\n }\n\n svg.append(\"text\")\n .attr(\"y\", height - 2)\n .attr(\"x\", width / data.length * marker.value + 1)\n .attr('text-anchor', marker.align === 'right' ? 'end' : marker.align === 'left' ? 'start' : 'middle')\n .attr(\"class\", [\"marker\", marker.className].filter(Boolean).join(\" \"))\n .style(\"fill\", marker?.color || \"inherit\")\n .text(marker.label);\n });\n\n let lines = null;\n\n if (Array.isArray(lineData) && lineData.length > 0) {\n lines = drawLines({\n svg,\n lineData,\n xScale,\n yScale,\n min: typeof minValuesLine === 'number' ? minValuesLine : min,\n stackedLine,\n curve,\n });\n }\n\n customBars && customBars({ bars, yScale, lines, marshalledData, lineData });\n\n if (dynamicTooltipEnable || labelPosition) {\n drawTooltip({\n svg,\n node,\n xScale,\n yScale,\n marshalledData,\n data,\n lineData,\n renderTooltip,\n labelPosition,\n marginTop,\n renderLabel,\n barWidth,\n barPadding,\n dynamicTooltipEnable,\n hideTooltipGroupName,\n tooltipY,\n tooltipBind,\n formatTooltipValue,\n formatTooltipName,\n tooltipYDomain,\n setTooltipPosition,\n onLabelItem,\n isBarTooltip,\n bars: groups,\n tooltipRoot,\n tooltipClassName,\n onBarClick,\n onBarHover,\n });\n }\n\n customize && customize({ svg, marshalledData, yScale, xScale, lineData });\n }\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\nimport { useSelection } from \"./hooks/useSelection\";\n\nimport { draw } from \"./draw\";\n\nimport { BarChartProps } from \"./types\";\n\nexport const BarChart: FC<BarChartProps> = (props) => {\n const { className, style, children, selectable } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n useSelection(selectable ? node : null, props);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref} selectable={selectable}>{children}</SvgWrapper>\n </div>\n );\n};\n\nBarChart.defaultProps = {\n data: [],\n colors: {},\n margin: {\n top: 10,\n right: 10,\n bottom: 10,\n left: 0,\n },\n barWidth: 12,\n barPadding: 0,\n height: 320,\n yAxisPadding: 0,\n xAxisPadding: 0,\n tooltipBind: true,\n sectionPadding: 1,\n};\n","import { useMemo } from 'react';\nimport * as d3 from 'd3';\n\nimport {\n HorizontalBarChartProps,\n HorizontalBarChartData,\n HorizontalBarChartMarshalingData,\n} from '../types';\n\nconst hundred = 100;\n\nexport const useMarshaling = ({\n data,\n fullExtent,\n maxValue,\n labels,\n}: Pick<\n HorizontalBarChartProps,\n 'data' | 'fullExtent' | 'maxValue' | 'labels'\n>): {\n fullMax: number;\n data: HorizontalBarChartMarshalingData[][];\n} => {\n return useMemo(() => {\n const fullMax = d3.max(data, item =>\n d3.sum(item, ({ value }) => value)\n ) as number;\n const scaleLinear = d3\n .scaleLinear()\n .domain([\n 0,\n typeof maxValue === 'number' ? maxValue : fullMax,\n ] as Iterable<d3.NumberValue>)\n .range([0, hundred]);\n\n return {\n fullMax,\n data: data.map((item: HorizontalBarChartData[], index) => {\n if (!fullExtent) {\n scaleLinear.domain([\n 0,\n typeof maxValue === 'number'\n ? maxValue\n : d3.sum(item, ({ value }) => value),\n ] as Iterable<d3.NumberValue>);\n }\n\n return item.map(({ value, ...rest }) => ({\n ...rest,\n value,\n width: scaleLinear(value),\n groupName: labels ? labels[index] : '',\n }));\n }),\n };\n }, [data, fullExtent, maxValue, labels]);\n};\n","import styled from \"styled-components\";\n\nimport { TooltipFlex as TooltipFlexUI } from \"../../common/components/tooltips\";\n\nexport const horizontalBarChartClassNames = {\n horizontalBarChartButtonTd: \"horizontalBarChartButtonTd\",\n horizontalBarChartLabelTd: \"horizontalBarChartLabelTd\",\n horizontalBarChartLabelCell: \"horizontalBarChartLabelCell\",\n horizontalBarChartBarTd: \"horizontalBarChartBarTd\",\n horizontalBarChartBarFlex: \"horizontalBarChartBarFlex\",\n horizontalBarChartBar: \"horizontalBarChartBar\",\n horizontalBarChartBarFirst: \"horizontalBarChartBarFirst\",\n horizontalBarChartBarLast: \"horizontalBarChartBarLast\",\n horizontalBarChartBarOnly: \"horizontalBarChartBarOnly\",\n horizontalBarChartTooltipFlex: \"horizontalBarChartTooltipFlex\",\n horizontalBarChartStackWrapper: \"horizontalBarChartStackWrapper\",\n horizontalBarChartTooltipContainer: \"horizontalBarChartTooltipContainer\",\n horizontalBarChartStackSumContainer: \"horizontalBarChartStackSumContainer\",\n horizontalBarChartStackSum: \"horizontalBarChartStackSum\",\n horizontalBarChartXScaleTd: \"horizontalBarChartXScaleTd\",\n horizontalBarChartXScaleTicks: \"horizontalBarChartXScaleTicks\",\n horizontalBarChartXScaleTick: \"horizontalBarChartXScaleTick\",\n horizontalBarChartTooltipItem: \"horizontalBarChartTooltipItem\",\n horizontalBarChartTooltipName: \"horizontalBarChartTooltipName\",\n horizontalBarChartTooltipValue: \"horizontalBarChartTooltipValue\",\n};\n\nexport const Table = styled.table`\n width: 100%;\n`;\n\nexport const LabelCell = styled.div`\n text-align: right;\n`;\n\nexport const BarFlex = styled.div`\n width: 100%;\n display: flex;\n height: 1rem;\n`;\n\nexport const BarsTd = styled.td`\n width: 100%;\n position: relative;\n vertical-align: middle;\n`;\n\nexport const TooltipFlex = styled(TooltipFlexUI)`\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n will-change: left, top;\n`;\n\nexport const StackSumContainer = styled.div`\n position: relative;\n`;\n\nexport const StackSum = styled.div`\n white-space: nowrap;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(0, -50%);\n`;\n\nexport const StackWrapper = styled.div`\n position: absolute;\n top: 0;\n display: flex;\n justify-content: flex-start;\n height: 100%;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\n\nimport {\n horizontalBarChartClassNames as classNames,\n TooltipFlex,\n} from '../styled';\nimport {\n TooltipContainer,\n TooltipItem,\n Name,\n Value,\n ColorBox,\n} from '../../../common/components/tooltips';\n\nimport { TooltipProps } from './types';\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n renderTooltip,\n bars,\n style,\n className,\n}): React.ReactElement => {\n const format = d3.format(',');\n\n return (\n <TooltipFlex\n className={`${classNames.horizontalBarChartTooltipFlex} ${className ||\n ''}`}\n style={style}\n >\n <TooltipContainer\n className={classNames.horizontalBarChartTooltipContainer}\n >\n {renderTooltip\n ? renderTooltip(bars)\n : bars.map(({ color, name, value, groupName }, index) => (\n <TooltipItem\n key={`${name || ''}-${index}-${groupName}`}\n className={classNames.horizontalBarChartTooltipItem}\n >\n {color && <ColorBox style={{ backgroundColor: color }} />}\n {name && (\n <Name className={classNames.horizontalBarChartTooltipName}>\n {name}\n </Name>\n )}\n <Value className={classNames.horizontalBarChartTooltipValue}>\n {format(value)}\n </Value>\n </TooltipItem>\n ))}\n </TooltipContainer>\n </TooltipFlex>\n );\n};\n","import React, { useCallback, useEffect } from 'react';\nimport * as d3 from 'd3';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nimport {\n HorizontalBarChartMarshalingData,\n HorizontalBarChartProps,\n} from '../../types';\nimport { UseTooltip } from './types';\n\nimport { Tooltip } from '../../Tooltip';\n\nconst rootElement: HTMLDivElement = document.createElement('div');\n\nexport const useTooltip = ({\n renderTooltip,\n tooltipBind,\n tooltipStyle,\n tooltipRoot,\n tooltipClassName,\n hideTooltip,\n}: Pick<\n HorizontalBarChartProps,\n | 'renderTooltip'\n | 'tooltipBind'\n | 'tooltipStyle'\n | 'tooltipRoot'\n | 'tooltipClassName'\n | 'hideTooltip'\n>): UseTooltip => {\n useEffect(() => {\n const container: Element | null =\n tooltipRoot || document.querySelector('body');\n\n container && container.appendChild(rootElement);\n return () => {\n unmountComponentAtNode(rootElement);\n };\n }, [tooltipRoot]);\n\n const onMouseMove = useCallback(\n (event: React.MouseEvent, bars: HorizontalBarChartMarshalingData[]) => {\n let [x, y] = d3.pointer(event, document);\n\n if (!tooltipBind && 'getBoundingClientRect' in event.target) {\n const {\n width,\n height,\n }: DOMRect = (event.target as HTMLDivElement).getBoundingClientRect();\n const [barX, barY] = d3.pointer(event, event.target);\n\n x = x - barX + width / 2;\n y = y - barY + height / 2;\n }\n\n if (rootElement) {\n rootElement.style.visibility = 'visible';\n }\n\n render(\n <Tooltip\n style={{\n left: x,\n top: y,\n ...tooltipStyle,\n }}\n bars={bars}\n renderTooltip={renderTooltip}\n className={tooltipClassName}\n />,\n rootElement\n );\n },\n [tooltipClassName, tooltipStyle, renderTooltip, tooltipBind]\n );\n\n const onMouseLeave = useCallback(() => {\n if (rootElement) {\n rootElement.style.visibility = 'hidden';\n hideTooltip && hideTooltip();\n }\n }, [hideTooltip]);\n\n return [onMouseMove, onMouseLeave];\n};\n","import React, { Fragment, useMemo, CSSProperties, ReactNode } from 'react';\n\nimport {\n horizontalBarChartClassNames as classNames,\n StackWrapper,\n} from '../styled';\n\nimport { UseTooltip } from './useTooltip/types';\nimport {\n HorizontalBarChartMarshalingData,\n HorizontalBarChartProps,\n} from '../types';\n\nexport const useStackWrapper = (stackedTooltip?: boolean) => {\n return useMemo(\n () =>\n stackedTooltip\n ? ({\n item,\n mouseMove,\n mouseLeave,\n tooltipBind,\n ...props\n }: {\n style?: CSSProperties;\n item: HorizontalBarChartMarshalingData[];\n tooltipBind: HorizontalBarChartProps['tooltipBind'];\n mouseMove: UseTooltip[0];\n mouseLeave: UseTooltip[1];\n }) => (\n <StackWrapper\n className={classNames.horizontalBarChartStackWrapper}\n onMouseOver={event => mouseMove(event, item)}\n onMouseMove={\n tooltipBind ? event => mouseMove(event, item) : void 0\n }\n onMouseOut={mouseLeave}\n {...props}\n />\n )\n : ({ children }: { children?: ReactNode }) => (\n <Fragment>{children}</Fragment>\n ),\n [stackedTooltip]\n );\n};\n","import styled from 'styled-components';\n\nexport const BarStyled = styled.div`\n position: relative;\n display: inline-flex;\n height: 100%;\n`;\n","import React from 'react';\n\nimport { BarProps } from './types';\n\nimport { horizontalBarChartClassNames as classNames } from '../styled';\nimport { BarStyled } from './styled';\n\nexport const Bar: React.FC<BarProps> = ({\n withTooltip,\n bar,\n formatNativeTitle,\n tooltipBind,\n mouseMove,\n mouseLeave,\n pointerEventsNone,\n isFirstChild,\n isLastChild,\n isOnlyChild,\n}): React.ReactElement => {\n const { color, width } = bar;\n const ceiledWidth = Math.abs(width);\n const onMouseMove = withTooltip\n ? (event: React.MouseEvent) => mouseMove(event, [bar])\n : void 0;\n const onMouseLeave = withTooltip ? () => mouseLeave() : void 0;\n\n return (\n <BarStyled\n className={`${classNames.horizontalBarChartBar} ${\n isFirstChild ? classNames.horizontalBarChartBarFirst : ''\n } ${isLastChild ? classNames.horizontalBarChartBarLast : ''} ${\n isOnlyChild ? classNames.horizontalBarChartBarOnly : ''\n }`}\n style={{\n width: `${ceiledWidth}%`,\n backgroundColor: color,\n pointerEvents: pointerEventsNone ? 'none' : 'auto',\n }}\n title={formatNativeTitle ? formatNativeTitle(bar) : ''}\n onMouseOver={onMouseMove}\n onMouseMove={tooltipBind ? onMouseMove : void 0}\n onMouseOut={onMouseLeave}\n />\n );\n};\n","import { useMemo } from 'react';\nimport * as d3 from 'd3';\n\nimport {\n HorizontalBarChartProps,\n HorizontalBarChartScaleItem,\n} from '../../types';\n\nconst hundred = 100;\n\nexport const useScale = ({\n maxValue,\n scaleTicks,\n scaleDomain,\n}: Pick<\n HorizontalBarChartProps,\n 'maxValue' | 'scaleTicks' | 'scaleDomain'\n>): HorizontalBarChartScaleItem[] => {\n return useMemo(() => {\n const scaleLinear = d3\n .scaleLinear()\n .domain([0, maxValue] as Iterable<d3.NumberValue>)\n .range([0, hundred]);\n\n const ticks = scaleLinear.ticks(scaleTicks);\n\n return (scaleDomain || ticks).map((value: number) => ({\n value,\n x: scaleLinear(value),\n }));\n }, [maxValue, scaleTicks, scaleDomain]);\n};\n","import styled from 'styled-components';\n\nexport const TickTd = styled.td`\n position: relative;\n`;\n\nexport const Ticks = styled.div`\n position: relative;\n height: 1rem;\n`;\n\nexport const Tick = styled.div`\n white-space: nowrap;\n width: 0;\n height: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n","import React from 'react';\nimport * as d3 from 'd3';\n\nimport { HorizontalBarChartProps } from '../types';\n\nimport { useScale } from './hooks/useScale';\n\nimport { TickTd, Ticks, Tick } from './styled';\nimport { horizontalBarChartClassNames as classNames } from '../styled';\n\nexport const XScale: React.FC<Pick<\n HorizontalBarChartProps,\n 'maxValue' | 'scaleTicks' | 'renderTicks' | 'scaleDomain'\n>> = ({\n maxValue,\n scaleTicks,\n renderTicks,\n scaleDomain,\n}): React.ReactElement => {\n const range = useScale({ maxValue, scaleTicks, scaleDomain });\n const format = d3.format(',');\n\n return (\n <tr>\n <td />\n <TickTd className={classNames.horizontalBarChartXScaleTd}>\n <Ticks className={classNames.horizontalBarChartXScaleTicks}>\n {range.map((tick, index, ticks) => {\n const { value, x } = tick;\n\n return (\n <Tick\n key={value}\n className={classNames.horizontalBarChartXScaleTick}\n style={{\n left: `${x}%`,\n justifyContent:\n index === 0\n ? 'flex-start'\n : index === ticks.length - 1\n ? 'flex-end'\n : '',\n }}\n >\n {renderTicks ? renderTicks(tick) : format(value)}\n </Tick>\n );\n })}\n </Ticks>\n </TickTd>\n </tr>\n );\n};\n","import React, { FC } from \"react\";\nimport * as d3 from \"d3\";\n\nimport { HorizontalBarChartProps } from \"./types\";\n\nimport { useMarshaling } from \"./hooks/useMarshaling\";\nimport { useTooltip } from \"./hooks/useTooltip\";\nimport { useStackWrapper } from \"./hooks/useStackWrapper\";\n\nimport { Bar } from \"./Bar\";\nimport { XScale } from \"./XScale\";\n\nimport {\n Table,\n LabelCell,\n horizontalBarChartClassNames as classNames,\n BarFlex,\n BarsTd,\n StackSumContainer,\n StackSum,\n} from \"./styled\";\n\nexport const HorizontalBarChart: FC<HorizontalBarChartProps> = ({\n data,\n className,\n style,\n children,\n labels,\n fullExtent,\n maxValue,\n formatNativeTitle,\n renderTooltip,\n withTooltip,\n withStackSum,\n tooltipBind,\n scaleTicks,\n renderTicks,\n renderButton,\n tooltipStyle,\n tooltipClassName,\n scaleDomain,\n renderDataTable,\n thead,\n withoutXScale,\n stackedTooltip,\n fullChartTooltip,\n hideTooltip,\n}) => {\n const { fullMax, data: marshalingData } = useMarshaling({\n data,\n fullExtent,\n maxValue,\n labels,\n });\n const [mouseMove, mouseLeave] = useTooltip({\n renderTooltip,\n tooltipBind,\n tooltipStyle,\n tooltipClassName,\n hideTooltip,\n });\n const Stack = useStackWrapper(stackedTooltip);\n\n return (\n <Table\n className={className}\n style={style}\n onMouseOver={\n fullChartTooltip\n ? event => mouseMove(event, marshalingData.flat())\n : void 0\n }\n onMouseMove={\n fullChartTooltip\n ? event => mouseMove(event, marshalingData.flat())\n : void 0\n }\n onMouseOut={fullChartTooltip ? mouseLeave : void 0}\n >\n {thead}\n <tbody>\n {marshalingData.map((item, rowIndex) => {\n const stackSum =\n (withStackSum || renderDataTable) &&\n d3.sum(item, ({ value }) => value);\n const sumWidth = d3.sum(item, ({ width }) => width);\n\n return (\n <tr key={`row-${rowIndex}`}>\n {typeof renderButton === \"function\" && (\n <td className={classNames.horizontalBarChartButtonTd}>\n {renderButton(item, rowIndex)}\n </td>\n )}\n <td className={classNames.horizontalBarChartLabelTd}>\n {labels && labels[ rowIndex ] && (\n <LabelCell className={classNames.horizontalBarChartLabelCell}>\n {labels[ rowIndex ]}\n </LabelCell>\n )}\n </td>\n <BarsTd\n className={classNames.horizontalBarChartBarTd}\n style={{ pointerEvents: fullChartTooltip ? \"none\" : \"auto\" }}\n >\n <BarFlex\n className={classNames.horizontalBarChartBarFlex}\n style={{ pointerEvents: fullChartTooltip ? \"none\" : \"auto\" }}\n >\n <Stack\n style={stackedTooltip ? { width: `${sumWidth}%` } : void 0}\n item={item}\n tooltipBind={tooltipBind}\n mouseMove={mouseMove}\n mouseLeave={mouseLeave}\n />\n {item.map(\n (bar, barIndex, array) =>\n bar.value !== 0 && (\n <Bar\n key={`bar-${bar.name || \"\"}-${barIndex}`}\n formatNativeTitle={formatNativeTitle}\n bar={bar}\n tooltipBind={tooltipBind}\n pointerEventsNone={stackedTooltip || fullChartTooltip}\n withTooltip={withTooltip && !stackedTooltip}\n mouseMove={mouseMove}\n mouseLeave={mouseLeave}\n isOnlyChild={array.length === 1}\n isFirstChild={barIndex === 0 && array.length > 1}\n isLastChild={\n array.length - 1 === barIndex && array.length > 1\n }\n />\n ),\n )}\n {withStackSum && (\n <StackSumContainer\n className={classNames.horizontalBarChartStackSumContainer}\n >\n <StackSum\n className={classNames.horizontalBarChartStackSum}\n >\n {stackSum}\n </StackSum>\n </StackSumContainer>\n )}\n </BarFlex>\n </BarsTd>\n {renderDataTable &&\n renderDataTable(item, stackSum as number, rowIndex)}\n </tr>\n );\n })}\n {!withoutXScale && (\n <XScale\n maxValue={typeof maxValue === \"number\" ? maxValue : fullMax}\n scaleTicks={scaleTicks}\n renderTicks={renderTicks}\n scaleDomain={scaleDomain}\n />\n )}\n {children}\n </tbody>\n </Table>\n );\n};\n\nHorizontalBarChart.defaultProps = {\n fullExtent: true,\n withTooltip: false,\n withStackSum: false,\n tooltipBind: false,\n scaleTicks: 4,\n withoutXScale: false,\n};\n","export const bubbleChartDefaultProps = {\n height: 280,\n minSize: 6,\n maxSize: 30,\n margin: {\n top: 10,\n right: 15,\n bottom: 10,\n left: 0,\n },\n yAxisPadding: 10,\n xAxisPadding: 10,\n yScaleLabelPadding: 10,\n};\n","import { JSXElementConstructor } from \"react\";\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nimport { Wrapper } from \"../../common/components/Wrapper\";\n\nexport const bubbleChartClassNames = {\n bubbleChartYAxis: \"bubbleChartYAxis\",\n bubbleChartYAxisZeroTick: \"bubbleChartYAxisZeroTick\",\n bubbleChartXAxis: \"bubbleChartXAxis\",\n bubbleChartGridGlobal: \"bubbleChartGridGlobal\",\n bubbleChartGridLineX: \"bubbleChartGridLineX\",\n bubbleChartGridLineY: \"bubbleChartGridLineY\",\n bubbleChartCircle: \"bubbleChartCircle\",\n bubbleChartYScaleLabel: \"bubbleChartYScaleLabel\",\n bubbleChartTooltip: \"bubbleChartTooltip\",\n bubbleChartTooltipContainer: \"bubbleChartTooltipContainer\",\n bubbleChartTooltipFlex: \"bubbleChartTooltipFlex\",\n bubbleChartTip: \"bubbleChartTip\",\n};\n\nexport const SvgWrapper = styled(Wrapper)`\n .${bubbleChartClassNames.bubbleChartYAxis},\n .${bubbleChartClassNames.bubbleChartXAxis},\n .${bubbleChartClassNames.bubbleChartGridGlobal} {\n shape-rendering: crispEdges;\n }\n\n .${bubbleChartClassNames.bubbleChartGridLineX},\n .${bubbleChartClassNames.bubbleChartGridLineY} {\n stroke: rgba(149, 149, 149, 0.24);\n }\n\n .${bubbleChartClassNames.bubbleChartYScaleLabel} {\n font-size: 10px;\n }\n`;\n\nexport const TooltipStyles = createGlobalStyle`\n .${bubbleChartClassNames.bubbleChartTooltipContainer} {\n position: absolute;\n transition: opacity 150ms cubic-bezier(0.2, 1, 0.6, 1);\n pointer-events: none;\n z-index: 1;\n }\n` as JSXElementConstructor<any>;\n","import { DrawGridProps } from './types';\n\nimport { bubbleChartClassNames } from '../styled';\n\nexport const drawGrid = ({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridX,\n drawGridY,\n}: DrawGridProps) => {\n if (!drawGridY && !drawGridX) return;\n const [min, max] = xScale.domain();\n\n const global = svg\n .append('g')\n .attr('class', bubbleChartClassNames.bubbleChartGridGlobal);\n\n const yTicks = yScale.ticks(yTicksCount);\n\n if (drawGridX) {\n global\n .append('g')\n .selectAll('line')\n .data(yTicks)\n .join('line')\n .attr('class', bubbleChartClassNames.bubbleChartGridLineX)\n .attr('x1', () => xScale(min))\n .attr('x2', () => xScale(max))\n .attr('y1', (d: number) => Math.round(yScale(d)))\n .attr('y2', (d: number) => Math.round(yScale(d)));\n }\n\n if (drawGridY) {\n global\n .append('g')\n .selectAll('line')\n .data(xScale.ticks(yTicksCount))\n .join('line')\n .attr('class', bubbleChartClassNames.bubbleChartGridLineY)\n .attr('x1', (d: number) => Math.round(xScale(d)))\n .attr('x2', (d: number) => Math.round(xScale(d)))\n .attr('y1', () => Math.round(yScale(yTicks[0])))\n .attr('y2', () => Math.round(yScale(yTicks[yTicks.length - 1])));\n }\n};\n","import styled from 'styled-components';\n\nexport const Tooltip = styled.div`\n width: 0;\n height: 0;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n font-size: 12px;\n white-space: nowrap;\n`;\n","import React from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport * as d3 from 'd3';\n\nimport { Tooltip } from './styled';\nimport { bubbleChartClassNames as classNames } from '../styled';\nimport { TooltipContainer } from '../../../common/components/tooltips';\nimport { DrawTooltipProps } from './types';\n\nexport const drawTooltip = ({\n bubbles,\n tooltipRoot,\n tooltipClassName,\n renderTooltip,\n}: DrawTooltipProps) => {\n const root: Element | null = tooltipRoot || document.querySelector('body');\n const format = d3.format(',');\n\n let container: d3.Selection<any, unknown, any, any> = d3\n .select(root)\n .select(`.${classNames.bubbleChartTooltip}`);\n\n if (container.node() === null) {\n container = d3\n .select(root)\n .append('div')\n .attr('class', classNames.bubbleChartTooltip);\n }\n\n let tooltip: d3.Selection<\n HTMLDivElement,\n unknown,\n d3.BaseType,\n any\n > = container\n .append('div')\n .attr(\n 'class',\n `${classNames.bubbleChartTooltipContainer} ${tooltipClassName || ''}`\n )\n .style('opacity', '0');\n\n bubbles.on('mouseover.tooltip', (event, data) => {\n const { sizeValue } = data;\n const circle = event.currentTarget as SVGCircleElement;\n const { x, y, width } = circle.getBoundingClientRect();\n const left = window.pageXOffset + x + width / 2;\n const top = window.pageYOffset + y;\n\n tooltip\n .style('left', `${left}px`)\n .style('top', `${top}px`)\n .html(() => {\n const html = ReactDOMServer.renderToString(\n <Tooltip className={classNames.bubbleChartTooltipFlex}>\n <TooltipContainer className={classNames.bubbleChartTip}>\n {format(sizeValue)}\n </TooltipContainer>\n </Tooltip>\n );\n\n return html;\n });\n\n renderTooltip && renderTooltip({ tooltip, data, circle });\n\n tooltip.style('opacity', '1');\n });\n\n bubbles.on('mouseout.tooltip', () => {\n tooltip.style('opacity', '0');\n });\n};\n","import * as d3 from 'd3';\n\nimport { BubbleChartProps } from './types';\n\nimport { appendSvg } from '../../helpers';\nimport { computeDimensions } from '../../helpers/computeDimensions';\n\nimport { bubbleChartDefaultProps } from './bubbleChartDefaultProps';\nimport { drawGrid } from './drawGrid';\nimport { drawTooltip } from './drawTooltip';\n\nimport { bubbleChartClassNames as classNames } from './styled';\n\nexport const draw = (\n node: HTMLElement | null,\n props: BubbleChartProps\n): void => {\n const {\n data,\n margin,\n xAxisPadding,\n yAxisPadding,\n customYScale,\n customYAxis,\n customXScale,\n customXAxis,\n minSize,\n maxSize,\n minYValue,\n maxYValue,\n drawGridY,\n drawGridX,\n scaleLog,\n xScaleItemWidth,\n bubbleStyle,\n customize,\n yScaleLabel,\n yScaleLabelPadding,\n enableTooltip,\n tooltipRoot,\n tooltipClassName,\n renderTooltip,\n } = props;\n\n if (node !== null && data.length) {\n const marginTop = margin ? margin.top : 0;\n const marginRight = margin ? margin.right : 0;\n const marginBottom = margin ? margin.bottom : 0;\n const marginLeft = margin ? margin.left : 0;\n const { width: nodeWidth } = node.getBoundingClientRect();\n const width = props.width || nodeWidth;\n const height = props.height || 0;\n const yTicksCountDefault = 6;\n\n const minY =\n typeof minYValue === 'number'\n ? minYValue\n : (d3.min(data, ({ yValue }) => yValue) as number);\n const maxY =\n typeof maxYValue === 'number'\n ? maxYValue\n : (d3.max(data, ({ yValue }) => yValue) as number);\n\n const svg = appendSvg(node, width, height || 0);\n\n const sizeScale = scaleLog\n ? d3\n .scaleLog()\n .domain([\n d3.min(data, ({ sizeValue }) => sizeValue) as number || 0.1,\n d3.max(data, ({ sizeValue }) => sizeValue) as number || 0.1,\n ])\n .range([\n minSize || bubbleChartDefaultProps.minSize || 0.1,\n maxSize || bubbleChartDefaultProps.maxSize || 0.1,\n ])\n : d3\n .scaleLinear()\n .domain([\n d3.min(data, ({ sizeValue }) => sizeValue) as number,\n d3.max(data, ({ sizeValue }) => sizeValue) as number,\n ])\n .range([\n minSize || bubbleChartDefaultProps.minSize,\n maxSize || bubbleChartDefaultProps.maxSize,\n ]);\n\n const yRange1 = height - marginTop - marginBottom - (xAxisPadding || 0);\n\n const yScale = scaleLog\n ? d3\n .scaleLog()\n .domain([minY || 0.1, maxY || 0.1])\n .range([yRange1 || 0.1, marginTop || 0.1])\n .nice()\n : d3\n .scaleLinear()\n .domain([minY, maxY])\n .range([yRange1, marginTop])\n .nice();\n\n customYScale && customYScale(yScale);\n\n const yTicks = yScale.ticks();\n const yAxisLeft = d3.axisLeft(yScale).ticks(yTicksCountDefault);\n\n const yTicksCount = yAxisLeft.tickArguments()[0];\n\n const yAxis = svg\n .append('g')\n .attr('class', classNames.bubbleChartYAxis)\n .call(yAxisLeft);\n\n let yScaleLabelHeight = yScaleLabelPadding || 0;\n\n if (yScaleLabel) {\n const label = svg\n .append('text')\n .text(yScaleLabel)\n .attr('class', classNames.bubbleChartYScaleLabel);\n\n const { width, height } = computeDimensions(label);\n\n yScaleLabelHeight = yScaleLabelHeight + height;\n\n label.attr(\n 'transform',\n `rotate(-90) translate(-${(yRange1 + marginBottom + width) /\n 2}, ${height})`\n );\n }\n\n yAxis.selectAll('.tick').attr('class', value => {\n return value === 0\n ? `tick ${classNames.bubbleChartYAxisZeroTick}`\n : 'tick';\n });\n\n customYAxis && customYAxis(yAxis);\n\n const { width: yAxisWidth } = computeDimensions(yAxis);\n\n const xScale = scaleLog\n ? d3\n .scaleLog()\n .domain([\n d3.min(data, ({ xValue }) => xValue) as number || 0.1,\n d3.max(data, ({ xValue }) => xValue) as number || 0.1,\n ])\n .range([\n (marginLeft + yAxisWidth + (yAxisPadding || 0) + yScaleLabelHeight) || 0.1,\n (width - marginRight) || 0.1,\n ])\n : d3\n .scaleLinear()\n .domain([\n d3.min(data, ({ xValue }) => xValue) as number,\n d3.max(data, ({ xValue }) => xValue) as number,\n ])\n .range([\n marginLeft + yAxisWidth + (yAxisPadding || 0) + yScaleLabelHeight,\n width - marginRight,\n ]);\n\n customXScale && customXScale(xScale);\n\n const xAxisBottom = d3.axisBottom(xScale);\n\n if (typeof xScaleItemWidth === 'number') {\n const [x1, x2] = xScale.range();\n const chartWidth = x2 - x1;\n\n xAxisBottom\n .ticks(Math.round(chartWidth / xScaleItemWidth))\n .tickSizeOuter(0);\n }\n\n const xAxis = svg\n .append('g')\n .call(xAxisBottom)\n .attr('class', classNames.bubbleChartXAxis);\n\n customXAxis && customXAxis(xAxis);\n\n yAxis.attr(\n 'transform',\n `translate(${marginLeft + yAxisWidth + yScaleLabelHeight}, 0)`\n );\n\n drawGrid({\n svg,\n yScale,\n xScale,\n yTicksCount,\n drawGridY,\n drawGridX,\n });\n\n xAxis.attr(\n 'transform',\n `translate(0, ${yScale(yTicks[0]) + (xAxisPadding || 0)})`\n );\n\n const bubbles = svg\n .append('g')\n .selectAll('dot')\n .data(data)\n .enter()\n .append('circle')\n .attr('class', classNames.bubbleChartCircle)\n .attr('cx', ({ xValue }) => xScale(xValue))\n .attr('cy', ({ yValue }) => yScale(yValue))\n .attr('r', ({ sizeValue }) => sizeScale(sizeValue) / 2)\n .attr('fill', ({ color }) => color || 'rgba(0, 176, 113, 0.6)')\n .attr('stroke', ({ stroke }) => stroke || 'transparent')\n .attr('style', ({ style }) => style || bubbleStyle || '');\n\n if (enableTooltip) {\n drawTooltip({ bubbles, tooltipRoot, tooltipClassName, renderTooltip });\n }\n\n customize && customize({ svg, bubbles, yScale, xScale, sizeScale });\n }\n};\n","import * as d3 from 'd3';\n\nimport { bubbleChartClassNames as classNames } from './styled';\n\nexport const unmount = (tooltipRoot?: Element) => {\n const root: Element | null = tooltipRoot || document.querySelector('body');\n\n d3.select(root)\n .select(`.${classNames.bubbleChartTooltip}`)\n .remove();\n};\n","import React, { FC, useEffect } from \"react\";\n\nimport { BubbleChartProps } from \"./types\";\n\nimport { useNode } from \"../../hooks\";\nimport { useResize } from \"../../hooks\";\n\nimport { draw } from \"./draw\";\nimport { unmount } from \"./unmount\";\nimport { bubbleChartDefaultProps } from \"./bubbleChartDefaultProps\";\n\nimport { SvgWrapper, TooltipStyles } from \"./styled\";\n\nexport const BubbleChart: FC<BubbleChartProps> = (\n props,\n) => {\n const { className, style, children, tooltipRoot } = props;\n const [ref, node] = useNode();\n\n useEffect(() => {\n node && draw(node, props);\n }, [node, props]);\n\n useEffect(() => {\n return () => unmount(tooltipRoot);\n }, [tooltipRoot]);\n\n const onDraw = () => draw(node, props);\n\n useResize(props.width, onDraw);\n\n return (\n <div className={className} style={style}>\n <TooltipStyles />\n <SvgWrapper ref={ref}>{children}</SvgWrapper>\n </div>\n );\n};\n\nBubbleChart.defaultProps = bubbleChartDefaultProps;\n"],"names":["Wrapper","styled","div","_templateObject","_taggedTemplateLiteralLoose","useNode","node","onSetNode","useState","ref","useCallback","throttle","fn","wait","isCalled","arguments","setTimeout","THROTTLE_DELAY","useResize","width","callback","delay","throttledCallback","useMemo","undefined","useEffect","window","addEventListener","removeEventListener","appendSvg","height","d3","select","remove","svg","append","attr","SwipeScrollContainer","animate","_ref","duration","timing","draw","start","performance","now","requestId","requestAnimationFrame","requestAnimate","time","timeFraction","cancelAnimationFrame","progress","easeOutQuad","range","num","min","max","Math","defaultRefs","animation","speed","timestamp","startX","currentX","useSwipe","animationFunc","onSwipe","container","body","documentSelect","document","refs","useRef","current","onMove","event","nodeWidth","getBoundingClientRect","x","type","includes","touches","newX","maxX","translateX","style","hundred","Date","dt","dx","speedX","round","onEnd","on","dtEnd","px","currX","transX","onStart","isTouch","left","parentElement","SwipeScroll","children","props","_objectWithoutPropertiesLoose","_excluded","draggingNode","_extends","React","defaultProps","degByIndex","index","count","degs","deg","getTextAnchor","length","halfAngle","getTranslate","anchor","translateY","LabelContainer","attrs","transform","labelClassName","drawRadialLabels","dataLength","radiusScale","maxValue","angleSlice","radius","xOffset","yOffset","renderLabel","selectLabel","d3container","selectAll","pxToValue","value","axisX","i","cos","PI","axisY","sin","labels","Array","from","_","ceil","y","forEach","_ref2","html","ReactDOMServer","renderToString","top","label","Label","Name","_templateObject2","middleBadgeStyles","css","_templateObject3","DefaultBadge","_templateObject4","MiddleBadge","_templateObject5","BadgePrefix","_templateObject6","radarChartclassNames","radar","radarAxis","radarAxisTextGlobal","radarAxisText","radarPolygon","radarLabel","radarLabelName","radarLabelBadge","radarLabelBadgePrefix","radarCircle","SvgWrapper","data","curve","polar","formatValue","badgePrefix","labelOffset","circleRadius","svgElements","customize","formatAxisValue","radarStyles","labelIndex","defaultBleedLength","bleedLength","defaultHeight","minValue","map","paddingX","paddingY","defaultLevels","ticks","domain","levels","lastTick","newLastTick","push","newMaxValue","radarLine","_ref3","angle","radarValue","_ref4","globalCenter","levelsGrid","reverse","axisGridY","getAxisValue","gridGlobal","enter","radarGlobal","axis","_ref5","name","maxGridHeight","path","circleNode","circleHeight","pathNode","pathHeight","radiusByMaxValue","join","d","dataItem","format","axisTextGlobal","text","axisValue","item","circleGlobal","_ref6","defaultLabelOffset","heightInner","offset","items","Badge","className","RadarChart","onDraw","radiansToDegrees","radians","flatAngle","degreesToRadians","degrees","pieChartclassNames","pieGlobal","pieSlice","pieSliceLabel","pieSliceLabelValue","pieSliceLabelName","pieRadialLabel","pieRadialLink","pieTooltipContainer","pieTooltipFlex","pieTooltip","pieTooltipItem","pieTooltipName","pieTooltipValue","pieTooltipColorBox","pieFullChartTooltipCircle","getMidFactor","startAngle","endAngle","getAlign","midangle","arc","enableRadialLabels","global","dataReady","radialLabelsLinkHorizontalLength","formatRadialLabel","radialLabelsTextXOffset","radialLabelYOffset","radialAngleXOffset","defaultRadialLabelsLinkHorizontalLength","outerArc","innerRadius","outerRadius","midFactor","posA","centroid","posB","posC","posCPi","getPosition","pos","defaultRadialLabelsTextXOffset","TooltipFlex","LabelFlex","LabelFlexCenter","TooltipContainer","TooltipGroupName","TooltipItem","ColFlex","_templateObject7","ColorBox","_templateObject8","ColorLine","_templateObject9","_templateObject0","Value","_templateObject1","_templateObject10","LabelTop","_templateObject11","LabelBottom","_templateObject12","drawTooltip","fullChartTooltip","tooltipRoot","tooltipClassName","tooltipBind","renderTooltip","allSlices","tooltipStyle","querySelector","classNames","isEmpty","empty","tooltipContainer","Object","entries","prop","val","isVisible","setVisible","visible","Boolean","opacity","setPosition","pieChartDatum","itemX","itemY","target","globalNode","itemWidth","itemHeight","arcX","arcY","setTooltip","pieChartData","color","key","backgroundColor","padAngle","onClick","cornerRadius","margin","enableSlicesLabels","formatSliceLabel","slicesLabelsSkipAngle","enableSlicesLabelsName","formatSliceLabelName","borderWidth","borderColor","formatSliceTitle","withTooltip","marginTop","marginRight","right","marginBottom","bottom","marginLeft","maxPadAngle","dividerPadAngle","fullAngle","pie","sort","maxOuterRadius","PieChart","defaultN","legendClassNames","legendContainer","legendTitle","legendTick","legendTickLine","legendTickText","ramp","n","canvas","createElement","context","getContext","fillStyle","fillRect","legendDefaultParams","tickSize","ticksDivier","titleMarginBottom","getLegend","title","tickFormat","tickValues","tickAdjust","g","tick","interpolate","copy","rangeRound","toDataURL","interpolator","assign","call","calendarChartClassNames","calendarChart","calendarYear","calendarAxis","calendarBody","calendarHeader","calendarYearTitle","calendarWeekDay","calendarMonth","calendarDays","calendarDay","headerHeight","startSunday","weekdays","monthSpacing","onEachDay","colorRange","legendProps","years","date","getUTCFullYear","cellOffset","weekDays","defaultCellSize","cellSize","countDay","days","sundayIndex","formatDay","formatDate","timeWeek","getTimeWeekCount","to","getMonthSpacing","getUTCMonth","formatMonth","chartWidth","values","year","months","weekCount","calendarWeekdays","header","fullYearlastMonth","fullYearlastDate","each","elements","element","currColor","getUTCDay","legend","containerNode","legendSvg","appendChild","CalendarChart","computeDimensions","selection","dimensions","SVGGraphicsElement","getBBox","none","isVoid","Number","isNaN","stackedData","stacks","valuesIndex","prevValue","abs","lineChartClassNames","lineChartYScaleGlobal","lineChartYScaleRight","lineChartXScaleGlobal","lineChartLinesGlobal","lineChartLine","lineChartAreasGlobal","lineChartArea","lineChartDotsGlobalContainer","lineChartDotsGlobal","lineChartDot","lineChartGridGlobal","lineChartGridLineX","lineChartGridLineY","lineChartLabelContainer","lineChartLabelFlex","lineChartLabel","lineChartMouseGlobal","lineChartMouseLine","lineChartMouseRect","lineChartMouseCircle","lineChartMouseLabelContainer","lineChartMouseLabel","TooltipStyles","createGlobalStyle","drawGrid","yScale","xScale","yTicksCount","lastIndex","drawGridX","drawGridY","yTicks","drawLabel","formatLabel","eachLabel","labelsDiv","argData","dynamicCircleRadius","formatDynamicTooltip","stackedTooltipIndex","stackedTooltip","tooltipLineTop","dotSnapping","chartData","filter","tooltipOff","x1","x2","y1","y2","mouseGlobal","mouseRect","mouseLine","lines","nodes","circles","dynamicDotOff","stroke","labelContainer","size","mouseMove","docX","docY","rectrX","nodeX","nodeY","currIndex","invert","positions","getValue","floor","line","hasAttribute","beginning","end","getTotalLength","getPointAtLength","step","lineChartData","dynamicDotStyle","datas","_ref7","rest","invertValue","noHasData","every","_ref8","topIndex","keys","reduce","acc","_datas$Number","_datas$Number2","labelTexts","_positions$i$x","_positions$i","_positions$index$y","_positions$index","indexX","indexY","_positions$topIndex","customYAxisSelection","customXAxisSelection","customYAxis","customXAxis","yAxisPadding","xAxisPadding","withLabels","stacked","dynamicTooltipEnable","customYScale","customLine","xScaleItemWidth","areaCurve","rightAxis","yRange","nice","yTicksCountDefault","yAxisLeft","tickArguments","yAxis","yAxisWidth","yAxisRightWidth","rightAxisMin","rightAxisMax","yRightScale","yAxisRightTicks","yAxisRight","xAxisBottom","tickSizeOuter","isArray","xAxis","xAxisHeight","defined","withAreas","some","fill","dataIndex","getArea","minAreaValues","minTick","y0","currData","area","areaStyle","_ref9","dots","_ref0","dot","dotsGlobal","dotsGroup","LineChart","barChartLinesClassNames","barChartLinesGlobal","barChartLine","barChartAreasGlobal","barChartArea","drawLines","lineData","stackedLine","linesSelection","areasSelection","bandwidth","linesData","lineType","areasData","tooltipClassnames","barChartMouseRect","barChartMouseContainer","barChartTooltipFlex","barChartMouseTooltip","barChartTooltip","barChartTooltipItem","barChartTooltipColFlex","barChartTooltipGroupName","barChartColorBox","barChartColorLine","barChartTooltipName","barChartTooltipValue","labelClassnames","barChartLabelContainer","barChartLabelFlex","barChartLabel","barChartClassNames","barChartBarGlobal","barChartYScaleGlobal","barChartYAxis","barChartXAxis","barChartYAxisZeroTick","barChartGridGlobal","barChartGridLineX","barChartGridLineXZero","barChartGridLineYZero","barChartGridLineY","barChartSelection","selectable","useSelection","drawing","clearSelection","removeChild","onStartDrawing","e","stopPropagation","which","_props$margin$bottom","_props$margin","_e$touches$","setAttribute","pageX","firstChild","offsetX","display","_e$touches$2","newWidth","offsetLeft","onMouseLeave","offsetWidth","onStopDrawing","selectionMinX","selectionWidth","selectionMaxX","onSelect","childNodes","child","userSelect","getX","padding","getDomain","minDomainValue","maxDomainValue","MIN","POSITIVE_INFINITY","MAX","NEGATIVE_INFINITY","groups","groupMax","groupMin","group","stackMax","stackMin","groupKey","marshaling","barWidth","barPadding","colors","groupIndex","groupName","marshalledGroup","groupsKeys","stackIndex","groupKeys","barGroupWidth","isPositiveValue","EPSILON","getLabelY","labelPosition","getLabel","LabelUI","marshalledData","hideTooltipGroupName","tooltipY","formatTooltipValue","formatTooltipName","tooltipYDomain","setTooltipPosition","onLabelItem","isBarTooltip","bars","onBarClick","onBarHover","xScaleBandDomain","topYDomain","curr","lineMin","tooltip","barChartTootipFlex","flagCurrIndex","offsetY","findIndex","containts","elementsFromPoint","clientX","clientY","currBars","isContains","currLineData","concat","svgWidth","isMouseWithin","rectrY","concatedData","stack","stacksCount","indexFlag","barsWidth","LabelFlexStyled","LabelStyle","resizeBarWidth","sectionPadding","groupPadding","_key","MIN_BAR_HEIGHT","getBars","markers","barWidthProp","customXScale","customYAxisLeft","customXAxisBottom","customBars","minValuesLine","marshalledMap","drawBars","defaultBarWidth","barDomain","array","divider","marshalled","maskId","uniqueId","gSvg","marker","horizontal","lineColor","align","BarChart","useMarshaling","fullExtent","fullMax","scaleLinear","horizontalBarChartClassNames","horizontalBarChartButtonTd","horizontalBarChartLabelTd","horizontalBarChartLabelCell","horizontalBarChartBarTd","horizontalBarChartBarFlex","horizontalBarChartBar","horizontalBarChartBarFirst","horizontalBarChartBarLast","horizontalBarChartBarOnly","horizontalBarChartTooltipFlex","horizontalBarChartStackWrapper","horizontalBarChartTooltipContainer","horizontalBarChartStackSumContainer","horizontalBarChartStackSum","horizontalBarChartXScaleTd","horizontalBarChartXScaleTicks","horizontalBarChartXScaleTick","horizontalBarChartTooltipItem","horizontalBarChartTooltipName","horizontalBarChartTooltipValue","Table","table","LabelCell","BarFlex","BarsTd","td","TooltipFlexUI","StackSumContainer","StackSum","StackWrapper","Tooltip","rootElement","useTooltip","hideTooltip","unmountComponentAtNode","onMouseMove","barX","barY","visibility","render","useStackWrapper","mouseLeave","onMouseOver","onMouseOut","Fragment","BarStyled","Bar","bar","formatNativeTitle","pointerEventsNone","isFirstChild","isLastChild","isOnlyChild","ceiledWidth","pointerEvents","useScale","scaleTicks","scaleDomain","TickTd","Ticks","Tick","XScale","renderTicks","justifyContent","HorizontalBarChart","withStackSum","renderButton","renderDataTable","thead","withoutXScale","marshalingData","Stack","flat","rowIndex","stackSum","sumWidth","barIndex","bubbleChartDefaultProps","minSize","maxSize","yScaleLabelPadding","bubbleChartClassNames","bubbleChartYAxis","bubbleChartYAxisZeroTick","bubbleChartXAxis","bubbleChartGridGlobal","bubbleChartGridLineX","bubbleChartGridLineY","bubbleChartCircle","bubbleChartYScaleLabel","bubbleChartTooltip","bubbleChartTooltipContainer","bubbleChartTooltipFlex","bubbleChartTip","bubbles","root","sizeValue","circle","currentTarget","pageXOffset","pageYOffset","minYValue","maxYValue","scaleLog","bubbleStyle","yScaleLabel","enableTooltip","minY","yValue","maxY","sizeScale","yRange1","yScaleLabelHeight","xValue","_ref1","_ref10","_ref11","_ref12","_ref13","_ref14","unmount","BubbleChart"],"mappings":"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"}
|