vccs 0.6.0 → 1.0.0-beta.2
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 +25 -0
- package/README.md +133 -112
- package/dist/animation/ActiveDot.d.ts +14 -0
- package/dist/animation/MovingLabels.d.ts +57 -0
- package/dist/animation/SweepClip.d.ts +56 -0
- package/dist/animation/gridTransition.d.ts +38 -0
- package/dist/animation/motion.d.ts +78 -0
- package/dist/animation/ridingLabels.d.ts +29 -0
- package/dist/animation/useAnimationCallbacks.d.ts +5 -0
- package/dist/animation/useKeyedTransition.d.ts +86 -0
- package/dist/animation/usePointTransition.d.ts +40 -0
- package/dist/animation/useReducedMotion.d.ts +2 -0
- package/dist/animation/useTickMotion.d.ts +22 -0
- package/dist/cartesian/ActivePoints.d.ts +71 -0
- package/dist/cartesian/GraphicalItemClipPath.d.ts +27 -2
- package/dist/cartesian/area/Area.d.ts +229 -14
- package/dist/cartesian/area/RenderArea.d.ts +1 -16
- package/dist/cartesian/area/hooks/useArea.d.ts +13 -18
- package/dist/cartesian/area/type.d.ts +32 -81
- package/dist/cartesian/axis/AxisProps.d.ts +101 -0
- package/dist/cartesian/axis/XAxis.d.ts +144 -83
- package/dist/cartesian/axis/YAxis.d.ts +152 -94
- package/dist/cartesian/bar/Bar.d.ts +229 -2
- package/dist/cartesian/bar/components/BarBackground.d.ts +1 -1
- package/dist/cartesian/bar/hooks/useBar.d.ts +31 -15
- package/dist/cartesian/bar/type.d.ts +46 -77
- package/dist/cartesian/brush/Brush.d.ts +150 -2
- package/dist/cartesian/brush/components/BrushText.d.ts +7 -7
- package/dist/cartesian/brush/components/Panorama.d.ts +7 -5
- package/dist/cartesian/brush/components/Slide.d.ts +4 -4
- package/dist/cartesian/brush/components/TravellerLayer.d.ts +21 -13
- package/dist/cartesian/brush/hooks/useBrushHandlers.d.ts +3 -4
- package/dist/cartesian/brush/hooks/useBrushState.d.ts +16 -16
- package/dist/cartesian/brush/type.d.ts +14 -33
- package/dist/cartesian/brush/utils.d.ts +5 -6
- package/dist/cartesian/cartesian-axis/CartesianAxis.d.ts +37 -63
- package/dist/cartesian/cartesian-grid/Background.d.ts +1 -1
- package/dist/cartesian/cartesian-grid/CartesianGrid.d.ts +68 -16
- package/dist/cartesian/cartesian-grid/HorizontalGridLines.d.ts +18 -11
- package/dist/cartesian/cartesian-grid/HorizontalStripes.d.ts +6 -5
- package/dist/cartesian/cartesian-grid/VerticalGridLines.d.ts +17 -10
- package/dist/cartesian/cartesian-grid/VerticalStripes.d.ts +6 -5
- package/dist/cartesian/cartesian-grid/const.d.ts +2 -6
- package/dist/cartesian/cartesian-grid/type.d.ts +21 -30
- package/dist/cartesian/cartesian-grid/utils.d.ts +3 -1
- package/dist/cartesian/cartesianPositionToCSSTranslate.d.ts +1 -1
- package/dist/cartesian/error-bar/ErrorBar.d.ts +11 -30
- package/dist/cartesian/error-bar/ErrorBarContext.d.ts +12 -15
- package/dist/cartesian/funnel/Funnel.d.ts +161 -2
- package/dist/cartesian/funnel/type.d.ts +20 -57
- package/dist/cartesian/getCartesianPosition.d.ts +1 -3
- package/dist/cartesian/line/Line.d.ts +177 -77
- package/dist/cartesian/line/StaticLine.d.ts +0 -15
- package/dist/cartesian/line/hooks/useLine.d.ts +14 -15
- package/dist/cartesian/line/type.d.ts +52 -104
- package/dist/cartesian/reference-area/ReferenceArea.d.ts +42 -90
- package/dist/cartesian/reference-dot/ReferenceDot.d.ts +21 -63
- package/dist/cartesian/reference-line/ReferenceLine.d.ts +35 -67
- package/dist/cartesian/scatter/Scatter.d.ts +72 -53
- package/dist/cartesian/scatter/hooks/useScatter.d.ts +6 -5
- package/dist/cartesian/scatter/type.d.ts +89 -0
- package/dist/cartesian/useNeedsClip.d.ts +3 -2
- package/dist/cartesian/utils/get-ticks.d.ts +5 -6
- package/dist/cartesian/z-axis/ZAxis.d.ts +20 -21
- package/dist/chart/AreaChart.d.ts +231 -1
- package/dist/chart/BarChart.d.ts +231 -1
- package/dist/chart/BarList.d.ts +172 -0
- package/dist/chart/CalendarHeatmap.d.ts +308 -0
- package/dist/chart/CellGridLayer.d.ts +136 -0
- package/dist/chart/ChartShell.d.ts +85 -0
- package/dist/chart/ChartWrapper.d.ts +167 -0
- package/dist/chart/ChartsWrapper.d.ts +75 -87
- package/dist/chart/CohortChart.d.ts +254 -0
- package/dist/chart/ComposedChart.d.ts +231 -1
- package/dist/chart/FunnelChart.d.ts +201 -1
- package/dist/chart/Heatmap.d.ts +687 -0
- package/dist/chart/JourneySankey.d.ts +261 -0
- package/dist/chart/LineChart.d.ts +231 -1
- package/dist/chart/PieChart.d.ts +243 -1
- package/dist/chart/RadarChart.d.ts +243 -1
- package/dist/chart/RadialBarChart.d.ts +273 -1
- package/dist/chart/Sankey.d.ts +85 -157
- package/dist/chart/ScatterChart.d.ts +231 -1
- package/dist/chart/Sparkline.d.ts +257 -0
- package/dist/chart/SunburstChart.d.ts +101 -132
- package/dist/chart/Tracker.d.ts +211 -0
- package/dist/chart/Treemap.d.ts +101 -147
- package/dist/chart/cellGridProps.d.ts +40 -0
- package/dist/chart/cellGridUtils.d.ts +53 -0
- package/dist/chart/chartProps.d.ts +402 -0
- package/dist/chart/chartRoot.d.ts +144 -0
- package/dist/chart/const.d.ts +0 -2
- package/dist/chart/directChartTypes.d.ts +13 -0
- package/dist/chart/journeyTypes.d.ts +99 -0
- package/dist/chart/journeyUtils.d.ts +102 -0
- package/dist/chart/sankeyUtils.d.ts +2 -2
- package/dist/chart/shell.d.ts +14 -0
- package/dist/chart/sunburstUtils.d.ts +7 -3
- package/dist/chart/treemapUtils.d.ts +8 -6
- package/dist/componentNames.d.ts +2 -0
- package/dist/components/Cell.d.ts +1 -1
- package/dist/components/Customized.d.ts +12 -7
- package/dist/components/Text.d.ts +31 -31
- package/dist/components/label/Label.d.ts +14 -26
- package/dist/components/label/LabelList.d.ts +24 -14
- package/dist/components/label/LabelListView.d.ts +23 -0
- package/dist/components/label/LabelView.d.ts +79 -0
- package/dist/components/label/types.d.ts +70 -15
- package/dist/components/label/utils.d.ts +24 -12
- package/dist/components/legend/Legend.d.ts +109 -4
- package/dist/components/legend/LegendSymbol.d.ts +2 -3
- package/dist/components/legend/hooks/useLegend.d.ts +8 -10
- package/dist/components/legend/hooks/useLegendContent.d.ts +7 -14
- package/dist/components/legend/type.d.ts +17 -25
- package/dist/components/legend/utils.d.ts +4 -4
- package/dist/components/tooltip/Cursor.d.ts +19 -0
- package/dist/components/tooltip/DefaultTooltipContent.d.ts +35 -0
- package/dist/components/{Tooltip.d.ts → tooltip/Tooltip.d.ts} +72 -100
- package/dist/components/tooltip/TooltipBoundingBox.d.ts +40 -0
- package/dist/components/tooltip/types.d.ts +59 -0
- package/dist/components/types.d.ts +6 -6
- package/dist/components/utils.d.ts +3 -3
- package/dist/container/ClipPath.d.ts +1 -1
- package/dist/container/Layer.d.ts +1 -1
- package/dist/container/ResponsiveContainer.d.ts +10 -13
- package/dist/container/Surface.d.ts +9 -1
- package/dist/container/useSizeContext.d.ts +4 -10
- package/dist/context/cartesianLabelListContext.d.ts +6 -2
- package/dist/context/polarLabelViewBoxContext.d.ts +1 -1
- package/dist/core/area.d.ts +32 -0
- package/dist/core/axis/data.d.ts +28 -0
- package/dist/core/axis/domain.d.ts +11 -0
- package/dist/core/axis/key.d.ts +7 -0
- package/dist/core/axis/polar.d.ts +11 -0
- package/dist/core/axis/polarSettings.d.ts +5 -0
- package/dist/core/axis/position.d.ts +76 -0
- package/dist/core/axis/range.d.ts +8 -0
- package/dist/core/axis/references.d.ts +6 -0
- package/dist/core/axis/scale.d.ts +21 -0
- package/dist/core/axis/settings.d.ts +4 -0
- package/dist/core/axis/stacks.d.ts +14 -0
- package/dist/core/axis/ticks.d.ts +19 -0
- package/dist/core/axis/userDomain.d.ts +48 -0
- package/dist/core/bar.d.ts +22 -0
- package/dist/core/barSizing.d.ts +43 -0
- package/dist/core/color.d.ts +21 -0
- package/dist/core/coordinates.d.ts +34 -0
- package/dist/core/data.d.ts +2 -0
- package/dist/core/errorBar.d.ts +15 -0
- package/dist/core/funnel.d.ts +17 -0
- package/dist/core/interaction.d.ts +18 -0
- package/dist/core/layout.d.ts +43 -0
- package/dist/core/line.d.ts +14 -0
- package/dist/{state/selectors/pieSelectors.d.ts → core/pie.d.ts} +14 -16
- package/dist/core/polygon.d.ts +5 -0
- package/dist/core/radar.d.ts +20 -0
- package/dist/core/radialBar.d.ts +36 -0
- package/dist/core/rectangle.d.ts +10 -0
- package/dist/core/scatter.d.ts +18 -0
- package/dist/core/tooltip.d.ts +16 -0
- package/dist/es/animation/ActiveDot.mjs +39 -0
- package/dist/es/animation/MovingLabels.mjs +61 -0
- package/dist/es/animation/SweepClip.mjs +40 -0
- package/dist/es/animation/gridTransition.mjs +112 -0
- package/dist/es/animation/motion.mjs +100 -0
- package/dist/es/animation/ridingLabels.mjs +70 -0
- package/dist/es/animation/useAnimationCallbacks.mjs +23 -0
- package/dist/es/animation/useKeyedTransition.mjs +355 -0
- package/dist/es/animation/usePointTransition.mjs +119 -0
- package/dist/es/animation/useReducedMotion.mjs +12 -0
- package/dist/es/animation/useTickMotion.mjs +62 -0
- package/dist/es/cartesian/ActivePoints.mjs +65 -0
- package/dist/es/cartesian/GraphicalItemClipPath.mjs +50 -9
- package/dist/es/cartesian/area/Area.mjs +72 -35
- package/dist/es/cartesian/area/RenderArea.mjs +112 -105
- package/dist/es/cartesian/area/hooks/useArea.mjs +44 -42
- package/dist/es/cartesian/area/type.mjs +14 -46
- package/dist/es/cartesian/axis/AxisProps.mjs +94 -0
- package/dist/es/cartesian/axis/XAxis.mjs +37 -159
- package/dist/es/cartesian/axis/YAxis.mjs +63 -167
- package/dist/es/cartesian/bar/Bar.mjs +122 -53
- package/dist/es/cartesian/bar/components/BarBackground.mjs +1 -1
- package/dist/es/cartesian/bar/components/BarRectangles.mjs +188 -126
- package/dist/es/cartesian/bar/hooks/useBar.mjs +67 -31
- package/dist/es/cartesian/bar/type.mjs +4 -22
- package/dist/es/cartesian/brush/Brush.mjs +294 -0
- package/dist/es/cartesian/brush/components/Background.mjs +25 -0
- package/dist/es/cartesian/brush/components/BrushText.mjs +55 -0
- package/dist/es/cartesian/brush/components/Panorama.mjs +54 -0
- package/dist/es/cartesian/brush/components/Slide.mjs +40 -0
- package/dist/es/cartesian/brush/components/Traveller.mjs +46 -0
- package/dist/es/cartesian/brush/components/TravellerLayer.mjs +68 -0
- package/dist/es/cartesian/brush/hooks/useBrushHandlers.mjs +158 -0
- package/dist/es/cartesian/brush/hooks/useBrushState.mjs +67 -0
- package/dist/es/cartesian/brush/type.mjs +54 -0
- package/dist/es/cartesian/brush/utils.mjs +30 -0
- package/dist/es/cartesian/cartesian-axis/CartesianAxis.mjs +27 -20
- package/dist/es/cartesian/cartesian-grid/CartesianGrid.mjs +157 -72
- package/dist/es/cartesian/cartesian-grid/HorizontalGridLines.mjs +5 -1
- package/dist/es/cartesian/cartesian-grid/VerticalGridLines.mjs +5 -1
- package/dist/es/cartesian/cartesian-grid/const.mjs +3 -320
- package/dist/es/cartesian/cartesian-grid/utils.mjs +1 -1
- package/dist/es/cartesian/error-bar/ErrorBar.mjs +65 -102
- package/dist/es/cartesian/error-bar/ErrorBarContext.mjs +21 -5
- package/dist/es/cartesian/funnel/Funnel.mjs +247 -127
- package/dist/es/cartesian/funnel/type.mjs +8 -14
- package/dist/es/cartesian/line/Line.mjs +72 -25
- package/dist/es/cartesian/line/StaticLine.mjs +129 -166
- package/dist/es/cartesian/line/hooks/useLine.mjs +38 -35
- package/dist/es/cartesian/line/type.mjs +5 -43
- package/dist/es/cartesian/reference-area/ReferenceArea.mjs +108 -88
- package/dist/es/cartesian/reference-dot/ReferenceDot.mjs +87 -67
- package/dist/es/cartesian/reference-line/ReferenceLine.mjs +99 -74
- package/dist/es/cartesian/scatter/Scatter.mjs +188 -190
- package/dist/es/cartesian/scatter/hooks/useScatter.mjs +25 -6
- package/dist/es/cartesian/scatter/type.mjs +79 -0
- package/dist/es/cartesian/useNeedsClip.mjs +6 -14
- package/dist/es/cartesian/utils/get-ticks.mjs +6 -6
- package/dist/es/cartesian/z-axis/ZAxis.mjs +7 -11
- package/dist/es/chart/AreaChart.mjs +12 -4
- package/dist/es/chart/BarChart.mjs +12 -4
- package/dist/es/chart/BarList.mjs +265 -0
- package/dist/es/chart/CalendarHeatmap.mjs +299 -0
- package/dist/es/chart/CellGridLayer.mjs +380 -0
- package/dist/es/chart/ChartShell.mjs +139 -0
- package/dist/es/chart/ChartWrapper.mjs +215 -0
- package/dist/es/chart/ChartsWrapper.mjs +21 -176
- package/dist/es/chart/CohortChart.mjs +169 -0
- package/dist/es/chart/ComposedChart.mjs +14 -4
- package/dist/es/chart/FunnelChart.mjs +11 -5
- package/dist/es/chart/Heatmap.mjs +319 -0
- package/dist/es/chart/JourneySankey.mjs +682 -0
- package/dist/es/chart/LineChart.mjs +13 -4
- package/dist/es/chart/PieChart.mjs +13 -9
- package/dist/es/chart/RadarChart.mjs +13 -9
- package/dist/es/chart/RadialBarChart.mjs +18 -10
- package/dist/es/chart/Sankey.mjs +355 -244
- package/dist/es/chart/ScatterChart.mjs +12 -4
- package/dist/es/chart/Sparkline.mjs +458 -0
- package/dist/es/chart/SunburstChart.mjs +215 -158
- package/dist/es/chart/Tracker.mjs +175 -0
- package/dist/es/chart/Treemap.mjs +357 -300
- package/dist/es/chart/cellGridProps.mjs +42 -0
- package/dist/es/chart/cellGridUtils.mjs +80 -0
- package/dist/es/chart/chartProps.mjs +88 -0
- package/dist/es/chart/chartRoot.mjs +153 -0
- package/dist/es/chart/journeyTypes.mjs +90 -0
- package/dist/es/chart/journeyUtils.mjs +223 -0
- package/dist/es/chart/sankeyUtils.mjs +52 -1
- package/dist/es/chart/shell.mjs +30 -0
- package/dist/es/chart/sunburstUtils.mjs +14 -9
- package/dist/es/chart/treemapUtils.mjs +10 -8
- package/dist/es/componentNames.mjs +84 -0
- package/dist/es/components/Cell.mjs +3 -2
- package/dist/es/components/Customized.mjs +14 -9
- package/dist/es/components/Text.vue_vue_type_script_setup_true_lang.mjs +16 -10
- package/dist/es/components/label/Label.mjs +12 -30
- package/dist/es/components/label/LabelList.mjs +13 -48
- package/dist/es/components/label/LabelListView.mjs +73 -0
- package/dist/es/components/label/LabelView.mjs +45 -0
- package/dist/es/components/label/types.mjs +10 -5
- package/dist/es/components/label/utils.mjs +39 -19
- package/dist/es/components/legend/Legend.mjs +101 -36
- package/dist/es/components/legend/LegendSymbol.mjs +2 -2
- package/dist/es/components/legend/hooks/useLegend.mjs +39 -60
- package/dist/es/components/legend/hooks/useLegendContent.mjs +1 -13
- package/dist/es/components/legend/type.mjs +11 -9
- package/dist/es/components/legend/utils.mjs +8 -4
- package/dist/es/components/tooltip/Cursor.mjs +118 -0
- package/dist/es/components/tooltip/DefaultTooltipContent.mjs +107 -0
- package/dist/es/components/tooltip/Tooltip.mjs +229 -0
- package/dist/es/components/tooltip/TooltipBoundingBox.mjs +187 -0
- package/dist/es/components/utils.mjs +26 -27
- package/dist/es/container/ClipPath.mjs +2 -2
- package/dist/es/container/Layer.mjs +2 -2
- package/dist/es/container/ResponsiveContainer.vue_vue_type_script_setup_true_lang.mjs +20 -106
- package/dist/es/container/Surface.mjs +46 -7
- package/dist/es/container/useSizeContext.mjs +12 -3
- package/dist/es/context/cartesianLabelListContext.mjs +11 -2
- package/dist/es/{cartesian/area/utils.mjs → core/area.mjs} +5 -4
- package/dist/es/core/axis/data.mjs +75 -0
- package/dist/es/core/axis/domain.mjs +63 -0
- package/dist/es/core/axis/key.mjs +13 -0
- package/dist/es/core/axis/polar.mjs +16 -0
- package/dist/es/core/axis/polarSettings.mjs +100 -0
- package/dist/es/core/axis/position.mjs +51 -0
- package/dist/es/core/axis/range.mjs +46 -0
- package/dist/es/core/axis/references.mjs +26 -0
- package/dist/es/core/axis/scale.mjs +148 -0
- package/dist/es/core/axis/settings.mjs +76 -0
- package/dist/es/core/axis/stacks.mjs +97 -0
- package/dist/es/core/axis/ticks.mjs +82 -0
- package/dist/es/{utils/isDomainSpecifiedByUser.mjs → core/axis/userDomain.mjs} +5 -4
- package/dist/es/{cartesian/bar/utils.mjs → core/bar.mjs} +19 -16
- package/dist/es/core/barSizing.mjs +108 -0
- package/dist/es/core/color.mjs +23 -0
- package/dist/es/core/coordinates.mjs +57 -0
- package/dist/es/core/data.mjs +20 -0
- package/dist/es/core/errorBar.mjs +56 -0
- package/dist/es/{cartesian/funnel/utils.mjs → core/funnel.mjs} +31 -11
- package/dist/es/core/interaction.mjs +152 -0
- package/dist/es/core/layout.mjs +91 -0
- package/dist/es/{cartesian/line/utils.mjs → core/line.mjs} +7 -6
- package/dist/es/{state/selectors/pieSelectors.mjs → core/pie.mjs} +37 -65
- package/dist/es/core/polygon.mjs +7 -0
- package/dist/es/core/radar.mjs +58 -0
- package/dist/es/core/radialBar.mjs +92 -0
- package/dist/es/core/rectangle.mjs +25 -0
- package/dist/es/core/scatter.mjs +86 -0
- package/dist/es/core/tooltip.mjs +96 -0
- package/dist/es/events/componentEvents.mjs +58 -0
- package/dist/es/events/delegateItemEvents.mjs +24 -0
- package/dist/es/events/itemEvents.mjs +34 -0
- package/dist/es/events/sync.mjs +140 -0
- package/dist/es/events/useChartCallbacks.mjs +24 -0
- package/dist/es/events/useChartInteractions.mjs +143 -0
- package/dist/es/events/useItemInteractions.mjs +58 -0
- package/dist/es/events/useItemKeyboard.mjs +45 -0
- package/dist/es/events/usePointEvents.mjs +55 -0
- package/dist/es/hooks/deferredView.mjs +19 -0
- package/dist/es/hooks/publicHooks.mjs +36 -35
- package/dist/es/hooks/useActiveTooltipDataPoints.mjs +10 -0
- package/dist/es/hooks/useChartId.mjs +8 -0
- package/dist/es/hooks/useLayerTeleport.mjs +10 -0
- package/dist/es/hooks/useResponsiveSize.mjs +72 -15
- package/dist/es/hooks/useRoundedSize.mjs +0 -3
- package/dist/es/hooks/useSeriesProps.mjs +32 -0
- package/dist/es/hooks/useSetupGraphicalItem.mjs +74 -44
- package/dist/es/hooks/useTrackedData.mjs +17 -0
- package/dist/es/index.mjs +37 -23
- package/dist/es/model/animation.mjs +11 -0
- package/dist/es/model/axis.mjs +85 -0
- package/dist/es/model/axisLayout.mjs +27 -0
- package/dist/es/model/axisScale.mjs +52 -0
- package/dist/es/model/brush.mjs +27 -0
- package/dist/es/model/chart.mjs +122 -0
- package/dist/es/model/dataRange.mjs +54 -0
- package/dist/es/model/defaults.mjs +28 -0
- package/dist/es/model/layout.mjs +33 -0
- package/dist/es/model/legend.mjs +30 -0
- package/dist/es/model/options.mjs +8 -0
- package/dist/es/model/polar.mjs +29 -0
- package/dist/es/model/polarAxis.mjs +48 -0
- package/dist/es/model/presentation.mjs +13 -0
- package/dist/es/model/registries.mjs +38 -0
- package/dist/es/model/registry.mjs +20 -0
- package/dist/es/model/runtime.mjs +156 -0
- package/dist/es/model/tooltip.mjs +383 -0
- package/dist/es/nuxt.mjs +28 -0
- package/dist/es/polar/pie/Pie.mjs +260 -112
- package/dist/es/polar/pie/type.mjs +19 -8
- package/dist/es/polar/radar/PolarAngleAxis.mjs +117 -99
- package/dist/es/polar/radar/PolarGrid.mjs +73 -50
- package/dist/es/polar/radar/PolarRadiusAxis.mjs +124 -100
- package/dist/es/polar/radar/Radar.mjs +272 -219
- package/dist/es/polar/radial-bar/RadialBar.mjs +248 -130
- package/dist/es/polar/radial-bar/type.mjs +6 -7
- package/dist/es/resolver.mjs +19 -0
- package/dist/es/shape/Cross.mjs +2 -1
- package/dist/es/shape/Curve.mjs +7 -5
- package/dist/es/shape/Dot.mjs +9 -5
- package/dist/es/shape/Polygon.mjs +4 -7
- package/dist/es/shape/Rectangle.mjs +17 -10
- package/dist/es/shape/Sector.mjs +7 -4
- package/dist/es/shape/Symbols.mjs +13 -8
- package/dist/es/shape/Trapezoid.mjs +3 -1
- package/dist/es/typed.mjs +9 -0
- package/dist/es/types/base.mjs +6 -0
- package/dist/es/utils/ReduceCSSCalc.mjs +2 -2
- package/dist/es/utils/VueUtils.mjs +89 -3
- package/dist/es/utils/attributes.mjs +18 -0
- package/dist/es/utils/attrs.mjs +38 -26
- package/dist/es/utils/cartesian.mjs +1 -21
- package/dist/es/utils/cell.mjs +13 -1
- package/dist/es/utils/chart.mjs +3 -361
- package/dist/es/utils/const.mjs +2 -25
- package/dist/es/utils/createCategoricalInverse.mjs +2 -2
- package/dist/es/utils/data-utils.mjs +2 -6
- package/dist/es/utils/data.mjs +1 -1
- package/dist/es/utils/env.mjs +10 -0
- package/dist/es/utils/events.mjs +29 -2
- package/dist/es/utils/labelColor.mjs +16 -0
- package/dist/es/utils/log.mjs +23 -5
- package/dist/es/utils/pointer.mjs +13 -0
- package/dist/es/utils/polar.mjs +7 -2
- package/dist/es/utils/scale/getNiceTickValues.mjs +8 -8
- package/dist/es/utils/scale/utils/arithmetic.mjs +0 -15
- package/dist/es/utils/scale/utils/utils.mjs +9 -44
- package/dist/es/utils/style.mjs +1 -1
- package/dist/es/utils/svg.mjs +320 -0
- package/dist/es/utils/theme.mjs +50 -0
- package/dist/es/utils/tick.mjs +4 -3
- package/dist/es/utils/validate.mjs +21 -3
- package/dist/events/componentEvents.d.ts +60 -0
- package/dist/events/delegateItemEvents.d.ts +12 -0
- package/dist/events/itemEvents.d.ts +100 -0
- package/dist/events/sync.d.ts +6 -0
- package/dist/events/useChartCallbacks.d.ts +2 -0
- package/dist/events/useChartInteractions.d.ts +8 -0
- package/dist/events/useItemInteractions.d.ts +7 -0
- package/dist/events/useItemKeyboard.d.ts +24 -0
- package/dist/events/usePointEvents.d.ts +23 -0
- package/dist/hooks/deferredView.d.ts +12 -0
- package/dist/hooks/publicHooks.d.ts +27 -29
- package/dist/hooks/useActiveTooltipDataPoints.d.ts +2 -0
- package/dist/hooks/useChartId.d.ts +2 -0
- package/dist/hooks/useLayerTeleport.d.ts +5 -0
- package/dist/hooks/useResponsiveSize.d.ts +33 -18
- package/dist/hooks/useRoundedSize.d.ts +0 -3
- package/dist/hooks/useSeriesProps.d.ts +7 -0
- package/dist/hooks/useSetupGraphicalItem.d.ts +35 -4
- package/dist/hooks/useTrackedData.d.ts +3 -0
- package/dist/index.d.ts +130 -9
- package/dist/model/animation.d.ts +7 -0
- package/dist/model/axis.d.ts +29 -0
- package/dist/model/axisLayout.d.ts +85 -0
- package/dist/model/axisScale.d.ts +41 -0
- package/dist/model/brush.d.ts +17 -0
- package/dist/model/chart.d.ts +44 -0
- package/dist/model/dataRange.d.ts +19 -0
- package/dist/model/defaults.d.ts +7 -0
- package/dist/model/layout.d.ts +38 -0
- package/dist/model/legend.d.ts +28 -0
- package/dist/model/options.d.ts +30 -0
- package/dist/model/polar.d.ts +24 -0
- package/dist/model/polarAxis.d.ts +39 -0
- package/dist/model/presentation.d.ts +19 -0
- package/dist/model/registries.d.ts +27 -0
- package/dist/model/registry.d.ts +7 -0
- package/dist/model/runtime.d.ts +76 -0
- package/dist/model/tooltip.d.ts +437 -0
- package/dist/nuxt.d.ts +7 -0
- package/dist/polar/pie/Pie.d.ts +252 -2
- package/dist/polar/pie/type.d.ts +37 -25
- package/dist/polar/radar/PolarAngleAxis.d.ts +36 -39
- package/dist/polar/radar/PolarGrid.d.ts +10 -8
- package/dist/polar/radar/PolarRadiusAxis.d.ts +30 -28
- package/dist/polar/radar/Radar.d.ts +82 -53
- package/dist/polar/radial-bar/RadialBar.d.ts +251 -2
- package/dist/polar/radial-bar/type.d.ts +26 -26
- package/dist/publicProps.d.ts +96 -0
- package/dist/resolver.d.ts +9 -0
- package/dist/shape/Cross.d.ts +2 -1
- package/dist/shape/Curve.d.ts +8 -19
- package/dist/shape/Dot.d.ts +10 -6
- package/dist/shape/Polygon.d.ts +2 -1
- package/dist/shape/Rectangle.d.ts +9 -8
- package/dist/shape/Sector.d.ts +7 -6
- package/dist/shape/Symbols.d.ts +3 -3
- package/dist/shape/Trapezoid.d.ts +5 -5
- package/dist/typed.d.ts +92 -0
- package/dist/types/area.d.ts +5 -6
- package/dist/types/axis.d.ts +9 -36
- package/dist/types/axisSettings.d.ts +20 -0
- package/dist/types/bar.d.ts +17 -7
- package/dist/types/base.d.ts +46 -0
- package/dist/types/categorical.d.ts +5 -7
- package/dist/types/chartData.d.ts +21 -0
- package/dist/types/chartLayout.d.ts +7 -0
- package/dist/{state/rootPropsSlice.d.ts → types/chartOptions.d.ts} +4 -5
- package/dist/types/common.d.ts +16 -55
- package/dist/types/event.d.ts +2 -15
- package/dist/types/funnel.d.ts +23 -0
- package/dist/types/graphical.d.ts +77 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/types/legend.d.ts +17 -0
- package/dist/types/line.d.ts +6 -0
- package/dist/types/polarOptions.d.ts +8 -0
- package/dist/types/radar.d.ts +4 -4
- package/dist/types/radialBar.d.ts +15 -0
- package/dist/types/reference.d.ts +22 -0
- package/dist/types/scale.d.ts +13 -2
- package/dist/{shape/types.d.ts → types/shape.d.ts} +6 -4
- package/dist/types/tick.d.ts +18 -7
- package/dist/types/tooltip.d.ts +181 -14
- package/dist/types/typed.d.ts +16 -0
- package/dist/{cartesian/type.d.ts → types/viewBox.d.ts} +0 -2
- package/dist/utils/ReduceCSSCalc.d.ts +0 -1
- package/dist/utils/VueUtils.d.ts +6 -9
- package/dist/utils/attributes.d.ts +56 -0
- package/dist/utils/attrs.d.ts +4 -45
- package/dist/utils/cartesian.d.ts +2 -16
- package/dist/utils/cell.d.ts +7 -2
- package/dist/utils/chart.d.ts +2 -99
- package/dist/utils/const.d.ts +1 -24
- package/dist/utils/createCategoricalInverse.d.ts +2 -6
- package/dist/utils/data-utils.d.ts +0 -1
- package/dist/utils/data.d.ts +1 -2
- package/dist/utils/env.d.ts +5 -0
- package/dist/utils/events.d.ts +14 -7
- package/dist/utils/grid.d.ts +1 -28
- package/dist/utils/index.d.ts +4 -5
- package/dist/utils/isDomainSpecifiedByUser.d.ts +1 -47
- package/dist/utils/labelColor.d.ts +2 -0
- package/dist/utils/log.d.ts +2 -1
- package/dist/utils/pointer.d.ts +2 -0
- package/dist/utils/polar.d.ts +2 -4
- package/dist/utils/scale/getNiceTickValues.d.ts +2 -61
- package/dist/utils/scale/utils/arithmetic.d.ts +3 -31
- package/dist/utils/scale/utils/utils.d.ts +2 -9
- package/dist/utils/scale.d.ts +1 -1
- package/dist/utils/style.d.ts +2 -1
- package/dist/utils/svg.d.ts +4 -0
- package/dist/utils/theme.d.ts +4 -0
- package/dist/utils/tick.d.ts +3 -3
- package/dist/utils/tooltip/translate.d.ts +9 -25
- package/dist/utils/validate.d.ts +12 -4
- package/package.json +46 -29
- package/dist/animation/Animate.d.ts +0 -72
- package/dist/cartesian/area/ActivePoints.d.ts +0 -77
- package/dist/cartesian/area/ClipRect.d.ts +0 -1
- package/dist/cartesian/area/__stories__/config.d.ts +0 -31
- package/dist/cartesian/area/index.d.ts +0 -2
- package/dist/cartesian/area/utils.d.ts +0 -19
- package/dist/cartesian/axis/index.d.ts +0 -2
- package/dist/cartesian/axis/type.d.ts +0 -57
- package/dist/cartesian/bar/index.d.ts +0 -1
- package/dist/cartesian/bar/utils.d.ts +0 -31
- package/dist/cartesian/brush/hooks/useBrushSetting.d.ts +0 -6
- package/dist/cartesian/brush/index.d.ts +0 -2
- package/dist/cartesian/cartesian-axis/const.d.ts +0 -24
- package/dist/cartesian/cartesian-axis/index.d.ts +0 -1
- package/dist/cartesian/cartesian-axis/use-axis-line.d.ts +0 -7
- package/dist/cartesian/cartesian-grid/index.d.ts +0 -1
- package/dist/cartesian/error-bar/index.d.ts +0 -2
- package/dist/cartesian/funnel/index.d.ts +0 -2
- package/dist/cartesian/funnel/utils.d.ts +0 -12
- package/dist/cartesian/index.d.ts +0 -14
- package/dist/cartesian/line/ActivePoints.d.ts +0 -77
- package/dist/cartesian/line/index.d.ts +0 -3
- package/dist/cartesian/line/utils.d.ts +0 -13
- package/dist/cartesian/reference-area/index.d.ts +0 -1
- package/dist/cartesian/reference-dot/index.d.ts +0 -2
- package/dist/cartesian/reference-line/index.d.ts +0 -1
- package/dist/cartesian/scatter/index.d.ts +0 -1
- package/dist/cartesian/z-axis/index.d.ts +0 -1
- package/dist/chart/LegendPortalContext.d.ts +0 -3
- package/dist/chart/Surface.d.ts +0 -41
- package/dist/chart/TooltipPortalContext.d.ts +0 -2
- package/dist/chart/generateCategoricalChart.d.ts +0 -123
- package/dist/chart/index.d.ts +0 -12
- package/dist/chart/provideClipPathId.d.ts +0 -12
- package/dist/components/DefaultLegendContent.d.ts +0 -18
- package/dist/components/index.d.ts +0 -6
- package/dist/components/label/index.d.ts +0 -2
- package/dist/components/legend/index.d.ts +0 -2
- package/dist/container/RootSurface.d.ts +0 -17
- package/dist/container/index.d.ts +0 -1
- package/dist/context/ChartDataContextProvider.d.ts +0 -17
- package/dist/context/PanoramaContextProvider.d.ts +0 -22
- package/dist/context/accessibilityContext.d.ts +0 -1
- package/dist/context/chartLayoutContext.d.ts +0 -8
- package/dist/context/cursorLayerContext.d.ts +0 -2
- package/dist/context/graphicalLayerContext.d.ts +0 -2
- package/dist/context/labelLayerContext.d.ts +0 -2
- package/dist/context/useTooltipAxis.d.ts +0 -2
- package/dist/es/animation/Animate.mjs +0 -89
- package/dist/es/cartesian/area/ActivePoints.mjs +0 -78
- package/dist/es/cartesian/area/ClipRect.mjs +0 -125
- package/dist/es/cartesian/line/ActivePoints.mjs +0 -79
- package/dist/es/chart/LegendPortalContext.mjs +0 -5
- package/dist/es/chart/Surface.mjs +0 -5
- package/dist/es/chart/Surface.vue_vue_type_script_setup_true_lang.mjs +0 -78
- package/dist/es/chart/TooltipPortalContext.mjs +0 -5
- package/dist/es/chart/generateCategoricalChart.mjs +0 -184
- package/dist/es/chart/provideClipPathId.mjs +0 -15
- package/dist/es/components/Tooltip.mjs +0 -479
- package/dist/es/context/ChartDataContextProvider.mjs +0 -27
- package/dist/es/context/PanoramaContextProvider.mjs +0 -24
- package/dist/es/context/accessibilityContext.mjs +0 -5
- package/dist/es/context/chartLayoutContext.mjs +0 -49
- package/dist/es/context/cursorLayerContext.mjs +0 -5
- package/dist/es/context/graphicalLayerContext.mjs +0 -5
- package/dist/es/context/labelLayerContext.mjs +0 -5
- package/dist/es/context/useTooltipAxis.mjs +0 -17
- package/dist/es/events/useChartSynchronisation.mjs +0 -113
- package/dist/es/hooks/useIsAnimating.mjs +0 -28
- package/dist/es/state/ReportChartProps.mjs +0 -62
- package/dist/es/state/ReportMainChartProps.mjs +0 -46
- package/dist/es/state/ReportPolarOptions.mjs +0 -56
- package/dist/es/state/SetGraphicalItem.mjs +0 -49
- package/dist/es/state/SetLegendPayload.mjs +0 -20
- package/dist/es/state/SetTooltipEntrySettings.mjs +0 -19
- package/dist/es/state/brushSlice.mjs +0 -26
- package/dist/es/state/cartesianAxisSlice.mjs +0 -50
- package/dist/es/state/chartDataSlice.mjs +0 -33
- package/dist/es/state/externalEventsMiddleware.mjs +0 -30
- package/dist/es/state/graphicalItemsSlice.mjs +0 -47
- package/dist/es/state/hooks.mjs +0 -26
- package/dist/es/state/keyboardEventsMiddleware.mjs +0 -63
- package/dist/es/state/layoutSlice.mjs +0 -39
- package/dist/es/state/legendSlice.mjs +0 -42
- package/dist/es/state/mouseEventsMiddleware.mjs +0 -41
- package/dist/es/state/optionsSlice.mjs +0 -25
- package/dist/es/state/polarAxisSlice.mjs +0 -28
- package/dist/es/state/polarOptionsSlice.mjs +0 -13
- package/dist/es/state/reduxDevtoolsJsonStringifyReplacer.mjs +0 -8
- package/dist/es/state/referenceElementsSlice.mjs +0 -36
- package/dist/es/state/rootPropsSlice.mjs +0 -32
- package/dist/es/state/selectors/areaSelectors.mjs +0 -77
- package/dist/es/state/selectors/axisSelectors.mjs +0 -908
- package/dist/es/state/selectors/barSelectors.mjs +0 -241
- package/dist/es/state/selectors/brushSelectors.mjs +0 -18
- package/dist/es/state/selectors/combiners/combineActiveLabel.mjs +0 -9
- package/dist/es/state/selectors/combiners/combineActiveTooltipIndex.mjs +0 -43
- package/dist/es/state/selectors/combiners/combineAxisRangeWithReverse.mjs +0 -8
- package/dist/es/state/selectors/combiners/combineCoordinateForDefaultIndex.mjs +0 -21
- package/dist/es/state/selectors/combiners/combineTooltipInteractionState.mjs +0 -37
- package/dist/es/state/selectors/combiners/combineTooltipPayloadConfigurations.mjs +0 -13
- package/dist/es/state/selectors/common.mjs +0 -4
- package/dist/es/state/selectors/containerSelectors.mjs +0 -7
- package/dist/es/state/selectors/dataSelectors.mjs +0 -35
- package/dist/es/state/selectors/funnelSelectors.mjs +0 -38
- package/dist/es/state/selectors/legendSelectors.mjs +0 -10
- package/dist/es/state/selectors/lineSelectors.mjs +0 -64
- package/dist/es/state/selectors/pickAxisId.mjs +0 -4
- package/dist/es/state/selectors/pickAxisType.mjs +0 -4
- package/dist/es/state/selectors/polarAxisSelectors.mjs +0 -167
- package/dist/es/state/selectors/polarGridSelectors.mjs +0 -19
- package/dist/es/state/selectors/polarScaleSelectors.mjs +0 -55
- package/dist/es/state/selectors/polarSelectors.mjs +0 -81
- package/dist/es/state/selectors/radarSelectors.mjs +0 -133
- package/dist/es/state/selectors/radialBarSelectors.mjs +0 -259
- package/dist/es/state/selectors/rootPropsSelectors.mjs +0 -14
- package/dist/es/state/selectors/scatterSelectors.mjs +0 -134
- package/dist/es/state/selectors/selectActivePropsFromChartPointer.mjs +0 -20
- package/dist/es/state/selectors/selectAllAxes.mjs +0 -10
- package/dist/es/state/selectors/selectChartOffset.mjs +0 -72
- package/dist/es/state/selectors/selectChartOffsetInternal.mjs +0 -66
- package/dist/es/state/selectors/selectLegendArea.mjs +0 -19
- package/dist/es/state/selectors/selectTooltipEventType.mjs +0 -22
- package/dist/es/state/selectors/selectTooltipPayloadSearcher.mjs +0 -6
- package/dist/es/state/selectors/selectTooltipSettings.mjs +0 -4
- package/dist/es/state/selectors/selectTooltipState.mjs +0 -4
- package/dist/es/state/selectors/selectors.mjs +0 -104
- package/dist/es/state/selectors/tooltipSelectors.mjs +0 -269
- package/dist/es/state/selectors/touchSelectors.mjs +0 -19
- package/dist/es/state/store.mjs +0 -55
- package/dist/es/state/tooltipSlice.mjs +0 -102
- package/dist/es/state/touchEventsMiddleware.mjs +0 -44
- package/dist/es/state/utils/useReportScale.mjs +0 -19
- package/dist/es/synchronisation/syncSelectors.mjs +0 -6
- package/dist/es/synchronisation/useChartSynchronisation.mjs +0 -38
- package/dist/es/utils/Global.mjs +0 -18
- package/dist/es/utils/createContext.mjs +0 -31
- package/dist/es/utils/legend.mjs +0 -41
- package/dist/es/utils/props.mjs +0 -20
- package/dist/es/utils/resolveDefaultProps.mjs +0 -26
- package/dist/events/useChartSynchronisation.d.ts +0 -8
- package/dist/hooks/useIsAnimating.d.ts +0 -14
- package/dist/polar/index.d.ts +0 -3
- package/dist/polar/pie/index.d.ts +0 -2
- package/dist/polar/radar/index.d.ts +0 -4
- package/dist/polar/radial-bar/index.d.ts +0 -2
- package/dist/shape/index.d.ts +0 -10
- package/dist/state/ReportBar.d.ts +0 -1
- package/dist/state/ReportChartProps.d.ts +0 -88
- package/dist/state/ReportMainChartProps.d.ts +0 -37
- package/dist/state/ReportPolarOptions.d.ts +0 -59
- package/dist/state/SetGraphicalItem.d.ts +0 -9
- package/dist/state/SetLegendPayload.d.ts +0 -3
- package/dist/state/SetTooltipEntrySettings.d.ts +0 -8
- package/dist/state/brushSlice.d.ts +0 -18
- package/dist/state/cartesianAxisSlice.d.ts +0 -96
- package/dist/state/chartDataSlice.d.ts +0 -44
- package/dist/state/externalEventsMiddleware.d.ts +0 -17
- package/dist/state/graphicalItemsSlice.d.ts +0 -108
- package/dist/state/hooks.d.ts +0 -54
- package/dist/state/keyboardEventsMiddleware.d.ts +0 -3
- package/dist/state/layoutSlice.d.ts +0 -15
- package/dist/state/legendSlice.d.ts +0 -29
- package/dist/state/mouseEventsMiddleware.d.ts +0 -5
- package/dist/state/optionsSlice.d.ts +0 -27
- package/dist/state/polarAxisSlice.d.ts +0 -10
- package/dist/state/polarOptionsSlice.d.ts +0 -10
- package/dist/state/reduxDevtoolsJsonStringifyReplacer.d.ts +0 -1
- package/dist/state/referenceElementsSlice.d.ts +0 -40
- package/dist/state/selectors/areaSelectors.d.ts +0 -24
- package/dist/state/selectors/axisSelectors.d.ts +0 -1833
- package/dist/state/selectors/barSelectors.d.ts +0 -944
- package/dist/state/selectors/brushSelectors.d.ts +0 -10
- package/dist/state/selectors/combiners/combineActiveLabel.d.ts +0 -3
- package/dist/state/selectors/combiners/combineActiveTooltipIndex.d.ts +0 -5
- package/dist/state/selectors/combiners/combineAxisRangeWithReverse.d.ts +0 -3
- package/dist/state/selectors/combiners/combineCoordinateForDefaultIndex.d.ts +0 -3
- package/dist/state/selectors/combiners/combineTooltipInteractionState.d.ts +0 -3
- package/dist/state/selectors/combiners/combineTooltipPayloadConfigurations.d.ts +0 -3
- package/dist/state/selectors/common.d.ts +0 -2
- package/dist/state/selectors/containerSelectors.d.ts +0 -6
- package/dist/state/selectors/dataSelectors.d.ts +0 -23
- package/dist/state/selectors/funnelSelectors.d.ts +0 -69
- package/dist/state/selectors/legendSelectors.d.ts +0 -7
- package/dist/state/selectors/lineSelectors.d.ts +0 -123
- package/dist/state/selectors/pickAxisId.d.ts +0 -3
- package/dist/state/selectors/pickAxisType.d.ts +0 -2
- package/dist/state/selectors/polarAxisSelectors.d.ts +0 -49
- package/dist/state/selectors/polarGridSelectors.d.ts +0 -118
- package/dist/state/selectors/polarScaleSelectors.d.ts +0 -9
- package/dist/state/selectors/polarSelectors.d.ts +0 -70
- package/dist/state/selectors/radarSelectors.d.ts +0 -76
- package/dist/state/selectors/radialBarSelectors.d.ts +0 -61
- package/dist/state/selectors/rootPropsSelectors.d.ts +0 -11
- package/dist/state/selectors/scatterSelectors.d.ts +0 -21
- package/dist/state/selectors/selectActivePropsFromChartPointer.d.ts +0 -382
- package/dist/state/selectors/selectAllAxes.d.ts +0 -4
- package/dist/state/selectors/selectChartOffset.d.ts +0 -116
- package/dist/state/selectors/selectChartOffsetInternal.d.ts +0 -9
- package/dist/state/selectors/selectLegendArea.d.ts +0 -7
- package/dist/state/selectors/selectTooltipEventType.d.ts +0 -8
- package/dist/state/selectors/selectTooltipPayloadSearcher.d.ts +0 -3
- package/dist/state/selectors/selectTooltipSettings.d.ts +0 -3
- package/dist/state/selectors/selectTooltipState.d.ts +0 -3
- package/dist/state/selectors/selectors.d.ts +0 -184
- package/dist/state/selectors/tooltipSelectors.d.ts +0 -581
- package/dist/state/selectors/touchSelectors.d.ts +0 -4
- package/dist/state/store.d.ts +0 -74
- package/dist/state/tooltipSlice.d.ts +0 -204
- package/dist/state/touchEventsMiddleware.d.ts +0 -2
- package/dist/state/utils/useReportScale.d.ts +0 -1
- package/dist/synchronisation/syncSelectors.d.ts +0 -3
- package/dist/synchronisation/useChartSynchronisation.d.ts +0 -11
- package/dist/types/offset.d.ts +0 -8
- package/dist/utils/Global.d.ts +0 -9
- package/dist/utils/context.d.ts +0 -8
- package/dist/utils/createContext.d.ts +0 -8
- package/dist/utils/legend.d.ts +0 -3
- package/dist/utils/props.d.ts +0 -15
- package/dist/utils/resolveDefaultProps.d.ts +0 -52
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { useChartPresentation } from "../model/presentation.mjs";
|
|
2
|
+
import { useTooltipController } from "../model/tooltip.mjs";
|
|
3
|
+
import { BRUSH_SYNC_EVENT, TOOLTIP_SYNC_EVENT, eventCenter } from "../utils/events.mjs";
|
|
4
|
+
import { computed, nextTick, onMounted, watch, watchEffect } from "vue";
|
|
5
|
+
//#region src/events/sync.ts
|
|
6
|
+
var receivingBrushSynchronisation = /* @__PURE__ */ new WeakSet();
|
|
7
|
+
function useTooltipChartSynchronisation(source, enabled) {
|
|
8
|
+
const tooltip = useTooltipController();
|
|
9
|
+
const presentation = useChartPresentation();
|
|
10
|
+
const activeDataKey = computed(() => tooltip.target.value?.entry?.value?.settings.dataKey);
|
|
11
|
+
const eventEmitterSymbol = presentation.emitter;
|
|
12
|
+
const syncId = presentation.syncId;
|
|
13
|
+
const isReceivingSynchronisation = computed(() => tooltip.receivingSynchronisation.value);
|
|
14
|
+
watchEffect(() => {
|
|
15
|
+
if (!enabled()) return;
|
|
16
|
+
if (isReceivingSynchronisation.value) return;
|
|
17
|
+
if (syncId.value == null) return;
|
|
18
|
+
if (eventEmitterSymbol.value == null) return;
|
|
19
|
+
const message = {
|
|
20
|
+
kind: "tooltip",
|
|
21
|
+
active: source.active.value,
|
|
22
|
+
coordinate: source.coordinate.value,
|
|
23
|
+
dataKey: activeDataKey.value,
|
|
24
|
+
index: source.index.value,
|
|
25
|
+
label: source.label.value
|
|
26
|
+
};
|
|
27
|
+
eventCenter.emit(TOOLTIP_SYNC_EVENT, syncId.value, message, eventEmitterSymbol.value);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function useTooltipSyncEventsListener(chart) {
|
|
31
|
+
const mySyncId = computed(() => chart.options.value.syncId);
|
|
32
|
+
const myEventEmitter = computed(() => chart.tooltipOptions.value.eventEmitter);
|
|
33
|
+
const tooltip = chart.tooltip;
|
|
34
|
+
const syncMethod = computed(() => chart.options.value.syncMethod);
|
|
35
|
+
const tooltipTicks = computed(() => chart.tooltip.ticks.value);
|
|
36
|
+
const layout = computed(chart.inputs.layout);
|
|
37
|
+
const viewBox = chart.viewBox;
|
|
38
|
+
watch([myEventEmitter, mySyncId], (v, o, onCleanup) => {
|
|
39
|
+
if (mySyncId.value == null) return;
|
|
40
|
+
const listener = (incomingSyncId, message, emitter) => {
|
|
41
|
+
if (myEventEmitter.value === emitter) return;
|
|
42
|
+
if (mySyncId.value !== incomingSyncId) return;
|
|
43
|
+
if (syncMethod.value === "index") {
|
|
44
|
+
const candidate = message.index === null ? void 0 : tooltip.targets.value[message.index];
|
|
45
|
+
tooltip.activate("sync", {
|
|
46
|
+
active: message.active,
|
|
47
|
+
index: candidate?.index ?? null,
|
|
48
|
+
configuration: candidate?.entry?.value,
|
|
49
|
+
coordinate: message.coordinate
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (tooltipTicks.value == null) return;
|
|
54
|
+
let activeTick;
|
|
55
|
+
if (typeof syncMethod.value === "function") {
|
|
56
|
+
const syncMethodParam = {
|
|
57
|
+
activeTooltipIndex: message.index ?? void 0,
|
|
58
|
+
isTooltipActive: message.active,
|
|
59
|
+
activeIndex: message.index ?? void 0,
|
|
60
|
+
activeLabel: message.label,
|
|
61
|
+
activeDataKey: message.dataKey,
|
|
62
|
+
activeCoordinate: message.coordinate
|
|
63
|
+
};
|
|
64
|
+
const activeTooltipIndex = syncMethod.value(tooltipTicks.value, syncMethodParam);
|
|
65
|
+
activeTick = tooltipTicks.value[activeTooltipIndex];
|
|
66
|
+
} else if (syncMethod.value === "value") activeTick = tooltipTicks.value.find((tick) => String(tick.value) === message.label);
|
|
67
|
+
if (activeTick == null || message.active === false) {
|
|
68
|
+
tooltip.activate("sync", {
|
|
69
|
+
active: false,
|
|
70
|
+
index: null
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const { x, y } = message.coordinate;
|
|
75
|
+
const validateChartX = Math.min(x, viewBox.value?.x + viewBox.value?.width);
|
|
76
|
+
const validateChartY = Math.min(y, viewBox.value?.y + viewBox.value?.height);
|
|
77
|
+
const activeCoordinate = {
|
|
78
|
+
x: layout.value === "horizontal" ? activeTick.coordinate : validateChartX,
|
|
79
|
+
y: layout.value === "horizontal" ? validateChartY : activeTick.coordinate
|
|
80
|
+
};
|
|
81
|
+
const candidate = tooltip.targets.value[activeTick.index ?? -1];
|
|
82
|
+
tooltip.activate("sync", {
|
|
83
|
+
active: message.active,
|
|
84
|
+
index: candidate?.index ?? null,
|
|
85
|
+
configuration: candidate?.entry?.value,
|
|
86
|
+
coordinate: activeCoordinate
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
eventCenter.on(TOOLTIP_SYNC_EVENT, listener);
|
|
90
|
+
onCleanup(() => {
|
|
91
|
+
eventCenter.off(TOOLTIP_SYNC_EVENT, listener);
|
|
92
|
+
});
|
|
93
|
+
}, { immediate: true });
|
|
94
|
+
}
|
|
95
|
+
function useBrushSyncEventsListener(chart) {
|
|
96
|
+
const mySyncId = computed(() => chart.options.value.syncId);
|
|
97
|
+
const myEventEmitter = computed(() => chart.tooltipOptions.value.eventEmitter);
|
|
98
|
+
const data = chart.dataRange;
|
|
99
|
+
watch([mySyncId, myEventEmitter], (v, o, onCleanup) => {
|
|
100
|
+
if (mySyncId.value == null) return;
|
|
101
|
+
const listener = (incomingSyncId, range, emitter) => {
|
|
102
|
+
if (myEventEmitter.value === emitter) return;
|
|
103
|
+
if (mySyncId.value === incomingSyncId) {
|
|
104
|
+
receivingBrushSynchronisation.add(chart);
|
|
105
|
+
nextTick(() => receivingBrushSynchronisation.delete(chart));
|
|
106
|
+
const requestRange = chart.brush.state.value.onRangeChange;
|
|
107
|
+
if (requestRange) requestRange(range);
|
|
108
|
+
else data.receiveSyncedRange(range);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
eventCenter.on(BRUSH_SYNC_EVENT, listener);
|
|
112
|
+
onCleanup(() => {
|
|
113
|
+
eventCenter.off(BRUSH_SYNC_EVENT, listener);
|
|
114
|
+
});
|
|
115
|
+
}, { immediate: true });
|
|
116
|
+
}
|
|
117
|
+
/** Receive requests through the chart's configured synchronisation method. */
|
|
118
|
+
function useSynchronisedEventsFromOtherCharts(chart) {
|
|
119
|
+
onMounted(() => {
|
|
120
|
+
useTooltipSyncEventsListener(chart);
|
|
121
|
+
useBrushSyncEventsListener(chart);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function useBrushChartSynchronisation(chart) {
|
|
125
|
+
const syncId = computed(() => chart.options.value.syncId);
|
|
126
|
+
const eventEmitterSymbol = computed(() => chart.tooltipOptions.value.eventEmitter);
|
|
127
|
+
const brushStartIndex = computed(() => chart.dataRange.state.value.dataStartIndex);
|
|
128
|
+
const brushEndIndex = computed(() => chart.dataRange.state.value.dataEndIndex);
|
|
129
|
+
watchEffect(() => {
|
|
130
|
+
if (syncId.value == null || brushStartIndex.value == null || brushEndIndex.value == null || eventEmitterSymbol.value == null) return;
|
|
131
|
+
if (receivingBrushSynchronisation.delete(chart)) return;
|
|
132
|
+
const range = {
|
|
133
|
+
startIndex: brushStartIndex.value,
|
|
134
|
+
endIndex: brushEndIndex.value
|
|
135
|
+
};
|
|
136
|
+
eventCenter.emit(BRUSH_SYNC_EVENT, syncId.value, range, eventEmitterSymbol.value);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
140
|
+
export { useBrushChartSynchronisation, useSynchronisedEventsFromOtherCharts, useTooltipChartSynchronisation };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useTooltipController } from "../model/tooltip.mjs";
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
//#region src/events/useChartCallbacks.ts
|
|
4
|
+
function useChartCallbacks() {
|
|
5
|
+
const tooltip = useTooltipController();
|
|
6
|
+
const source = tooltip.source;
|
|
7
|
+
const callbackState = computed(() => {
|
|
8
|
+
const target = source.active.value ? tooltip.target.value : void 0;
|
|
9
|
+
const activeIndex = target ? target.payloadKey ?? String(target.index) : null;
|
|
10
|
+
return {
|
|
11
|
+
activeCoordinate: source.coordinate.value,
|
|
12
|
+
activeDataKey: tooltip.target.value?.entry?.value?.settings.dataKey,
|
|
13
|
+
activeIndex,
|
|
14
|
+
activeLabel: source.label.value,
|
|
15
|
+
activeTooltipIndex: activeIndex,
|
|
16
|
+
isTooltipActive: source.active.value
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
return (handler, event) => {
|
|
20
|
+
if (handler) handler({ ...callbackState.value }, event);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { useChartCallbacks };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { DATA_ITEM_INDEX_ATTRIBUTE_NAME } from "../utils/const.mjs";
|
|
2
|
+
import { useChart } from "../model/chart.mjs";
|
|
3
|
+
import { activeProps } from "../core/interaction.mjs";
|
|
4
|
+
import { useItemInteractions } from "./useItemInteractions.mjs";
|
|
5
|
+
import { getChartPointer } from "../utils/pointer.mjs";
|
|
6
|
+
//#region src/events/useChartInteractions.ts
|
|
7
|
+
function useChartInteractions() {
|
|
8
|
+
const chart = useChart();
|
|
9
|
+
const tooltip = chart.tooltip;
|
|
10
|
+
function selectionAtPointer(pointer, target) {
|
|
11
|
+
const selection = activeProps(pointer, chart.inputs.layout(), chart.polarLayout.viewBox.value, tooltip.axisType.value, tooltip.axis.value?.reversedRange.value, tooltip.ticks.value, tooltip.orderedTicks.value, chart.offset.value);
|
|
12
|
+
if (selection || !pointer || !(target instanceof Element)) return selection;
|
|
13
|
+
const index = target.closest(".v-charts-radial-bar .v-charts-sector")?.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);
|
|
14
|
+
if (index == null) return void 0;
|
|
15
|
+
return {
|
|
16
|
+
activeIndex: Number(index),
|
|
17
|
+
activeCoordinate: {
|
|
18
|
+
x: pointer.chartX,
|
|
19
|
+
y: pointer.chartY
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function coordinateAt(index) {
|
|
24
|
+
return tooltip.coordinateFor(tooltip.targets.value.find((target) => target.index === index));
|
|
25
|
+
}
|
|
26
|
+
function click(chartPointer, target) {
|
|
27
|
+
if (tooltip.eventType.value === "axis") {
|
|
28
|
+
const activeProps = selectionAtPointer(chartPointer, target);
|
|
29
|
+
if (activeProps?.activeIndex != null) tooltip.activate("click", {
|
|
30
|
+
type: "axis",
|
|
31
|
+
index: activeProps.activeIndex,
|
|
32
|
+
coordinate: activeProps.activeCoordinate
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function move(chartPointer, target) {
|
|
37
|
+
const tooltipEventType = tooltip.eventType.value;
|
|
38
|
+
const activeProps = selectionAtPointer(chartPointer, target);
|
|
39
|
+
if (tooltipEventType === "axis") {
|
|
40
|
+
if (activeProps?.activeIndex != null) tooltip.activate("hover", {
|
|
41
|
+
type: "axis",
|
|
42
|
+
index: activeProps.activeIndex,
|
|
43
|
+
coordinate: activeProps.activeCoordinate
|
|
44
|
+
});
|
|
45
|
+
else tooltip.clear("hover");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const { keyDown: itemKeyDown } = useItemInteractions();
|
|
49
|
+
function keyDown(event) {
|
|
50
|
+
const { key } = event;
|
|
51
|
+
if (!(chart.options.value.accessibilityLayer !== false)) return;
|
|
52
|
+
if (tooltip.eventType.value === "item") {
|
|
53
|
+
itemKeyDown(event);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const keyboardInteraction = {
|
|
57
|
+
index: tooltip.target.value?.index ?? null,
|
|
58
|
+
active: tooltip.source.active.value,
|
|
59
|
+
dataKey: tooltip.target.value?.entry?.value?.settings.dataKey
|
|
60
|
+
};
|
|
61
|
+
if (key !== "ArrowRight" && key !== "ArrowLeft" && key !== "Enter") return;
|
|
62
|
+
const currentIndex = tooltip.source.index.value ?? 0;
|
|
63
|
+
const tooltipTicks = tooltip.ticks.value;
|
|
64
|
+
if (!tooltipTicks?.length) return;
|
|
65
|
+
if (key === "Enter") {
|
|
66
|
+
const coordinate = coordinateAt(keyboardInteraction.index);
|
|
67
|
+
tooltip.activate("keyboard", {
|
|
68
|
+
type: "axis",
|
|
69
|
+
active: !keyboardInteraction.active,
|
|
70
|
+
index: keyboardInteraction.index,
|
|
71
|
+
coordinate
|
|
72
|
+
});
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const directionMultiplier = chart.direction.value === "left-to-right" ? 1 : -1;
|
|
76
|
+
const nextIndex = currentIndex + (key === "ArrowRight" ? 1 : -1) * directionMultiplier;
|
|
77
|
+
if (nextIndex >= tooltipTicks.length || nextIndex < 0) return;
|
|
78
|
+
const coordinate = coordinateAt(nextIndex);
|
|
79
|
+
tooltip.activate("keyboard", {
|
|
80
|
+
type: "axis",
|
|
81
|
+
active: true,
|
|
82
|
+
index: nextIndex,
|
|
83
|
+
coordinate
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function focus() {
|
|
87
|
+
if (!(chart.options.value.accessibilityLayer !== false)) return;
|
|
88
|
+
if (tooltip.eventType.value === "item") return;
|
|
89
|
+
const keyboardInteraction = {
|
|
90
|
+
index: tooltip.target.value?.index ?? null,
|
|
91
|
+
active: tooltip.source.active.value
|
|
92
|
+
};
|
|
93
|
+
if (keyboardInteraction.active) return;
|
|
94
|
+
if (keyboardInteraction.index == null) {
|
|
95
|
+
const nextIndex = 0;
|
|
96
|
+
const coordinate = coordinateAt(nextIndex);
|
|
97
|
+
tooltip.activate("keyboard", {
|
|
98
|
+
type: "axis",
|
|
99
|
+
active: true,
|
|
100
|
+
index: nextIndex,
|
|
101
|
+
coordinate
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function touchMove(touchEvent) {
|
|
106
|
+
const touch = touchEvent.touches[0];
|
|
107
|
+
if (!touch) return;
|
|
108
|
+
const tooltipEventType = tooltip.eventType.value;
|
|
109
|
+
if (tooltipEventType === "axis") {
|
|
110
|
+
const activeProps = selectionAtPointer(getChartPointer({
|
|
111
|
+
clientX: touch.clientX,
|
|
112
|
+
clientY: touch.clientY,
|
|
113
|
+
currentTarget: touchEvent.currentTarget
|
|
114
|
+
}));
|
|
115
|
+
if (activeProps?.activeIndex != null) tooltip.activate("hover", {
|
|
116
|
+
type: "axis",
|
|
117
|
+
index: activeProps.activeIndex,
|
|
118
|
+
coordinate: activeProps.activeCoordinate
|
|
119
|
+
});
|
|
120
|
+
} else if (tooltipEventType === "item") {
|
|
121
|
+
const target = document.elementFromPoint(touch.clientX, touch.clientY);
|
|
122
|
+
if (!target || !target.getAttribute) return;
|
|
123
|
+
const itemIndex = target.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);
|
|
124
|
+
const index = itemIndex === null ? null : Number(itemIndex);
|
|
125
|
+
const touched = index === null ? void 0 : tooltip.targets.value.find((candidate) => candidate.index === index);
|
|
126
|
+
tooltip.activate("hover", {
|
|
127
|
+
type: "item",
|
|
128
|
+
index,
|
|
129
|
+
configuration: touched?.entry?.value,
|
|
130
|
+
coordinate: touched?.coordinate
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
click,
|
|
136
|
+
move,
|
|
137
|
+
keyDown,
|
|
138
|
+
focus,
|
|
139
|
+
touchMove
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
143
|
+
export { useChartInteractions };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DATA_ITEM_INDEX_ATTRIBUTE_NAME } from "../utils/const.mjs";
|
|
2
|
+
import { useTooltipController } from "../model/tooltip.mjs";
|
|
3
|
+
//#region src/events/useItemInteractions.ts
|
|
4
|
+
function useItemInteractions() {
|
|
5
|
+
const tooltip = useTooltipController();
|
|
6
|
+
function keyDown(event) {
|
|
7
|
+
const { key } = event;
|
|
8
|
+
const targets = tooltip.targets.value;
|
|
9
|
+
if (key === "Escape") {
|
|
10
|
+
tooltip.clear("keyboard");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const position = tooltip.source.index.value ?? -1;
|
|
14
|
+
if (key === "Enter") {
|
|
15
|
+
targets[position]?.onClick?.(event);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let next;
|
|
19
|
+
if (key === "Home") next = 0;
|
|
20
|
+
else if (key === "End") next = targets.length - 1;
|
|
21
|
+
else if (key === "ArrowRight" || key === "ArrowDown") next = Math.min(position + 1, targets.length - 1);
|
|
22
|
+
else if (key === "ArrowLeft" || key === "ArrowUp") next = Math.max(position - 1, 0);
|
|
23
|
+
else return;
|
|
24
|
+
const target = targets[next];
|
|
25
|
+
if (!target) return;
|
|
26
|
+
tooltip.activate("keyboard", {
|
|
27
|
+
active: true,
|
|
28
|
+
index: target.index,
|
|
29
|
+
coordinate: target.coordinate,
|
|
30
|
+
configuration: target.entry?.value
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function touchMove(event) {
|
|
34
|
+
const touch = event.touches[0];
|
|
35
|
+
if (!touch) return;
|
|
36
|
+
const element = document.elementFromPoint(touch.clientX, touch.clientY);
|
|
37
|
+
if (!element) return;
|
|
38
|
+
const attribute = element.getAttribute(DATA_ITEM_INDEX_ATTRIBUTE_NAME);
|
|
39
|
+
const index = attribute === null ? null : Number(attribute);
|
|
40
|
+
const target = index === null ? void 0 : tooltip.targets.value.find((item) => item.index === index);
|
|
41
|
+
tooltip.activate("hover", {
|
|
42
|
+
type: "item",
|
|
43
|
+
index,
|
|
44
|
+
coordinate: target?.coordinate,
|
|
45
|
+
configuration: target?.entry?.value
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function ignorePointer() {}
|
|
49
|
+
return {
|
|
50
|
+
click: ignorePointer,
|
|
51
|
+
move: ignorePointer,
|
|
52
|
+
focus: ignorePointer,
|
|
53
|
+
keyDown,
|
|
54
|
+
touchMove
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
export { useItemInteractions };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
//#region src/events/useItemKeyboard.ts
|
|
3
|
+
function isFocusVisible(element) {
|
|
4
|
+
try {
|
|
5
|
+
return element.matches(":focus-visible");
|
|
6
|
+
} catch {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The keyboard channel every standalone item chart shares: focus that is visible starts on an
|
|
12
|
+
* item, keys move between items, Escape clears. `keyboard` tells whether the last selection
|
|
13
|
+
* came from the keyboard; pointer handlers reset it.
|
|
14
|
+
*/
|
|
15
|
+
function useItemKeyboard(options) {
|
|
16
|
+
const keyboard = ref(false);
|
|
17
|
+
function onFocus(event) {
|
|
18
|
+
if (options.empty() || !isFocusVisible(event.target)) return;
|
|
19
|
+
const item = options.start();
|
|
20
|
+
if (item === void 0) return;
|
|
21
|
+
keyboard.value = true;
|
|
22
|
+
options.activate(item);
|
|
23
|
+
}
|
|
24
|
+
function onKeydown(event) {
|
|
25
|
+
if (options.empty()) return;
|
|
26
|
+
if (event.key === "Escape") {
|
|
27
|
+
keyboard.value = true;
|
|
28
|
+
options.clear();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (options.keydown?.(event)) return;
|
|
32
|
+
const item = options.neighbour(event.key);
|
|
33
|
+
if (item === void 0) return;
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
keyboard.value = true;
|
|
36
|
+
options.activate(item);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
keyboard,
|
|
40
|
+
onFocus,
|
|
41
|
+
onKeydown
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { useItemKeyboard };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useTooltipEntry } from "../model/tooltip.mjs";
|
|
2
|
+
import { useChart } from "../model/chart.mjs";
|
|
3
|
+
import { computed } from "vue";
|
|
4
|
+
//#region src/events/usePointEvents.ts
|
|
5
|
+
function usePointEvents(emit) {
|
|
6
|
+
const tooltip = useChart().tooltip;
|
|
7
|
+
const configuration = useTooltipEntry();
|
|
8
|
+
return (entry, index) => {
|
|
9
|
+
const payload = () => ({
|
|
10
|
+
configuration: configuration?.value,
|
|
11
|
+
index,
|
|
12
|
+
coordinate: {
|
|
13
|
+
x: entry.x,
|
|
14
|
+
y: entry.y
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
onClick: (event) => {
|
|
19
|
+
tooltip.activate("click", {
|
|
20
|
+
...payload(),
|
|
21
|
+
type: "item"
|
|
22
|
+
});
|
|
23
|
+
emit("click", entry, index, event);
|
|
24
|
+
},
|
|
25
|
+
onMouseenter: (event) => {
|
|
26
|
+
tooltip.activate("hover", {
|
|
27
|
+
...payload(),
|
|
28
|
+
type: "item"
|
|
29
|
+
});
|
|
30
|
+
emit("mouseenter", entry, index, event);
|
|
31
|
+
},
|
|
32
|
+
onMouseleave: (event) => {
|
|
33
|
+
tooltip.clear("hover", "item");
|
|
34
|
+
emit("mouseleave", entry, index, event);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function useSeriesPointEvents(emit, points) {
|
|
40
|
+
const chart = useChart();
|
|
41
|
+
const activeIndex = computed(() => chart.tooltip.source.active.value ? chart.tooltip.target.value?.index ?? null : null);
|
|
42
|
+
const listeners = usePointEvents(emit);
|
|
43
|
+
const dispatch = (name, event) => {
|
|
44
|
+
const index = activeIndex.value ?? 0;
|
|
45
|
+
const entry = points()[index];
|
|
46
|
+
if (entry) listeners(entry, index)[name](event);
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
onClick: (event) => dispatch("onClick", event),
|
|
50
|
+
onMouseenter: (event) => dispatch("onMouseenter", event),
|
|
51
|
+
onMouseleave: (event) => dispatch("onMouseleave", event)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { usePointEvents, useSeriesPointEvents };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isHydrating, isServerRender } from "../model/runtime.mjs";
|
|
2
|
+
import { defineAsyncComponent } from "vue";
|
|
3
|
+
//#region src/hooks/deferredView.ts
|
|
4
|
+
/**
|
|
5
|
+
* Returns the component that renders a chart item's geometry. Call during setup.
|
|
6
|
+
*
|
|
7
|
+
* Chart items register themselves during setup, but Vue mounts depth-first, so an item
|
|
8
|
+
* renders before later siblings (another series, an axis) have registered. A client-only
|
|
9
|
+
* mount corrects this before the first paint. The server renders only once, and hydration
|
|
10
|
+
* must reproduce the server HTML, so there the view is wrapped as an async component: Vue
|
|
11
|
+
* renders it after every sibling has run setup. Each instance needs its own wrapper,
|
|
12
|
+
* because an async component renders synchronously once it has resolved.
|
|
13
|
+
*/
|
|
14
|
+
function useDeferredView(view) {
|
|
15
|
+
if (!isServerRender() && !isHydrating()) return view;
|
|
16
|
+
return defineAsyncComponent({ loader: () => Promise.resolve(view) });
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useDeferredView };
|
|
@@ -1,59 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { useOffset } from "../context/chartLayoutContext.mjs";
|
|
1
|
+
import { useChartPresentation } from "../model/presentation.mjs";
|
|
2
|
+
import { useTooltipSource } from "../model/tooltip.mjs";
|
|
3
|
+
import { useChart } from "../model/chart.mjs";
|
|
5
4
|
import { computed } from "vue";
|
|
6
5
|
//#region src/hooks/publicHooks.ts
|
|
6
|
+
/** Returns the chart width in px. Must be used inside a chart component tree. */
|
|
7
|
+
function useChartWidth() {
|
|
8
|
+
return useChartPresentation().width;
|
|
9
|
+
}
|
|
10
|
+
/** Returns the chart height in px. Must be used inside a chart component tree. */
|
|
11
|
+
function useChartHeight() {
|
|
12
|
+
return useChartPresentation().height;
|
|
13
|
+
}
|
|
14
|
+
/** Returns the chart margin. Must be used inside a chart component tree. */
|
|
15
|
+
function useMargin() {
|
|
16
|
+
return useChartPresentation().margin;
|
|
17
|
+
}
|
|
7
18
|
/**
|
|
8
19
|
* Returns whether the tooltip is currently active (visible).
|
|
9
20
|
*
|
|
10
|
-
* Must be used inside a chart component tree (where
|
|
21
|
+
* Must be used inside a chart component tree (where chart-local Vue state is provided).
|
|
11
22
|
*
|
|
12
23
|
* @returns A reactive boolean indicating tooltip active state
|
|
13
24
|
*/
|
|
14
25
|
function useIsTooltipActive() {
|
|
15
|
-
return
|
|
26
|
+
return useTooltipSource().active;
|
|
16
27
|
}
|
|
17
28
|
/**
|
|
18
29
|
* Returns the current coordinate of the active tooltip.
|
|
19
30
|
*
|
|
20
|
-
* Must be used inside a chart component tree (where
|
|
31
|
+
* Must be used inside a chart component tree (where chart-local Vue state is provided).
|
|
21
32
|
*
|
|
22
33
|
* @returns A reactive Coordinate ({ x, y }) or undefined when no tooltip is active
|
|
23
34
|
*/
|
|
24
35
|
function useActiveTooltipCoordinate() {
|
|
25
|
-
return
|
|
36
|
+
return useTooltipSource().coordinate;
|
|
26
37
|
}
|
|
27
38
|
/**
|
|
28
39
|
* Returns the label of the currently active tooltip (the value from the axis dataKey at the hovered index).
|
|
29
40
|
*
|
|
30
|
-
* Must be used inside a chart component tree (where
|
|
41
|
+
* Must be used inside a chart component tree (where chart-local Vue state is provided).
|
|
31
42
|
*
|
|
32
43
|
* @returns A reactive string label or undefined when no tooltip is active
|
|
33
44
|
*/
|
|
34
45
|
function useActiveTooltipLabel() {
|
|
35
|
-
return
|
|
46
|
+
return useTooltipSource().label;
|
|
36
47
|
}
|
|
37
48
|
/**
|
|
38
49
|
* Returns the plot area rectangle { x, y, width, height }.
|
|
39
50
|
* This is the area inside all axes, legend, and brush — where graphical items render.
|
|
40
51
|
*
|
|
41
|
-
* Must be used inside a chart component tree (where
|
|
52
|
+
* Must be used inside a chart component tree (where chart-local Vue state is provided).
|
|
42
53
|
*
|
|
43
54
|
* @returns A reactive object with x, y, width, height or undefined if offset is not yet available
|
|
44
55
|
*/
|
|
45
56
|
function usePlotArea() {
|
|
46
|
-
|
|
47
|
-
return computed(() => {
|
|
48
|
-
const o = offset.value;
|
|
49
|
-
if (o == null) return void 0;
|
|
50
|
-
return {
|
|
51
|
-
x: o.left,
|
|
52
|
-
y: o.top,
|
|
53
|
-
width: o.width,
|
|
54
|
-
height: o.height
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
+
return useChartPresentation().viewBox;
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
60
|
* Returns the computed domain of an X axis.
|
|
@@ -62,7 +63,7 @@ function usePlotArea() {
|
|
|
62
63
|
* @returns A reactive domain (categorical or numerical) or undefined
|
|
63
64
|
*/
|
|
64
65
|
function useXAxisDomain(axisId = 0) {
|
|
65
|
-
return
|
|
66
|
+
return useChart().axis("xAxis", axisId).domain;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Returns the computed domain of a Y axis.
|
|
@@ -71,7 +72,7 @@ function useXAxisDomain(axisId = 0) {
|
|
|
71
72
|
* @returns A reactive domain (categorical or numerical) or undefined
|
|
72
73
|
*/
|
|
73
74
|
function useYAxisDomain(axisId = 0) {
|
|
74
|
-
return
|
|
75
|
+
return useChart().axis("yAxis", axisId).domain;
|
|
75
76
|
}
|
|
76
77
|
/**
|
|
77
78
|
* Returns the computed tick items of an X axis.
|
|
@@ -80,7 +81,7 @@ function useYAxisDomain(axisId = 0) {
|
|
|
80
81
|
* @returns A reactive array of TickItem or undefined
|
|
81
82
|
*/
|
|
82
83
|
function useXAxisTicks(axisId = 0) {
|
|
83
|
-
return
|
|
84
|
+
return useChart().axis("xAxis", axisId).ticks;
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
87
|
* Returns the computed tick items of a Y axis.
|
|
@@ -89,7 +90,7 @@ function useXAxisTicks(axisId = 0) {
|
|
|
89
90
|
* @returns A reactive array of TickItem or undefined
|
|
90
91
|
*/
|
|
91
92
|
function useYAxisTicks(axisId = 0) {
|
|
92
|
-
return
|
|
93
|
+
return useChart().axis("yAxis", axisId).ticks;
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
96
|
* Returns the scale function for an X axis, mapping data values to pixel coordinates.
|
|
@@ -98,7 +99,7 @@ function useYAxisTicks(axisId = 0) {
|
|
|
98
99
|
* @returns A reactive ScaleFunction or undefined if the axis is not yet initialized
|
|
99
100
|
*/
|
|
100
101
|
function useXAxisScale(axisId = 0) {
|
|
101
|
-
const scale =
|
|
102
|
+
const scale = useChart().axis("xAxis", axisId).scale;
|
|
102
103
|
return computed(() => {
|
|
103
104
|
const s = scale.value;
|
|
104
105
|
if (s == null) return void 0;
|
|
@@ -115,7 +116,7 @@ function useXAxisScale(axisId = 0) {
|
|
|
115
116
|
* @returns A reactive ScaleFunction or undefined if the axis is not yet initialized
|
|
116
117
|
*/
|
|
117
118
|
function useYAxisScale(axisId = 0) {
|
|
118
|
-
const scale =
|
|
119
|
+
const scale = useChart().axis("yAxis", axisId).scale;
|
|
119
120
|
return computed(() => {
|
|
120
121
|
const s = scale.value;
|
|
121
122
|
if (s == null) return void 0;
|
|
@@ -132,7 +133,7 @@ function useYAxisScale(axisId = 0) {
|
|
|
132
133
|
* @returns A reactive InverseScaleFunction or undefined
|
|
133
134
|
*/
|
|
134
135
|
function useXAxisInverseScale(axisId = 0) {
|
|
135
|
-
return
|
|
136
|
+
return useChart().axis("xAxis", axisId).inverseScale;
|
|
136
137
|
}
|
|
137
138
|
/**
|
|
138
139
|
* Returns the inverse scale function for a Y axis, mapping pixel coordinates back to data values.
|
|
@@ -141,7 +142,7 @@ function useXAxisInverseScale(axisId = 0) {
|
|
|
141
142
|
* @returns A reactive InverseScaleFunction or undefined
|
|
142
143
|
*/
|
|
143
144
|
function useYAxisInverseScale(axisId = 0) {
|
|
144
|
-
return
|
|
145
|
+
return useChart().axis("yAxis", axisId).inverseScale;
|
|
145
146
|
}
|
|
146
147
|
/**
|
|
147
148
|
* Returns the inverse scale function for an X axis that snaps to the nearest data point.
|
|
@@ -150,7 +151,7 @@ function useYAxisInverseScale(axisId = 0) {
|
|
|
150
151
|
* @returns A reactive InverseScaleFunction or undefined
|
|
151
152
|
*/
|
|
152
153
|
function useXAxisInverseDataSnapScale(axisId = 0) {
|
|
153
|
-
return
|
|
154
|
+
return useChart().axis("xAxis", axisId).inverseDataScale;
|
|
154
155
|
}
|
|
155
156
|
/**
|
|
156
157
|
* Returns the inverse scale function for a Y axis that snaps to the nearest data point.
|
|
@@ -159,7 +160,7 @@ function useXAxisInverseDataSnapScale(axisId = 0) {
|
|
|
159
160
|
* @returns A reactive InverseScaleFunction or undefined
|
|
160
161
|
*/
|
|
161
162
|
function useYAxisInverseDataSnapScale(axisId = 0) {
|
|
162
|
-
return
|
|
163
|
+
return useChart().axis("yAxis", axisId).inverseDataScale;
|
|
163
164
|
}
|
|
164
165
|
/**
|
|
165
166
|
* Returns the inverse scale function for an X axis that snaps to the nearest tick.
|
|
@@ -168,7 +169,7 @@ function useYAxisInverseDataSnapScale(axisId = 0) {
|
|
|
168
169
|
* @returns A reactive InverseScaleFunction or undefined
|
|
169
170
|
*/
|
|
170
171
|
function useXAxisInverseTickSnapScale(axisId = 0) {
|
|
171
|
-
return
|
|
172
|
+
return useChart().axis("xAxis", axisId).inverseTickScale;
|
|
172
173
|
}
|
|
173
174
|
/**
|
|
174
175
|
* Returns the inverse scale function for a Y axis that snaps to the nearest tick.
|
|
@@ -177,7 +178,7 @@ function useXAxisInverseTickSnapScale(axisId = 0) {
|
|
|
177
178
|
* @returns A reactive InverseScaleFunction or undefined
|
|
178
179
|
*/
|
|
179
180
|
function useYAxisInverseTickSnapScale(axisId = 0) {
|
|
180
|
-
return
|
|
181
|
+
return useChart().axis("yAxis", axisId).inverseTickScale;
|
|
181
182
|
}
|
|
182
183
|
/**
|
|
183
184
|
* Convenience hook that maps a data point to pixel coordinates using both X and Y axis scales.
|
|
@@ -204,4 +205,4 @@ function useCartesianScale(dataPoint, xAxisId = 0, yAxisId = 0) {
|
|
|
204
205
|
});
|
|
205
206
|
}
|
|
206
207
|
//#endregion
|
|
207
|
-
export { useActiveTooltipCoordinate, useActiveTooltipLabel, useCartesianScale, useIsTooltipActive, usePlotArea, useXAxisDomain, useXAxisInverseDataSnapScale, useXAxisInverseScale, useXAxisInverseTickSnapScale, useXAxisScale, useXAxisTicks, useYAxisDomain, useYAxisInverseDataSnapScale, useYAxisInverseScale, useYAxisInverseTickSnapScale, useYAxisScale, useYAxisTicks };
|
|
208
|
+
export { useActiveTooltipCoordinate, useActiveTooltipLabel, useCartesianScale, useChartHeight, useChartWidth, useIsTooltipActive, useMargin, usePlotArea, useXAxisDomain, useXAxisInverseDataSnapScale, useXAxisInverseScale, useXAxisInverseTickSnapScale, useXAxisScale, useXAxisTicks, useYAxisDomain, useYAxisInverseDataSnapScale, useYAxisInverseScale, useYAxisInverseTickSnapScale, useYAxisScale, useYAxisTicks };
|