@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,29 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import { CartesianChart } from "./CartesianChart"
5
- import type { CartesianChartProps, TooltipEventType } from "../util/types"
6
-
7
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["axis"]
8
-
9
- /**
10
- * @consumes ResponsiveContainerContext
11
- * @provides CartesianViewBoxContext
12
- * @provides CartesianChartContext
13
- */
14
- export function AreaChart<DataPointType = unknown>(
15
- props: CartesianChartProps<DataPointType> & {
16
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
17
- },
18
- ): JSX.Element {
19
- return (
20
- <CartesianChart
21
- chartName="AreaChart"
22
- defaultTooltipEventType="axis"
23
- validateTooltipEventTypes={allowedTooltipTypes}
24
- tooltipPayloadSearcher={arrayTooltipSearcher}
25
- categoricalChartProps={props}
26
- ref={props.ref}
27
- />
28
- )
29
- }
@@ -1,29 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import type { CartesianChartProps, TooltipEventType } from "../util/types"
5
- import { CartesianChart } from "./CartesianChart"
6
-
7
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["axis", "item"]
8
-
9
- /**
10
- * @consumes ResponsiveContainerContext
11
- * @provides CartesianViewBoxContext
12
- * @provides CartesianChartContext
13
- */
14
- export function BarChart<DataPointType = unknown>(
15
- props: CartesianChartProps<DataPointType> & {
16
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
17
- },
18
- ): JSX.Element {
19
- return (
20
- <CartesianChart
21
- chartName="BarChart"
22
- defaultTooltipEventType="axis"
23
- validateTooltipEventTypes={allowedTooltipTypes}
24
- tooltipPayloadSearcher={arrayTooltipSearcher}
25
- categoricalChartProps={props}
26
- ref={props.ref}
27
- />
28
- )
29
- }
@@ -1,131 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import { createMemo, untrack } from 'solid-js';
3
- import type { ChartOptions } from "../state/optionsSlice"
4
- import { RechartsStateProvider } from "../state/RechartsStateProvider"
5
- import { createInitialChartDataState, createInitialLayoutState } from "../state/chartState"
6
- import { ChartDataContextProvider } from "../context/chartDataContext"
7
- import { ReportMainChartProps } from "../state/ReportMainChartProps"
8
- import { ReportChartProps } from "../state/ReportChartProps"
9
- import { createInitialRootProps } from "./createInitialRootProps"
10
- import { ReportEventSettings } from "../state/ReportEventSettings"
11
- import type { CartesianChartProps, Margin, TooltipEventType } from "../util/types"
12
- import type { TooltipPayloadSearcher } from "../state/tooltipSlice"
13
- import { CategoricalChart } from "./CategoricalChart"
14
- import { resolveDefaultProps } from "../util/resolveDefaultProps"
15
- import { initialEventSettingsState } from "../state/eventSettingsSlice"
16
-
17
- import { splitProps } from '../util/solid-1-compat';
18
- const defaultMargin: Margin = { bottom: 5, left: 5, right: 5, top: 5 }
19
-
20
- export const defaultCartesianChartProps = {
21
- accessibilityLayer: true,
22
- barCategoryGap: "10%",
23
- barGap: 4,
24
- layout: "horizontal",
25
- margin: defaultMargin,
26
- responsive: false,
27
- reverseStackOrder: false,
28
- stackOffset: "none",
29
- syncMethod: "index",
30
- ...initialEventSettingsState,
31
- } as const satisfies Partial<CartesianChartProps>
32
-
33
- /**
34
- * These are one-time, immutable options that decide the chart's behavior.
35
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
36
- * but usually we would expect that they use one of the convenience components like BarChart, LineChart, etc.
37
- */
38
- export type CartesianChartOptions = {
39
- chartName: string
40
- defaultTooltipEventType: TooltipEventType
41
- validateTooltipEventTypes: ReadonlyArray<TooltipEventType>
42
- tooltipPayloadSearcher: TooltipPayloadSearcher
43
- categoricalChartProps: CartesianChartProps
44
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
45
- }
46
-
47
- function CartesianChartInner(props: {
48
- categoricalChartProps: CartesianChartProps
49
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
50
- }) {
51
- /*
52
- * Owner MUST be inside RechartsStoreProvider — the memo captures its creation-site owner,
53
- * and any createComponent triggered during memo evaluation (via the `children` getter on
54
- * the Solid props proxy) inherits that owner. If this memo lived in the outer CartesianChart
55
- * component, children instantiated through the spread would be OUTSIDE the store Provider.
56
- *
57
- * Children must NOT flow through the resolveDefaultProps spread. resolveDefaultProps does
58
- * `{...realProps}` which enumerates own keys of the Solid props proxy — reading the
59
- * `children` getter eagerly calls createComponent(...) on user JSX (Legend, Tooltip, etc.)
60
- * under the CURRENT owner. That owner is inside RechartsStoreProvider but OUTSIDE
61
- * RechartsWrapper, so user components miss the LegendPortalContext / TooltipPortalContext
62
- * Providers that RechartsWrapper installs. Strip children with splitProps and pass them
63
- * as JSX children so the read happens deep inside RechartsWrapper, where all Providers
64
- * are visible.
65
- */
66
- /* eslint-disable-next-line solid/reactivity -- splitProps receives the nested prop accessor once; restProps is a reactive proxy, reactivity flows through it */
67
- const [childrenProps, restProps] = splitProps(props.categoricalChartProps, ["children"])
68
- const rootChartProps = createMemo(() =>
69
- resolveDefaultProps(restProps, defaultCartesianChartProps),
70
- )
71
-
72
- return (
73
- <>
74
- <ChartDataContextProvider chartData={rootChartProps().data} />
75
- <ReportMainChartProps layout={rootChartProps().layout} margin={rootChartProps().margin} />
76
- <ReportEventSettings
77
- throttleDelay={rootChartProps().throttleDelay}
78
- throttledEvents={rootChartProps().throttledEvents}
79
- />
80
- <ReportChartProps
81
- baseValue={rootChartProps().baseValue}
82
- accessibilityLayer={rootChartProps().accessibilityLayer}
83
- barCategoryGap={rootChartProps().barCategoryGap}
84
- maxBarSize={rootChartProps().maxBarSize}
85
- stackOffset={rootChartProps().stackOffset}
86
- barGap={rootChartProps().barGap}
87
- barSize={rootChartProps().barSize}
88
- syncId={rootChartProps().syncId}
89
- syncMethod={rootChartProps().syncMethod}
90
- className={rootChartProps().className}
91
- reverseStackOrder={rootChartProps().reverseStackOrder}
92
- />
93
- <CategoricalChart {...rootChartProps()} ref={props.ref}>
94
- {childrenProps.children}
95
- </CategoricalChart>
96
- </>
97
- )
98
- }
99
-
100
- export function CartesianChart(props: CartesianChartOptions) {
101
- const options = (): ChartOptions => ({
102
- chartName: props.chartName,
103
- defaultTooltipEventType: props.defaultTooltipEventType,
104
- eventEmitter: undefined,
105
- tooltipPayloadSearcher: props.tooltipPayloadSearcher,
106
- validateTooltipEventTypes: props.validateTooltipEventTypes,
107
- })
108
-
109
- const initialChartData = () =>
110
- untrack(() => createInitialChartDataState(props.categoricalChartProps.data))
111
- const initialLayout = () =>
112
- untrack(() =>
113
- createInitialLayoutState({
114
- height: props.categoricalChartProps.height,
115
- layoutType: props.categoricalChartProps.layout ?? defaultCartesianChartProps.layout,
116
- margin: props.categoricalChartProps.margin ?? defaultCartesianChartProps.margin,
117
- width: props.categoricalChartProps.width,
118
- }),
119
- )
120
-
121
- return (
122
- <RechartsStateProvider preloadedState={{
123
- chartData: initialChartData(),
124
- layout: initialLayout(),
125
- options: options(),
126
- rootProps: untrack(() => createInitialRootProps(props.categoricalChartProps)),
127
- }}>
128
- <CartesianChartInner categoricalChartProps={props.categoricalChartProps} ref={props.ref} />
129
- </RechartsStateProvider>
130
- )
131
- }
@@ -1,94 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import { RootSurface } from "../container/RootSurface"
3
- import { RechartsWrapper } from "./RechartsWrapper"
4
- import { ClipPathProvider } from "../container/ClipPathProvider"
5
- import { useIsPanorama } from "../context/PanoramaContext"
6
- import type { CartesianChartProps } from "../util/types"
7
- import { svgPropertiesNoEvents } from "../util/svgPropertiesNoEvents"
8
- import { ReportChartSize } from "../context/chartLayoutContext"
9
-
10
- import { untrack } from "solid-js"
11
- import { bindRef, splitProps } from '../util/solid-1-compat';
12
- export function CategoricalChart(
13
- props: CartesianChartProps & {
14
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
15
- },
16
- ) {
17
- const [local, others] = splitProps(props, [
18
- "width",
19
- "height",
20
- "responsive",
21
- "children",
22
- "className",
23
- "style",
24
- "compact",
25
- "title",
26
- "desc",
27
- "ref",
28
- "onClick",
29
- "onMouseLeave",
30
- "onMouseEnter",
31
- "onMouseMove",
32
- "onMouseDown",
33
- "onMouseUp",
34
- "onContextMenu",
35
- "onDoubleClick",
36
- "onTouchStart",
37
- "onTouchMove",
38
- "onTouchEnd",
39
- ])
40
- const attrs = () => svgPropertiesNoEvents(others)
41
-
42
- /*
43
- * The "compact" mode is used as the panorama within Brush.
44
- * However because `compact` is a public prop, let's assume that it can render outside of Brush too.
45
- */
46
- /* Upstream Brush clones its child chart with `compact: true`; Solid cannot clone
47
- JSX, so a chart rendered inside the Brush panorama is compact by context.
48
- `compact` is set once at creation and never changes at runtime. */
49
- const isPanorama = useIsPanorama()
50
- if (isPanorama || untrack(() => local.compact)) {
51
- return (
52
- <>
53
- <ReportChartSize width={local.width} height={local.height} />
54
- <RootSurface
55
- otherAttributes={attrs()}
56
- title={local.title}
57
- desc={local.desc}
58
- >
59
- {local.children}
60
- </RootSurface>
61
- </>
62
- )
63
- }
64
-
65
- return (
66
- <RechartsWrapper
67
- class={local.className}
68
- style={local.style}
69
- width={local.width}
70
- height={local.height}
71
- responsive={local.responsive ?? false}
72
- onClick={local.onClick}
73
- onMouseLeave={local.onMouseLeave}
74
- onMouseEnter={local.onMouseEnter}
75
- onMouseMove={local.onMouseMove}
76
- onMouseDown={local.onMouseDown}
77
- onMouseUp={local.onMouseUp}
78
- onContextMenu={local.onContextMenu}
79
- onDoubleClick={local.onDoubleClick}
80
- onTouchStart={local.onTouchStart}
81
- onTouchMove={local.onTouchMove}
82
- onTouchEnd={local.onTouchEnd}
83
- >
84
- <RootSurface
85
- otherAttributes={attrs()}
86
- title={local.title}
87
- desc={local.desc}
88
- ref={(el) => bindRef(local.ref, el)}
89
- >
90
- <ClipPathProvider>{local.children}</ClipPathProvider>
91
- </RootSurface>
92
- </RechartsWrapper>
93
- )
94
- }
@@ -1,29 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import { CartesianChart } from "./CartesianChart"
5
- import type { CartesianChartProps, TooltipEventType } from "../util/types"
6
-
7
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["axis"]
8
-
9
- /**
10
- * @consumes ResponsiveContainerContext
11
- * @provides CartesianViewBoxContext
12
- * @provides CartesianChartContext
13
- */
14
- export function ComposedChart<DataPointType = unknown>(
15
- props: CartesianChartProps<DataPointType> & {
16
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
17
- },
18
- ): JSX.Element {
19
- return (
20
- <CartesianChart
21
- chartName="ComposedChart"
22
- defaultTooltipEventType="axis"
23
- validateTooltipEventTypes={allowedTooltipTypes}
24
- tooltipPayloadSearcher={arrayTooltipSearcher}
25
- categoricalChartProps={props}
26
- ref={props.ref}
27
- />
28
- )
29
- }
@@ -1,29 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import { CartesianChart } from "./CartesianChart"
5
- import type { CartesianChartProps, TooltipEventType } from "../util/types"
6
-
7
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["item"]
8
-
9
- /**
10
- * @consumes ResponsiveContainerContext
11
- * @provides CartesianViewBoxContext
12
- * @provides CartesianChartContext
13
- */
14
- export function FunnelChart<DataPointType = unknown>(
15
- props: CartesianChartProps<DataPointType> & {
16
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
17
- },
18
- ): JSX.Element {
19
- return (
20
- <CartesianChart
21
- chartName="FunnelChart"
22
- defaultTooltipEventType="item"
23
- validateTooltipEventTypes={allowedTooltipTypes}
24
- tooltipPayloadSearcher={arrayTooltipSearcher}
25
- categoricalChartProps={props}
26
- ref={props.ref}
27
- />
28
- )
29
- }
@@ -1,29 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import { CartesianChart } from "./CartesianChart"
5
- import type { CartesianChartProps, TooltipEventType } from "../util/types"
6
-
7
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["axis"]
8
-
9
- /**
10
- * @consumes ResponsiveContainerContext
11
- * @provides CartesianViewBoxContext
12
- * @provides CartesianChartContext
13
- */
14
- export function LineChart<DataPointType = unknown>(
15
- props: CartesianChartProps<DataPointType> & {
16
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
17
- },
18
- ): JSX.Element {
19
- return (
20
- <CartesianChart
21
- chartName="LineChart"
22
- defaultTooltipEventType="axis"
23
- validateTooltipEventTypes={allowedTooltipTypes}
24
- tooltipPayloadSearcher={arrayTooltipSearcher}
25
- categoricalChartProps={props}
26
- ref={props.ref}
27
- />
28
- )
29
- }
@@ -1,50 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import { defaultPolarChartProps, PolarChart } from "./PolarChart"
5
- import type { PolarChartProps, TooltipEventType } from "../util/types"
6
-
7
- import { mergeProps } from '../util/solid-1-compat';
8
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["item"]
9
-
10
- export const defaultPieChartProps = {
11
- ...defaultPolarChartProps,
12
- endAngle: 360,
13
- layout: "centric",
14
- startAngle: 0,
15
- } as const satisfies Partial<PolarChartProps<never>>
16
-
17
- /**
18
- * @consumes ResponsiveContainerContext
19
- * @provides PolarViewBoxContext
20
- * @provides PolarChartContext
21
- */
22
- export function PieChart<DataPointType = unknown>(
23
- props: PolarChartProps<DataPointType> & { ref?: SVGSVGElement | ((el: SVGSVGElement) => void) },
24
- ): JSX.Element {
25
- /* mergeProps preserves the props proxy — do NOT resolveDefaultProps here.
26
- resolveDefaultProps spreads `{...realProps}` which enumerates own keys including
27
- `children`; reading the children getter eagerly instantiates user JSX (Legend,
28
- Tooltip, etc.) under PieChart's owner — which sits ABOVE RechartsStoreProvider
29
- and the portal Providers, breaking every downstream context lookup. */
30
- const propsWithDefaults = mergeProps(defaultPieChartProps, props) as PolarChartProps<
31
- DataPointType
32
- > & {
33
- cx: NonNullable<PolarChartProps["cx"]>
34
- cy: NonNullable<PolarChartProps["cy"]>
35
- startAngle: NonNullable<PolarChartProps["startAngle"]>
36
- endAngle: NonNullable<PolarChartProps["endAngle"]>
37
- innerRadius: NonNullable<PolarChartProps["innerRadius"]>
38
- outerRadius: NonNullable<PolarChartProps["outerRadius"]>
39
- }
40
- return (
41
- <PolarChart
42
- chartName="PieChart"
43
- defaultTooltipEventType="item"
44
- validateTooltipEventTypes={allowedTooltipTypes}
45
- tooltipPayloadSearcher={arrayTooltipSearcher}
46
- categoricalChartProps={propsWithDefaults}
47
- ref={props.ref}
48
- />
49
- )
50
- }
@@ -1,164 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import { createMemo, untrack } from 'solid-js';
3
- import type { ChartOptions } from "../state/optionsSlice"
4
- import { RechartsStateProvider } from "../state/RechartsStateProvider"
5
- import { createInitialChartDataState, createInitialLayoutState } from "../state/chartState"
6
- import { ChartDataContextProvider } from "../context/chartDataContext"
7
- import { ReportMainChartProps } from "../state/ReportMainChartProps"
8
- import { ReportChartProps } from "../state/ReportChartProps"
9
- import { createInitialRootProps } from "./createInitialRootProps"
10
- import { ReportEventSettings } from "../state/ReportEventSettings"
11
- import { ReportPolarOptions } from "../state/ReportPolarOptions"
12
- import type { Margin, PolarChartProps, TooltipEventType } from "../util/types"
13
- import type { TooltipPayloadSearcher } from "../state/tooltipSlice"
14
- import { CategoricalChart } from "./CategoricalChart"
15
- import { resolveDefaultProps } from "../util/resolveDefaultProps"
16
- import { initialEventSettingsState } from "../state/eventSettingsSlice"
17
-
18
- import { splitProps } from '../util/solid-1-compat';
19
- const defaultMargin: Margin = { bottom: 5, left: 5, right: 5, top: 5 }
20
-
21
- /**
22
- * These default props are the same for all PolarChart components.
23
- */
24
- export const defaultPolarChartProps = {
25
- accessibilityLayer: true,
26
- barCategoryGap: "10%",
27
- barGap: 4,
28
- cx: "50%",
29
- cy: "50%",
30
- innerRadius: 0,
31
- layout: "radial",
32
- margin: defaultMargin,
33
- outerRadius: "80%",
34
- responsive: false,
35
- reverseStackOrder: false,
36
- stackOffset: "none",
37
- syncMethod: "index",
38
- ...initialEventSettingsState,
39
- } as const satisfies Partial<PolarChartProps<never>>
40
-
41
- /**
42
- * These props are required for the PolarChart to function correctly.
43
- * Users usually would not need to specify these explicitly,
44
- * because the convenience components like PieChart, RadarChart, etc.
45
- * will provide these defaults.
46
- * We can't have the defaults in this file because each of those convenience components
47
- * have their own opinions about what they should be.
48
- */
49
- type PolarChartPropsWithDefaults = PolarChartProps & {
50
- cx: NonNullable<PolarChartProps["cx"]>
51
- cy: NonNullable<PolarChartProps["cy"]>
52
- startAngle: NonNullable<PolarChartProps["startAngle"]>
53
- endAngle: NonNullable<PolarChartProps["endAngle"]>
54
- innerRadius: NonNullable<PolarChartProps["innerRadius"]>
55
- outerRadius: NonNullable<PolarChartProps["outerRadius"]>
56
- }
57
-
58
- /**
59
- * These are one-time, immutable options that decide the chart's behavior.
60
- * Users who wish to call CartesianChart may decide to pass these options explicitly,
61
- * but usually we would expect that they use one of the convenience components like PieChart, RadarChart, etc.
62
- */
63
- export type PolarChartOptions = {
64
- chartName: string
65
- defaultTooltipEventType: TooltipEventType
66
- validateTooltipEventTypes: ReadonlyArray<TooltipEventType>
67
- tooltipPayloadSearcher: TooltipPayloadSearcher
68
- categoricalChartProps: PolarChartPropsWithDefaults
69
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
70
- }
71
-
72
- function PolarChartInner(props: {
73
- categoricalChartProps: PolarChartPropsWithDefaults
74
- ref?: SVGSVGElement | ((el: SVGSVGElement) => void)
75
- }) {
76
- /*
77
- * See GOTCHA-004 and GOTCHA-005: memo must be created inside RechartsStoreProvider.
78
- * resolveDefaultProps spreads the props proxy, which enumerates own keys including
79
- * `children`; reading the children getter eagerly instantiates user JSX (Legend,
80
- * Tooltip, etc.) under the CURRENT owner. That owner sits above RechartsWrapper, so
81
- * those user components miss the LegendPortalContext / TooltipPortalContext Providers.
82
- * Strip children with splitProps and pass them as JSX children so the read happens
83
- * deep inside RechartsWrapper, where every Provider is visible.
84
- */
85
- /* eslint-disable-next-line solid/reactivity -- splitProps receives the nested prop accessor once; restProps is a reactive proxy, reactivity flows through it */
86
- const [childrenProps, restProps] = splitProps(props.categoricalChartProps, ["children"])
87
- const polarChartProps = createMemo(() =>
88
- resolveDefaultProps(restProps, defaultPolarChartProps),
89
- )
90
-
91
- return (
92
- <>
93
- <ChartDataContextProvider chartData={polarChartProps().data} />
94
- <ReportMainChartProps layout={polarChartProps().layout} margin={polarChartProps().margin} />
95
- <ReportEventSettings
96
- throttleDelay={polarChartProps().throttleDelay}
97
- throttledEvents={polarChartProps().throttledEvents}
98
- />
99
- <ReportChartProps
100
- baseValue={undefined}
101
- accessibilityLayer={polarChartProps().accessibilityLayer}
102
- barCategoryGap={polarChartProps().barCategoryGap}
103
- maxBarSize={polarChartProps().maxBarSize}
104
- stackOffset={polarChartProps().stackOffset}
105
- barGap={polarChartProps().barGap}
106
- barSize={polarChartProps().barSize}
107
- syncId={polarChartProps().syncId}
108
- syncMethod={polarChartProps().syncMethod}
109
- className={polarChartProps().className}
110
- reverseStackOrder={polarChartProps().reverseStackOrder}
111
- />
112
- <ReportPolarOptions
113
- cx={polarChartProps().cx}
114
- cy={polarChartProps().cy}
115
- startAngle={polarChartProps().startAngle}
116
- endAngle={polarChartProps().endAngle}
117
- innerRadius={polarChartProps().innerRadius}
118
- outerRadius={polarChartProps().outerRadius}
119
- />
120
- <CategoricalChart
121
- {...(() => {
122
- const { layout: _layout, ...rest } = polarChartProps()
123
- return rest
124
- })()}
125
- ref={props.ref}
126
- >
127
- {childrenProps.children}
128
- </CategoricalChart>
129
- </>
130
- )
131
- }
132
-
133
- export function PolarChart(props: PolarChartOptions) {
134
- const options = (): ChartOptions => ({
135
- chartName: props.chartName,
136
- defaultTooltipEventType: props.defaultTooltipEventType,
137
- eventEmitter: undefined,
138
- tooltipPayloadSearcher: props.tooltipPayloadSearcher,
139
- validateTooltipEventTypes: props.validateTooltipEventTypes,
140
- })
141
-
142
- const initialChartData = () =>
143
- untrack(() => createInitialChartDataState(props.categoricalChartProps.data))
144
- const initialLayout = () =>
145
- untrack(() =>
146
- createInitialLayoutState({
147
- height: props.categoricalChartProps.height,
148
- layoutType: props.categoricalChartProps.layout ?? defaultPolarChartProps.layout,
149
- margin: props.categoricalChartProps.margin ?? defaultPolarChartProps.margin,
150
- width: props.categoricalChartProps.width,
151
- }),
152
- )
153
-
154
- return (
155
- <RechartsStateProvider preloadedState={{
156
- chartData: initialChartData(),
157
- layout: initialLayout(),
158
- options: options(),
159
- rootProps: untrack(() => createInitialRootProps(props.categoricalChartProps)),
160
- }}>
161
- <PolarChartInner categoricalChartProps={props.categoricalChartProps} ref={props.ref} />
162
- </RechartsStateProvider>
163
- )
164
- }
@@ -1,70 +0,0 @@
1
- /* eslint-disable import/no-cycle */
2
- import type { JSX } from '@solidjs/web';
3
- import { arrayTooltipSearcher } from "../state/optionsSlice"
4
- import type { PolarChartProps, PolarLayout, TooltipEventType } from "../util/types"
5
- import { defaultPolarChartProps, PolarChart } from "./PolarChart"
6
-
7
- import { mergeProps } from '../util/solid-1-compat';
8
- const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ["axis"]
9
-
10
- export const defaultRadarChartProps = {
11
- ...defaultPolarChartProps,
12
- endAngle: -270,
13
- layout: "centric",
14
- startAngle: 90,
15
- } as const satisfies Partial<PolarChartProps<never>>
16
-
17
- type RadarChartProps<DataPointType> = Omit<
18
- PolarChartProps<DataPointType>,
19
- "layout" | "startAngle" | "endAngle"
20
- > & {
21
- /**
22
- * The layout of chart defines the orientation of axes, graphical items, and tooltip.
23
- *
24
- * @defaultValue centric
25
- */
26
- layout?: PolarLayout
27
- /**
28
- * Angle in degrees from which the chart should start.
29
- * @defaultValue 90
30
- *
31
- */
32
- startAngle?: number
33
- /**
34
- * Angle, in degrees, at which the chart should end.
35
- *
36
- * @defaultValue -270
37
- */
38
- endAngle?: number
39
- }
40
-
41
- /**
42
- * @consumes ResponsiveContainerContext
43
- * @provides PolarViewBoxContext
44
- * @provides PolarChartContext
45
- */
46
- export function RadarChart<DataPointType = unknown>(
47
- props: RadarChartProps<DataPointType> & { ref?: SVGSVGElement | ((el: SVGSVGElement) => void) },
48
- ): JSX.Element {
49
- /* mergeProps preserves the props proxy — see PieChart for the rationale. */
50
- const propsWithDefaults = mergeProps(defaultRadarChartProps, props) as PolarChartProps<
51
- DataPointType
52
- > & {
53
- cx: NonNullable<PolarChartProps["cx"]>
54
- cy: NonNullable<PolarChartProps["cy"]>
55
- startAngle: NonNullable<PolarChartProps["startAngle"]>
56
- endAngle: NonNullable<PolarChartProps["endAngle"]>
57
- innerRadius: NonNullable<PolarChartProps["innerRadius"]>
58
- outerRadius: NonNullable<PolarChartProps["outerRadius"]>
59
- }
60
- return (
61
- <PolarChart
62
- chartName="RadarChart"
63
- defaultTooltipEventType="axis"
64
- validateTooltipEventTypes={allowedTooltipTypes}
65
- tooltipPayloadSearcher={arrayTooltipSearcher}
66
- categoricalChartProps={propsWithDefaults}
67
- ref={props.ref}
68
- />
69
- )
70
- }