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,220 +1,269 @@
1
- import { isCategoricalAxis as e } from "../../utils/validate.mjs";
2
- import { selectChartDataWithIndexes as t } from "./dataSelectors.mjs";
3
- import { selectChartHeight as n, selectChartWidth as r } from "./containerSelectors.mjs";
4
- import { selectChartOffset as i } from "./selectChartOffset.mjs";
5
- import { selectChartName as a, selectStackOffsetType as o } from "./rootPropsSelectors.mjs";
6
- import { combineAxisRangeWithReverse as s } from "./combiners/combineAxisRangeWithReverse.mjs";
7
- import { findEntryInArray as c, mathSign as l } from "../../utils/data.mjs";
8
- import { selectChartLayout as u } from "./common.mjs";
9
- import { getTooltipEntry as d, getValueByDataKey as f } from "../../utils/chart.mjs";
10
- import { combineAppliedNumericalValuesIncludingErrorValues as p, combineAppliedValues as m, combineAreasDomain as h, combineAxisDomain as g, combineAxisDomainWithNiceTicks as _, combineCategoricalDomain as v, combineDisplayedData as y, combineDomainOfStackGroups as ee, combineDotsDomain as te, combineDuplicateDomain as ne, combineGraphicalItemsData as re, combineGraphicalItemsSettings as ie, combineLinesDomain as ae, combineNiceTicks as b, combineNumericalDomain as x, combineRealScaleType as S, combineScaleFunction as oe, combineStackGroups as se, filterGraphicalNotStackedItems as ce, filterReferenceElements as C, getDomainDefinition as le, itemAxisPredicate as ue, mergeDomains as de, selectAxisRange as fe, selectAxisSettings as pe, selectHasBar as me, selectReferenceAreas as he, selectReferenceDots as ge, selectReferenceLines as _e } from "./axisSelectors.mjs";
11
- import { combineTooltipEventType as ve, selectDefaultTooltipEventType as ye, selectValidateTooltipEventTypes as be } from "./selectTooltipEventType.mjs";
12
- import { combineActiveLabel as w } from "./combiners/combineActiveLabel.mjs";
13
- import { selectTooltipSettings as T } from "./selectTooltipSettings.mjs";
14
- import { combineTooltipInteractionState as E } from "./combiners/combineTooltipInteractionState.mjs";
15
- import { combineActiveTooltipIndex as D } from "./combiners/combineActiveTooltipIndex.mjs";
16
- import { combineCoordinateForDefaultIndex as O } from "./combiners/combineCoordinateForDefaultIndex.mjs";
17
- import { combineTooltipPayloadConfigurations as k } from "./combiners/combineTooltipPayloadConfigurations.mjs";
18
- import { selectTooltipPayloadSearcher as A } from "./selectTooltipPayloadSearcher.mjs";
19
- import { selectTooltipState as j } from "./selectTooltipState.mjs";
20
- import { createSelector as M } from "@reduxjs/toolkit";
1
+ import { isCategoricalAxis } from "../../utils/validate.mjs";
2
+ import { selectChartDataWithIndexes } from "./dataSelectors.mjs";
3
+ import { selectChartHeight, selectChartWidth } from "./containerSelectors.mjs";
4
+ import { selectChartOffset } from "./selectChartOffset.mjs";
5
+ import { selectChartName, selectStackOffsetType } from "./rootPropsSelectors.mjs";
6
+ import { combineAxisRangeWithReverse } from "./combiners/combineAxisRangeWithReverse.mjs";
7
+ import { findEntryInArray, mathSign } from "../../utils/data.mjs";
8
+ import { selectChartLayout } from "./common.mjs";
9
+ import { getTooltipEntry, getValueByDataKey } from "../../utils/chart.mjs";
10
+ import { combineAppliedNumericalValuesIncludingErrorValues, combineAppliedValues, combineAreasDomain, combineAxisDomain, combineAxisDomainWithNiceTicks, combineCategoricalDomain, combineDisplayedData, combineDomainOfStackGroups, combineDotsDomain, combineDuplicateDomain, combineGraphicalItemsData, combineGraphicalItemsSettings, combineLinesDomain, combineNiceTicks, combineNumericalDomain, combineRealScaleType, combineScaleFunction, combineStackGroups, filterGraphicalNotStackedItems, filterReferenceElements, getDomainDefinition, itemAxisPredicate, mergeDomains, selectAxisRange, selectAxisSettings, selectHasBar, selectReferenceAreas, selectReferenceDots, selectReferenceLines } from "./axisSelectors.mjs";
11
+ import { combineTooltipEventType, selectDefaultTooltipEventType, selectValidateTooltipEventTypes } from "./selectTooltipEventType.mjs";
12
+ import { combineActiveLabel } from "./combiners/combineActiveLabel.mjs";
13
+ import { selectTooltipSettings } from "./selectTooltipSettings.mjs";
14
+ import { combineTooltipInteractionState } from "./combiners/combineTooltipInteractionState.mjs";
15
+ import { combineActiveTooltipIndex } from "./combiners/combineActiveTooltipIndex.mjs";
16
+ import { combineCoordinateForDefaultIndex } from "./combiners/combineCoordinateForDefaultIndex.mjs";
17
+ import { combineTooltipPayloadConfigurations } from "./combiners/combineTooltipPayloadConfigurations.mjs";
18
+ import { selectTooltipPayloadSearcher } from "./selectTooltipPayloadSearcher.mjs";
19
+ import { selectTooltipState } from "./selectTooltipState.mjs";
20
+ import { createSelector } from "@reduxjs/toolkit";
21
21
  //#region src/state/selectors/tooltipSelectors.ts
