@solidports/recharts 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dist/index.d.ts +40 -2
  2. package/dist/index.js +14238 -7174
  3. package/dist/{dev.js → index.jsx} +18367 -15900
  4. package/dist/server.js +48178 -0
  5. package/package.json +36 -19
  6. package/src/animation/AnimatedItems.tsx +0 -183
  7. package/src/animation/AnimationController.ts +0 -33
  8. package/src/animation/AnimationControllerImpl.ts +0 -36
  9. package/src/animation/AnimationHandle.ts +0 -307
  10. package/src/animation/CSSTransitionAnimate.tsx +0 -170
  11. package/src/animation/JavascriptAnimate.tsx +0 -119
  12. package/src/animation/easing.ts +0 -221
  13. package/src/animation/matchBy.ts +0 -164
  14. package/src/animation/timeoutController.ts +0 -70
  15. package/src/animation/useAnimationController.tsx +0 -34
  16. package/src/animation/useAnimationStartSnapshot.ts +0 -118
  17. package/src/animation/util.ts +0 -41
  18. package/src/cartesian/Area.tsx +0 -915
  19. package/src/cartesian/AreaRevealShape.tsx +0 -190
  20. package/src/cartesian/Bar.tsx +0 -1369
  21. package/src/cartesian/BarStack.tsx +0 -152
  22. package/src/cartesian/Brush.tsx +0 -951
  23. package/src/cartesian/CartesianAxis.tsx +0 -722
  24. package/src/cartesian/CartesianGrid.tsx +0 -711
  25. package/src/cartesian/ErrorBar.tsx +0 -361
  26. package/src/cartesian/Funnel.tsx +0 -803
  27. package/src/cartesian/GraphicalItemClipPath.tsx +0 -67
  28. package/src/cartesian/Line.tsx +0 -863
  29. package/src/cartesian/LineDrawShape.tsx +0 -89
  30. package/src/cartesian/ReferenceArea.tsx +0 -331
  31. package/src/cartesian/ReferenceDot.tsx +0 -304
  32. package/src/cartesian/ReferenceLine.tsx +0 -474
  33. package/src/cartesian/Scatter.tsx +0 -888
  34. package/src/cartesian/XAxis.tsx +0 -433
  35. package/src/cartesian/YAxis.tsx +0 -443
  36. package/src/cartesian/ZAxis.tsx +0 -155
  37. package/src/cartesian/cartesianPositionToCSSTranslate.tsx +0 -29
  38. package/src/cartesian/cartesianViewBoxToTrapezoid.tsx +0 -21
  39. package/src/cartesian/getCartesianPosition.tsx +0 -267
  40. package/src/cartesian/getEquidistantTicks.ts +0 -144
  41. package/src/cartesian/getTicks.ts +0 -225
  42. package/src/cartesian/isOutsidePosition.ts +0 -15
  43. package/src/cartesian/useAnimatedLineLength.ts +0 -54
  44. package/src/chart/AreaChart.tsx +0 -29
  45. package/src/chart/BarChart.tsx +0 -29
  46. package/src/chart/CartesianChart.tsx +0 -131
  47. package/src/chart/CategoricalChart.tsx +0 -94
  48. package/src/chart/ComposedChart.tsx +0 -29
  49. package/src/chart/FunnelChart.tsx +0 -29
  50. package/src/chart/LineChart.tsx +0 -29
  51. package/src/chart/PieChart.tsx +0 -50
  52. package/src/chart/PolarChart.tsx +0 -164
  53. package/src/chart/RadarChart.tsx +0 -70
  54. package/src/chart/RadialBarChart.tsx +0 -46
  55. package/src/chart/RechartsWrapper.tsx +0 -551
  56. package/src/chart/Sankey.tsx +0 -1534
  57. package/src/chart/ScatterChart.tsx +0 -29
  58. package/src/chart/SunburstChart.tsx +0 -504
  59. package/src/chart/Treemap.tsx +0 -1223
  60. package/src/chart/createInitialRootProps.ts +0 -24
  61. package/src/chart/types.ts +0 -53
  62. package/src/component/ActivePoints.tsx +0 -144
  63. package/src/component/Cell.tsx +0 -37
  64. package/src/component/Cursor.tsx +0 -185
  65. package/src/component/Customized.tsx +0 -50
  66. package/src/component/DefaultLegendContent.tsx +0 -348
  67. package/src/component/DefaultTooltipContent.tsx +0 -224
  68. package/src/component/Dots.tsx +0 -157
  69. package/src/component/Label.tsx +0 -636
  70. package/src/component/LabelList.tsx +0 -375
  71. package/src/component/Legend.tsx +0 -512
  72. package/src/component/ResponsiveContainer.tsx +0 -348
  73. package/src/component/Text.tsx +0 -541
  74. package/src/component/Tooltip.tsx +0 -470
  75. package/src/component/TooltipBoundingBox.tsx +0 -146
  76. package/src/component/responsiveContainerUtils.ts +0 -134
  77. package/src/container/ClipPathProvider.tsx +0 -51
  78. package/src/container/Layer.tsx +0 -38
  79. package/src/container/RootSurface.tsx +0 -120
  80. package/src/container/Surface.tsx +0 -61
  81. package/src/context/CellsContext.tsx +0 -54
  82. package/src/context/ErrorBarContext.tsx +0 -146
  83. package/src/context/GraphicalItemChildrenScope.tsx +0 -18
  84. package/src/context/PanoramaContext.tsx +0 -9
  85. package/src/context/RegisterGraphicalItemId.tsx +0 -30
  86. package/src/context/accessibilityContext.tsx +0 -6
  87. package/src/context/brushUpdateContext.tsx +0 -9
  88. package/src/context/chartDataContext.tsx +0 -97
  89. package/src/context/chartLayoutContext.tsx +0 -201
  90. package/src/context/legendPayloadContext.tsx +0 -20
  91. package/src/context/legendPortalContext.tsx +0 -12
  92. package/src/context/tooltipContext.tsx +0 -89
  93. package/src/context/tooltipPortalContext.tsx +0 -12
  94. package/src/context/useTooltipAxis.ts +0 -22
  95. package/src/hooks.ts +0 -476
  96. package/src/index.ts +0 -280
  97. package/src/polar/Pie.tsx +0 -1360
  98. package/src/polar/PolarAngleAxis.tsx +0 -616
  99. package/src/polar/PolarGrid.tsx +0 -312
  100. package/src/polar/PolarRadiusAxis.tsx +0 -547
  101. package/src/polar/Radar.tsx +0 -734
  102. package/src/polar/RadialBar.tsx +0 -917
  103. package/src/polar/defaultPolarAngleAxisProps.tsx +0 -27
  104. package/src/polar/defaultPolarRadiusAxisProps.tsx +0 -25
  105. package/src/shape/Cross.tsx +0 -89
  106. package/src/shape/Curve.tsx +0 -343
  107. package/src/shape/Dot.tsx +0 -70
  108. package/src/shape/Polygon.tsx +0 -195
  109. package/src/shape/Rectangle.tsx +0 -470
  110. package/src/shape/Sector.tsx +0 -347
  111. package/src/shape/Symbols.tsx +0 -139
  112. package/src/shape/Trapezoid.tsx +0 -280
  113. package/src/state/RechartsStateContext.tsx +0 -12
  114. package/src/state/RechartsStateProvider.tsx +0 -87
  115. package/src/state/RechartsStoreContext.tsx +0 -25
  116. package/src/state/RechartsStoreProvider.tsx +0 -35
  117. package/src/state/ReportChartProps.tsx +0 -40
  118. package/src/state/ReportEventSettings.tsx +0 -30
  119. package/src/state/ReportMainChartProps.tsx +0 -61
  120. package/src/state/ReportPolarOptions.tsx +0 -35
  121. package/src/state/SetGraphicalItem.ts +0 -79
  122. package/src/state/SetLegendPayload.ts +0 -134
  123. package/src/state/SetTooltipEntrySettings.tsx +0 -72
  124. package/src/state/actions.ts +0 -464
  125. package/src/state/brushSlice.ts +0 -13
  126. package/src/state/cartesianAxisSlice.ts +0 -141
  127. package/src/state/chartDataSlice.ts +0 -50
  128. package/src/state/chartState.ts +0 -297
  129. package/src/state/errorBarSlice.ts +0 -29
  130. package/src/state/eventSettingsSlice.ts +0 -8
  131. package/src/state/events.ts +0 -76
  132. package/src/state/externalEventsMiddleware.ts +0 -255
  133. package/src/state/graphicalItemsSlice.ts +0 -74
  134. package/src/state/hooks/useChartSelectors.tsx +0 -45
  135. package/src/state/keyboardEventsMiddleware.ts +0 -228
  136. package/src/state/layoutSlice.ts +0 -21
  137. package/src/state/legendSlice.ts +0 -57
  138. package/src/state/mouseEventsMiddleware.ts +0 -185
  139. package/src/state/optionsSlice.ts +0 -47
  140. package/src/state/polarAxisSlice.ts +0 -10
  141. package/src/state/polarOptionsSlice.ts +0 -12
  142. package/src/state/rawData.ts +0 -26
  143. package/src/state/referenceElementsSlice.ts +0 -40
  144. package/src/state/renderedTicksSlice.ts +0 -15
  145. package/src/state/rootPropsSlice.ts +0 -47
  146. package/src/state/selectors/areaSelectors.ts +0 -240
  147. package/src/state/selectors/arrayEqualityCheck.ts +0 -29
  148. package/src/state/selectors/axisSelectors.ts +0 -2157
  149. package/src/state/selectors/barSelectors.ts +0 -310
  150. package/src/state/selectors/barStackSelectors.ts +0 -77
  151. package/src/state/selectors/brushSelectors.ts +0 -33
  152. package/src/state/selectors/chartSelector.ts +0 -185
  153. package/src/state/selectors/combiners/combineActiveLabel.ts +0 -16
  154. package/src/state/selectors/combiners/combineActiveTooltipIndex.ts +0 -95
  155. package/src/state/selectors/combiners/combineAllBarPositions.ts +0 -122
  156. package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +0 -16
  157. package/src/state/selectors/combiners/combineBarPosition.ts +0 -23
  158. package/src/state/selectors/combiners/combineBarSizeList.ts +0 -80
  159. package/src/state/selectors/combiners/combineCheckedDomain.ts +0 -48
  160. package/src/state/selectors/combiners/combineConfiguredScale.ts +0 -111
  161. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +0 -45
  162. package/src/state/selectors/combiners/combineDisplayedStackedData.ts +0 -50
  163. package/src/state/selectors/combiners/combineInverseScaleFunction.ts +0 -16
  164. package/src/state/selectors/combiners/combineRealScaleType.ts +0 -44
  165. package/src/state/selectors/combiners/combineStackedData.ts +0 -27
  166. package/src/state/selectors/combiners/combineTooltipInteractionState.ts +0 -86
  167. package/src/state/selectors/combiners/combineTooltipPayload.ts +0 -205
  168. package/src/state/selectors/combiners/combineTooltipPayloadConfigurations.ts +0 -58
  169. package/src/state/selectors/containerSelectors.ts +0 -12
  170. package/src/state/selectors/dataSelectors.ts +0 -88
  171. package/src/state/selectors/funnelSelectors.ts +0 -75
  172. package/src/state/selectors/graphicalItemSelectors.ts +0 -30
  173. package/src/state/selectors/legendSelectors.ts +0 -29
  174. package/src/state/selectors/lineSelectors.ts +0 -134
  175. package/src/state/selectors/numberDomainEqualityCheck.ts +0 -14
  176. package/src/state/selectors/pickAxisId.ts +0 -5
  177. package/src/state/selectors/pickAxisType.ts +0 -3
  178. package/src/state/selectors/pieSelectors.ts +0 -97
  179. package/src/state/selectors/polarAxisSelectors.ts +0 -201
  180. package/src/state/selectors/polarGridSelectors.ts +0 -28
  181. package/src/state/selectors/polarScaleSelectors.ts +0 -133
  182. package/src/state/selectors/polarSelectors.ts +0 -219
  183. package/src/state/selectors/radarSelectors.ts +0 -191
  184. package/src/state/selectors/radialBarSelectors.ts +0 -435
  185. package/src/state/selectors/rootPropsSelectors.ts +0 -25
  186. package/src/state/selectors/scatterSelectors.ts +0 -96
  187. package/src/state/selectors/selectActivePropsFromChartPointer.ts +0 -26
  188. package/src/state/selectors/selectAllAxes.ts +0 -17
  189. package/src/state/selectors/selectChartOffset.ts +0 -16
  190. package/src/state/selectors/selectChartOffsetInternal.ts +0 -136
  191. package/src/state/selectors/selectLegendArea.ts +0 -20
  192. package/src/state/selectors/selectPlotArea.ts +0 -22
  193. package/src/state/selectors/selectTooltipAxisId.ts +0 -7
  194. package/src/state/selectors/selectTooltipAxisType.ts +0 -32
  195. package/src/state/selectors/selectTooltipEventType.ts +0 -48
  196. package/src/state/selectors/selectTooltipPayloadSearcher.ts +0 -6
  197. package/src/state/selectors/selectTooltipSettings.ts +0 -39
  198. package/src/state/selectors/selectTooltipState.ts +0 -8
  199. package/src/state/selectors/selectors.ts +0 -271
  200. package/src/state/selectors/tooltipSelectors.ts +0 -578
  201. package/src/state/selectors/touchSelectors.ts +0 -31
  202. package/src/state/store.ts +0 -29
  203. package/src/state/storeIdentity.ts +0 -9
  204. package/src/state/teardownWrite.ts +0 -10
  205. package/src/state/tooltipInteraction.ts +0 -23
  206. package/src/state/tooltipSlice.ts +0 -334
  207. package/src/state/touchEventsMiddleware.ts +0 -214
  208. package/src/state/types/AnimationSettings.ts +0 -20
  209. package/src/state/types/AreaSettings.ts +0 -14
  210. package/src/state/types/BarSettings.ts +0 -15
  211. package/src/state/types/LineSettings.ts +0 -9
  212. package/src/state/types/PieSettings.ts +0 -34
  213. package/src/state/types/RadarSettings.ts +0 -5
  214. package/src/state/types/RadialBarSettings.ts +0 -10
  215. package/src/state/types/ScatterSettings.ts +0 -12
  216. package/src/state/types/StackedGraphicalItem.ts +0 -34
  217. package/src/state/useChartState.ts +0 -17
  218. package/src/state/zIndexSlice.ts +0 -39
  219. package/src/synchronisation/syncSelectors.ts +0 -7
  220. package/src/synchronisation/types.ts +0 -44
  221. package/src/synchronisation/useChartSynchronisation.tsx +0 -404
  222. package/src/theme/RechartsTheme.ts +0 -16
  223. package/src/theme/RechartsThemeContext.ts +0 -19
  224. package/src/theme/darkTheme.ts +0 -13
  225. package/src/theme/graphicalItemIdentity.ts +0 -70
  226. package/src/theme/legacyTheme.ts +0 -17
  227. package/src/theme/lightTheme.ts +0 -13
  228. package/src/types.ts +0 -54
  229. package/src/util/ActiveShapeUtils.tsx +0 -162
  230. package/src/util/BarUtils.tsx +0 -62
  231. package/src/util/BarePortal.tsx +0 -50
  232. package/src/util/CamelCaseSVGAttrs.ts +0 -34
  233. package/src/util/CartesianUtils.ts +0 -48
  234. package/src/util/ChartUtils.ts +0 -802
  235. package/src/util/Constants.ts +0 -42
  236. package/src/util/CssPrefixUtils.ts +0 -20
  237. package/src/util/DOMUtils.ts +0 -129
  238. package/src/util/DataUtils.ts +0 -216
  239. package/src/util/Events.ts +0 -16
  240. package/src/util/FunnelUtils.tsx +0 -15
  241. package/src/util/Global.ts +0 -12
  242. package/src/util/IfOverflow.ts +0 -15
  243. package/src/util/LRUCache.ts +0 -41
  244. package/src/util/LogUtils.ts +0 -22
  245. package/src/util/PolarUtils.ts +0 -132
  246. package/src/util/RadialBarUtils.tsx +0 -24
  247. package/src/util/ReactUtils.ts +0 -95
  248. package/src/util/ReduceCSSCalc.ts +0 -187
  249. package/src/util/ScatterUtils.tsx +0 -52
  250. package/src/util/ShapeElementProps.tsx +0 -87
  251. package/src/util/TickUtils.ts +0 -60
  252. package/src/util/XAxisUtils.ts +0 -48
  253. package/src/util/YAxisUtils.ts +0 -48
  254. package/src/util/axisPropsAreEqual.ts +0 -48
  255. package/src/util/createCartesianCharts.tsx +0 -150
  256. package/src/util/createEventProxy.ts +0 -20
  257. package/src/util/createPolarCharts.tsx +0 -112
  258. package/src/util/cursor/getCursorPoints.ts +0 -46
  259. package/src/util/cursor/getCursorRectangle.ts +0 -28
  260. package/src/util/cursor/getRadialCursorPoints.ts +0 -32
  261. package/src/util/excludeEventProps.ts +0 -171
  262. package/src/util/getActiveCoordinate.ts +0 -213
  263. package/src/util/getAxisTypeBasedOnLayout.ts +0 -21
  264. package/src/util/getClassNameFromUnknown.ts +0 -6
  265. package/src/util/getEveryNth.ts +0 -27
  266. package/src/util/getRadiusAndStrokeWidthFromDot.ts +0 -35
  267. package/src/util/getRelativeCoordinate.ts +0 -80
  268. package/src/util/getSliced.ts +0 -13
  269. package/src/util/hoverDedupe.ts +0 -41
  270. package/src/util/isDomainSpecifiedByUser.ts +0 -219
  271. package/src/util/isWellBehavedNumber.ts +0 -7
  272. package/src/util/pathTotalLength.ts +0 -25
  273. package/src/util/payload/getUniqPayload.ts +0 -28
  274. package/src/util/propsAreEqual.ts +0 -121
  275. package/src/util/resolveDefaultProps.ts +0 -161
  276. package/src/util/round.ts +0 -32
  277. package/src/util/scale/CartesianScaleHelper.ts +0 -72
  278. package/src/util/scale/CustomScaleDefinition.ts +0 -81
  279. package/src/util/scale/RechartsScale.ts +0 -130
  280. package/src/util/scale/createCategoricalInverse.ts +0 -72
  281. package/src/util/scale/getNiceTickValues.ts +0 -311
  282. package/src/util/scale/index.ts +0 -2
  283. package/src/util/scale/util/arithmetic.ts +0 -54
  284. package/src/util/solid-1-compat.ts +0 -310
  285. package/src/util/solidJsxCamelAugment.d.ts +0 -84
  286. package/src/util/stacks/getStackSeriesIdentifier.ts +0 -21
  287. package/src/util/stacks/stackTypes.ts +0 -60
  288. package/src/util/structurallyEqual.ts +0 -31
  289. package/src/util/svgPropertiesAndEvents.ts +0 -53
  290. package/src/util/svgPropertiesNoEvents.ts +0 -571
  291. package/src/util/tooltip/translate.ts +0 -171
  292. package/src/util/typedDataKey.ts +0 -48
  293. package/src/util/types.ts +0 -1560
  294. package/src/util/useAnimationId.ts +0 -31
  295. package/src/util/useElementOffset.ts +0 -110
  296. package/src/util/useId.ts +0 -8
  297. package/src/util/usePrefersReducedMotion.ts +0 -48
  298. package/src/util/useReportScale.ts +0 -24
  299. package/src/util/useUniqueId.ts +0 -30
  300. package/src/zIndex/DefaultZIndexes.ts +0 -84
  301. package/src/zIndex/ZIndexLayer.tsx +0 -121
  302. package/src/zIndex/ZIndexPortal.tsx +0 -79
  303. package/src/zIndex/getZIndexFromUnknown.ts +0 -14
  304. package/src/zIndex/zIndexSelectors.ts +0 -48
