@gravity-ui/charts 1.46.0 → 1.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/ChartInner/useChartInnerProps.js +1 -1
- package/dist/cjs/components/Legend/index.js +13 -14
- package/dist/cjs/components/Tooltip/index.js +22 -1
- package/dist/cjs/core/axes/x-axis.js +1 -1
- package/dist/cjs/core/axes/y-axis.js +1 -1
- package/dist/cjs/core/scales/utils.d.ts +1 -1
- package/dist/cjs/core/scales/utils.js +1 -1
- package/dist/cjs/core/scales/x-scale.js +2 -2
- package/dist/cjs/core/scales/y-scale.js +48 -4
- package/dist/cjs/core/series/prepare-area.js +1 -1
- package/dist/cjs/core/series/prepare-bar-x.js +1 -1
- package/dist/cjs/core/series/prepare-bar-y.js +1 -1
- package/dist/cjs/core/series/prepare-funnel.js +1 -1
- package/dist/cjs/core/series/prepare-heatmap.js +1 -1
- package/dist/cjs/core/series/prepare-legend.js +2 -2
- package/dist/cjs/core/series/prepare-line.js +1 -1
- package/dist/cjs/core/series/prepare-pie.js +1 -1
- package/dist/cjs/core/series/prepare-radar.js +1 -1
- package/dist/cjs/core/series/prepare-sankey.js +1 -1
- package/dist/cjs/core/series/prepare-scatter.js +1 -1
- package/dist/cjs/core/series/prepare-treemap.js +1 -1
- package/dist/cjs/core/series/prepare-waterfall.js +1 -1
- package/dist/cjs/core/series/prepare-x-range.js +1 -1
- package/dist/cjs/core/series/prepareSeries.d.ts +7 -1
- package/dist/cjs/core/series/prepareSeries.js +31 -0
- package/dist/cjs/core/series/types.d.ts +5 -0
- package/dist/cjs/core/series/utils.d.ts +4 -0
- package/dist/cjs/core/series/utils.js +9 -1
- package/dist/cjs/{hooks/useShapes/annotation/index.d.ts → core/shapes/annotation.d.ts} +1 -7
- package/dist/cjs/{hooks/useShapes/annotation/index.js → core/shapes/annotation.js} +2 -2
- package/dist/cjs/{hooks/useShapes → core/shapes}/area/prepare-data.d.ts +4 -4
- package/dist/cjs/{hooks/useShapes → core/shapes}/area/prepare-data.js +4 -4
- package/dist/cjs/core/shapes/area/renderer.d.ts +11 -0
- package/dist/cjs/core/shapes/area/renderer.js +181 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/area/types.d.ts +1 -3
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/prepare-data.d.ts +4 -4
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/prepare-data.js +6 -6
- package/dist/cjs/core/shapes/bar-x/renderer.d.ts +9 -0
- package/dist/cjs/core/shapes/bar-x/renderer.js +110 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/types.d.ts +1 -2
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/prepare-data.d.ts +3 -3
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/prepare-data.js +3 -3
- package/dist/cjs/core/shapes/bar-y/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/bar-y/renderer.js +80 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/types.d.ts +1 -1
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/utils.js +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/prepare-data.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/prepare-data.js +1 -1
- package/dist/cjs/core/shapes/funnel/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/funnel/renderer.js +79 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/types.d.ts +2 -2
- package/dist/cjs/{hooks/useShapes → core/shapes}/heatmap/prepare-data.d.ts +3 -3
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/heatmap/prepare-data.js +2 -2
- package/dist/cjs/core/shapes/heatmap/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/heatmap/renderer.js +55 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/heatmap/types.d.ts +1 -1
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/line/prepare-data.d.ts +4 -4
- package/dist/cjs/{hooks/useShapes → core/shapes}/line/prepare-data.js +3 -3
- package/dist/cjs/core/shapes/line/renderer.d.ts +11 -0
- package/dist/cjs/core/shapes/line/renderer.js +167 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/line/types.d.ts +2 -4
- package/dist/cjs/core/shapes/marker.d.ts +45 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/marker.js +2 -2
- package/dist/cjs/{hooks/useShapes → core/shapes}/pie/prepare-data.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/pie/prepare-data.js +3 -3
- package/dist/cjs/core/shapes/pie/renderer.d.ts +8 -0
- package/dist/cjs/core/shapes/pie/renderer.js +160 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/pie/types.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/radar/prepare-data.d.ts +1 -1
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/radar/prepare-data.js +2 -2
- package/dist/cjs/core/shapes/radar/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/radar/renderer.js +126 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/radar/types.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/prepare-data.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/prepare-data.js +1 -1
- package/dist/cjs/core/shapes/sankey/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/sankey/renderer.js +50 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/types.d.ts +1 -1
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/prepare-data.d.ts +3 -3
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/prepare-data.js +2 -2
- package/dist/cjs/core/shapes/scatter/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/scatter/renderer.js +52 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/types.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/prepare-data.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/prepare-data.js +3 -3
- package/dist/cjs/core/shapes/treemap/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/treemap/renderer.js +88 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/treemap/types.d.ts +1 -1
- package/dist/cjs/core/shapes/utils.d.ts +52 -0
- package/dist/cjs/core/shapes/utils.js +138 -0
- package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/prepare-data.d.ts +3 -3
- package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/prepare-data.js +4 -4
- package/dist/cjs/core/shapes/waterfall/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/waterfall/renderer.js +115 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/waterfall/types.d.ts +1 -1
- package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/prepare-data.d.ts +3 -3
- package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/prepare-data.js +4 -4
- package/dist/cjs/core/shapes/x-range/renderer.d.ts +6 -0
- package/dist/cjs/core/shapes/x-range/renderer.js +94 -0
- package/dist/{esm/hooks/useShapes → cjs/core/shapes}/x-range/types.d.ts +1 -1
- package/dist/cjs/core/types/chart/area.d.ts +0 -1
- package/dist/cjs/core/types/chart/axis.d.ts +0 -1
- package/dist/cjs/core/types/chart/base.d.ts +1 -4
- package/dist/cjs/{hooks/utils/get-band-size.js → core/utils/band-size.js} +1 -1
- package/dist/{esm/hooks → cjs/core}/utils/bar-y.d.ts +3 -3
- package/dist/cjs/{hooks → core}/utils/bar-y.js +4 -4
- package/dist/cjs/core/utils/get-closest-data.d.ts +1 -1
- package/dist/cjs/core/utils/series/sorting.js +1 -1
- package/dist/cjs/core/utils/text.d.ts +0 -1
- package/dist/cjs/core/utils/text.js +0 -1
- package/dist/cjs/hooks/index.d.ts +1 -1
- package/dist/cjs/hooks/index.js +1 -1
- package/dist/cjs/hooks/useRangeSlider/types.d.ts +1 -1
- package/dist/cjs/hooks/useRangeSlider/utils.d.ts +1 -1
- package/dist/cjs/hooks/useShapes/area/index.d.ts +2 -2
- package/dist/cjs/hooks/useShapes/area/index.js +13 -185
- package/dist/cjs/hooks/useShapes/bar-x/index.d.ts +4 -4
- package/dist/cjs/hooks/useShapes/bar-x/index.js +10 -119
- package/dist/cjs/hooks/useShapes/bar-y/index.d.ts +3 -3
- package/dist/cjs/hooks/useShapes/bar-y/index.js +5 -84
- package/dist/cjs/hooks/useShapes/funnel/index.d.ts +4 -4
- package/dist/cjs/hooks/useShapes/funnel/index.js +4 -83
- package/dist/cjs/hooks/useShapes/heatmap/index.d.ts +4 -4
- package/dist/cjs/hooks/useShapes/heatmap/index.js +4 -59
- package/dist/cjs/hooks/useShapes/index.d.ts +14 -15
- package/dist/cjs/hooks/useShapes/index.js +13 -13
- package/dist/cjs/hooks/useShapes/line/index.d.ts +2 -2
- package/dist/cjs/hooks/useShapes/line/index.js +14 -172
- package/dist/cjs/hooks/useShapes/pie/index.d.ts +3 -5
- package/dist/cjs/hooks/useShapes/pie/index.js +3 -158
- package/dist/cjs/hooks/useShapes/radar/index.d.ts +2 -2
- package/dist/cjs/hooks/useShapes/radar/index.js +2 -121
- package/dist/cjs/hooks/useShapes/sankey/index.d.ts +2 -2
- package/dist/cjs/hooks/useShapes/sankey/index.js +2 -51
- package/dist/cjs/hooks/useShapes/scatter/index.d.ts +3 -3
- package/dist/cjs/hooks/useShapes/scatter/index.js +3 -58
- package/dist/cjs/hooks/useShapes/treemap/index.d.ts +2 -2
- package/dist/cjs/hooks/useShapes/treemap/index.js +2 -88
- package/dist/cjs/hooks/useShapes/utils.d.ts +2 -52
- package/dist/cjs/hooks/useShapes/utils.js +3 -140
- package/dist/cjs/hooks/useShapes/waterfall/index.d.ts +4 -4
- package/dist/cjs/hooks/useShapes/waterfall/index.js +6 -119
- package/dist/cjs/hooks/useShapes/x-range/index.d.ts +4 -4
- package/dist/cjs/hooks/useShapes/x-range/index.js +3 -98
- package/dist/cjs/setup-jsdom.js +7 -0
- package/dist/esm/components/ChartInner/useChartInnerProps.js +1 -1
- package/dist/esm/components/Legend/index.js +13 -14
- package/dist/esm/components/Tooltip/index.js +22 -1
- package/dist/esm/core/axes/x-axis.js +1 -1
- package/dist/esm/core/axes/y-axis.js +1 -1
- package/dist/esm/core/scales/utils.d.ts +1 -1
- package/dist/esm/core/scales/utils.js +1 -1
- package/dist/esm/core/scales/x-scale.js +2 -2
- package/dist/esm/core/scales/y-scale.js +48 -4
- package/dist/esm/core/series/prepare-area.js +1 -1
- package/dist/esm/core/series/prepare-bar-x.js +1 -1
- package/dist/esm/core/series/prepare-bar-y.js +1 -1
- package/dist/esm/core/series/prepare-funnel.js +1 -1
- package/dist/esm/core/series/prepare-heatmap.js +1 -1
- package/dist/esm/core/series/prepare-legend.js +2 -2
- package/dist/esm/core/series/prepare-line.js +1 -1
- package/dist/esm/core/series/prepare-pie.js +1 -1
- package/dist/esm/core/series/prepare-radar.js +1 -1
- package/dist/esm/core/series/prepare-sankey.js +1 -1
- package/dist/esm/core/series/prepare-scatter.js +1 -1
- package/dist/esm/core/series/prepare-treemap.js +1 -1
- package/dist/esm/core/series/prepare-waterfall.js +1 -1
- package/dist/esm/core/series/prepare-x-range.js +1 -1
- package/dist/esm/core/series/prepareSeries.d.ts +7 -1
- package/dist/esm/core/series/prepareSeries.js +31 -0
- package/dist/esm/core/series/types.d.ts +5 -0
- package/dist/esm/core/series/utils.d.ts +4 -0
- package/dist/esm/core/series/utils.js +9 -1
- package/dist/esm/{hooks/useShapes/annotation/index.d.ts → core/shapes/annotation.d.ts} +1 -7
- package/dist/esm/{hooks/useShapes/annotation/index.js → core/shapes/annotation.js} +2 -2
- package/dist/esm/{hooks/useShapes → core/shapes}/area/prepare-data.d.ts +4 -4
- package/dist/esm/{hooks/useShapes → core/shapes}/area/prepare-data.js +4 -4
- package/dist/esm/core/shapes/area/renderer.d.ts +11 -0
- package/dist/esm/core/shapes/area/renderer.js +181 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/area/types.d.ts +1 -3
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/prepare-data.d.ts +4 -4
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/prepare-data.js +6 -6
- package/dist/esm/core/shapes/bar-x/renderer.d.ts +9 -0
- package/dist/esm/core/shapes/bar-x/renderer.js +110 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/types.d.ts +1 -2
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/prepare-data.d.ts +3 -3
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/prepare-data.js +3 -3
- package/dist/esm/core/shapes/bar-y/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/bar-y/renderer.js +80 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/types.d.ts +1 -1
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/utils.js +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/funnel/prepare-data.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/funnel/prepare-data.js +1 -1
- package/dist/esm/core/shapes/funnel/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/funnel/renderer.js +79 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/funnel/types.d.ts +2 -2
- package/dist/esm/{hooks/useShapes → core/shapes}/heatmap/prepare-data.d.ts +3 -3
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/heatmap/prepare-data.js +2 -2
- package/dist/esm/core/shapes/heatmap/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/heatmap/renderer.js +55 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/heatmap/types.d.ts +1 -1
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/line/prepare-data.d.ts +4 -4
- package/dist/esm/{hooks/useShapes → core/shapes}/line/prepare-data.js +3 -3
- package/dist/esm/core/shapes/line/renderer.d.ts +11 -0
- package/dist/esm/core/shapes/line/renderer.js +167 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/line/types.d.ts +2 -4
- package/dist/esm/core/shapes/marker.d.ts +45 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/marker.js +2 -2
- package/dist/esm/{hooks/useShapes → core/shapes}/pie/prepare-data.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/pie/prepare-data.js +3 -3
- package/dist/esm/core/shapes/pie/renderer.d.ts +8 -0
- package/dist/esm/core/shapes/pie/renderer.js +160 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/pie/types.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/radar/prepare-data.d.ts +1 -1
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/radar/prepare-data.js +2 -2
- package/dist/esm/core/shapes/radar/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/radar/renderer.js +126 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/radar/types.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/sankey/prepare-data.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/sankey/prepare-data.js +1 -1
- package/dist/esm/core/shapes/sankey/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/sankey/renderer.js +50 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/sankey/types.d.ts +1 -1
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/prepare-data.d.ts +3 -3
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/prepare-data.js +2 -2
- package/dist/esm/core/shapes/scatter/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/scatter/renderer.js +52 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/types.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/treemap/prepare-data.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/treemap/prepare-data.js +3 -3
- package/dist/esm/core/shapes/treemap/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/treemap/renderer.js +88 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/treemap/types.d.ts +1 -1
- package/dist/esm/core/shapes/utils.d.ts +52 -0
- package/dist/esm/core/shapes/utils.js +138 -0
- package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/prepare-data.d.ts +3 -3
- package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/prepare-data.js +4 -4
- package/dist/esm/core/shapes/waterfall/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/waterfall/renderer.js +115 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/waterfall/types.d.ts +1 -1
- package/dist/esm/{hooks/useShapes → core/shapes}/x-range/prepare-data.d.ts +3 -3
- package/dist/esm/{hooks/useShapes → core/shapes}/x-range/prepare-data.js +4 -4
- package/dist/esm/core/shapes/x-range/renderer.d.ts +6 -0
- package/dist/esm/core/shapes/x-range/renderer.js +94 -0
- package/dist/{cjs/hooks/useShapes → esm/core/shapes}/x-range/types.d.ts +1 -1
- package/dist/esm/core/types/chart/area.d.ts +0 -1
- package/dist/esm/core/types/chart/axis.d.ts +0 -1
- package/dist/esm/core/types/chart/base.d.ts +1 -4
- package/dist/esm/{hooks/utils/get-band-size.js → core/utils/band-size.js} +1 -1
- package/dist/{cjs/hooks → esm/core}/utils/bar-y.d.ts +3 -3
- package/dist/esm/{hooks → core}/utils/bar-y.js +4 -4
- package/dist/esm/core/utils/get-closest-data.d.ts +1 -1
- package/dist/esm/core/utils/series/sorting.js +1 -1
- package/dist/esm/core/utils/text.d.ts +0 -1
- package/dist/esm/core/utils/text.js +0 -1
- package/dist/esm/hooks/index.d.ts +1 -1
- package/dist/esm/hooks/index.js +1 -1
- package/dist/esm/hooks/useRangeSlider/types.d.ts +1 -1
- package/dist/esm/hooks/useRangeSlider/utils.d.ts +1 -1
- package/dist/esm/hooks/useShapes/area/index.d.ts +2 -2
- package/dist/esm/hooks/useShapes/area/index.js +13 -185
- package/dist/esm/hooks/useShapes/bar-x/index.d.ts +4 -4
- package/dist/esm/hooks/useShapes/bar-x/index.js +10 -119
- package/dist/esm/hooks/useShapes/bar-y/index.d.ts +3 -3
- package/dist/esm/hooks/useShapes/bar-y/index.js +5 -84
- package/dist/esm/hooks/useShapes/funnel/index.d.ts +4 -4
- package/dist/esm/hooks/useShapes/funnel/index.js +4 -83
- package/dist/esm/hooks/useShapes/heatmap/index.d.ts +4 -4
- package/dist/esm/hooks/useShapes/heatmap/index.js +4 -59
- package/dist/esm/hooks/useShapes/index.d.ts +14 -15
- package/dist/esm/hooks/useShapes/index.js +13 -13
- package/dist/esm/hooks/useShapes/line/index.d.ts +2 -2
- package/dist/esm/hooks/useShapes/line/index.js +14 -172
- package/dist/esm/hooks/useShapes/pie/index.d.ts +3 -5
- package/dist/esm/hooks/useShapes/pie/index.js +3 -158
- package/dist/esm/hooks/useShapes/radar/index.d.ts +2 -2
- package/dist/esm/hooks/useShapes/radar/index.js +2 -121
- package/dist/esm/hooks/useShapes/sankey/index.d.ts +2 -2
- package/dist/esm/hooks/useShapes/sankey/index.js +2 -51
- package/dist/esm/hooks/useShapes/scatter/index.d.ts +3 -3
- package/dist/esm/hooks/useShapes/scatter/index.js +3 -58
- package/dist/esm/hooks/useShapes/treemap/index.d.ts +2 -2
- package/dist/esm/hooks/useShapes/treemap/index.js +2 -88
- package/dist/esm/hooks/useShapes/utils.d.ts +2 -52
- package/dist/esm/hooks/useShapes/utils.js +3 -140
- package/dist/esm/hooks/useShapes/waterfall/index.d.ts +4 -4
- package/dist/esm/hooks/useShapes/waterfall/index.js +6 -119
- package/dist/esm/hooks/useShapes/x-range/index.d.ts +4 -4
- package/dist/esm/hooks/useShapes/x-range/index.js +3 -98
- package/dist/esm/setup-jsdom.js +7 -0
- package/package.json +5 -2
- package/dist/cjs/hooks/useSeries/index.d.ts +0 -12
- package/dist/cjs/hooks/useSeries/index.js +0 -40
- package/dist/cjs/hooks/useSeries/types.d.ts +0 -1
- package/dist/cjs/hooks/useSeries/types.js +0 -1
- package/dist/cjs/hooks/useSeries/utils.d.ts +0 -1
- package/dist/cjs/hooks/useSeries/utils.js +0 -1
- package/dist/cjs/hooks/useShapes/marker.d.ts +0 -15
- package/dist/cjs/hooks/utils/index.d.ts +0 -1
- package/dist/cjs/hooks/utils/index.js +0 -1
- package/dist/esm/hooks/useSeries/index.d.ts +0 -12
- package/dist/esm/hooks/useSeries/index.js +0 -40
- package/dist/esm/hooks/useSeries/types.d.ts +0 -1
- package/dist/esm/hooks/useSeries/types.js +0 -1
- package/dist/esm/hooks/useSeries/utils.d.ts +0 -1
- package/dist/esm/hooks/useSeries/utils.js +0 -1
- package/dist/esm/hooks/useShapes/marker.d.ts +0 -15
- package/dist/esm/hooks/utils/index.d.ts +0 -1
- package/dist/esm/hooks/utils/index.js +0 -1
- /package/dist/cjs/{hooks/useShapes → core/shapes}/area/types.js +0 -0
- /package/dist/cjs/{hooks/constants.d.ts → core/shapes/bar-constants.d.ts} +0 -0
- /package/dist/cjs/{hooks/constants.js → core/shapes/bar-constants.js} +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-x/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/utils.d.ts +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/heatmap/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/line/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/utils.d.ts +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/utils.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/radar/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/sankey-layout.d.ts +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/sankey-layout.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/scatter/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/types.js +0 -0
- /package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/types.js +0 -0
- /package/dist/cjs/{hooks/utils/get-band-size.d.ts → core/utils/band-size.d.ts} +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/area/types.js +0 -0
- /package/dist/esm/{hooks/constants.d.ts → core/shapes/bar-constants.d.ts} +0 -0
- /package/dist/esm/{hooks/constants.js → core/shapes/bar-constants.js} +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/bar-x/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/utils.d.ts +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/funnel/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/heatmap/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/line/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/pie/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/pie/utils.d.ts +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/pie/utils.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/radar/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/sankey-layout.d.ts +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/sankey-layout.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/scatter/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/treemap/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/types.js +0 -0
- /package/dist/esm/{hooks/useShapes → core/shapes}/x-range/types.js +0 -0
- /package/dist/esm/{hooks/utils/get-band-size.d.ts → core/utils/band-size.d.ts} +0 -0
|
@@ -1,112 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { select } from 'd3-selection';
|
|
4
|
-
import get from 'lodash/get';
|
|
5
|
-
import { getLineDashArray } from '../../../core/utils';
|
|
2
|
+
import { renderXRange } from '../../../core/shapes/x-range/renderer';
|
|
6
3
|
import { block } from '../../../utils';
|
|
7
4
|
import { HtmlLayer } from '../HtmlLayer';
|
|
8
|
-
|
|
9
|
-
export { prepareXRangeData } from './prepare-data';
|
|
5
|
+
export { prepareXRangeData } from '../../../core/shapes/x-range/prepare-data';
|
|
10
6
|
const b = block('x-range');
|
|
11
7
|
export function XRangeSeriesShapes(args) {
|
|
12
8
|
const { dispatcher, preparedData, seriesOptions, htmlLayout, clipPathId } = args;
|
|
13
|
-
const hoveredDataRef = React.useRef(null);
|
|
14
9
|
const ref = React.useRef(null);
|
|
15
10
|
React.useEffect(() => {
|
|
16
|
-
var _a;
|
|
17
11
|
if (!ref.current) {
|
|
18
12
|
return () => { };
|
|
19
13
|
}
|
|
20
|
-
|
|
21
|
-
svgElement.selectAll('*').remove();
|
|
22
|
-
const segmentSelection = svgElement
|
|
23
|
-
.selectAll(`path.${b('segment')}`)
|
|
24
|
-
.data(preparedData)
|
|
25
|
-
.join('path')
|
|
26
|
-
.attr('d', (d) => {
|
|
27
|
-
const borderRadius = Math.min(d.height / 2, d.width / 2, d.series.borderRadius);
|
|
28
|
-
return getRectPath({
|
|
29
|
-
x: d.x,
|
|
30
|
-
y: d.y,
|
|
31
|
-
width: d.width,
|
|
32
|
-
height: d.height,
|
|
33
|
-
borderRadius,
|
|
34
|
-
}).toString();
|
|
35
|
-
})
|
|
36
|
-
.attr('class', b('segment'))
|
|
37
|
-
.attr('fill', (d) => d.color)
|
|
38
|
-
.attr('opacity', (d) => { var _a; return (_a = d.data.opacity) !== null && _a !== void 0 ? _a : d.series.opacity; })
|
|
39
|
-
.attr('cursor', (d) => d.series.cursor);
|
|
40
|
-
svgElement
|
|
41
|
-
.selectAll(`path.${b('segment-border')}`)
|
|
42
|
-
.data(preparedData.filter((d) => d.series.borderWidth > 0))
|
|
43
|
-
.join('path')
|
|
44
|
-
.attr('d', (d) => {
|
|
45
|
-
const borderRadius = Math.min(d.height / 2, d.width / 2, d.series.borderRadius);
|
|
46
|
-
return getRectPath({
|
|
47
|
-
x: d.x,
|
|
48
|
-
y: d.y,
|
|
49
|
-
width: d.width,
|
|
50
|
-
height: d.height,
|
|
51
|
-
borderRadius,
|
|
52
|
-
}).toString();
|
|
53
|
-
})
|
|
54
|
-
.attr('class', b('segment-border'))
|
|
55
|
-
.attr('fill', 'none')
|
|
56
|
-
.attr('stroke', (d) => d.series.borderColor)
|
|
57
|
-
.attr('stroke-width', (d) => d.series.borderWidth)
|
|
58
|
-
.attr('stroke-dasharray', (d) => getLineDashArray(d.series.borderDashStyle, d.series.borderWidth))
|
|
59
|
-
.attr('opacity', (d) => { var _a; return (_a = d.data.opacity) !== null && _a !== void 0 ? _a : d.series.opacity; })
|
|
60
|
-
.attr('pointer-events', 'none');
|
|
61
|
-
const svgLabels = preparedData.flatMap((d) => d.svgLabels);
|
|
62
|
-
svgElement
|
|
63
|
-
.selectAll(`text.${b('label')}`)
|
|
64
|
-
.data(svgLabels)
|
|
65
|
-
.join('text')
|
|
66
|
-
.attr('class', b('label'))
|
|
67
|
-
.attr('x', (d) => d.x)
|
|
68
|
-
.attr('y', (d) => d.y)
|
|
69
|
-
.attr('text-anchor', (d) => d.textAnchor)
|
|
70
|
-
.attr('dominant-baseline', 'central')
|
|
71
|
-
.attr('pointer-events', 'none')
|
|
72
|
-
.style('font-size', (d) => d.style.fontSize)
|
|
73
|
-
.style('font-weight', (d) => d.style.fontWeight || null)
|
|
74
|
-
.style('fill', (d) => d.style.fontColor || null)
|
|
75
|
-
.html((d) => d.text);
|
|
76
|
-
const hoverOptions = get(seriesOptions, 'x-range.states.hover');
|
|
77
|
-
const inactiveOptions = get(seriesOptions, 'x-range.states.inactive');
|
|
78
|
-
function handleShapeHover(data) {
|
|
79
|
-
hoveredDataRef.current = data;
|
|
80
|
-
if (hoverOptions === null || hoverOptions === void 0 ? void 0 : hoverOptions.enabled) {
|
|
81
|
-
const hoveredSet = new Set(data === null || data === void 0 ? void 0 : data.map((d) => d.data));
|
|
82
|
-
segmentSelection.attr('fill', (d) => {
|
|
83
|
-
var _a;
|
|
84
|
-
const fillColor = d.color;
|
|
85
|
-
if (hoveredSet.has(d.data)) {
|
|
86
|
-
return (((_a = color(fillColor)) === null || _a === void 0 ? void 0 : _a.brighter(hoverOptions.brightness).toString()) ||
|
|
87
|
-
fillColor);
|
|
88
|
-
}
|
|
89
|
-
return fillColor;
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
if (inactiveOptions === null || inactiveOptions === void 0 ? void 0 : inactiveOptions.enabled) {
|
|
93
|
-
const hoveredSeries = data === null || data === void 0 ? void 0 : data.map((d) => d.series.id);
|
|
94
|
-
segmentSelection.attr('opacity', (d) => {
|
|
95
|
-
var _a, _b;
|
|
96
|
-
if ((hoveredSeries === null || hoveredSeries === void 0 ? void 0 : hoveredSeries.length) && !hoveredSeries.includes(d.series.id)) {
|
|
97
|
-
return inactiveOptions.opacity || null;
|
|
98
|
-
}
|
|
99
|
-
return (_b = (_a = d.data.opacity) !== null && _a !== void 0 ? _a : d.series.opacity) !== null && _b !== void 0 ? _b : null;
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (hoveredDataRef.current !== null) {
|
|
104
|
-
handleShapeHover((_a = hoveredDataRef.current) !== null && _a !== void 0 ? _a : undefined);
|
|
105
|
-
}
|
|
106
|
-
dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.on('hover-shape.x-range', handleShapeHover);
|
|
107
|
-
return () => {
|
|
108
|
-
dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.on('hover-shape.x-range', null);
|
|
109
|
-
};
|
|
14
|
+
return renderXRange({ plot: ref.current }, preparedData, seriesOptions, dispatcher);
|
|
110
15
|
}, [dispatcher, preparedData, seriesOptions]);
|
|
111
16
|
const htmlLayerData = React.useMemo(() => ({ htmlElements: preparedData.flatMap((d) => d.htmlLabels) }), [preparedData]);
|
|
112
17
|
return (React.createElement(React.Fragment, null,
|
package/dist/cjs/setup-jsdom.js
CHANGED
|
@@ -10,6 +10,13 @@ if (typeof document !== 'undefined') {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
14
|
+
global.ResizeObserver = class ResizeObserver {
|
|
15
|
+
observe() { }
|
|
16
|
+
unobserve() { }
|
|
17
|
+
disconnect() { }
|
|
18
|
+
};
|
|
19
|
+
}
|
|
13
20
|
if (typeof HTMLCanvasElement !== 'undefined') {
|
|
14
21
|
// jsdom does not implement HTMLCanvasElement.prototype.getContext (used for text measurement)
|
|
15
22
|
HTMLCanvasElement.prototype.getContext = (() => ({
|
|
@@ -3,9 +3,9 @@ import isEqual from 'lodash/isEqual';
|
|
|
3
3
|
import { DEFAULT_PALETTE, SERIES_TYPE } from '../../core/constants';
|
|
4
4
|
import { getLegendComponents, getPreparedLegend } from '../../core/series/prepare-legend';
|
|
5
5
|
import { getPreparedOptions } from '../../core/series/prepare-options';
|
|
6
|
+
import { getActiveLegendItems, getAllLegendItems } from '../../core/series/utils';
|
|
6
7
|
import { getChartDimensions, getEffectiveXRange, getSortedSeriesData, getYAxisWidth, getZoomedSeriesData, isAxisRelatedSeries, } from '../../core/utils';
|
|
7
8
|
import { createScales, getAxes, getPreparedSeries, getShapes, getSplit, getVisibleSeries, useZoom, } from '../../hooks';
|
|
8
|
-
import { getActiveLegendItems, getAllLegendItems } from '../../hooks/useSeries/utils';
|
|
9
9
|
import { getNormalizedXAxis, getNormalizedYAxis, getPreparedChart, getPreparedTitle, recalculateYAxisLabelsWidth, } from './utils';
|
|
10
10
|
import { hasAtLeastOneSeriesDataPerPlot } from './utils/common';
|
|
11
11
|
const CLIP_PATH_BY_SERIES_TYPE = {
|
|
@@ -24,11 +24,16 @@ const getLegendPosition = (args) => {
|
|
|
24
24
|
const { offsetLeft, offsetTop, contentWidth, width } = args;
|
|
25
25
|
return { top: offsetTop, left: offsetLeft + width / 2 - contentWidth / 2 };
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
async function appendPaginator(args) {
|
|
28
28
|
const { container, pageIndex, legend, transform, pages, onArrowClick } = args;
|
|
29
29
|
const paginationLine = container.append('g').attr('class', b('pagination'));
|
|
30
30
|
const maxPage = pages.length;
|
|
31
|
-
|
|
31
|
+
const paginationCounterText = `${pageIndex + 1}/${maxPage}`;
|
|
32
|
+
const getTextSize = getTextSizeFn({ style: legend.itemStyle });
|
|
33
|
+
const [arrowIcon, counter] = await Promise.all([
|
|
34
|
+
getTextSize('▲'),
|
|
35
|
+
getTextSize(paginationCounterText),
|
|
36
|
+
]);
|
|
32
37
|
paginationLine
|
|
33
38
|
.append('text')
|
|
34
39
|
.text('▲')
|
|
@@ -36,9 +41,6 @@ const appendPaginator = (args) => {
|
|
|
36
41
|
return b('pagination-arrow', { inactive: pageIndex === 0 });
|
|
37
42
|
})
|
|
38
43
|
.style('font-size', legend.itemStyle.fontSize)
|
|
39
|
-
.each(function () {
|
|
40
|
-
computedWidth += this.getComputedTextLength();
|
|
41
|
-
})
|
|
42
44
|
.on('click', function () {
|
|
43
45
|
if (pageIndex - 1 >= 0) {
|
|
44
46
|
onArrowClick(pageIndex - 1);
|
|
@@ -46,20 +48,17 @@ const appendPaginator = (args) => {
|
|
|
46
48
|
});
|
|
47
49
|
paginationLine
|
|
48
50
|
.append('text')
|
|
49
|
-
.text(
|
|
51
|
+
.text(paginationCounterText)
|
|
50
52
|
.attr('class', b('pagination-counter'))
|
|
51
|
-
.attr('x',
|
|
52
|
-
.style('font-size', legend.itemStyle.fontSize)
|
|
53
|
-
.each(function () {
|
|
54
|
-
computedWidth += this.getComputedTextLength();
|
|
55
|
-
});
|
|
53
|
+
.attr('x', arrowIcon.width)
|
|
54
|
+
.style('font-size', legend.itemStyle.fontSize);
|
|
56
55
|
paginationLine
|
|
57
56
|
.append('text')
|
|
58
57
|
.text('▼')
|
|
59
58
|
.attr('class', function () {
|
|
60
59
|
return b('pagination-arrow', { inactive: pageIndex === maxPage - 1 });
|
|
61
60
|
})
|
|
62
|
-
.attr('x',
|
|
61
|
+
.attr('x', arrowIcon.width + counter.width)
|
|
63
62
|
.style('font-size', legend.itemStyle.fontSize)
|
|
64
63
|
.on('click', function () {
|
|
65
64
|
if (pageIndex + 1 < maxPage) {
|
|
@@ -67,7 +66,7 @@ const appendPaginator = (args) => {
|
|
|
67
66
|
}
|
|
68
67
|
});
|
|
69
68
|
paginationLine.attr('transform', transform);
|
|
70
|
-
}
|
|
69
|
+
}
|
|
71
70
|
function renderLegendSymbol(args) {
|
|
72
71
|
const { selection, legend, legendLineHeight } = args;
|
|
73
72
|
const line = selection.data();
|
|
@@ -277,7 +276,7 @@ export const Legend = (props) => {
|
|
|
277
276
|
});
|
|
278
277
|
if (config.pagination) {
|
|
279
278
|
const transform = `translate(${[0, legend.height - legend.lineHeight / 2].join(',')})`;
|
|
280
|
-
appendPaginator({
|
|
279
|
+
await appendPaginator({
|
|
281
280
|
container: svgElement,
|
|
282
281
|
pageIndex: pageIndex,
|
|
283
282
|
legend,
|
|
@@ -13,7 +13,28 @@ export const Tooltip = (props) => {
|
|
|
13
13
|
xAxis,
|
|
14
14
|
yAxis,
|
|
15
15
|
});
|
|
16
|
-
const
|
|
16
|
+
const containerRectRef = React.useRef({ left: 0, top: 0 });
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (!svgContainer)
|
|
19
|
+
return undefined;
|
|
20
|
+
const updateRect = (e) => {
|
|
21
|
+
// Skip synthetic events (e.g. the CustomEvent('scroll') dispatched by the
|
|
22
|
+
// sibling useEffect below to reposition the Popup). Only native browser
|
|
23
|
+
// scroll events have isTrusted === true, so those still update the rect.
|
|
24
|
+
if (e && !e.isTrusted)
|
|
25
|
+
return;
|
|
26
|
+
containerRectRef.current = svgContainer.getBoundingClientRect();
|
|
27
|
+
};
|
|
28
|
+
updateRect();
|
|
29
|
+
const resizeObserver = new ResizeObserver(() => updateRect());
|
|
30
|
+
resizeObserver.observe(svgContainer);
|
|
31
|
+
window.addEventListener('scroll', updateRect, { passive: true, capture: true });
|
|
32
|
+
return () => {
|
|
33
|
+
resizeObserver.disconnect();
|
|
34
|
+
window.removeEventListener('scroll', updateRect, { capture: true });
|
|
35
|
+
};
|
|
36
|
+
}, [svgContainer]);
|
|
37
|
+
const containerRect = containerRectRef.current;
|
|
17
38
|
const left = ((pointerPosition === null || pointerPosition === void 0 ? void 0 : pointerPosition[0]) || 0) + containerRect.left;
|
|
18
39
|
const top = ((pointerPosition === null || pointerPosition === void 0 ? void 0 : pointerPosition[1]) || 0) + containerRect.top;
|
|
19
40
|
const { anchor } = useVirtualElement({ left, top });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { TIME_UNITS, calculateCos, calculateNumericProperty, calculateSin, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, wrapText, } from '../utils';
|
|
3
2
|
import { DASH_STYLE, DEFAULT_AXIS_LABEL_FONT_SIZE, PLOT_LINE_HOVER_THRESHOLD, SERIES_TYPE, axisCrosshairDefaults, axisLabelsDefaults, axisTickMarksDefaults, xAxisTitleDefaults, } from '../constants';
|
|
4
3
|
import { createXScale } from '../scales/x-scale';
|
|
4
|
+
import { TIME_UNITS, calculateCos, calculateNumericProperty, calculateSin, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, wrapText, } from '../utils';
|
|
5
5
|
import { getXAxisTickValues } from '../utils/axis/x-axis';
|
|
6
6
|
import { getPreparedRangeSlider } from './range-slider';
|
|
7
7
|
import { prepareAxisPlotLabel } from './utils';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { calculateNumericProperty, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, shouldSyncAxisWithPrimary, wrapText, } from '../utils';
|
|
3
2
|
import { getTickValues } from '../../components/AxisY/utils';
|
|
4
3
|
import { DASH_STYLE, DEFAULT_AXIS_LABEL_FONT_SIZE, DEFAULT_AXIS_TYPE, PLOT_LINE_HOVER_THRESHOLD, SERIES_TYPE, axisCrosshairDefaults, axisLabelsDefaults, axisTickMarksDefaults, yAxisTitleDefaults, } from '../constants';
|
|
5
4
|
import { createYScale } from '../scales/y-scale';
|
|
5
|
+
import { calculateNumericProperty, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, shouldSyncAxisWithPrimary, wrapText, } from '../utils';
|
|
6
6
|
import { prepareAxisPlotLabel } from './utils';
|
|
7
7
|
export const getYAxisLabelMaxWidth = async (args) => {
|
|
8
8
|
const { axis, scale, seriesData } = args;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { AxisDirection } from '../utils';
|
|
2
1
|
import type { ChartAxis, ChartSeries } from '../../types';
|
|
3
2
|
import type { PreparedAxis, PreparedYAxis } from '../axes/types';
|
|
4
3
|
import type { PreparedSeries } from '../series';
|
|
4
|
+
import type { AxisDirection } from '../utils';
|
|
5
5
|
type OptionalNumber = number | undefined;
|
|
6
6
|
export declare function getMinMaxPropsOrState(args: {
|
|
7
7
|
axis: PreparedAxis | ChartAxis;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getDataCategoryValue, isSeriesWithCategoryValues } from '../utils';
|
|
3
2
|
import { SERIES_TYPE } from '../constants';
|
|
3
|
+
import { getDataCategoryValue, isSeriesWithCategoryValues } from '../utils';
|
|
4
4
|
const MARKER_SERIES_TYPES = [SERIES_TYPE.Area, SERIES_TYPE.Line, SERIES_TYPE.Scatter];
|
|
5
5
|
function getNormilizedMinMax(args) {
|
|
6
6
|
const { maxValues, minValues } = args;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { extent } from 'd3-array';
|
|
2
2
|
import { scaleBand, scaleLinear, scaleLog, scaleUtc } from 'd3-scale';
|
|
3
3
|
import get from 'lodash/get';
|
|
4
|
-
import { getDefaultMaxXAxisValue, getDefaultMinXAxisValue, getDomainDataXBySeries, getEffectiveXRange, } from '../utils';
|
|
5
|
-
import { getBandSize } from '../../hooks/utils/get-band-size';
|
|
6
4
|
import { DEFAULT_AXIS_TYPE, SERIES_TYPE } from '../constants';
|
|
5
|
+
import { getDefaultMaxXAxisValue, getDefaultMinXAxisValue, getDomainDataXBySeries, getEffectiveXRange, } from '../utils';
|
|
6
|
+
import { getBandSize } from '../utils/band-size';
|
|
7
7
|
import { checkIsPointDomain, filterCategoriesByVisibleSeries, getMinMaxPropsOrState, hasOnlyMarkerSeries, validateArrayData, } from './utils';
|
|
8
8
|
const X_AXIS_ZOOM_PADDING = 0.02;
|
|
9
9
|
function calculateXAxisPadding(series) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { extent, tickStep, ticks } from 'd3-array';
|
|
2
2
|
import { scaleBand, scaleLinear, scaleLog, scaleUtc } from 'd3-scale';
|
|
3
3
|
import get from 'lodash/get';
|
|
4
|
-
import { CHART_SERIES_WITH_VOLUME_ON_Y_AXIS, getDefaultMinYAxisValue, getDomainDataYBySeries, shouldSyncAxisWithPrimary, } from '../utils';
|
|
5
4
|
import { getTickValues } from '../../components/AxisY/utils';
|
|
6
|
-
import { getBandSize } from '../../hooks/utils/get-band-size';
|
|
7
5
|
import { SERIES_TYPE } from '../constants';
|
|
6
|
+
import { CHART_SERIES_WITH_VOLUME_ON_Y_AXIS, getDefaultMinYAxisValue, getDomainDataYBySeries, shouldSyncAxisWithPrimary, } from '../utils';
|
|
7
|
+
import { getBandSize } from '../utils/band-size';
|
|
8
8
|
import { checkIsPointDomain, filterCategoriesByVisibleSeries, getMinMaxPropsOrState, hasOnlyMarkerSeries, validateArrayData, } from './utils';
|
|
9
9
|
// axis is validated in `validation/index.ts`, so the value of `axis.type` is definitely valid.
|
|
10
10
|
// eslint-disable-next-line consistent-return
|
|
@@ -70,6 +70,34 @@ function getDomainSyncedToPrimaryTicks(args) {
|
|
|
70
70
|
}
|
|
71
71
|
return [secondaryTicks[0], secondaryTicks[secondaryTicks.length - 1]];
|
|
72
72
|
}
|
|
73
|
+
function getLogarithmicYMin(args) {
|
|
74
|
+
var _a;
|
|
75
|
+
const { axis, domain, yMinDomain, hasSeriesWithVolumeOnYAxis } = args;
|
|
76
|
+
// scaleLog cannot represent values <= 0. Pick the smallest positive value
|
|
77
|
+
// present in the domain, falling back to 1 if there is none.
|
|
78
|
+
const smallestPositive = yMinDomain > 0
|
|
79
|
+
? yMinDomain
|
|
80
|
+
: ((_a = domain.reduce((min, v) => {
|
|
81
|
+
if (typeof v === 'number' && v > 0) {
|
|
82
|
+
return min === null ? v : Math.min(min, v);
|
|
83
|
+
}
|
|
84
|
+
return min;
|
|
85
|
+
}, null)) !== null && _a !== void 0 ? _a : 1);
|
|
86
|
+
if (!hasSeriesWithVolumeOnYAxis) {
|
|
87
|
+
return smallestPositive;
|
|
88
|
+
}
|
|
89
|
+
// Volume series (bar-x, area, waterfall) draw bars from yMin up to the
|
|
90
|
+
// value, so a bar whose value equals yMin collapses to zero height. Drop
|
|
91
|
+
// the baseline one decade below to give it visible space — but only when
|
|
92
|
+
// the later `nice()` pass (triggered by startOnTick) won't supply that
|
|
93
|
+
// headroom on its own. nice() rounds down to the previous decade, which
|
|
94
|
+
// covers any value strictly between two decades; it has nothing to round
|
|
95
|
+
// when the smallest value already sits on a decade (e.g. 1, 10, 100).
|
|
96
|
+
const startOnTick = get(axis, 'startOnTick', false);
|
|
97
|
+
const isOnDecade = Number.isInteger(Math.log10(smallestPositive));
|
|
98
|
+
const needsHeadroom = !startOnTick || isOnDecade;
|
|
99
|
+
return needsHeadroom ? smallestPositive / 10 : smallestPositive;
|
|
100
|
+
}
|
|
73
101
|
function getDomainMinAlignedToStartTick(args) {
|
|
74
102
|
var _a, _b;
|
|
75
103
|
const { axis, range, scale, series } = args;
|
|
@@ -80,6 +108,9 @@ function getDomainMinAlignedToStartTick(args) {
|
|
|
80
108
|
labelLineHeight: axis.labels.lineHeight,
|
|
81
109
|
series,
|
|
82
110
|
});
|
|
111
|
+
if (tickValues.length === 0) {
|
|
112
|
+
return dMin;
|
|
113
|
+
}
|
|
83
114
|
const isStartOnTick = tickValues[0].y === range[0];
|
|
84
115
|
let dNewMin = dMin;
|
|
85
116
|
if (!isStartOnTick) {
|
|
@@ -111,6 +142,9 @@ function getDomainMaxAlignedToEndTick(args) {
|
|
|
111
142
|
labelLineHeight: axis.labels.lineHeight,
|
|
112
143
|
series,
|
|
113
144
|
});
|
|
145
|
+
if (tickValues.length === 0) {
|
|
146
|
+
return dMax;
|
|
147
|
+
}
|
|
114
148
|
let dNewMax = dMax;
|
|
115
149
|
const isEndOnTick = tickValues[tickValues.length - 1].y === range[1];
|
|
116
150
|
if (!isEndOnTick) {
|
|
@@ -155,12 +189,18 @@ export function createYScale(args) {
|
|
|
155
189
|
}
|
|
156
190
|
if (hasNumberAndNullValues) {
|
|
157
191
|
const [yMinDomain, yMaxDomain] = extent(domain);
|
|
192
|
+
const hasSeriesWithVolumeOnYAxis = series.some((s) => CHART_SERIES_WITH_VOLUME_ON_Y_AXIS.includes(s.type));
|
|
158
193
|
let yMin;
|
|
159
194
|
if (typeof yMinPropsOrState === 'number') {
|
|
160
195
|
yMin = yMinPropsOrState;
|
|
161
196
|
}
|
|
162
197
|
else if (axis.type === 'logarithmic') {
|
|
163
|
-
yMin =
|
|
198
|
+
yMin = getLogarithmicYMin({
|
|
199
|
+
axis,
|
|
200
|
+
domain,
|
|
201
|
+
yMinDomain,
|
|
202
|
+
hasSeriesWithVolumeOnYAxis,
|
|
203
|
+
});
|
|
164
204
|
}
|
|
165
205
|
else {
|
|
166
206
|
const yMinDefault = getDefaultMinYAxisValue(series);
|
|
@@ -170,8 +210,12 @@ export function createYScale(args) {
|
|
|
170
210
|
if (typeof yMaxPropsOrState === 'number') {
|
|
171
211
|
yMax = yMaxPropsOrState;
|
|
172
212
|
}
|
|
213
|
+
else if (axis.type === 'logarithmic') {
|
|
214
|
+
// scaleLog cannot represent values <= 0; ensure yMax is strictly
|
|
215
|
+
// greater than yMin so the resulting domain stays valid.
|
|
216
|
+
yMax = yMaxDomain > yMin ? yMaxDomain : yMin * 10;
|
|
217
|
+
}
|
|
173
218
|
else {
|
|
174
|
-
const hasSeriesWithVolumeOnYAxis = series.some((s) => CHART_SERIES_WITH_VOLUME_ON_Y_AXIS.includes(s.type));
|
|
175
219
|
yMax = hasSeriesWithVolumeOnYAxis ? Math.max(yMaxDomain, 0) : yMaxDomain;
|
|
176
220
|
}
|
|
177
221
|
const scaleFn = axis.type === 'logarithmic' ? scaleLog : scaleLinear;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
2
|
import merge from 'lodash/merge';
|
|
3
|
-
import { getUniqId } from '../utils';
|
|
4
3
|
import { DEFAULT_DATALABELS_STYLE, seriesRangeSliderOptionsDefaults } from '../constants';
|
|
4
|
+
import { getUniqId } from '../utils';
|
|
5
5
|
import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
|
|
6
6
|
import { getSeriesStackId, prepareLegendSymbol } from './utils';
|
|
7
7
|
export const DEFAULT_LINE_WIDTH = 1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE, seriesRangeSliderOptionsDefaults } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
5
5
|
import { getSeriesStackId, prepareLegendSymbol } from './utils';
|
|
6
6
|
function prepareSeriesData(series) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getLabelsSize, getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
3
|
+
import { getLabelsSize, getUniqId } from '../utils';
|
|
4
4
|
import { getFormattedValue } from '../utils/format';
|
|
5
5
|
import { getSeriesStackId, prepareLegendSymbol } from './utils';
|
|
6
6
|
const DEFAULT_LABEL_PADDING = 7;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { scaleOrdinal } from 'd3-scale';
|
|
2
2
|
import get from 'lodash/get';
|
|
3
|
-
import { getUniqId } from '../utils';
|
|
4
3
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
4
|
+
import { getUniqId } from '../utils';
|
|
5
5
|
import { prepareLegendSymbol } from './utils';
|
|
6
6
|
export function prepareFunnelSeries(args) {
|
|
7
7
|
var _a, _b;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
5
5
|
import { prepareLegendSymbol } from './utils';
|
|
6
6
|
function prepareSeriesData(series) {
|
|
@@ -2,8 +2,8 @@ import { groupBy } from 'lodash';
|
|
|
2
2
|
import clone from 'lodash/clone';
|
|
3
3
|
import get from 'lodash/get';
|
|
4
4
|
import merge from 'lodash/merge';
|
|
5
|
-
import { getDefaultColorStops, getDomainForContinuousColorScale, getLabelsSize, getTextSizeFn, getTextWithElipsis, } from '../utils';
|
|
6
5
|
import { CONTINUOUS_LEGEND_SIZE, legendDefaults } from '../constants';
|
|
6
|
+
import { getDefaultColorStops, getDomainForContinuousColorScale, getLabelsSize, getTextSizeFn, getTextWithElipsis, } from '../utils';
|
|
7
7
|
export async function getPreparedLegend(args) {
|
|
8
8
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
9
9
|
const { legend, series } = args;
|
|
@@ -120,8 +120,8 @@ async function getGroupedLegendItems(args) {
|
|
|
120
120
|
}
|
|
121
121
|
resultItem.height = textHeight;
|
|
122
122
|
if (textWidth > maxTextWidth) {
|
|
123
|
+
resultItem.overflowed = true;
|
|
123
124
|
if (preparedLegend.html) {
|
|
124
|
-
resultItem.overflowed = true;
|
|
125
125
|
resultItem.textWidth = maxTextWidth;
|
|
126
126
|
}
|
|
127
127
|
else {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
2
|
import merge from 'lodash/merge';
|
|
3
|
-
import { getUniqId } from '../utils';
|
|
4
3
|
import { DASH_STYLE, DEFAULT_DATALABELS_STYLE, LineCap, LineJoin, seriesRangeSliderOptionsDefaults, } from '../constants';
|
|
4
|
+
import { getUniqId } from '../utils';
|
|
5
5
|
import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_LEGEND_SYMBOL_PADDING, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
|
|
6
6
|
export const DEFAULT_LEGEND_SYMBOL_SIZE = 16;
|
|
7
7
|
export const DEFAULT_LINE_WIDTH = 1;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { scaleOrdinal } from 'd3-scale';
|
|
2
2
|
import get from 'lodash/get';
|
|
3
|
-
import { getUniqId } from '../utils';
|
|
4
3
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
4
|
+
import { getUniqId } from '../utils';
|
|
5
5
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
6
6
|
import { prepareLegendSymbol } from './utils';
|
|
7
7
|
function prepareSeriesData(series) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { scaleOrdinal } from 'd3-scale';
|
|
2
2
|
import get from 'lodash/get';
|
|
3
3
|
import merge from 'lodash/merge';
|
|
4
|
-
import { getUniqId } from '../utils';
|
|
5
4
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
5
|
+
import { getUniqId } from '../utils';
|
|
6
6
|
import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
|
|
7
7
|
import { prepareLegendSymbol } from './utils';
|
|
8
8
|
export const DEFAULT_MARKER = Object.assign(Object.assign({}, DEFAULT_POINT_MARKER_OPTIONS), { enabled: true, radius: 2 });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { prepareLegendSymbol } from './utils';
|
|
5
5
|
export function prepareSankeySeries(args) {
|
|
6
6
|
const { colorScale, legend, series } = args;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
2
|
import merge from 'lodash/merge';
|
|
3
|
-
import { getSymbolType, getUniqId } from '../utils';
|
|
4
3
|
import { seriesRangeSliderOptionsDefaults } from '../constants';
|
|
4
|
+
import { getSymbolType, getUniqId } from '../utils';
|
|
5
5
|
import { DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS } from './constants';
|
|
6
6
|
import { prepareLegendSymbol } from './utils';
|
|
7
7
|
function prepareMarker(series, seriesOptions, index) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE, LayoutAlgorithm } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
5
5
|
import { prepareLegendSymbol } from './utils';
|
|
6
6
|
export function prepareTreemap(args) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
5
5
|
import { prepareLegendSymbol } from './utils';
|
|
6
6
|
function prepareSeriesData(series) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import get from 'lodash/get';
|
|
2
|
-
import { getUniqId } from '../utils';
|
|
3
2
|
import { DASH_STYLE, DEFAULT_DATALABELS_STYLE } from '../constants';
|
|
3
|
+
import { getUniqId } from '../utils';
|
|
4
4
|
import { DEFAULT_DATALABELS_PADDING } from './constants';
|
|
5
5
|
import { prepareLegendSymbol } from './utils';
|
|
6
6
|
export function prepareXRangeSeries(args) {
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ScaleOrdinal } from 'd3-scale';
|
|
2
|
-
import type { ChartSeries, ChartSeriesOptions } from '../../types';
|
|
2
|
+
import type { ChartData, ChartSeries, ChartSeriesOptions } from '../../types';
|
|
3
3
|
import type { PreparedLegend, PreparedSeries } from './types';
|
|
4
|
+
export declare const getPreparedSeries: ({ seriesData, seriesOptions, colors, preparedLegend, }: {
|
|
5
|
+
seriesData: ChartData["series"]["data"];
|
|
6
|
+
seriesOptions: ChartData["series"]["options"];
|
|
7
|
+
colors: string[];
|
|
8
|
+
preparedLegend?: PreparedLegend | null;
|
|
9
|
+
}) => Promise<PreparedSeries[]>;
|
|
4
10
|
export declare function prepareSeries(args: {
|
|
5
11
|
type: ChartSeries['type'];
|
|
6
12
|
series: ChartSeries[];
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { group } from 'd3-array';
|
|
2
|
+
import { scaleOrdinal } from 'd3-scale';
|
|
1
3
|
import { ChartError } from '../../libs';
|
|
4
|
+
import { getSeriesNames } from '../utils';
|
|
2
5
|
import { prepareArea } from './prepare-area';
|
|
3
6
|
import { prepareBarXSeries } from './prepare-bar-x';
|
|
4
7
|
import { prepareBarYSeries } from './prepare-bar-y';
|
|
@@ -12,6 +15,34 @@ import { prepareScatterSeries } from './prepare-scatter';
|
|
|
12
15
|
import { prepareTreemap } from './prepare-treemap';
|
|
13
16
|
import { prepareWaterfallSeries } from './prepare-waterfall';
|
|
14
17
|
import { prepareXRangeSeries } from './prepare-x-range';
|
|
18
|
+
export const getPreparedSeries = async ({ seriesData, seriesOptions, colors, preparedLegend, }) => {
|
|
19
|
+
const seriesNames = getSeriesNames(seriesData);
|
|
20
|
+
const colorScale = scaleOrdinal(seriesNames, colors);
|
|
21
|
+
const groupedSeries = group(seriesData, (item, index) => {
|
|
22
|
+
if (item.type === 'line') {
|
|
23
|
+
return `${item.type}_${index}`;
|
|
24
|
+
}
|
|
25
|
+
return item.type;
|
|
26
|
+
});
|
|
27
|
+
const acc = [];
|
|
28
|
+
if (!preparedLegend) {
|
|
29
|
+
return acc;
|
|
30
|
+
}
|
|
31
|
+
const list = Array.from(groupedSeries);
|
|
32
|
+
for (let i = 0; i < list.length; i++) {
|
|
33
|
+
const [_groupId, seriesList] = list[i];
|
|
34
|
+
const seriesType = seriesList[0].type;
|
|
35
|
+
acc.push(...(await prepareSeries({
|
|
36
|
+
type: seriesType,
|
|
37
|
+
series: seriesList,
|
|
38
|
+
seriesOptions,
|
|
39
|
+
legend: preparedLegend,
|
|
40
|
+
colorScale,
|
|
41
|
+
colors,
|
|
42
|
+
})));
|
|
43
|
+
}
|
|
44
|
+
return acc;
|
|
45
|
+
};
|
|
15
46
|
export async function prepareSeries(args) {
|
|
16
47
|
const { type, series, seriesOptions, legend, colors, colorScale } = args;
|
|
17
48
|
switch (type) {
|
|
@@ -16,6 +16,11 @@ export type PreparedAnnotation = {
|
|
|
16
16
|
padding: [number, number];
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
+
export type AnnotationAnchor = {
|
|
20
|
+
annotation: PreparedAnnotation;
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
};
|
|
19
24
|
export type RectLegendSymbol = {
|
|
20
25
|
shape: 'rect';
|
|
21
26
|
} & Required<RectLegendSymbolOptions>;
|
|
@@ -9,3 +9,7 @@ export declare function prepareLegendSymbol(series: {
|
|
|
9
9
|
};
|
|
10
10
|
}, symbolType?: `${SymbolType}`): PreparedLegendSymbol;
|
|
11
11
|
export declare function getSeriesStackId(series: StackedSeries): string;
|
|
12
|
+
export declare const getVisibleSeries: ({ preparedSeries, activeLegendItems, }: {
|
|
13
|
+
preparedSeries: PreparedSeries[];
|
|
14
|
+
activeLegendItems: string[];
|
|
15
|
+
}) => PreparedSeries[];
|