22
- function N(e, t, n) {
23
- return Array.isArray(e) && e && t + n !== 0 ? e.slice(t, n + 1) : e;
22
+ function getSliced(arr, startIndex, endIndex) {
23
+ if (!Array.isArray(arr)) return arr;
24
+ if (arr && startIndex + endIndex !== 0) return arr.slice(startIndex, endIndex + 1);
25
+ return arr;
24
26
  }
25
- function xe(e, t) {
26
- return e ?? t;
27
+ function selectFinalData(dataDefinedOnItem, dataDefinedOnChart) {
28
+ if (dataDefinedOnItem != null) return dataDefinedOnItem;
29
+ return dataDefinedOnChart;
27
30
  }
28
- function P(e, t, n, r, i, a, o) {
29
- if (t == null || a == null) return;
30
- let { chartData: s, computedData: l, dataStartIndex: u, dataEndIndex: p } = n;
31
- return e.reduce((e, { dataDefinedOnItem: n, settings: m }) => {
32
- let h = N(xe(n, s), u, p), g = m?.dataKey ?? r?.dataKey, _ = m?.nameKey, v;
33
- return r?.dataKey && !r?.allowDuplicatedCategory && Array.isArray(h) && i != null && o === "axis" && (v = c(h, r.dataKey, i)), v ??= a(h, t, l, _), Array.isArray(v) ? v.forEach((t) => {
34
- let n = {
35
- ...m,
36
- name: t.name,
37
- unit: t.unit,
31
+ function combineTooltipPayload(tooltipPayloadConfigurations, activeIndex, chartDataState, tooltipAxis, activeLabel, tooltipPayloadSearcher, tooltipEventType) {
32
+ if (activeIndex == null || tooltipPayloadSearcher == null) return;
33
+ const { chartData, computedData, dataStartIndex, dataEndIndex } = chartDataState;
34
+ return tooltipPayloadConfigurations.reduce((agg, { dataDefinedOnItem, settings }) => {
35
+ const sliced = getSliced(selectFinalData(dataDefinedOnItem, chartData), dataStartIndex, dataEndIndex);
36
+ const finalDataKey = settings?.dataKey ?? tooltipAxis?.dataKey;
37
+ const finalNameKey = settings?.nameKey;
38
+ let tooltipPayload;
39
+ if (tooltipAxis?.dataKey && !tooltipAxis?.allowDuplicatedCategory && Array.isArray(sliced) && activeLabel != null && tooltipEventType === "axis") tooltipPayload = findEntryInArray(sliced, tooltipAxis.dataKey, activeLabel);
40
+ if (tooltipPayload == null) tooltipPayload = tooltipPayloadSearcher(sliced, activeIndex, computedData, finalNameKey);
41
+ if (Array.isArray(tooltipPayload)) tooltipPayload.forEach((item) => {
42
+ const newSettings = {
43
+ ...settings,
44
+ name: item.name,
45
+ unit: item.unit,
38
46
  color: void 0,
39
47
  fill: void 0
40
48
  };
41
- e.push(d({
42
- tooltipEntrySettings: n,
43
- dataKey: t.dataKey,
44
- payload: t.payload,
45
- value: f(t.payload, t.dataKey),
46
- name: t.name
49
+ agg.push(getTooltipEntry({
50
+ tooltipEntrySettings: newSettings,
51
+ dataKey: item.dataKey,
52
+ payload: item.payload,
53
+ value: getValueByDataKey(item.payload, item.dataKey),
54
+ name: item.name
47
55
  }));
48
- }) : e.push(d({
49
- tooltipEntrySettings: m,
50
- dataKey: g,
51
- payload: v,
52
- value: f(v, g),
53
- name: f(v, _) ?? m?.name
54
- })), e;
56
+ });
57
+ else agg.push(getTooltipEntry({
58
+ tooltipEntrySettings: settings,
59
+ dataKey: finalDataKey,
60
+ payload: tooltipPayload,
61
+ value: getValueByDataKey(tooltipPayload, finalDataKey),
62
+ name: getValueByDataKey(tooltipPayload, finalNameKey) ?? settings?.name
63
+ }));
64
+ return agg;
55
65
  }, []);
56
66
  }
57
- function F(e) {
58
- let t = u(e);
59
- return t === "horizontal" ? "xAxis" : t === "vertical" ? "yAxis" : t === "centric" ? "angleAxis" : "radiusAxis";
67
+ function selectTooltipAxisType(state) {
68
+ const layout = selectChartLayout(state);
69
+ if (layout === "horizontal") return "xAxis";
70
+ if (layout === "vertical") return "yAxis";
71
+ if (layout === "centric") return "angleAxis";
72
+ return "radiusAxis";
60
73
  }
61
- var I = (e) => e.tooltip.settings.axisId;
62
- function L(e) {
63
- return pe(e, F(e), I(e));
74
+ var selectTooltipAxisId = (state) => state.tooltip.settings.axisId;
75
+ function selectTooltipAxis(state) {
76
+ return selectAxisSettings(state, selectTooltipAxisType(state), selectTooltipAxisId(state));
64
77
  }
65
- var R = M([
66
- L,
67
- me,
68
- a
69
- ], S), z = M([
70
- M([(e) => e.graphicalItems.cartesianItems, (e) => e.graphicalItems.polarItems], (e, t) => [...e, ...t]),
71
- L,
72
- M([F, I], ue)
73
- ], ie), B = M([M([z], re), t], y), V = M([
74
- B,
75
- L,
76
- z
77
- ], m), Se = M([L], le), Ce = M([
78
- M([
79
- B,
80
- z,
81
- o
82
- ], se),
83
- t,
84
- F
85
- ], ee), we = M([
86
- B,
87
- L,
88
- M([z], ce),
89
- F
90
- ], p), Te = M([M([
91
- ge,
92
- F,
93
- I
94
- ], C), F], te), Ee = M([M([
95
- he,
96
- F,
97
- I
98
- ], C), F], h), H = M([
99
- L,
100
- u,
101
- B,
102
- V,
103
- o,
104
- F,
105
- M([
106
- L,
107
- Se,
108
- Ce,
109
- we,
110
- M([
111
- Te,
112
- M([M([
113
- _e,
114
- F,
115
- I
116
- ], C), F], ae),
117
- Ee
118
- ], de)
119
- ], x)
120
- ], g), De = M([
121
- L,
122
- H,
123
- M([
124
- H,
125
- L,
126
- R
127
- ], b),
128
- F
129
- ], _);
130
- function U(e) {
131
- return fe(e, F(e), I(e), !1);
78
+ var selectTooltipAxisRealScaleType = createSelector([
79
+ selectTooltipAxis,
80
+ selectHasBar,
81
+ selectChartName
82
+ ], combineRealScaleType);
83
+ var selectAllGraphicalItemsSettings = createSelector([
84
+ createSelector([(state) => state.graphicalItems.cartesianItems, (state) => state.graphicalItems.polarItems], (cartesianItems, polarItems) => [...cartesianItems, ...polarItems]),
85
+ selectTooltipAxis,
86
+ createSelector([selectTooltipAxisType, selectTooltipAxisId], itemAxisPredicate)
87
+ ], combineGraphicalItemsSettings);
88
+ /**
89
+ * Data for tooltip always use the data with indexes set by a Brush,
90
+ * and never accept the isPanorama flag:
91
+ * because Tooltip never displays inside the panorama anyway
92
+ * so we don't need to worry what would happen there.
93
+ */
94
+ var selectTooltipDisplayedData = createSelector([createSelector([selectAllGraphicalItemsSettings], combineGraphicalItemsData), selectChartDataWithIndexes], combineDisplayedData);
95
+ var selectAllTooltipAppliedValues = createSelector([
96
+ selectTooltipDisplayedData,
97
+ selectTooltipAxis,
98
+ selectAllGraphicalItemsSettings
99
+ ], combineAppliedValues);
100
+ var selectTooltipAxisDomainDefinition = createSelector([selectTooltipAxis], getDomainDefinition);
101
+ var selectTooltipDomainOfStackGroups = createSelector([
102
+ createSelector([
103
+ selectTooltipDisplayedData,
104
+ selectAllGraphicalItemsSettings,
105
+ selectStackOffsetType
106
+ ], combineStackGroups),
107
+ selectChartDataWithIndexes,
108
+ selectTooltipAxisType
109
+ ], combineDomainOfStackGroups);
110
+ var selectTooltipAllAppliedNumericalValuesIncludingErrorValues = createSelector([
111
+ selectTooltipDisplayedData,
112
+ selectTooltipAxis,
113
+ createSelector([selectAllGraphicalItemsSettings], filterGraphicalNotStackedItems),
114
+ selectTooltipAxisType
115
+ ], combineAppliedNumericalValuesIncludingErrorValues);
116
+ var selectTooltipReferenceDotsDomain = createSelector([createSelector([
117
+ selectReferenceDots,
118
+ selectTooltipAxisType,
119
+ selectTooltipAxisId
120
+ ], filterReferenceElements), selectTooltipAxisType], combineDotsDomain);
121
+ var selectTooltipReferenceAreasDomain = createSelector([createSelector([
122
+ selectReferenceAreas,
123
+ selectTooltipAxisType,
124
+ selectTooltipAxisId
125
+ ], filterReferenceElements), selectTooltipAxisType], combineAreasDomain);
126
+ var selectTooltipAxisDomain = createSelector([
127
+ selectTooltipAxis,
128
+ selectChartLayout,
129
+ selectTooltipDisplayedData,
130
+ selectAllTooltipAppliedValues,
131
+ selectStackOffsetType,
132
+ selectTooltipAxisType,
133
+ createSelector([
134
+ selectTooltipAxis,
135
+ selectTooltipAxisDomainDefinition,
136
+ selectTooltipDomainOfStackGroups,
137
+ selectTooltipAllAppliedNumericalValuesIncludingErrorValues,
138
+ createSelector([
139
+ selectTooltipReferenceDotsDomain,
140
+ createSelector([createSelector([
141
+ selectReferenceLines,
142
+ selectTooltipAxisType,
143
+ selectTooltipAxisId
144
+ ], filterReferenceElements), selectTooltipAxisType], combineLinesDomain),
145
+ selectTooltipReferenceAreasDomain
146
+ ], mergeDomains)
147
+ ], combineNumericalDomain)
148
+ ], combineAxisDomain);
149
+ var selectTooltipAxisDomainIncludingNiceTicks = createSelector([
150
+ selectTooltipAxis,
151
+ selectTooltipAxisDomain,
152
+ createSelector([
153
+ selectTooltipAxisDomain,
154
+ selectTooltipAxis,
155
+ selectTooltipAxisRealScaleType
156
+ ], combineNiceTicks),
157
+ selectTooltipAxisType
158
+ ], combineAxisDomainWithNiceTicks);
159
+ function selectTooltipAxisRange(state) {
160
+ return selectAxisRange(state, selectTooltipAxisType(state), selectTooltipAxisId(state), false);
132
161
  }
133
- var W = M([L, U], s), G = M([
134
- L,
135
- R,
136
- De,
137
- W
138
- ], oe), Oe = M([
139
- u,
140
- V,
141
- L,
142
- F
143
- ], ne), ke = M([
144
- u,
145
- V,
146
- L,
147
- F
148
- ], v);
149
- function Ae(t, n, r, i, a, o, s, c) {
150
- if (!n) return null;
151
- let { type: u } = n, d = e(t, c);
152
- if (!i) return null;
153
- let f = r === "scaleBand" && i.bandwidth ? i.bandwidth() / 2 : 2, p = u === "category" && i.bandwidth ? i.bandwidth() / f : 0;
154
- return p = c === "angleAxis" && a != null && a?.length >= 2 ? l(a[0] - a[1]) * 2 * p : p, d && s ? s.map((e, t) => ({
155
- coordinate: i(e) + p,
156
- value: e,
157
- index: t,
158
- offset: p
159
- })) : i.domain().map((e, t) => ({
160
- coordinate: i(e) + p,
161
- value: o ? o[e] : e,
162
- index: t,
163
- offset: p
162
+ var selectTooltipAxisRangeWithReverse = createSelector([selectTooltipAxis, selectTooltipAxisRange], combineAxisRangeWithReverse);
163
+ var selectTooltipAxisScale = createSelector([
164
+ selectTooltipAxis,
165
+ selectTooltipAxisRealScaleType,
166
+ selectTooltipAxisDomainIncludingNiceTicks,
167
+ selectTooltipAxisRangeWithReverse
168
+ ], combineScaleFunction);
169
+ var selectTooltipDuplicateDomain = createSelector([
170
+ selectChartLayout,
171
+ selectAllTooltipAppliedValues,
172
+ selectTooltipAxis,
173
+ selectTooltipAxisType
174
+ ], combineDuplicateDomain);
175
+ var selectTooltipCategoricalDomain = createSelector([
176
+ selectChartLayout,
177
+ selectAllTooltipAppliedValues,
178
+ selectTooltipAxis,
179
+ selectTooltipAxisType
180
+ ], combineCategoricalDomain);
181
+ function combineTicksOfTooltipAxis(layout, axis, realScaleType, scale, range, duplicateDomain, categoricalDomain, axisType) {
182
+ if (!axis) return null;
183
+ const { type } = axis;
184
+ const isCategorical = isCategoricalAxis(layout, axisType);
185
+ if (!scale) return null;
186
+ const offsetForBand = realScaleType === "scaleBand" && scale.bandwidth ? scale.bandwidth() / 2 : 2;
187
+ let offset = type === "category" && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;
188
+ offset = axisType === "angleAxis" && range != null && range?.length >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;
189
+ if (isCategorical && categoricalDomain) return categoricalDomain.map((entry, index) => ({
190
+ coordinate: scale(entry) + offset,
191
+ value: entry,
192
+ index,
193
+ offset
194
+ }));
195
+ return scale.domain().map((entry, index) => ({
196
+ coordinate: scale(entry) + offset,
197
+ value: duplicateDomain ? duplicateDomain[entry] : entry,
198
+ index,
199
+ offset
164
200
  }));
165
201
  }
166
- var K = M([
167
- u,
168
- L,
169
- R,
170
- G,
171
- U,
172
- Oe,
173
- ke,
174
- F
175
- ], Ae), q = M([
176
- ye,
177
- be,
178
- T
179
- ], (e, t, n) => ve(n.shared, e, t)), J = (e) => e.tooltip.settings.trigger, Y = (e) => e.tooltip.settings.defaultIndex, X = M([
180
- j,
181
- q,
182
- J,
183
- Y
184
- ], E), Z = M([
185
- X,
186
- B,
187
- M([L], (e) => e?.dataKey),
188
- H
189
- ], D), Q = M([K, Z], w), je = M([X], (e) => {
190
- if (e) return e.dataKey;
191
- }), $ = M([
192
- j,
193
- q,
194
- J,
195
- Y
196
- ], k), Me = M([X, M([
197
- r,
198
- n,
199
- u,
200
- i,
201
- K,
202
- Y,
203
- $,
204
- A
205
- ], O)], (e, t) => e.coordinate ?? t), Ne = M([X], (e) => e.active);
206
- M([M([
207
- $,
208
- Z,
209
- t,
210
- L,
211
- Q,
212
- A,
213
- q
214
- ], P)], (e) => {
215
- if (e == null) return;
216
- let t = e.map((e) => e.payload).filter((e) => e != null);
217
- return Array.from(new Set(t));
202
+ var selectTooltipAxisTicks = createSelector([
203
+ selectChartLayout,
204
+ selectTooltipAxis,
205
+ selectTooltipAxisRealScaleType,
206
+ selectTooltipAxisScale,
207
+ selectTooltipAxisRange,
208
+ selectTooltipDuplicateDomain,
209
+ selectTooltipCategoricalDomain,
210
+ selectTooltipAxisType
211
+ ], combineTicksOfTooltipAxis);
212
+ var selectTooltipEventType = createSelector([
213
+ selectDefaultTooltipEventType,
214
+ selectValidateTooltipEventTypes,
215
+ selectTooltipSettings
216
+ ], (defaultTooltipEventType, validateTooltipEventType, settings) => combineTooltipEventType(settings.shared, defaultTooltipEventType, validateTooltipEventType));
217
+ var selectTooltipTrigger = (state) => state.tooltip.settings.trigger;
218
+ var selectDefaultIndex = (state) => state.tooltip.settings.defaultIndex;
219
+ var selectTooltipInteractionState = createSelector([
220
+ selectTooltipState,
221
+ selectTooltipEventType,
222
+ selectTooltipTrigger,
223
+ selectDefaultIndex
224
+ ], combineTooltipInteractionState);
225
+ var selectActiveTooltipIndex = createSelector([
226
+ selectTooltipInteractionState,
227
+ selectTooltipDisplayedData,
228
+ createSelector([selectTooltipAxis], (axis) => axis?.dataKey),
229
+ selectTooltipAxisDomain
230
+ ], combineActiveTooltipIndex);
231
+ var selectActiveLabel = createSelector([selectTooltipAxisTicks, selectActiveTooltipIndex], combineActiveLabel);
232
+ var selectActiveTooltipDataKey = createSelector([selectTooltipInteractionState], (tooltipInteraction) => {
233
+ if (!tooltipInteraction) return;
234
+ return tooltipInteraction.dataKey;
235
+ });
236
+ var selectTooltipPayloadConfigurations = createSelector([
237
+ selectTooltipState,
238
+ selectTooltipEventType,
239
+ selectTooltipTrigger,
240
+ selectDefaultIndex
241
+ ], combineTooltipPayloadConfigurations);
242
+ var selectActiveTooltipCoordinate = createSelector([selectTooltipInteractionState, createSelector([
243
+ selectChartWidth,
244
+ selectChartHeight,
245
+ selectChartLayout,
246
+ selectChartOffset,
247
+ selectTooltipAxisTicks,
248
+ selectDefaultIndex,
249
+ selectTooltipPayloadConfigurations,
250
+ selectTooltipPayloadSearcher
251
+ ], combineCoordinateForDefaultIndex)], (tooltipInteractionState, defaultIndexCoordinate) => {
252
+ return tooltipInteractionState.coordinate ?? defaultIndexCoordinate;
253
+ });
254
+ var selectIsTooltipActive = createSelector([selectTooltipInteractionState], (tooltipInteractionState) => tooltipInteractionState.active);
255
+ createSelector([createSelector([
256
+ selectTooltipPayloadConfigurations,
257
+ selectActiveTooltipIndex,
258
+ selectChartDataWithIndexes,
259
+ selectTooltipAxis,
260
+ selectActiveLabel,
261
+ selectTooltipPayloadSearcher,
262
+ selectTooltipEventType
263
+ ], combineTooltipPayload)], (payload) => {
264
+ if (payload == null) return;
265
+ const dataPoints = payload.map((p) => p.payload).filter((p) => p != null);
266
+ return Array.from(new Set(dataPoints));
218
267
  });
219
268
  //#endregion
220
- export { P as combineTooltipPayload, Q as selectActiveLabel, Me as selectActiveTooltipCoordinate, je as selectActiveTooltipDataKey, Z as selectActiveTooltipIndex, Ne as selectIsTooltipActive, L as selectTooltipAxis, H as selectTooltipAxisDomain, W as selectTooltipAxisRangeWithReverse, G as selectTooltipAxisScale, K as selectTooltipAxisTicks, F as selectTooltipAxisType, B as selectTooltipDisplayedData };
269
+ export { combineTooltipPayload, selectActiveLabel, selectActiveTooltipCoordinate, selectActiveTooltipDataKey, selectActiveTooltipIndex, selectIsTooltipActive, selectTooltipAxis, selectTooltipAxisDomain, selectTooltipAxisRangeWithReverse, selectTooltipAxisScale, selectTooltipAxisTicks, selectTooltipAxisType, selectTooltipDisplayedData };
@@ -1,16 +1,19 @@
1
- import { selectTooltipPayloadSearcher as e } from "./selectTooltipPayloadSearcher.mjs";
2
- import { selectTooltipState as t } from "./selectTooltipState.mjs";
3
- import { createSelector as n } from "@reduxjs/toolkit";
4
- var r = n([
5
- n([t], (e) => e.tooltipItemPayloads),
6
- e,
7
- (e, t, n) => t,
8
- (e, t, n) => n
9
- ], (e, t, n, r) => {
10
- let i = e.find((e) => e.settings.dataKey === r);
11
- if (i == null) return;
12
- let { positions: a } = i;
13
- if (a != null) return t?.(a, n);
1
+ import { selectTooltipPayloadSearcher } from "./selectTooltipPayloadSearcher.mjs";
2
+ import { selectTooltipState } from "./selectTooltipState.mjs";
3
+ import { createSelector } from "@reduxjs/toolkit";
4
+ var selectTooltipCoordinate = createSelector([
5
+ createSelector([selectTooltipState], (tooltipState) => tooltipState.tooltipItemPayloads),
6
+ selectTooltipPayloadSearcher,
7
+ (_state, tooltipIndex, _dataKey) => tooltipIndex,
8
+ (_state, _tooltipIndex, dataKey) => dataKey
9
+ ], (allTooltipConfigurations, tooltipPayloadSearcher, tooltipIndex, dataKey) => {
10
+ const mostRelevantTooltipConfiguration = allTooltipConfigurations.find((tooltipConfiguration) => {
11
+ return tooltipConfiguration.settings.dataKey === dataKey;
12
+ });
13
+ if (mostRelevantTooltipConfiguration == null) return;
14
+ const { positions } = mostRelevantTooltipConfiguration;
15
+ if (positions == null) return;
16
+ return tooltipPayloadSearcher?.(positions, tooltipIndex);
14
17
  });
15
18
  //#endregion
16
- export { r as selectTooltipCoordinate };
19
+ export { selectTooltipCoordinate };
@@ -1,55 +1,55 @@
1
- import { tooltipReducer as e } from "./tooltipSlice.mjs";
2
- import { graphicalItemsReducer as t } from "./graphicalItemsSlice.mjs";
3
- import { legendReducer as n } from "./legendSlice.mjs";
4
- import { cartesianAxisReducer as r } from "./cartesianAxisSlice.mjs";
5
- import { referenceElementsReducer as i } from "./referenceElementsSlice.mjs";
6
- import { optionsReducer as a } from "./optionsSlice.mjs";
7
- import { chartDataReducer as o } from "./chartDataSlice.mjs";
8
- import { chartLayoutReducer as s } from "./layoutSlice.mjs";
9
- import { mouseClickMiddleware as c, mouseMoveMiddleware as l } from "./mouseEventsMiddleware.mjs";
10
- import { reduxDevtoolsJsonStringifyReplacer as u } from "./reduxDevtoolsJsonStringifyReplacer.mjs";
11
- import { brushReducer as d } from "./brushSlice.mjs";
12
- import { rootPropsReducer as f } from "./rootPropsSlice.mjs";
13
- import { polarAxisReducer as p } from "./polarAxisSlice.mjs";
14
- import { polarOptionsReducer as m } from "./polarOptionsSlice.mjs";
15
- import { keyboardEventsMiddleware as h } from "./keyboardEventsMiddleware.mjs";
16
- import { externalEventsMiddleware as g } from "./externalEventsMiddleware.mjs";
17
- import { touchEventMiddleware as _ } from "./touchEventsMiddleware.mjs";
18
- import { combineReducers as v, configureStore as y } from "@reduxjs/toolkit";
1
+ import { tooltipReducer } from "./tooltipSlice.mjs";
2
+ import { graphicalItemsReducer } from "./graphicalItemsSlice.mjs";
3
+ import { legendReducer } from "./legendSlice.mjs";
4
+ import { cartesianAxisReducer } from "./cartesianAxisSlice.mjs";
5
+ import { referenceElementsReducer } from "./referenceElementsSlice.mjs";
6
+ import { optionsReducer } from "./optionsSlice.mjs";
7
+ import { chartDataReducer } from "./chartDataSlice.mjs";
8
+ import { chartLayoutReducer } from "./layoutSlice.mjs";
9
+ import { mouseClickMiddleware, mouseMoveMiddleware } from "./mouseEventsMiddleware.mjs";
10
+ import { reduxDevtoolsJsonStringifyReplacer } from "./reduxDevtoolsJsonStringifyReplacer.mjs";
11
+ import { brushReducer } from "./brushSlice.mjs";
12
+ import { rootPropsReducer } from "./rootPropsSlice.mjs";
13
+ import { polarAxisReducer } from "./polarAxisSlice.mjs";
14
+ import { polarOptionsReducer } from "./polarOptionsSlice.mjs";
15
+ import { keyboardEventsMiddleware } from "./keyboardEventsMiddleware.mjs";
16
+ import { externalEventsMiddleware } from "./externalEventsMiddleware.mjs";
17
+ import { touchEventMiddleware } from "./touchEventsMiddleware.mjs";
18
+ import { combineReducers, configureStore } from "@reduxjs/toolkit";
19
19
  //#region src/state/store.ts
20
- var b = v({
21
- brush: d,
22
- cartesianAxis: r,
23
- chartData: o,
24
- graphicalItems: t,
25
- layout: s,
26
- legend: n,
27
- options: a,
28
- polarAxis: p,
29
- polarOptions: m,
30
- referenceElements: i,
31
- rootProps: f,
32
- tooltip: e
20
+ var rootReducer = combineReducers({
21
+ brush: brushReducer,
22
+ cartesianAxis: cartesianAxisReducer,
23
+ chartData: chartDataReducer,
24
+ graphicalItems: graphicalItemsReducer,
25
+ layout: chartLayoutReducer,
26
+ legend: legendReducer,
27
+ options: optionsReducer,
28
+ polarAxis: polarAxisReducer,
29
+ polarOptions: polarOptionsReducer,
30
+ referenceElements: referenceElementsReducer,
31
+ rootProps: rootPropsReducer,
32
+ tooltip: tooltipReducer
33
33
  });
34
- function x(e, t = "Chart") {
35
- return y({
36
- reducer: b,
37
- preloadedState: e,
38
- middleware: (e) => e({
39
- serializableCheck: !1,
40
- immutableCheck: !1
34
+ function createRechartsStore(preloadedState, chartName = "Chart") {
35
+ return configureStore({
36
+ reducer: rootReducer,
37
+ preloadedState,
38
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({
39
+ serializableCheck: false,
40
+ immutableCheck: false
41
41
  }).concat([
42
- c.middleware,
43
- l.middleware,
44
- h.middleware,
45
- g,
46
- _.middleware
42
+ mouseClickMiddleware.middleware,
43
+ mouseMoveMiddleware.middleware,
44
+ keyboardEventsMiddleware.middleware,
45
+ externalEventsMiddleware,
46
+ touchEventMiddleware.middleware
47
47
  ]),
48
48
  devTools: {
49
- serialize: { replacer: u },
50
- name: `v-charts-${t}`
49
+ serialize: { replacer: reduxDevtoolsJsonStringifyReplacer },
50
+ name: `v-charts-${chartName}`
51
51
  }
52
52
  });
53
53
  }
54
54
  //#endregion
55
- export { x as createRechartsStore };
55
+ export { createRechartsStore };