@@ -1,141 +0,0 @@
1
- import type {
2
- AxisDomain,
3
- AxisInterval,
4
- AxisTick,
5
- DataKey,
6
- EvaluatedAxisDomainType,
7
- ScaleType,
8
- TickProp,
9
- } from "../util/types"
10
- import type { TickFormatter } from "../cartesian/CartesianAxis"
11
- import type { AxisRange } from "./selectors/axisSelectors"
12
- import type { CustomScaleDefinition } from "../util/scale/CustomScaleDefinition"
13
-
14
- /**
15
- * @inline
16
- */
17
- export type AxisId = string | number
18
- export const defaultAxisId: AxisId = 0
19
- export type XAxisPadding = { left?: number; right?: number } | "gap" | "no-gap"
20
- export type YAxisPadding = { top?: number; bottom?: number } | "gap" | "no-gap"
21
-
22
- export type XAxisOrientation = "top" | "bottom"
23
- export type YAxisOrientation = "left" | "right"
24
-
25
- /**
26
- * Controls how Recharts calculates "nice" tick values for an axis.
27
- * - `'auto'` (default): nice ticks for linear numeric axes, extending an `'auto'` domain.
28
- * - `'adaptive'`: always use the space-efficient algorithm.
29
- * - `'snap125'`: snap steps to 1, 2, 2.5, 5 at each order of magnitude.
30
- * - `'none'`: no nice ticks.
31
- *
32
- * @inline
33
- */
34
- export type NiceTicksAlgorithm = "none" | "auto" | "adaptive" | "snap125"
35
-
36
- /**
37
- * Properties shared in X, Y, and Z axes.
38
- * User defined axis settings, coming from props.
39
- */
40
- export type BaseCartesianAxis = {
41
- id: AxisId
42
- scale:
43
- | ScaleType
44
- | CustomScaleDefinition
45
- | CustomScaleDefinition<string>
46
- | CustomScaleDefinition<number>
47
- | CustomScaleDefinition<Date>
48
- /**
49
- * Before creating this object, evaluate the domain type based on the chart layout so that we have the 'auto' resolved.
50
- */
51
- type: EvaluatedAxisDomainType
52
- /**
53
- * The axis functionality is severely restricted without a dataKey
54
- * - but there is still something left, and the prop is optional
55
- * so this can also be undefined even in real charts.
56
- * There are no defaults.
57
- */
58
- dataKey: DataKey<unknown> | undefined
59
- unit: string | undefined
60
- name: string | undefined
61
- allowDuplicatedCategory: boolean
62
- allowDataOverflow: boolean
63
- reversed: boolean
64
- includeHidden: boolean
65
- domain: AxisDomain | undefined
66
- }
67
-
68
- export type TicksSettings = {
69
- allowDecimals: boolean
70
- /**
71
- * We pass the suggested number of ticks to d3 https://d3js.org/d3-scale/linear#linear_ticks
72
- * This number is a suggestion. d3 tries to accommodate it, but it might return more or less ticks than requested:
73
- * > The specified count is only a hint; the scale may return more or fewer values depending on the domain.
74
- *
75
- * If undefined, then d3 decides the number of ticks on its own. The default in d3 is 10,
76
- * but it can vary based on the domain size and other factors.
77
- */
78
- tickCount: number | undefined
79
- /**
80
- * Ticks can be any type when the axis is the type of category
81
- * Ticks must be numbers when the axis is the type of number
82
- */
83
- ticks: ReadonlyArray<AxisTick> | undefined
84
- tick: TickProp<unknown>
85
- /**
86
- * Controls how Recharts calculates "nice" tick values for this axis.
87
- * See {@link NiceTicksAlgorithm} for a full description of each option.
88
- *
89
- * @defaultValue 'auto'
90
- */
91
- niceTicks: NiceTicksAlgorithm
92
- }
93
-
94
- /**
95
- * These are the external props, visible for users as they set them using our public API.
96
- * There is all sorts of internal computed things based on these, but they will come through selectors.
97
- *
98
- * Properties shared between X and Y axes
99
- */
100
- export type CartesianAxisSettings = BaseCartesianAxis &
101
- TicksSettings & {
102
- interval: AxisInterval
103
- mirror: boolean
104
- minTickGap: number
105
- angle: number
106
- hide: boolean
107
- tickFormatter: TickFormatter | undefined
108
- }
109
-
110
- export type XAxisHeight = number | "auto"
111
-
112
- export type XAxisSettings = CartesianAxisSettings & {
113
- padding: XAxisPadding
114
- height: XAxisHeight
115
- orientation: XAxisOrientation
116
- heightHistory?: number[]
117
- }
118
-
119
- export type YAxisWidth = number | "auto"
120
-
121
- export type YAxisSettings = CartesianAxisSettings & {
122
- padding: YAxisPadding
123
- width: YAxisWidth
124
- orientation: YAxisOrientation
125
- widthHistory?: number[]
126
- }
127
-
128
- /**
129
- * Z axis is special because it's never displayed. It controls the size of Scatter dots,
130
- * but it never displays ticks anywhere.
131
- */
132
- export type ZAxisSettings = BaseCartesianAxis & {
133
- range: AxisRange
134
- }
135
-
136
- export type AxisMapState = {
137
- xAxis: Record<AxisId, XAxisSettings>
138
- yAxis: Record<AxisId, YAxisSettings>
139
- zAxis: Record<AxisId, ZAxisSettings>
140
- }
141
-
@@ -1,50 +0,0 @@
1
- import type { BrushStartEndIndex } from "../context/brushUpdateContext"
2
-
3
- /**
4
- * This is the data that's coming through main chart `data` prop
5
- * Recharts is very flexible in what it accepts so the type is very flexible too.
6
- * This will typically be an object, and various components will provide various `dataKey`
7
- * that dictates how to pull data from that object.
8
- *
9
- * TL;DR: before dataKey
10
- *
11
- * @inline
12
- */
13
- export type ChartData<DataPointType = unknown> = ReadonlyArray<DataPointType>
14
-
15
- /**
16
- * So this is the same unknown type as ChartData but this is after the dataKey has been applied.
17
- * We still don't know what the type is - that depends on what exactly it was before the dataKey application,
18
- * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation.
19
- *
20
- * TL;DR: ChartData after dataKey.
21
- */
22
- export type AppliedChartData = ReadonlyArray<{ value: unknown }>
23
-
24
- export type ChartDataState = {
25
- chartData: ChartData | undefined
26
- /**
27
- * store a copy of chart data after it has been processed by each chart's specific
28
- * compute functions. TODO: add other charts besides Sankey
29
- */
30
- computedData: unknown | undefined
31
- /**
32
- * Using Brush, users can choose where they want to zoom in.
33
- * This is zero-based index of the starting data point.
34
- */
35
- dataStartIndex: number
36
- /**
37
- * Using Brush, users can choose where they want to zoom in.
38
- * This is zero-based index of the last data point.
39
- */
40
- dataEndIndex: number
41
- }
42
-
43
- export const initialChartDataState: ChartDataState = {
44
- chartData: undefined,
45
- computedData: undefined,
46
- dataEndIndex: 0,
47
- dataStartIndex: 0,
48
- }
49
-
50
- export type BrushStartEndIndexActionPayload = Partial<BrushStartEndIndex>
@@ -1,297 +0,0 @@
1
- import type { AxisId, XAxisSettings, YAxisSettings, ZAxisSettings } from "./cartesianAxisSlice"
2
- import type { AngleAxisSettings, RadiusAxisSettings } from "./polarAxisSlice"
3
- import type { TooltipState, TooltipInteractionState } from "./tooltipSlice"
4
- import type { LegendState } from "./legendSlice"
5
- import type { BrushSettings } from "./brushSlice"
6
- import type { GraphicalItemId } from "./graphicalItemsSlice"
7
- import type { ChartDataState } from "./chartDataSlice"
8
- import { markRawData } from "./rawData"
9
- import type { ErrorBarsState } from "./errorBarSlice"
10
- import type { EventSettingsState } from "./eventSettingsSlice"
11
- import type { ChartLayoutState } from "./layoutSlice"
12
- import type { ChartOptions } from "./optionsSlice"
13
- import type { PolarChartState } from "./polarOptionsSlice"
14
- import type { ReferenceElementState } from "./referenceElementsSlice"
15
- import type { UpdatableChartOptions } from "./rootPropsSlice"
16
- import type { ZIndexState } from "./zIndexSlice"
17
- import { DefaultZIndexes } from "../zIndex/DefaultZIndexes"
18
- import type { RenderedTicksState } from "./renderedTicksSlice"
19
- import { createInitialRenderedTicksState } from "./renderedTicksSlice"
20
- import type { LineSettings } from "./types/LineSettings"
21
- import type { AreaSettings } from "./types/AreaSettings"
22
- import type { BarSettings } from "./types/BarSettings"
23
- import type { ScatterSettings } from "./types/ScatterSettings"
24
- import type { PieSettings } from "./types/PieSettings"
25
- import type { RadarSettings } from "./types/RadarSettings"
26
- import type { RadialBarSettings } from "./types/RadialBarSettings"
27
-
28
- /** Phase 2+: axis entry wraps settings; leaves room for computed fields (domain, scale) in Phase 3+. */
29
- export type XAxisState = { settings: XAxisSettings }
30
-
31
- /** Phase 2+: axis entry wraps settings; leaves room for computed fields (domain, scale) in Phase 3+. */
32
- export type YAxisState = { settings: YAxisSettings }
33
-
34
- /** Phase 2+: axis entry wraps settings; leaves room for computed fields (domain, scale) in Phase 3+. */
35
- export type ZAxisState = { settings: ZAxisSettings }
36
-
37
- /** Phase 4: wraps settings for fine-grained Solid store reactivity. */
38
- export type AngleAxisState = { settings: AngleAxisSettings }
39
-
40
- /** Phase 4: wraps settings for fine-grained Solid store reactivity. */
41
- export type RadiusAxisState = { settings: RadiusAxisSettings }
42
-
43
- /** Discriminated union for cartesian graphical item state entries. */
44
- export type LineState = { type: "line"; settings: LineSettings }
45
- /** Discriminated union for cartesian graphical item state entries. */
46
- export type AreaState = { type: "area"; settings: AreaSettings }
47
- /** Discriminated union for cartesian graphical item state entries. */
48
- export type BarState = { type: "bar"; settings: BarSettings }
49
- /** Discriminated union for cartesian graphical item state entries. */
50
- export type ScatterState = { type: "scatter"; settings: ScatterSettings }
51
- /** Union of all cartesian item state shapes. */
52
- export type CartesianItemState = LineState | AreaState | BarState | ScatterState
53
-
54
- /** Discriminated union for polar graphical item state entries. */
55
- export type PieState = { type: "pie"; settings: PieSettings }
56
- /** Discriminated union for polar graphical item state entries. */
57
- export type RadarState = { type: "radar"; settings: RadarSettings }
58
- /** Discriminated union for polar graphical item state entries. */
59
- export type RadialBarState = { type: "radialBar"; settings: RadialBarSettings }
60
- /** Union of all polar item state shapes. */
61
- export type PolarItemState = PieState | RadarState | RadialBarState
62
-
63
- /** Union of all graphical item state shapes. */
64
- export type ItemState = CartesianItemState | PolarItemState
65
-
66
- /** Chart-level animation defaults. Per-item match/interpolate live on item props. */
67
- export type AnimationState = {
68
- isAnimationActive: boolean | "auto"
69
- animationDuration: number
70
- animationEasing: string
71
- }
72
-
73
- /** BrushState is BrushSettings for Phase 1; alias for clarity in ChartState. */
74
- export type BrushState = BrushSettings
75
-
76
- /** Full chart state held in a Solid createStore. */
77
- export type ChartState = {
78
- animation: AnimationState
79
- brush: BrushState
80
- cartesianAxes: {
81
- xAxis: Record<AxisId, XAxisState>
82
- yAxis: Record<AxisId, YAxisState>
83
- zAxis: Record<AxisId, ZAxisState>
84
- }
85
- chartData: ChartDataState
86
- chartSize: { width: number; height: number }
87
- errorBars: ErrorBarsState
88
- eventSettings: EventSettingsState
89
- graphicalItems: Record<GraphicalItemId, ItemState>
90
- layout: ChartLayoutState
91
- legend: LegendState
92
- margin: ChartLayoutState["margin"]
93
- options: ChartOptions
94
- polarAxes: {
95
- angleAxis: Record<AxisId, AngleAxisState>
96
- radiusAxis: Record<AxisId, RadiusAxisState>
97
- }
98
- polarOptions: PolarChartState
99
- referenceElements: ReferenceElementState
100
- renderedTicks: RenderedTicksState
101
- rootProps: UpdatableChartOptions
102
- tooltip: TooltipState
103
- zIndex: ZIndexState
104
- }
105
-
106
- /* Factories mirror each slice's initial state. Literal construction (not JSON roundtrip) so function
107
- fields (e.g. LegendItemSorter) survive. Keep in sync with the slice files. Never export a singleton. */
108
-
109
- function makeBrushState(): BrushState {
110
- return { height: 0, padding: { bottom: 0, left: 0, right: 0, top: 0 }, width: 0, x: 0, y: 0 }
111
- }
112
-
113
- function makeLegendState(): LegendState {
114
- return {
115
- payload: [],
116
- settings: {
117
- align: "center",
118
- itemSorter: "value",
119
- layout: "horizontal",
120
- offset: 0,
121
- position: undefined,
122
- verticalAlign: "middle",
123
- },
124
- size: { height: 0, width: 0 },
125
- }
126
- }
127
-
128
- function makeTooltipState(): TooltipState {
129
- const noInteraction: TooltipInteractionState = {
130
- active: false,
131
- coordinate: undefined,
132
- dataKey: undefined,
133
- graphicalItemId: undefined,
134
- index: null,
135
- }
136
- return {
137
- axisInteraction: { click: { ...noInteraction }, hover: { ...noInteraction } },
138
- itemInteraction: { click: { ...noInteraction }, hover: { ...noInteraction } },
139
- keyboardInteraction: { ...noInteraction },
140
- settings: { active: false, axisId: 0, defaultIndex: undefined, shared: undefined, trigger: "hover" },
141
- syncInteraction: {
142
- active: false,
143
- coordinate: undefined,
144
- dataKey: undefined,
145
- graphicalItemId: undefined,
146
- index: null,
147
- label: undefined,
148
- sourceViewBox: undefined,
149
- },
150
- tooltipItemPayloads: [],
151
- }
152
- }
153
-
154
- function makeChartDataState(): ChartDataState {
155
- return {
156
- chartData: undefined,
157
- computedData: undefined,
158
- dataEndIndex: 0,
159
- dataStartIndex: 0,
160
- }
161
- }
162
-
163
- /** Chart data seed for a chart root; ChartDataContextProvider keeps it in sync after mount. */
164
- export function createInitialChartDataState(data: ChartDataState["chartData"]): ChartDataState {
165
- return {
166
- ...makeChartDataState(),
167
- chartData: markRawData(data),
168
- dataEndIndex: data != null && data.length > 0 ? data.length - 1 : 0,
169
- }
170
- }
171
-
172
- function makeEventSettingsState(): EventSettingsState {
173
- return {
174
- throttleDelay: "raf",
175
- throttledEvents: ["mousemove", "touchmove", "pointermove", "scroll", "wheel"],
176
- }
177
- }
178
-
179
- function makeLayoutState(): ChartLayoutState {
180
- return {
181
- height: 0,
182
- layoutType: "horizontal",
183
- margin: { bottom: 5, left: 5, right: 5, top: 5 },
184
- scale: 1,
185
- width: 0,
186
- }
187
- }
188
-
189
- /**
190
- * Layout seed for a chart root. Report components keep the store in sync after
191
- * mount; seeding lets the first render use the declared size, margin, and layout.
192
- */
193
- export function createInitialLayoutState(seed: {
194
- width?: unknown
195
- height?: unknown
196
- margin?: Partial<ChartLayoutState["margin"]>
197
- layoutType?: ChartLayoutState["layoutType"]
198
- }): ChartLayoutState {
199
- const layout = makeLayoutState()
200
- const isPositive = (n: unknown): n is number => typeof n === "number" && Number.isFinite(n) && n > 0
201
- return {
202
- ...layout,
203
- height: isPositive(seed.height) ? seed.height : layout.height,
204
- layoutType: seed.layoutType ?? layout.layoutType,
205
- /* Same resolution as ReportChartMargin (upstream setMargin): a provided margin
206
- fills missing sides with 0, not with the default margin. */
207
- margin:
208
- seed.margin == null
209
- ? layout.margin
210
- : {
211
- bottom: seed.margin.bottom ?? 0,
212
- left: seed.margin.left ?? 0,
213
- right: seed.margin.right ?? 0,
214
- top: seed.margin.top ?? 0,
215
- },
216
- width: isPositive(seed.width) ? seed.width : layout.width,
217
- }
218
- }
219
-
220
- function makeOptionsState(): ChartOptions {
221
- return {
222
- chartName: "",
223
- defaultTooltipEventType: "axis",
224
- eventEmitter: undefined,
225
- tooltipPayloadSearcher: () => undefined,
226
- }
227
- }
228
-
229
- function makeReferenceElementsState(): ReferenceElementState {
230
- return { areas: [], dots: [], lines: [] }
231
- }
232
-
233
- function makeRootPropsState(): UpdatableChartOptions {
234
- return {
235
- accessibilityLayer: true,
236
- barCategoryGap: "10%",
237
- barGap: 4,
238
- barSize: undefined,
239
- baseValue: undefined,
240
- className: undefined,
241
- maxBarSize: undefined,
242
- reverseStackOrder: false,
243
- stackOffset: "none",
244
- syncId: undefined,
245
- syncMethod: "index",
246
- }
247
- }
248
-
249
- function makeZIndexState(): ZIndexState {
250
- const zIndexMap: ZIndexState["zIndexMap"] = {}
251
- for (const current of Object.values(DefaultZIndexes)) {
252
- zIndexMap[current] = { consumers: 0, element: undefined, panoramaElement: undefined }
253
- }
254
- return { zIndexMap }
255
- }
256
-
257
- /** Identity helper: selectors still call this while ChartState is being deleted. */
258
- export function readChartState(store: ChartState): ChartState {
259
- return store
260
- }
261
-
262
- /** Returns a fresh ChartState per call. Always use this to seed createStore — never share an instance. */
263
- export function createInitialChartState(overrides?: Partial<ChartState>): ChartState {
264
- const layout = overrides?.layout ?? makeLayoutState()
265
- return {
266
- animation: { animationDuration: 1500, animationEasing: "ease", isAnimationActive: "auto" },
267
- brush: makeBrushState(),
268
- cartesianAxes: { xAxis: {}, yAxis: {}, zAxis: {} },
269
- chartData: makeChartDataState(),
270
- chartSize: { height: layout.height, width: layout.width },
271
- errorBars: {},
272
- eventSettings: makeEventSettingsState(),
273
- graphicalItems: {},
274
- layout,
275
- legend: makeLegendState(),
276
- margin: { bottom: 5, left: 5, right: 5, top: 5 },
277
- polarAxes: { angleAxis: {}, radiusAxis: {} },
278
- polarOptions: null,
279
- referenceElements: makeReferenceElementsState(),
280
- renderedTicks: createInitialRenderedTicksState(),
281
- rootProps: makeRootPropsState(),
282
- tooltip: makeTooltipState(),
283
- zIndex: makeZIndexState(),
284
- ...overrides,
285
- options: ownChartOptions(overrides?.options ?? makeOptionsState()),
286
- }
287
- }
288
-
289
- /*
290
- * Chart modules pass module-level options (and tooltip event type lists). Solid's store maps
291
- * every raw object it wraps to its target in one global WeakMap, so a shared constant would
292
- * keep the last store that wrapped it alive and hand the next chart that store's proxy.
293
- */
294
- function ownChartOptions(options: ChartOptions): ChartOptions {
295
- const types = options.validateTooltipEventTypes
296
- return types == null ? { ...options } : { ...options, validateTooltipEventTypes: [...types] }
297
- }
@@ -1,29 +0,0 @@
1
- import type { ErrorBarDirection } from "../cartesian/ErrorBar"
2
- import type { DataKey } from "../util/types"
3
- import type { GraphicalItemId } from "./graphicalItemsSlice"
4
-
5
- /**
6
- * ErrorBars have lot more settings but all the others are scoped to the component itself.
7
- * Only some of them required to be reported to the global store because XAxis and YAxis need to know
8
- * if the error bar is contributing to extending the axis domain.
9
- */
10
- export type ErrorBarsSettings = {
11
- /**
12
- * The direction is only used in Scatter chart, and decided based on ChartLayout in other charts.
13
- */
14
- direction: ErrorBarDirection
15
- /**
16
- * The dataKey decides which property from the data will each individual ErrorBar use.
17
- * If it so happens that the ErrorBar data are bigger than the axis domain,
18
- * the error bar data will stretch the axis domain.
19
- */
20
- dataKey: DataKey<unknown>
21
- /*
22
- * ErrorBar props say that it has explicit xAxis and yAxis props,
23
- * but actually it always inherits the xAxis and yAxis defined on the parent graphical item.
24
- */
25
- }
26
-
27
- export type ErrorBarsState = Record<GraphicalItemId, ReadonlyArray<ErrorBarsSettings>>
28
-
29
- export const initialErrorBarState: ErrorBarsState = {}
@@ -1,8 +0,0 @@
1
- import type { EventThrottlingProps } from "../util/types"
2
-
3
- export type EventSettingsState = Required<EventThrottlingProps>
4
-
5
- export const initialEventSettingsState: EventSettingsState = {
6
- throttleDelay: "raf",
7
- throttledEvents: ["mousemove", "touchmove", "pointermove", "scroll", "wheel"],
8
- }
@@ -1,76 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { CategoricalChartFunc } from "../chart/types"
3
- import type { HTMLMousePointer } from "../util/types"
4
- import type { ChartState } from "./chartState"
5
- import {
6
- mouseClickAction,
7
- mouseMoveAction,
8
- } from "./mouseEventsMiddleware"
9
- import {
10
- blurAction,
11
- focusAction,
12
- keyDownAction,
13
- } from "./keyboardEventsMiddleware"
14
- import { touchEventAction } from "./touchEventsMiddleware"
15
- import { externalEventAction } from "./externalEventsMiddleware"
16
-
17
- import { type SetStoreFunction } from '../util/solid-1-compat';
18
- export type ChartEventHandlers = {
19
- handleMouseClick: (mousePointer: HTMLMousePointer) => void
20
- handleMouseMove: (mousePointer: HTMLMousePointer) => void
21
- handleFocus: () => void
22
- handleBlur: () => void
23
- handleKeyDown: (key: KeyboardEvent["key"]) => void
24
- handleTouchMove: (touchEvent: TouchEvent) => void
25
- handleExternalEvent: <E extends Event>(
26
- event: E,
27
- handler: CategoricalChartFunc<E> | undefined,
28
- ) => void
29
- }
30
-
31
- /**
32
- * Native Solid event-handler factory. Wraps the per-middleware action thunks
33
- * (`mouseClickAction`/`mouseMoveAction`/`focusAction`/`blurAction`/
34
- * `keyDownAction`/`touchEventAction`/`externalEventAction`) into a single
35
- * composed object exposed on the store context.
36
- *
37
- * Behavior matches the underlying action wrappers: synchronous state mutation
38
- * so that subsequent `handleExternalEvent` reads observe the freshly-updated
39
- * tooltip state in the same tick (chartEvents contract). The throttled
40
- * `createMouseEventHandlers` etc. factories remain on their middleware
41
- * modules for direct consumers but are not used here.
42
- *
43
- * `actions` is reserved for a later migration that replaces the direct
44
- * `setStore` calls inside each thunk with `actions.<method>()`.
45
- */
46
- export function createEventHandlers(
47
- store: ChartState,
48
- setStore: SetStoreFunction<ChartState>,
49
- ): ChartEventHandlers {
50
- return {
51
- handleBlur(): void {
52
- blurAction()(setStore, store)
53
- },
54
- handleExternalEvent<E extends Event>(
55
- event: E,
56
- handler: CategoricalChartFunc<E> | undefined,
57
- ): void {
58
- externalEventAction({ handler, reactEvent: event })(setStore, store)
59
- },
60
- handleFocus(): void {
61
- focusAction()(setStore, store)
62
- },
63
- handleKeyDown(key: KeyboardEvent["key"]): void {
64
- keyDownAction(key)(setStore, store)
65
- },
66
- handleMouseClick(mousePointer: HTMLMousePointer): void {
67
- mouseClickAction(mousePointer)(setStore, store)
68
- },
69
- handleMouseMove(mousePointer: HTMLMousePointer): void {
70
- mouseMoveAction(mousePointer)(setStore, store)
71
- },
72
- handleTouchMove(touchEvent: TouchEvent): void {
73
- touchEventAction(touchEvent)(setStore, store)
74
- },
75
- }
76
- }