vccs 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/cartesian/funnel/Funnel.d.ts +2 -0
  2. package/dist/cartesian/funnel/index.d.ts +2 -0
  3. package/dist/cartesian/funnel/type.d.ts +74 -5
  4. package/dist/cartesian/index.d.ts +1 -0
  5. package/dist/chart/FunnelChart.d.ts +1 -0
  6. package/dist/chart/index.d.ts +1 -0
  7. package/dist/es/animation/Animate.mjs +48 -22
  8. package/dist/es/cartesian/GraphicalItemClipPath.mjs +16 -15
  9. package/dist/es/cartesian/area/ActivePoints.mjs +44 -40
  10. package/dist/es/cartesian/area/Area.mjs +42 -31
  11. package/dist/es/cartesian/area/ClipRect.mjs +79 -58
  12. package/dist/es/cartesian/area/RenderArea.mjs +142 -108
  13. package/dist/es/cartesian/area/hooks/useArea.mjs +71 -47
  14. package/dist/es/cartesian/area/type.mjs +11 -11
  15. package/dist/es/cartesian/area/utils.mjs +69 -49
  16. package/dist/es/cartesian/axis/XAxis.mjs +87 -73
  17. package/dist/es/cartesian/axis/YAxis.mjs +67 -56
  18. package/dist/es/cartesian/bar/Bar.mjs +93 -71
  19. package/dist/es/cartesian/bar/components/BarBackground.mjs +22 -19
  20. package/dist/es/cartesian/bar/components/BarRectangles.mjs +117 -80
  21. package/dist/es/cartesian/bar/hooks/useBar.mjs +49 -37
  22. package/dist/es/cartesian/bar/type.mjs +9 -9
  23. package/dist/es/cartesian/bar/utils.mjs +97 -70
  24. package/dist/es/cartesian/cartesian-axis/CartesianAxis.mjs +165 -115
  25. package/dist/es/cartesian/cartesian-grid/Background.mjs +19 -16
  26. package/dist/es/cartesian/cartesian-grid/CartesianGrid.mjs +116 -97
  27. package/dist/es/cartesian/cartesian-grid/HorizontalGridLines.mjs +24 -23
  28. package/dist/es/cartesian/cartesian-grid/HorizontalStripes.mjs +24 -24
  29. package/dist/es/cartesian/cartesian-grid/VerticalGridLines.mjs +23 -22
  30. package/dist/es/cartesian/cartesian-grid/VerticalStripes.mjs +24 -24
  31. package/dist/es/cartesian/cartesian-grid/const.mjs +317 -10
  32. package/dist/es/cartesian/cartesian-grid/utils.mjs +18 -13
  33. package/dist/es/cartesian/error-bar/ErrorBar.mjs +111 -83
  34. package/dist/es/cartesian/error-bar/ErrorBarContext.mjs +13 -12
  35. package/dist/es/cartesian/funnel/Funnel.mjs +177 -0
  36. package/dist/es/cartesian/funnel/type.mjs +80 -0
  37. package/dist/es/cartesian/funnel/utils.mjs +102 -0
  38. package/dist/es/cartesian/line/ActivePoints.mjs +45 -41
  39. package/dist/es/cartesian/line/Line.mjs +41 -37
  40. package/dist/es/cartesian/line/StaticLine.mjs +191 -122
  41. package/dist/es/cartesian/line/hooks/useLine.mjs +60 -44
  42. package/dist/es/cartesian/line/type.mjs +11 -11
  43. package/dist/es/cartesian/line/utils.mjs +27 -26
  44. package/dist/es/cartesian/reference-area/ReferenceArea.mjs +86 -69
  45. package/dist/es/cartesian/reference-line/ReferenceLine.mjs +99 -77
  46. package/dist/es/cartesian/scatter/Scatter.mjs +168 -140
  47. package/dist/es/cartesian/scatter/hooks/useScatter.mjs +18 -14
  48. package/dist/es/cartesian/useNeedsClip.mjs +18 -9
  49. package/dist/es/cartesian/utils/get-ticks.mjs +103 -68
  50. package/dist/es/cartesian/z-axis/ZAxis.mjs +30 -28
  51. package/dist/es/chart/AreaChart.mjs +5 -5
  52. package/dist/es/chart/BarChart.mjs +5 -5
  53. package/dist/es/chart/ComposedChart.mjs +5 -5
  54. package/dist/es/chart/FunnelChart.mjs +11 -0
  55. package/dist/es/chart/LegendPortalContext.mjs +3 -3
  56. package/dist/es/chart/LineChart.mjs +5 -5
  57. package/dist/es/chart/PieChart.mjs +5 -5
  58. package/dist/es/chart/RadarChart.mjs +5 -5
  59. package/dist/es/chart/RadialBarChart.mjs +5 -5
  60. package/dist/es/chart/RechartsWrapper.mjs +111 -88
  61. package/dist/es/chart/ScatterChart.mjs +5 -5
  62. package/dist/es/chart/Surface.mjs +3 -3
  63. package/dist/es/chart/Surface.vue_vue_type_script_setup_true_lang.mjs +51 -45
  64. package/dist/es/chart/TooltipPortalContext.mjs +3 -3
  65. package/dist/es/chart/const.mjs +2 -2
  66. package/dist/es/chart/generateCategoricalChart.mjs +97 -88
  67. package/dist/es/chart/provideClipPathId.mjs +12 -7
  68. package/dist/es/components/Cell.mjs +16 -4
  69. package/dist/es/components/Text.mjs +3 -3
  70. package/dist/es/components/Text.vue_vue_type_script_setup_true_lang.mjs +106 -69
  71. package/dist/es/components/Tooltip.mjs +274 -199
  72. package/dist/es/components/label/Label.mjs +30 -26
  73. package/dist/es/components/label/LabelList.mjs +45 -39
  74. package/dist/es/components/label/types.mjs +8 -5
  75. package/dist/es/components/label/utils.mjs +194 -162
  76. package/dist/es/components/legend/Legend.mjs +82 -71
  77. package/dist/es/components/legend/LegendSymbol.mjs +40 -38
  78. package/dist/es/components/legend/hooks/useLegend.mjs +66 -46
  79. package/dist/es/components/legend/hooks/useLegendContent.mjs +52 -31
  80. package/dist/es/components/legend/type.mjs +2 -2
  81. package/dist/es/components/legend/utils.mjs +19 -11
  82. package/dist/es/components/utils.mjs +35 -22
  83. package/dist/es/container/ClipPath.mjs +14 -14
  84. package/dist/es/container/Layer.mjs +9 -7
  85. package/dist/es/container/ResponsiveContainer.mjs +3 -3
  86. package/dist/es/container/ResponsiveContainer.vue_vue_type_script_setup_true_lang.mjs +109 -77
  87. package/dist/es/container/Surface.mjs +23 -19
  88. package/dist/es/container/useSizeContext.mjs +3 -3
  89. package/dist/es/context/ChartDataContextProvider.mjs +19 -13
  90. package/dist/es/context/PanoramaContextProvider.mjs +15 -10
  91. package/dist/es/context/accessibilityContext.mjs +3 -3
  92. package/dist/es/context/cartesianLabelListContext.mjs +3 -3
  93. package/dist/es/context/chartLayoutContext.mjs +33 -30
  94. package/dist/es/context/cursorLayerContext.mjs +3 -3
  95. package/dist/es/context/graphicalLayerContext.mjs +3 -3
  96. package/dist/es/context/labelLayerContext.mjs +3 -3
  97. package/dist/es/context/polarLabelViewBoxContext.mjs +5 -5
  98. package/dist/es/context/useTooltipAxis.mjs +14 -12
  99. package/dist/es/events/useChartSynchronisation.mjs +91 -66
  100. package/dist/es/hooks/useIsAnimating.mjs +28 -0
  101. package/dist/es/hooks/useSetupGraphicalItem.mjs +52 -43
  102. package/dist/es/index.mjs +46 -42
  103. package/dist/es/polar/pie/Pie.mjs +131 -115
  104. package/dist/es/polar/pie/type.mjs +6 -6
  105. package/dist/es/polar/radar/PolarAngleAxis.mjs +103 -84
  106. package/dist/es/polar/radar/PolarGrid.mjs +72 -59
  107. package/dist/es/polar/radar/PolarRadiusAxis.mjs +90 -65
  108. package/dist/es/polar/radar/Radar.mjs +181 -145
  109. package/dist/es/polar/radial-bar/RadialBar.mjs +161 -140
  110. package/dist/es/polar/radial-bar/type.mjs +9 -9
  111. package/dist/es/shape/Cross.mjs +11 -10
  112. package/dist/es/shape/Curve.mjs +69 -43
  113. package/dist/es/shape/Dot.mjs +12 -11
  114. package/dist/es/shape/Rectangle.mjs +41 -26
  115. package/dist/es/shape/Sector.mjs +103 -75
  116. package/dist/es/shape/Symbols.mjs +45 -34
  117. package/dist/es/shape/Trapezoid.mjs +52 -0
  118. package/dist/es/state/ReportChartProps.mjs +21 -20
  119. package/dist/es/state/ReportMainChartProps.mjs +26 -21
  120. package/dist/es/state/ReportPolarOptions.mjs +23 -22
  121. package/dist/es/state/SetGraphicalItem.mjs +42 -27
  122. package/dist/es/state/SetLegendPayload.mjs +17 -13
  123. package/dist/es/state/SetTooltipEntrySettings.mjs +14 -12
  124. package/dist/es/state/brushSlice.mjs +12 -8
  125. package/dist/es/state/cartesianAxisSlice.mjs +23 -17
  126. package/dist/es/state/chartDataSlice.mjs +18 -13
  127. package/dist/es/state/externalEventsMiddleware.mjs +25 -15
  128. package/dist/es/state/graphicalItemsSlice.mjs +29 -25
  129. package/dist/es/state/hooks.mjs +4 -3
  130. package/dist/es/state/keyboardEventsMiddleware.mjs +50 -42
  131. package/dist/es/state/layoutSlice.mjs +18 -12
  132. package/dist/es/state/legendSlice.mjs +19 -14
  133. package/dist/es/state/mouseEventsMiddleware.mjs +31 -24
  134. package/dist/es/state/optionsSlice.mjs +14 -11
  135. package/dist/es/state/polarAxisSlice.mjs +15 -13
  136. package/dist/es/state/polarOptionsSlice.mjs +8 -6
  137. package/dist/es/state/reduxDevtoolsJsonStringifyReplacer.mjs +5 -3
  138. package/dist/es/state/referenceElementsSlice.mjs +21 -19
  139. package/dist/es/state/rootPropsSlice.mjs +20 -9
  140. package/dist/es/state/selectors/areaSelectors.mjs +65 -55
  141. package/dist/es/state/selectors/axisSelectors.mjs +755 -569
  142. package/dist/es/state/selectors/barSelectors.mjs +225 -162
  143. package/dist/es/state/selectors/brushSelectors.mjs +15 -14
  144. package/dist/es/state/selectors/combiners/combineActiveLabel.mjs +6 -5
  145. package/dist/es/state/selectors/combiners/combineActiveTooltipIndex.mjs +36 -27
  146. package/dist/es/state/selectors/combiners/combineAxisRangeWithReverse.mjs +5 -3
  147. package/dist/es/state/selectors/combiners/combineCoordinateForDefaultIndex.mjs +13 -11
  148. package/dist/es/state/selectors/combiners/combineTooltipInteractionState.mjs +26 -21
  149. package/dist/es/state/selectors/combiners/combineTooltipPayloadConfigurations.mjs +10 -6
  150. package/dist/es/state/selectors/common.mjs +2 -2
  151. package/dist/es/state/selectors/containerSelectors.mjs +5 -2
  152. package/dist/es/state/selectors/dataSelectors.mjs +28 -9
  153. package/dist/es/state/selectors/funnelSelectors.mjs +38 -0
  154. package/dist/es/state/selectors/legendSelectors.mjs +7 -6
  155. package/dist/es/state/selectors/lineSelectors.mjs +54 -47
  156. package/dist/es/state/selectors/pickAxisId.mjs +2 -2
  157. package/dist/es/state/selectors/pickAxisType.mjs +2 -2
  158. package/dist/es/state/selectors/pieSelectors.mjs +116 -81
  159. package/dist/es/state/selectors/polarAxisSelectors.mjs +113 -94
  160. package/dist/es/state/selectors/polarGridSelectors.mjs +13 -11
  161. package/dist/es/state/selectors/polarScaleSelectors.mjs +49 -46
  162. package/dist/es/state/selectors/polarSelectors.mjs +79 -62
  163. package/dist/es/state/selectors/radarSelectors.mjs +111 -91
  164. package/dist/es/state/selectors/radialBarSelectors.mjs +230 -183
  165. package/dist/es/state/selectors/rootPropsSelectors.mjs +11 -5
  166. package/dist/es/state/selectors/scatterSelectors.mjs +111 -95
  167. package/dist/es/state/selectors/selectActivePropsFromChartPointer.mjs +19 -17
  168. package/dist/es/state/selectors/selectAllAxes.mjs +8 -3
  169. package/dist/es/state/selectors/selectChartOffset.mjs +59 -50
  170. package/dist/es/state/selectors/selectChartOffsetInternal.mjs +55 -44
  171. package/dist/es/state/selectors/selectTooltipEventType.mjs +15 -14
  172. package/dist/es/state/selectors/selectTooltipPayloadSearcher.mjs +3 -3
  173. package/dist/es/state/selectors/selectTooltipSettings.mjs +2 -2
  174. package/dist/es/state/selectors/selectTooltipState.mjs +2 -2
  175. package/dist/es/state/selectors/selectors.mjs +94 -75
  176. package/dist/es/state/selectors/tooltipSelectors.mjs +253 -204
  177. package/dist/es/state/selectors/touchSelectors.mjs +17 -14
  178. package/dist/es/state/store.mjs +46 -46
  179. package/dist/es/state/tooltipSlice.mjs +64 -37
  180. package/dist/es/state/touchEventsMiddleware.mjs +35 -29
  181. package/dist/es/state/utils/useReportScale.mjs +16 -13
  182. package/dist/es/synchronisation/syncSelectors.mjs +3 -3
  183. package/dist/es/synchronisation/useChartSynchronisation.mjs +33 -19
  184. package/dist/es/types/event.mjs +164 -2
  185. package/dist/es/utils/ReduceCSSCalc.mjs +81 -49
  186. package/dist/es/utils/VueUtils.mjs +35 -14
  187. package/dist/es/utils/attrs.mjs +43 -26
  188. package/dist/es/utils/cartesian.mjs +47 -15
  189. package/dist/es/utils/chart.mjs +298 -197
  190. package/dist/es/utils/const.mjs +30 -2
  191. package/dist/es/utils/createContext.mjs +28 -9
  192. package/dist/es/utils/data-utils.mjs +9 -8
  193. package/dist/es/utils/data.mjs +35 -21
  194. package/dist/es/utils/events.mjs +5 -3
  195. package/dist/es/utils/getLinearRegression.mjs +28 -11
  196. package/dist/es/utils/grid.mjs +20 -5
  197. package/dist/es/utils/isDomainSpecifiedByUser.mjs +105 -54
  198. package/dist/es/utils/legend.mjs +13 -12
  199. package/dist/es/utils/log.mjs +10 -7
  200. package/dist/es/utils/payload/getUniqPayload.mjs +6 -4
  201. package/dist/es/utils/polar.mjs +37 -30
  202. package/dist/es/utils/props.mjs +16 -10
  203. package/dist/es/utils/resolveDefaultProps.mjs +23 -4
  204. package/dist/es/utils/scale/getNiceTickValues.mjs +127 -49
  205. package/dist/es/utils/scale/utils/arithmetic.mjs +49 -19
  206. package/dist/es/utils/scale/utils/utils.mjs +43 -24
  207. package/dist/es/utils/style.mjs +24 -13
  208. package/dist/es/utils/tick.mjs +34 -23
  209. package/dist/es/utils/tooltip/translate.mjs +63 -49
  210. package/dist/es/utils/validate.mjs +40 -29
  211. package/dist/hooks/useIsAnimating.d.ts +14 -0
  212. package/dist/shape/Trapezoid.d.ts +31 -0
  213. package/dist/shape/index.d.ts +1 -0
  214. package/dist/state/graphicalItemsSlice.d.ts +1 -1
  215. package/package.json +1 -1
@@ -1,47 +1,55 @@
1
- import { selectEventEmitter as e, selectSyncId as t, selectSyncMethod as n } from "../state/selectors/rootPropsSelectors.mjs";
2
- import { setSyncInteraction as r } from "../state/tooltipSlice.mjs";
3
- import { selectTooltipAxisTicks as i } from "../state/selectors/tooltipSelectors.mjs";
4
- import { useAppDispatch as a, useAppSelector as o } from "../state/hooks.mjs";
5
- import { useChartLayout as s, useViewBox as c } from "../context/chartLayoutContext.mjs";
6
- import { createEventEmitter as l } from "../state/optionsSlice.mjs";
7
- import { setDataStartEndIndexes as u } from "../state/chartDataSlice.mjs";
8
- import { BRUSH_SYNC_EVENT as d, TOOLTIP_SYNC_EVENT as f, eventCenter as p } from "../utils/events.mjs";
9
- import { onMounted as m, watch as h } from "vue";
1
+ import { selectEventEmitter, selectSyncId, selectSyncMethod } from "../state/selectors/rootPropsSelectors.mjs";
2
+ import { setSyncInteraction } from "../state/tooltipSlice.mjs";
3
+ import { selectTooltipAxisTicks } from "../state/selectors/tooltipSelectors.mjs";
4
+ import { useAppDispatch, useAppSelector } from "../state/hooks.mjs";
5
+ import { useChartLayout, useViewBox } from "../context/chartLayoutContext.mjs";
6
+ import { createEventEmitter } from "../state/optionsSlice.mjs";
7
+ import { setDataStartEndIndexes } from "../state/chartDataSlice.mjs";
8
+ import { BRUSH_SYNC_EVENT, TOOLTIP_SYNC_EVENT, eventCenter } from "../utils/events.mjs";
9
+ import { onMounted, watch } from "vue";
10
10
  //#region src/events/useChartSynchronisation.tsx
11
- function g() {
12
- let l = o(t), u = o(e), d = a(), m = o(n), g = o(i), _ = s(), v = c();
13
- h([
14
- o((e) => e.rootProps.class),
15
- u,
16
- l,
17
- m,
18
- g,
19
- _,
20
- v
21
- ], (e, t, n) => {
22
- if (l.value == null) return;
23
- let i = (e, t, n) => {
24
- if (u.value === n || l.value !== e) return;
25
- if (m.value === "index") {
26
- d(t);
11
+ function useTooltipSyncEventsListener() {
12
+ const mySyncId = useAppSelector(selectSyncId);
13
+ const myEventEmitter = useAppSelector(selectEventEmitter);
14
+ const dispatch = useAppDispatch();
15
+ const syncMethod = useAppSelector(selectSyncMethod);
16
+ const tooltipTicks = useAppSelector(selectTooltipAxisTicks);
17
+ const layout = useChartLayout();
18
+ const viewBox = useViewBox();
19
+ watch([
20
+ useAppSelector((state) => state.rootProps.class),
21
+ myEventEmitter,
22
+ mySyncId,
23
+ syncMethod,
24
+ tooltipTicks,
25
+ layout,
26
+ viewBox
27
+ ], (v, o, onCleanup) => {
28
+ if (mySyncId.value == null) return;
29
+ const listener = (incomingSyncId, action, emitter) => {
30
+ if (myEventEmitter.value === emitter) return;
31
+ if (mySyncId.value !== incomingSyncId) return;
32
+ if (syncMethod.value === "index") {
33
+ dispatch(action);
27
34
  return;
28
35
  }
29
- if (g.value == null) return;
30
- let i;
31
- if (typeof m.value == "function") {
32
- let e = {
33
- activeTooltipIndex: t.payload.index == null ? void 0 : Number(t.payload.index),
34
- isTooltipActive: t.payload.active,
35
- activeIndex: t.payload.index == null ? void 0 : Number(t.payload.index),
36
- activeLabel: t.payload.label,
37
- activeDataKey: t.payload.dataKey,
38
- activeCoordinate: t.payload.coordinate
39
- }, n = m.value(g.value, e);
40
- i = g.value[n];
41
- } else m.value === "value" && (i = g.value.find((e) => String(e.value) === t.payload.label));
42
- if (i == null || t.payload.active === !1) {
43
- d(r({
44
- active: !1,
36
+ if (tooltipTicks.value == null) return;
37
+ let activeTick;
38
+ if (typeof syncMethod.value === "function") {
39
+ const syncMethodParam = {
40
+ activeTooltipIndex: action.payload.index == null ? void 0 : Number(action.payload.index),
41
+ isTooltipActive: action.payload.active,
42
+ activeIndex: action.payload.index == null ? void 0 : Number(action.payload.index),
43
+ activeLabel: action.payload.label,
44
+ activeDataKey: action.payload.dataKey,
45
+ activeCoordinate: action.payload.coordinate
46
+ };
47
+ const activeTooltipIndex = syncMethod.value(tooltipTicks.value, syncMethodParam);
48
+ activeTick = tooltipTicks.value[activeTooltipIndex];
49
+ } else if (syncMethod.value === "value") activeTick = tooltipTicks.value.find((tick) => String(tick.value) === action.payload.label);
50
+ if (activeTick == null || action.payload.active === false) {
51
+ dispatch(setSyncInteraction({
52
+ active: false,
45
53
  coordinate: void 0,
46
54
  dataKey: void 0,
47
55
  index: null,
@@ -49,40 +57,57 @@ function g() {
49
57
  }));
50
58
  return;
51
59
  }
52
- let { x: a, y: o } = t.payload.coordinate, s = Math.min(a, v.value?.x + v.value?.width), c = Math.min(o, v.value?.y + v.value?.height), f = {
53
- x: _.value === "horizontal" ? i.coordinate : s,
54
- y: _.value === "horizontal" ? c : i.coordinate
60
+ const { x, y } = action.payload.coordinate;
61
+ const validateChartX = Math.min(x, viewBox.value?.x + viewBox.value?.width);
62
+ const validateChartY = Math.min(y, viewBox.value?.y + viewBox.value?.height);
63
+ const activeCoordinate = {
64
+ x: layout.value === "horizontal" ? activeTick.coordinate : validateChartX,
65
+ y: layout.value === "horizontal" ? validateChartY : activeTick.coordinate
55
66
  };
56
- d(r({
57
- active: t.payload.active,
58
- coordinate: f,
59
- dataKey: t.payload.dataKey,
60
- index: String(i.index),
61
- label: t.payload.label
67
+ dispatch(setSyncInteraction({
68
+ active: action.payload.active,
69
+ coordinate: activeCoordinate,
70
+ dataKey: action.payload.dataKey,
71
+ index: String(activeTick.index),
72
+ label: action.payload.label
62
73
  }));
63
74
  };
64
- p.on(f, i), n(() => {
65
- p.off(f, i);
75
+ eventCenter.on(TOOLTIP_SYNC_EVENT, listener);
76
+ onCleanup(() => {
77
+ eventCenter.off(TOOLTIP_SYNC_EVENT, listener);
66
78
  });
67
79
  });
68
80
  }
69
- function _() {
70
- let n = o(t), r = o(e), i = a();
71
- h([n, r], (e, t, a) => {
72
- if (n == null) return;
73
- let o = (e, t, a) => {
74
- r.value !== a && n.value === e && i(u(t));
81
+ function useBrushSyncEventsListener() {
82
+ const mySyncId = useAppSelector(selectSyncId);
83
+ const myEventEmitter = useAppSelector(selectEventEmitter);
84
+ const dispatch = useAppDispatch();
85
+ watch([mySyncId, myEventEmitter], (v, o, onCleanup) => {
86
+ if (mySyncId == null) return;
87
+ const listener = (incomingSyncId, action, emitter) => {
88
+ if (myEventEmitter.value === emitter) return;
89
+ if (mySyncId.value === incomingSyncId) dispatch(setDataStartEndIndexes(action));
75
90
  };
76
- p.on(d, o), a(() => {
77
- p.off(d, o);
91
+ eventCenter.on(BRUSH_SYNC_EVENT, listener);
92
+ onCleanup(() => {
93
+ eventCenter.off(BRUSH_SYNC_EVENT, listener);
78
94
  });
79
95
  });
80
96
  }
81
- function v() {
82
- let e = a();
83
- m(() => {
84
- e(l());
85
- }), g(), _();
97
+ /**
98
+ * Will receive synchronisation events from other charts.
99
+ *
100
+ * Reads syncMethod from state and decides how to synchronise the tooltip based on that.
101
+ *
102
+ * @returns void
103
+ */
104
+ function useSynchronisedEventsFromOtherCharts() {
105
+ const dispatch = useAppDispatch();
106
+ onMounted(() => {
107
+ dispatch(createEventEmitter());
108
+ });
109
+ useTooltipSyncEventsListener();
110
+ useBrushSyncEventsListener();
86
111
  }
87
112
  //#endregion
88
- export { v as useSynchronisedEventsFromOtherCharts };
113
+ export { useSynchronisedEventsFromOtherCharts };
@@ -0,0 +1,28 @@
1
+ import { computed, ref, watch } from "vue";
2
+ //#region src/hooks/useIsAnimating.ts
3
+ /**
4
+ * Tracks whether a component is currently animating.
5
+ *
6
+ * When `isAnimationActive` is `false`, always returns `false` regardless of
7
+ * internal state — this ensures `isAnimationActive={false}` immediately
8
+ * disables all animation-gated rendering (e.g. deferred LabelList).
9
+ *
10
+ * When `isAnimationActive` is `true`, starts as `true` and can be set to
11
+ * `false` via the returned ref (typically on animation end).
12
+ *
13
+ * Re-entering `isAnimationActive=true` resets internal state to `true`.
14
+ */
15
+ function useIsAnimating(isAnimationActive) {
16
+ const internal = ref(isAnimationActive());
17
+ watch(isAnimationActive, (active) => {
18
+ if (active) internal.value = true;
19
+ });
20
+ return computed({
21
+ get: () => isAnimationActive() && internal.value,
22
+ set: (val) => {
23
+ internal.value = val;
24
+ }
25
+ });
26
+ }
27
+ //#endregion
28
+ export { useIsAnimating };
@@ -1,57 +1,66 @@
1
- import { useIsPanorama as e } from "../context/PanoramaContextProvider.mjs";
2
- import { getTooltipNameProp as t } from "../utils/chart.mjs";
3
- import { SetCartesianGraphicalItem as n } from "../state/SetGraphicalItem.mjs";
4
- import { SetLegendPayload as r } from "../state/SetLegendPayload.mjs";
5
- import { SetTooltipEntrySettings as i } from "../state/SetTooltipEntrySettings.mjs";
6
- import { computed as a, useAttrs as o } from "vue";
1
+ import { useIsPanorama } from "../context/PanoramaContextProvider.mjs";
2
+ import { getTooltipNameProp } from "../utils/chart.mjs";
3
+ import { SetCartesianGraphicalItem } from "../state/SetGraphicalItem.mjs";
4
+ import { SetLegendPayload } from "../state/SetLegendPayload.mjs";
5
+ import { SetTooltipEntrySettings } from "../state/SetTooltipEntrySettings.mjs";
6
+ import { computed, useAttrs } from "vue";
7
7
  //#region src/hooks/useSetupGraphicalItem.ts
8
- function s(e, t) {
9
- return e && e !== "none" ? e : t;
8
+ function getLegendItemColor(stroke, fill) {
9
+ return stroke && stroke !== "none" ? stroke : fill;
10
10
  }
11
- function c(e, t, n) {
12
- return e === "bar" ? n : s(t, n);
11
+ function getItemColor(type, stroke, fill) {
12
+ if (type === "bar") return fill;
13
+ return getLegendItemColor(stroke, fill);
13
14
  }
14
- function l(s, l, d) {
15
- let f = o(), p = e(), m = a(() => [{
16
- inactive: s.hide,
17
- dataKey: s.dataKey,
18
- type: s.legendType,
19
- color: c(l, f.stroke ?? s.stroke, f.fill ?? s.fill),
20
- value: t(s.name, s.dataKey),
21
- payload: { ...s }
22
- }]);
23
- n(a(() => ({
24
- ...s,
25
- isPanorama: p,
26
- type: l,
27
- errorBars: d?.errorBars?.value
28
- }))), r(m), d?.skipTooltip || i({
29
- fn: u,
30
- args: a(() => ({
31
- ...s,
32
- ...f,
33
- _itemType: l
15
+ function useSetupGraphicalItem(props, type, options) {
16
+ const attrs = useAttrs();
17
+ const isPanorama = useIsPanorama();
18
+ const legendPayload = computed(() => {
19
+ return [{
20
+ inactive: props.hide,
21
+ dataKey: props.dataKey,
22
+ type: props.legendType,
23
+ color: getItemColor(type, attrs.stroke ?? props.stroke, attrs.fill ?? props.fill),
24
+ value: getTooltipNameProp(props.name, props.dataKey),
25
+ payload: { ...props }
26
+ }];
27
+ });
28
+ SetCartesianGraphicalItem(computed(() => {
29
+ return {
30
+ ...props,
31
+ isPanorama,
32
+ type,
33
+ errorBars: options?.errorBars?.value
34
+ };
35
+ }));
36
+ SetLegendPayload(legendPayload);
37
+ if (!options?.skipTooltip) SetTooltipEntrySettings({
38
+ fn: getTooltipEntrySettings,
39
+ args: computed(() => ({
40
+ ...props,
41
+ ...attrs,
42
+ _itemType: type
34
43
  }))
35
44
  });
36
45
  }
37
- function u(e) {
38
- let { dataKey: n, data: r, stroke: i, fill: a, name: o, hide: s, unit: l, _itemType: u } = e;
46
+ function getTooltipEntrySettings(props) {
47
+ const { dataKey, data, stroke, fill, name, hide, unit, _itemType } = props;
39
48
  return {
40
- dataDefinedOnItem: r,
49
+ dataDefinedOnItem: data,
41
50
  positions: void 0,
42
51
  settings: {
43
- stroke: i,
44
- strokeWidth: e["stroke-width"],
45
- fill: a,
46
- dataKey: n,
52
+ stroke,
53
+ strokeWidth: props["stroke-width"],
54
+ fill,
55
+ dataKey,
47
56
  nameKey: void 0,
48
- name: t(o, n),
49
- hide: s,
50
- type: e.tooltipType,
51
- color: c(u, i, a),
52
- unit: l
57
+ name: getTooltipNameProp(name, dataKey),
58
+ hide,
59
+ type: props.tooltipType,
60
+ color: getItemColor(_itemType, stroke, fill),
61
+ unit
53
62
  }
54
63
  };
55
64
  }
56
65
  //#endregion
57
- export { l as useSetupGraphicalItem };
66
+ export { useSetupGraphicalItem };
package/dist/es/index.mjs CHANGED
@@ -1,42 +1,46 @@
1
- import { Curve as e, CurveVueProps as t, getPath as n } from "./shape/Curve.mjs";
2
- import { Dot as r } from "./shape/Dot.mjs";
3
- import { Label as i } from "./components/label/Label.mjs";
4
- import { LabelList as a } from "./components/label/LabelList.mjs";
5
- import { Area as o } from "./cartesian/area/Area.mjs";
6
- import { CartesianAxis as s } from "./cartesian/cartesian-axis/CartesianAxis.mjs";
7
- import { XAxis as c } from "./cartesian/axis/XAxis.mjs";
8
- import { YAxis as l } from "./cartesian/axis/YAxis.mjs";
9
- import { Rectangle as u } from "./shape/Rectangle.mjs";
10
- import { createErrorBarRegistry as d, provideErrorBarContext as f, provideErrorBarRegistry as p, useErrorBarContext as m, useErrorBarRegistry as h } from "./cartesian/error-bar/ErrorBarContext.mjs";
11
- import { Cell as g } from "./components/Cell.mjs";
12
- import { Bar as _ } from "./cartesian/bar/Bar.mjs";
13
- import { CartesianGrid as v } from "./cartesian/cartesian-grid/CartesianGrid.mjs";
14
- import { ErrorBar as y, ErrorBarVueProps as b } from "./cartesian/error-bar/ErrorBar.mjs";
15
- import { LineContextKey as x, provideLineContext as S, useLine as C, useLineContext as w } from "./cartesian/line/hooks/useLine.mjs";
16
- import { Line as T } from "./cartesian/line/Line.mjs";
17
- import { ReferenceArea as E } from "./cartesian/reference-area/ReferenceArea.mjs";
18
- import { ReferenceLine as D } from "./cartesian/reference-line/ReferenceLine.mjs";
19
- import { Symbols as O } from "./shape/Symbols.mjs";
20
- import { Scatter as k } from "./cartesian/scatter/Scatter.mjs";
21
- import { ZAxis as A } from "./cartesian/z-axis/ZAxis.mjs";
22
- import { AreaChart as j } from "./chart/AreaChart.mjs";
23
- import { BarChart as M } from "./chart/BarChart.mjs";
24
- import { ComposedChart as N } from "./chart/ComposedChart.mjs";
25
- import { LineChart as P } from "./chart/LineChart.mjs";
26
- import { PieChart as F } from "./chart/PieChart.mjs";
27
- import { RadarChart as I } from "./chart/RadarChart.mjs";
28
- import { ScatterChart as L } from "./chart/ScatterChart.mjs";
29
- import { RadialBarChart as R } from "./chart/RadialBarChart.mjs";
30
- import z from "./container/ResponsiveContainer.mjs";
31
- import B from "./components/legend/Legend.mjs";
32
- import { Cross as V } from "./shape/Cross.mjs";
33
- import { Sector as H } from "./shape/Sector.mjs";
34
- import U, { getUniqPayload as W } from "./components/Tooltip.mjs";
35
- import { PieVueProps as G } from "./polar/pie/type.mjs";
36
- import { Pie as K } from "./polar/pie/Pie.mjs";
37
- import { Radar as q } from "./polar/radar/Radar.mjs";
38
- import { PolarGrid as J } from "./polar/radar/PolarGrid.mjs";
39
- import { PolarAngleAxis as Y } from "./polar/radar/PolarAngleAxis.mjs";
40
- import { PolarRadiusAxis as X } from "./polar/radar/PolarRadiusAxis.mjs";
41
- import { RadialBar as Z } from "./polar/radial-bar/RadialBar.mjs";
42
- export { o as Area, j as AreaChart, _ as Bar, M as BarChart, s as CartesianAxis, v as CartesianGrid, g as Cell, N as ComposedChart, V as Cross, e as Curve, t as CurveVueProps, r as Dot, y as ErrorBar, b as ErrorBarVueProps, i as Label, a as LabelList, B as Legend, T as Line, P as LineChart, x as LineContextKey, K as Pie, F as PieChart, G as PieVueProps, Y as PolarAngleAxis, J as PolarGrid, X as PolarRadiusAxis, q as Radar, I as RadarChart, Z as RadialBar, R as RadialBarChart, u as Rectangle, E as ReferenceArea, D as ReferenceLine, z as ResponsiveContainer, k as Scatter, L as ScatterChart, H as Sector, O as Symbols, U as Tooltip, c as XAxis, l as YAxis, A as ZAxis, d as createErrorBarRegistry, n as getPath, W as getUniqPayload, f as provideErrorBarContext, p as provideErrorBarRegistry, S as provideLineContext, m as useErrorBarContext, h as useErrorBarRegistry, C as useLine, w as useLineContext };
1
+ import { Curve, CurveVueProps, getPath } from "./shape/Curve.mjs";
2
+ import { Dot } from "./shape/Dot.mjs";
3
+ import { Label } from "./components/label/Label.mjs";
4
+ import { LabelList } from "./components/label/LabelList.mjs";
5
+ import { Area } from "./cartesian/area/Area.mjs";
6
+ import { CartesianAxis } from "./cartesian/cartesian-axis/CartesianAxis.mjs";
7
+ import { XAxis } from "./cartesian/axis/XAxis.mjs";
8
+ import { YAxis } from "./cartesian/axis/YAxis.mjs";
9
+ import { Rectangle } from "./shape/Rectangle.mjs";
10
+ import { createErrorBarRegistry, provideErrorBarContext, provideErrorBarRegistry, useErrorBarContext, useErrorBarRegistry } from "./cartesian/error-bar/ErrorBarContext.mjs";
11
+ import { Cell } from "./components/Cell.mjs";
12
+ import { Bar } from "./cartesian/bar/Bar.mjs";
13
+ import { CartesianGrid } from "./cartesian/cartesian-grid/CartesianGrid.mjs";
14
+ import { ErrorBar, ErrorBarVueProps } from "./cartesian/error-bar/ErrorBar.mjs";
15
+ import { LineContextKey, provideLineContext, useLine, useLineContext } from "./cartesian/line/hooks/useLine.mjs";
16
+ import { Line } from "./cartesian/line/Line.mjs";
17
+ import { ReferenceArea } from "./cartesian/reference-area/ReferenceArea.mjs";
18
+ import { ReferenceLine } from "./cartesian/reference-line/ReferenceLine.mjs";
19
+ import { Symbols } from "./shape/Symbols.mjs";
20
+ import { Scatter } from "./cartesian/scatter/Scatter.mjs";
21
+ import { ZAxis } from "./cartesian/z-axis/ZAxis.mjs";
22
+ import { Trapezoid } from "./shape/Trapezoid.mjs";
23
+ import { FunnelVueProps } from "./cartesian/funnel/type.mjs";
24
+ import { Funnel } from "./cartesian/funnel/Funnel.mjs";
25
+ import { AreaChart } from "./chart/AreaChart.mjs";
26
+ import { BarChart } from "./chart/BarChart.mjs";
27
+ import { ComposedChart } from "./chart/ComposedChart.mjs";
28
+ import { LineChart } from "./chart/LineChart.mjs";
29
+ import { PieChart } from "./chart/PieChart.mjs";
30
+ import { RadarChart } from "./chart/RadarChart.mjs";
31
+ import { ScatterChart } from "./chart/ScatterChart.mjs";
32
+ import { RadialBarChart } from "./chart/RadialBarChart.mjs";
33
+ import { FunnelChart } from "./chart/FunnelChart.mjs";
34
+ import ResponsiveContainer_default from "./container/ResponsiveContainer.mjs";
35
+ import Legend_default from "./components/legend/Legend.mjs";
36
+ import { Cross } from "./shape/Cross.mjs";
37
+ import { Sector } from "./shape/Sector.mjs";
38
+ import Tooltip, { getUniqPayload } from "./components/Tooltip.mjs";
39
+ import { PieVueProps } from "./polar/pie/type.mjs";
40
+ import { Pie } from "./polar/pie/Pie.mjs";
41
+ import { Radar } from "./polar/radar/Radar.mjs";
42
+ import { PolarGrid } from "./polar/radar/PolarGrid.mjs";
43
+ import { PolarAngleAxis } from "./polar/radar/PolarAngleAxis.mjs";
44
+ import { PolarRadiusAxis } from "./polar/radar/PolarRadiusAxis.mjs";
45
+ import { RadialBar } from "./polar/radial-bar/RadialBar.mjs";
46
+ export { Area, AreaChart, Bar, BarChart, CartesianAxis, CartesianGrid, Cell, ComposedChart, Cross, Curve, CurveVueProps, Dot, ErrorBar, ErrorBarVueProps, Funnel, FunnelChart, FunnelVueProps, Label, LabelList, Legend_default as Legend, Line, LineChart, LineContextKey, Pie, PieChart, PieVueProps, PolarAngleAxis, PolarGrid, PolarRadiusAxis, Radar, RadarChart, RadialBar, RadialBarChart, Rectangle, ReferenceArea, ReferenceLine, ResponsiveContainer_default as ResponsiveContainer, Scatter, ScatterChart, Sector, Symbols, Tooltip, Trapezoid, XAxis, YAxis, ZAxis, createErrorBarRegistry, getPath, getUniqPayload, provideErrorBarContext, provideErrorBarRegistry, provideLineContext, useErrorBarContext, useErrorBarRegistry, useLine, useLineContext };