@mui/x-charts-premium 9.2.0 → 9.4.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 (214) hide show
  1. package/BarChartPremium/BarChartPremium.js +65 -35
  2. package/BarChartPremium/BarChartPremium.mjs +65 -35
  3. package/BarChartPremium/RangeBar/RangeBarPlot.d.mts +10 -0
  4. package/BarChartPremium/RangeBar/RangeBarPlot.d.ts +10 -0
  5. package/BarChartPremium/RangeBar/RangeBarPlot.js +59 -2
  6. package/BarChartPremium/RangeBar/RangeBarPlot.mjs +59 -2
  7. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.d.mts +10 -0
  8. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.d.ts +10 -0
  9. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.js +82 -0
  10. package/BarChartPremium/RangeBar/RangeBarWebGLPlot.mjs +76 -0
  11. package/BarChartPremium/RangeBar/seriesConfig/extrema.js +3 -0
  12. package/BarChartPremium/RangeBar/seriesConfig/extrema.mjs +3 -0
  13. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.js +2 -2
  14. package/BarChartPremium/RangeBar/seriesConfig/seriesProcessor.mjs +2 -2
  15. package/BarChartPremium/useBarChartPremiumProps.js +2 -1
  16. package/BarChartPremium/useBarChartPremiumProps.mjs +2 -1
  17. package/BarChartPremium/webgl/useBarWebGLPlotData.d.mts +2 -7
  18. package/BarChartPremium/webgl/useBarWebGLPlotData.d.ts +2 -7
  19. package/BarChartPremium/webgl/useBarWebGLPlotData.js +4 -151
  20. package/BarChartPremium/webgl/useBarWebGLPlotData.mjs +4 -150
  21. package/BarChartPremium/webgl/useWebGLBarLikePlotData.d.mts +39 -0
  22. package/BarChartPremium/webgl/useWebGLBarLikePlotData.d.ts +39 -0
  23. package/BarChartPremium/webgl/useWebGLBarLikePlotData.js +169 -0
  24. package/BarChartPremium/webgl/useWebGLBarLikePlotData.mjs +163 -0
  25. package/CHANGELOG.md +314 -0
  26. package/CandlestickChart/CandlestickChart.js +36 -27
  27. package/CandlestickChart/CandlestickChart.mjs +36 -27
  28. package/CandlestickChart/seriesConfig/extrema.js +3 -0
  29. package/CandlestickChart/seriesConfig/extrema.mjs +3 -0
  30. package/CandlestickChart/seriesConfig/seriesProcessor.js +2 -2
  31. package/CandlestickChart/seriesConfig/seriesProcessor.mjs +2 -2
  32. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  33. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  34. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.d.mts +35 -0
  35. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.d.ts +35 -0
  36. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.js +125 -0
  37. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.mjs +119 -0
  38. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.d.mts +5 -0
  39. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.d.ts +5 -0
  40. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.js +10 -0
  41. package/ChartsGeoDataProviderPremium/ChartsGeoDataProviderPremium.plugins.mjs +4 -0
  42. package/ChartsGeoDataProviderPremium/index.d.mts +3 -0
  43. package/ChartsGeoDataProviderPremium/index.d.ts +3 -0
  44. package/ChartsGeoDataProviderPremium/index.js +20 -0
  45. package/ChartsGeoDataProviderPremium/index.mjs +3 -0
  46. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.d.mts +10 -0
  47. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.d.ts +10 -0
  48. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.js +49 -0
  49. package/ChartsGeoDataProviderPremium/useChartsGeoDataProviderPremiumProps.mjs +42 -0
  50. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +2 -2
  51. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +2 -2
  52. package/HeatmapPremium/HeatmapPremium.js +52 -22
  53. package/HeatmapPremium/HeatmapPremium.mjs +52 -22
  54. package/Map/FocusedMapShape.d.mts +4 -0
  55. package/Map/FocusedMapShape.d.ts +4 -0
  56. package/Map/FocusedMapShape.js +66 -0
  57. package/Map/FocusedMapShape.mjs +60 -0
  58. package/Map/GeoDataPlot.d.mts +26 -0
  59. package/Map/GeoDataPlot.d.ts +26 -0
  60. package/Map/GeoDataPlot.js +65 -0
  61. package/Map/GeoDataPlot.mjs +60 -0
  62. package/Map/Graticule.d.mts +1 -0
  63. package/Map/Graticule.d.ts +1 -0
  64. package/Map/Graticule.js +30 -0
  65. package/Map/Graticule.mjs +24 -0
  66. package/Map/MapShape.d.mts +10 -0
  67. package/Map/MapShape.d.ts +10 -0
  68. package/Map/MapShape.js +55 -0
  69. package/Map/MapShape.mjs +49 -0
  70. package/Map/MapShapePlot.d.mts +21 -0
  71. package/Map/MapShapePlot.d.ts +21 -0
  72. package/Map/MapShapePlot.js +86 -0
  73. package/Map/MapShapePlot.mjs +80 -0
  74. package/Map/index.d.mts +7 -0
  75. package/Map/index.d.ts +7 -0
  76. package/Map/index.js +60 -0
  77. package/Map/index.mjs +8 -0
  78. package/Map/seriesConfig/descriptionGetter.d.mts +3 -0
  79. package/Map/seriesConfig/descriptionGetter.d.ts +3 -0
  80. package/Map/seriesConfig/descriptionGetter.js +19 -0
  81. package/Map/seriesConfig/descriptionGetter.mjs +13 -0
  82. package/Map/seriesConfig/getColor.d.mts +3 -0
  83. package/Map/seriesConfig/getColor.d.ts +3 -0
  84. package/Map/seriesConfig/getColor.js +35 -0
  85. package/Map/seriesConfig/getColor.mjs +29 -0
  86. package/Map/seriesConfig/getSeriesWithDefaultValues.d.mts +3 -0
  87. package/Map/seriesConfig/getSeriesWithDefaultValues.d.ts +3 -0
  88. package/Map/seriesConfig/getSeriesWithDefaultValues.js +15 -0
  89. package/Map/seriesConfig/getSeriesWithDefaultValues.mjs +8 -0
  90. package/Map/seriesConfig/index.d.mts +2 -0
  91. package/Map/seriesConfig/index.d.ts +2 -0
  92. package/Map/seriesConfig/index.js +28 -0
  93. package/Map/seriesConfig/index.mjs +21 -0
  94. package/Map/seriesConfig/keyboardFocusHandler.d.mts +9 -0
  95. package/Map/seriesConfig/keyboardFocusHandler.d.ts +9 -0
  96. package/Map/seriesConfig/keyboardFocusHandler.js +19 -0
  97. package/Map/seriesConfig/keyboardFocusHandler.mjs +13 -0
  98. package/Map/seriesConfig/legend.d.mts +3 -0
  99. package/Map/seriesConfig/legend.d.ts +3 -0
  100. package/Map/seriesConfig/legend.js +28 -0
  101. package/Map/seriesConfig/legend.mjs +22 -0
  102. package/Map/seriesConfig/seriesProcessor.d.mts +3 -0
  103. package/Map/seriesConfig/seriesProcessor.d.ts +3 -0
  104. package/Map/seriesConfig/seriesProcessor.js +66 -0
  105. package/Map/seriesConfig/seriesProcessor.mjs +59 -0
  106. package/Map/seriesConfig/tooltip.d.mts +3 -0
  107. package/Map/seriesConfig/tooltip.d.ts +3 -0
  108. package/Map/seriesConfig/tooltip.js +33 -0
  109. package/Map/seriesConfig/tooltip.mjs +27 -0
  110. package/RadialBarChart/RadialBarChart.js +10 -10
  111. package/RadialBarChart/RadialBarChart.mjs +10 -10
  112. package/RadialBarChart/seriesConfig/getColor.js +7 -51
  113. package/RadialBarChart/seriesConfig/getColor.mjs +8 -52
  114. package/RadialBarChart/seriesConfig/tooltip.js +3 -26
  115. package/RadialBarChart/seriesConfig/tooltip.mjs +4 -27
  116. package/RadialLineChart/RadialArea.d.mts +2 -11
  117. package/RadialLineChart/RadialArea.d.ts +2 -11
  118. package/RadialLineChart/RadialArea.js +4 -3
  119. package/RadialLineChart/RadialArea.mjs +4 -3
  120. package/RadialLineChart/RadialAreaPlot.js +3 -1
  121. package/RadialLineChart/RadialAreaPlot.mjs +3 -1
  122. package/RadialLineChart/RadialLine.d.mts +4 -3
  123. package/RadialLineChart/RadialLine.d.ts +4 -3
  124. package/RadialLineChart/RadialLine.js +4 -3
  125. package/RadialLineChart/RadialLine.mjs +4 -3
  126. package/RadialLineChart/RadialLineChart.d.mts +7 -5
  127. package/RadialLineChart/RadialLineChart.d.ts +7 -5
  128. package/RadialLineChart/RadialLineChart.js +11 -11
  129. package/RadialLineChart/RadialLineChart.mjs +11 -11
  130. package/RadialLineChart/RadialLineHighlightPlot.d.mts +3 -2
  131. package/RadialLineChart/RadialLineHighlightPlot.d.ts +3 -2
  132. package/RadialLineChart/RadialLinePlot.js +3 -1
  133. package/RadialLineChart/RadialLinePlot.mjs +3 -1
  134. package/RadialLineChart/seriesConfig/getColor.js +6 -53
  135. package/RadialLineChart/seriesConfig/getColor.mjs +7 -54
  136. package/RadialLineChart/seriesConfig/seriesProcessor.d.mts +2 -2
  137. package/RadialLineChart/seriesConfig/seriesProcessor.d.ts +2 -2
  138. package/RadialLineChart/seriesConfig/seriesProcessor.js +1 -138
  139. package/RadialLineChart/seriesConfig/seriesProcessor.mjs +2 -138
  140. package/RadialLineChart/seriesConfig/tooltip.js +3 -24
  141. package/RadialLineChart/seriesConfig/tooltip.mjs +4 -25
  142. package/RadialLineChart/useRadialLinePlotData.d.mts +1 -0
  143. package/RadialLineChart/useRadialLinePlotData.d.ts +1 -0
  144. package/RadialLineChart/useRadialLinePlotData.js +3 -1
  145. package/RadialLineChart/useRadialLinePlotData.mjs +3 -1
  146. package/ScatterChartPremium/ScatterChartPremium.d.mts +2 -1
  147. package/ScatterChartPremium/ScatterChartPremium.d.ts +2 -1
  148. package/ScatterChartPremium/ScatterChartPremium.js +62 -32
  149. package/ScatterChartPremium/ScatterChartPremium.mjs +62 -32
  150. package/hooks/index.d.mts +4 -1
  151. package/hooks/index.d.ts +4 -1
  152. package/hooks/index.js +33 -0
  153. package/hooks/index.mjs +4 -1
  154. package/hooks/useGeoData.d.mts +6 -0
  155. package/hooks/useGeoData.d.ts +6 -0
  156. package/hooks/useGeoData.js +17 -0
  157. package/hooks/useGeoData.mjs +13 -0
  158. package/hooks/useGeoFeatureIndexesByName.d.mts +7 -0
  159. package/hooks/useGeoFeatureIndexesByName.d.ts +7 -0
  160. package/hooks/useGeoFeatureIndexesByName.js +19 -0
  161. package/hooks/useGeoFeatureIndexesByName.mjs +15 -0
  162. package/hooks/useGeoPath.d.mts +6 -0
  163. package/hooks/useGeoPath.d.ts +6 -0
  164. package/hooks/useGeoPath.js +17 -0
  165. package/hooks/useGeoPath.mjs +13 -0
  166. package/hooks/useMapShapeSeries.d.mts +34 -0
  167. package/hooks/useMapShapeSeries.d.ts +34 -0
  168. package/hooks/useMapShapeSeries.js +45 -0
  169. package/hooks/useMapShapeSeries.mjs +40 -0
  170. package/index.d.mts +2 -0
  171. package/index.d.ts +2 -0
  172. package/index.js +25 -1
  173. package/index.mjs +3 -1
  174. package/internals/plugins/useGeoProjection/index.d.mts +3 -0
  175. package/internals/plugins/useGeoProjection/index.d.ts +3 -0
  176. package/internals/plugins/useGeoProjection/index.js +38 -0
  177. package/internals/plugins/useGeoProjection/index.mjs +3 -0
  178. package/internals/plugins/useGeoProjection/useGeoProjection.d.mts +3 -0
  179. package/internals/plugins/useGeoProjection/useGeoProjection.d.ts +3 -0
  180. package/internals/plugins/useGeoProjection/useGeoProjection.js +58 -0
  181. package/internals/plugins/useGeoProjection/useGeoProjection.mjs +50 -0
  182. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.d.mts +39 -0
  183. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.d.ts +39 -0
  184. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.js +135 -0
  185. package/internals/plugins/useGeoProjection/useGeoProjection.selectors.mjs +128 -0
  186. package/internals/plugins/useGeoProjection/useGeoProjection.types.d.mts +55 -0
  187. package/internals/plugins/useGeoProjection/useGeoProjection.types.d.ts +55 -0
  188. package/internals/plugins/useGeoProjection/useGeoProjection.types.js +5 -0
  189. package/internals/plugins/useGeoProjection/useGeoProjection.types.mjs +1 -0
  190. package/models/chartsSlotsComponentsPropsPremium.d.mts +1 -0
  191. package/models/chartsSlotsComponentsPropsPremium.d.ts +1 -0
  192. package/models/chartsSlotsComponentsPropsPremium.js +5 -0
  193. package/models/chartsSlotsComponentsPropsPremium.mjs +1 -0
  194. package/models/index.d.mts +2 -1
  195. package/models/index.d.ts +2 -1
  196. package/models/index.js +11 -0
  197. package/models/index.mjs +2 -1
  198. package/models/seriesType/index.d.mts +2 -1
  199. package/models/seriesType/index.d.ts +2 -1
  200. package/models/seriesType/index.js +11 -0
  201. package/models/seriesType/index.mjs +2 -1
  202. package/models/seriesType/mapShape.d.mts +105 -0
  203. package/models/seriesType/mapShape.d.ts +105 -0
  204. package/models/seriesType/mapShape.js +5 -0
  205. package/models/seriesType/mapShape.mjs +1 -0
  206. package/models/seriesType/radialBar.d.mts +1 -1
  207. package/models/seriesType/radialBar.d.ts +1 -1
  208. package/models/seriesType/radialLine.d.mts +4 -0
  209. package/models/seriesType/radialLine.d.ts +4 -0
  210. package/package.json +34 -6
  211. package/typeOverloads/modules.d.mts +16 -1
  212. package/typeOverloads/modules.d.ts +16 -1
  213. package/utils/webgl/useWebGLResizeObserver.js +3 -3
  214. package/utils/webgl/useWebGLResizeObserver.mjs +2 -2
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectorChartRawScale = exports.selectorChartRawProjection = exports.selectorChartRawGeoData = exports.selectorChartProjection = exports.selectorChartGeoProjectionState = exports.selectorChartGeoPath = exports.selectorChartGeoFeatureIndexesByName = void 0;
7
+ var _store = require("@mui/x-internals/store");
8
+ var _internals = require("@mui/x-charts/internals");
9
+ var _d3Geo = require("@mui/x-charts-vendor/d3-geo");
10
+ const PROJECTION_FACTORIES = {
11
+ // Azimuthal projections (https://d3js.org/d3-geo/azimuthal)
12
+ azimuthalEqualArea: _d3Geo.geoAzimuthalEqualArea,
13
+ azimuthalEquidistant: _d3Geo.geoAzimuthalEquidistant,
14
+ gnomonic: _d3Geo.geoGnomonic,
15
+ orthographic: _d3Geo.geoOrthographic,
16
+ stereographic: _d3Geo.geoStereographic,
17
+ // Conic projections (https://d3js.org/d3-geo/conic)
18
+ conicConformal: _d3Geo.geoConicConformal,
19
+ conicEqualArea: _d3Geo.geoConicEqualArea,
20
+ conicEquidistant: _d3Geo.geoConicEquidistant,
21
+ albers: _d3Geo.geoAlbers,
22
+ albersUsa: _d3Geo.geoAlbersUsa,
23
+ // Special composition for the USA with an edge case for Alaska and Hawaii.
24
+
25
+ // Cylindrical projections (https://d3js.org/d3-geo/cylindrical)
26
+ equirectangular: _d3Geo.geoEquirectangular,
27
+ mercator: _d3Geo.geoMercator,
28
+ transverseMercator: _d3Geo.geoTransverseMercator,
29
+ equalEarth: _d3Geo.geoEqualEarth,
30
+ naturalEarth1: _d3Geo.geoNaturalEarth1
31
+ };
32
+ const isConicProjection = projection => {
33
+ return 'parallels' in projection && typeof projection.parallels === 'function';
34
+ };
35
+ const selectorChartGeoProjectionState = state => state.geoProjection;
36
+ exports.selectorChartGeoProjectionState = selectorChartGeoProjectionState;
37
+ const selectorChartRawGeoData = exports.selectorChartRawGeoData = (0, _store.createSelector)(selectorChartGeoProjectionState, geoProjection => geoProjection?.geoData ?? null);
38
+ const selectorChartRawProjection = exports.selectorChartRawProjection = (0, _store.createSelector)(selectorChartGeoProjectionState, geoProjection => geoProjection?.projection ?? null);
39
+ const selectorChartRawScale = exports.selectorChartRawScale = (0, _store.createSelector)(selectorChartGeoProjectionState, geoProjection => geoProjection?.scale ?? null);
40
+ const selectorChartRotate = (0, _store.createSelectorMemoized)(selectorChartGeoProjectionState, geoProjection => geoProjection?.rotate ?? null);
41
+ const selectorChartTranslate = (0, _store.createSelectorMemoized)(selectorChartGeoProjectionState, geoProjection => geoProjection?.translate ?? null);
42
+ const selectorChartParallels = (0, _store.createSelectorMemoized)(selectorChartGeoProjectionState, selectorChartRotate, (geoProjection, rotate) => geoProjection?.parallels ?? (rotate ? [rotate[1] - 15, rotate[1] + 15] : [30, 30]));
43
+ /**
44
+ * Map a feature's `properties.name` to its index in `geoData.features`,
45
+ * for fast lookup by name when joining series rows to features.
46
+ *
47
+ * Features without a string `properties.name` are skipped; on duplicates,
48
+ * the first occurrence wins.
49
+ */
50
+ const selectorChartGeoFeatureIndexesByName = exports.selectorChartGeoFeatureIndexesByName = (0, _store.createSelectorMemoized)(selectorChartRawGeoData, geoData => {
51
+ const map = new Map();
52
+ if (!geoData) {
53
+ return map;
54
+ }
55
+ geoData.features.forEach((feature, index) => {
56
+ const name = feature.properties?.name;
57
+ if (typeof name !== 'string') {
58
+ return;
59
+ }
60
+ if (map.has(name)) {
61
+ map.get(name).push(index);
62
+ return;
63
+ }
64
+ map.set(name, [index]);
65
+ });
66
+ return map;
67
+ });
68
+
69
+ /**
70
+ * Resolves the raw `projection` input into a ready-to-use `GeoProjection` instance
71
+ * fitted to the chart's drawing area.
72
+ *
73
+ * - String inputs (e.g. `'mercator'`) are mapped to the matching d3-geo factory.
74
+ * - `GeoProjection` instances are used as-is, then fitted.
75
+ * - Returns `null` when no projection is registered or the name is unknown.
76
+ */
77
+ const selectorChartProjection = exports.selectorChartProjection = (0, _store.createSelectorMemoized)(selectorChartRawProjection, selectorChartRawGeoData, selectorChartParallels, selectorChartRotate, selectorChartTranslate, selectorChartRawScale, _internals.selectorChartDrawingArea, (projectionInput, geoData, parallels, rotate, translate, scale, drawingArea) => {
78
+ if (!projectionInput) {
79
+ return null;
80
+ }
81
+ let projection;
82
+ if (typeof projectionInput === 'string') {
83
+ const factory = PROJECTION_FACTORIES[projectionInput];
84
+ if (!factory) {
85
+ if (process.env.NODE_ENV !== 'production') {
86
+ console.error(`MUI X Charts: Unknown projection name '${projectionInput}'. ` + `Expected one of: ${Object.keys(PROJECTION_FACTORIES).join(', ')}.`);
87
+ }
88
+ return null;
89
+ }
90
+ projection = factory();
91
+ if (isConicProjection(projection)) {
92
+ projection.parallels(parallels);
93
+ }
94
+ } else {
95
+ projection = projectionInput;
96
+ }
97
+ if (geoData) {
98
+ if (isConicProjection(projection)) {
99
+ if (rotate) {
100
+ projection.rotate?.(rotate);
101
+ }
102
+ if (!scale) {
103
+ const [[x0, y0], [x1, y1]] = (0, _d3Geo.geoPath)(projection).bounds(geoData);
104
+ const currentScale = projection.scale();
105
+ const fitScale = Math.min(currentScale * (drawingArea.width / (x1 - x0)), currentScale * (drawingArea.height / (y1 - y0)));
106
+ projection.scale(fitScale);
107
+ } else {
108
+ projection.scale(scale);
109
+ }
110
+ return projection;
111
+ }
112
+ if (rotate) {
113
+ projection.rotate?.(rotate);
114
+ }
115
+ if (scale) {
116
+ projection.scale(scale);
117
+ projection.clipExtent?.([[drawingArea.left, drawingArea.top], [drawingArea.left + drawingArea.width, drawingArea.top + drawingArea.height]]);
118
+ } else {
119
+ projection.fitExtent?.([[drawingArea.left, drawingArea.top], [drawingArea.left + drawingArea.width, drawingArea.top + drawingArea.height]], geoData);
120
+ }
121
+ projection.translate(translate ?? [drawingArea.left + drawingArea.width / 2, drawingArea.top + drawingArea.height / 2]);
122
+ }
123
+ return projection;
124
+ });
125
+
126
+ /**
127
+ * Resolves the raw `projection` input into a ready-to-use `GeoPath` instance
128
+ * fitted to the chart's drawing area.
129
+ */
130
+ const selectorChartGeoPath = exports.selectorChartGeoPath = (0, _store.createSelectorMemoized)(selectorChartProjection, projection => {
131
+ if (!projection) {
132
+ return null;
133
+ }
134
+ return (0, _d3Geo.geoPath)(projection);
135
+ });
@@ -0,0 +1,128 @@
1
+ import { createSelector, createSelectorMemoized } from '@mui/x-internals/store';
2
+ import { selectorChartDrawingArea } from '@mui/x-charts/internals';
3
+ import { geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEquidistant, geoConicConformal, geoConicEqualArea, geoConicEquidistant, geoEqualEarth, geoEquirectangular, geoGnomonic, geoMercator, geoNaturalEarth1, geoOrthographic, geoStereographic, geoTransverseMercator, geoPath } from '@mui/x-charts-vendor/d3-geo';
4
+ const PROJECTION_FACTORIES = {
5
+ // Azimuthal projections (https://d3js.org/d3-geo/azimuthal)
6
+ azimuthalEqualArea: geoAzimuthalEqualArea,
7
+ azimuthalEquidistant: geoAzimuthalEquidistant,
8
+ gnomonic: geoGnomonic,
9
+ orthographic: geoOrthographic,
10
+ stereographic: geoStereographic,
11
+ // Conic projections (https://d3js.org/d3-geo/conic)
12
+ conicConformal: geoConicConformal,
13
+ conicEqualArea: geoConicEqualArea,
14
+ conicEquidistant: geoConicEquidistant,
15
+ albers: geoAlbers,
16
+ albersUsa: geoAlbersUsa,
17
+ // Special composition for the USA with an edge case for Alaska and Hawaii.
18
+
19
+ // Cylindrical projections (https://d3js.org/d3-geo/cylindrical)
20
+ equirectangular: geoEquirectangular,
21
+ mercator: geoMercator,
22
+ transverseMercator: geoTransverseMercator,
23
+ equalEarth: geoEqualEarth,
24
+ naturalEarth1: geoNaturalEarth1
25
+ };
26
+ const isConicProjection = projection => {
27
+ return 'parallels' in projection && typeof projection.parallels === 'function';
28
+ };
29
+ export const selectorChartGeoProjectionState = state => state.geoProjection;
30
+ export const selectorChartRawGeoData = createSelector(selectorChartGeoProjectionState, geoProjection => geoProjection?.geoData ?? null);
31
+ export const selectorChartRawProjection = createSelector(selectorChartGeoProjectionState, geoProjection => geoProjection?.projection ?? null);
32
+ export const selectorChartRawScale = createSelector(selectorChartGeoProjectionState, geoProjection => geoProjection?.scale ?? null);
33
+ const selectorChartRotate = createSelectorMemoized(selectorChartGeoProjectionState, geoProjection => geoProjection?.rotate ?? null);
34
+ const selectorChartTranslate = createSelectorMemoized(selectorChartGeoProjectionState, geoProjection => geoProjection?.translate ?? null);
35
+ const selectorChartParallels = createSelectorMemoized(selectorChartGeoProjectionState, selectorChartRotate, (geoProjection, rotate) => geoProjection?.parallels ?? (rotate ? [rotate[1] - 15, rotate[1] + 15] : [30, 30]));
36
+ /**
37
+ * Map a feature's `properties.name` to its index in `geoData.features`,
38
+ * for fast lookup by name when joining series rows to features.
39
+ *
40
+ * Features without a string `properties.name` are skipped; on duplicates,
41
+ * the first occurrence wins.
42
+ */
43
+ export const selectorChartGeoFeatureIndexesByName = createSelectorMemoized(selectorChartRawGeoData, geoData => {
44
+ const map = new Map();
45
+ if (!geoData) {
46
+ return map;
47
+ }
48
+ geoData.features.forEach((feature, index) => {
49
+ const name = feature.properties?.name;
50
+ if (typeof name !== 'string') {
51
+ return;
52
+ }
53
+ if (map.has(name)) {
54
+ map.get(name).push(index);
55
+ return;
56
+ }
57
+ map.set(name, [index]);
58
+ });
59
+ return map;
60
+ });
61
+
62
+ /**
63
+ * Resolves the raw `projection` input into a ready-to-use `GeoProjection` instance
64
+ * fitted to the chart's drawing area.
65
+ *
66
+ * - String inputs (e.g. `'mercator'`) are mapped to the matching d3-geo factory.
67
+ * - `GeoProjection` instances are used as-is, then fitted.
68
+ * - Returns `null` when no projection is registered or the name is unknown.
69
+ */
70
+ export const selectorChartProjection = createSelectorMemoized(selectorChartRawProjection, selectorChartRawGeoData, selectorChartParallels, selectorChartRotate, selectorChartTranslate, selectorChartRawScale, selectorChartDrawingArea, (projectionInput, geoData, parallels, rotate, translate, scale, drawingArea) => {
71
+ if (!projectionInput) {
72
+ return null;
73
+ }
74
+ let projection;
75
+ if (typeof projectionInput === 'string') {
76
+ const factory = PROJECTION_FACTORIES[projectionInput];
77
+ if (!factory) {
78
+ if (process.env.NODE_ENV !== 'production') {
79
+ console.error(`MUI X Charts: Unknown projection name '${projectionInput}'. ` + `Expected one of: ${Object.keys(PROJECTION_FACTORIES).join(', ')}.`);
80
+ }
81
+ return null;
82
+ }
83
+ projection = factory();
84
+ if (isConicProjection(projection)) {
85
+ projection.parallels(parallels);
86
+ }
87
+ } else {
88
+ projection = projectionInput;
89
+ }
90
+ if (geoData) {
91
+ if (isConicProjection(projection)) {
92
+ if (rotate) {
93
+ projection.rotate?.(rotate);
94
+ }
95
+ if (!scale) {
96
+ const [[x0, y0], [x1, y1]] = geoPath(projection).bounds(geoData);
97
+ const currentScale = projection.scale();
98
+ const fitScale = Math.min(currentScale * (drawingArea.width / (x1 - x0)), currentScale * (drawingArea.height / (y1 - y0)));
99
+ projection.scale(fitScale);
100
+ } else {
101
+ projection.scale(scale);
102
+ }
103
+ return projection;
104
+ }
105
+ if (rotate) {
106
+ projection.rotate?.(rotate);
107
+ }
108
+ if (scale) {
109
+ projection.scale(scale);
110
+ projection.clipExtent?.([[drawingArea.left, drawingArea.top], [drawingArea.left + drawingArea.width, drawingArea.top + drawingArea.height]]);
111
+ } else {
112
+ projection.fitExtent?.([[drawingArea.left, drawingArea.top], [drawingArea.left + drawingArea.width, drawingArea.top + drawingArea.height]], geoData);
113
+ }
114
+ projection.translate(translate ?? [drawingArea.left + drawingArea.width / 2, drawingArea.top + drawingArea.height / 2]);
115
+ }
116
+ return projection;
117
+ });
118
+
119
+ /**
120
+ * Resolves the raw `projection` input into a ready-to-use `GeoPath` instance
121
+ * fitted to the chart's drawing area.
122
+ */
123
+ export const selectorChartGeoPath = createSelectorMemoized(selectorChartProjection, projection => {
124
+ if (!projection) {
125
+ return null;
126
+ }
127
+ return geoPath(projection);
128
+ });
@@ -0,0 +1,55 @@
1
+ import { type ChartPluginSignature } from '@mui/x-charts/internals';
2
+ import { type GeoProjection, type ExtendedFeatureCollection } from '@mui/x-charts-vendor/d3-geo';
3
+ export type D3NamedProjection = 'azimuthalEqualArea' | 'azimuthalEquidistant' | 'gnomonic' | 'orthographic' | 'stereographic' | 'conicConformal' | 'conicEqualArea' | 'conicEquidistant' | 'albers' | 'albersUsa' | 'equirectangular' | 'mercator' | 'transverseMercator' | 'equalEarth' | 'naturalEarth1';
4
+ /**
5
+ * A d3-geo projection accepted by `useGeoProjection`.
6
+ *
7
+ * Either a built-in projection name (e.g. `'mercator'`, `'naturalEarth1'`)
8
+ * or a `GeoProjection` instance returned by a d3-geo factory.
9
+ */
10
+ export type GeoProjectionInput = D3NamedProjection | GeoProjection;
11
+ export interface UseGeoProjectionParameters {
12
+ /**
13
+ * The GeoJSON `FeatureCollection` whose features will be rendered on the map.
14
+ */
15
+ geoData?: ExtendedFeatureCollection;
16
+ /**
17
+ * The d3-geo projection used to map geographic coordinates to SVG coordinates.
18
+ * Accepts a d3-geo projection name (e.g. `'mercator'`, `'naturalEarth1'`)
19
+ * or a custom `GeoProjection` instance.
20
+ */
21
+ projection?: GeoProjectionInput;
22
+ /**
23
+ * The center of the projection, specified as a `[longitude, latitude]` pair in degrees.
24
+ */
25
+ translate?: [number, number];
26
+ /**
27
+ * The rotation of the projection, specified as a `[longitude, latitude]` pair in degrees.
28
+ */
29
+ rotate?: [number, number];
30
+ /**
31
+ * The scale of the projection.
32
+ * Id not provided the scale will default to fit the entire geoData in the drawing area.
33
+ */
34
+ scale?: number;
35
+ }
36
+ export type UseGeoProjectionDefaultizedParameters = UseGeoProjectionParameters;
37
+ export interface UseGeoProjectionState {
38
+ geoProjection: {
39
+ geoData: ExtendedFeatureCollection | null;
40
+ projection: GeoProjectionInput | null;
41
+ translate: [number, number] | null;
42
+ rotate: [number, number] | null;
43
+ scale: number | null;
44
+ /**
45
+ * The two standard parallels used by conic projections, if applicable.
46
+ * Used for projection 'conicConformal', 'conicEqualArea', 'conicEquidistant'.
47
+ */
48
+ parallels?: [number, number] | null;
49
+ };
50
+ }
51
+ export type UseGeoProjectionSignature = ChartPluginSignature<{
52
+ params: UseGeoProjectionParameters;
53
+ defaultizedParams: UseGeoProjectionDefaultizedParameters;
54
+ state: UseGeoProjectionState;
55
+ }>;
@@ -0,0 +1,55 @@
1
+ import { type ChartPluginSignature } from '@mui/x-charts/internals';
2
+ import { type GeoProjection, type ExtendedFeatureCollection } from '@mui/x-charts-vendor/d3-geo';
3
+ export type D3NamedProjection = 'azimuthalEqualArea' | 'azimuthalEquidistant' | 'gnomonic' | 'orthographic' | 'stereographic' | 'conicConformal' | 'conicEqualArea' | 'conicEquidistant' | 'albers' | 'albersUsa' | 'equirectangular' | 'mercator' | 'transverseMercator' | 'equalEarth' | 'naturalEarth1';
4
+ /**
5
+ * A d3-geo projection accepted by `useGeoProjection`.
6
+ *
7
+ * Either a built-in projection name (e.g. `'mercator'`, `'naturalEarth1'`)
8
+ * or a `GeoProjection` instance returned by a d3-geo factory.
9
+ */
10
+ export type GeoProjectionInput = D3NamedProjection | GeoProjection;
11
+ export interface UseGeoProjectionParameters {
12
+ /**
13
+ * The GeoJSON `FeatureCollection` whose features will be rendered on the map.
14
+ */
15
+ geoData?: ExtendedFeatureCollection;
16
+ /**
17
+ * The d3-geo projection used to map geographic coordinates to SVG coordinates.
18
+ * Accepts a d3-geo projection name (e.g. `'mercator'`, `'naturalEarth1'`)
19
+ * or a custom `GeoProjection` instance.
20
+ */
21
+ projection?: GeoProjectionInput;
22
+ /**
23
+ * The center of the projection, specified as a `[longitude, latitude]` pair in degrees.
24
+ */
25
+ translate?: [number, number];
26
+ /**
27
+ * The rotation of the projection, specified as a `[longitude, latitude]` pair in degrees.
28
+ */
29
+ rotate?: [number, number];
30
+ /**
31
+ * The scale of the projection.
32
+ * Id not provided the scale will default to fit the entire geoData in the drawing area.
33
+ */
34
+ scale?: number;
35
+ }
36
+ export type UseGeoProjectionDefaultizedParameters = UseGeoProjectionParameters;
37
+ export interface UseGeoProjectionState {
38
+ geoProjection: {
39
+ geoData: ExtendedFeatureCollection | null;
40
+ projection: GeoProjectionInput | null;
41
+ translate: [number, number] | null;
42
+ rotate: [number, number] | null;
43
+ scale: number | null;
44
+ /**
45
+ * The two standard parallels used by conic projections, if applicable.
46
+ * Used for projection 'conicConformal', 'conicEqualArea', 'conicEquidistant'.
47
+ */
48
+ parallels?: [number, number] | null;
49
+ };
50
+ }
51
+ export type UseGeoProjectionSignature = ChartPluginSignature<{
52
+ params: UseGeoProjectionParameters;
53
+ defaultizedParams: UseGeoProjectionDefaultizedParameters;
54
+ state: UseGeoProjectionState;
55
+ }>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ export interface RadialLineHighlightPropsOverrides {}
@@ -0,0 +1 @@
1
+ export interface RadialLineHighlightPropsOverrides {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * from '@mui/x-charts-pro/models';
2
- export * from "./seriesType/index.mjs";
2
+ export * from "./seriesType/index.mjs";
3
+ export * from "./chartsSlotsComponentsPropsPremium.mjs";
package/models/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from '@mui/x-charts-pro/models';
2
- export * from "./seriesType/index.js";
2
+ export * from "./seriesType/index.js";
3
+ export * from "./chartsSlotsComponentsPropsPremium.js";
package/models/index.js CHANGED
@@ -24,4 +24,15 @@ Object.keys(_seriesType).forEach(function (key) {
24
24
  return _seriesType[key];
25
25
  }
26
26
  });
27
+ });
28
+ var _chartsSlotsComponentsPropsPremium = require("./chartsSlotsComponentsPropsPremium");
29
+ Object.keys(_chartsSlotsComponentsPropsPremium).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _chartsSlotsComponentsPropsPremium[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _chartsSlotsComponentsPropsPremium[key];
36
+ }
37
+ });
27
38
  });
package/models/index.mjs CHANGED
@@ -2,4 +2,5 @@
2
2
  export * from '@mui/x-charts-pro/models';
3
3
  // End of re-export-block
4
4
 
5
- export * from "./seriesType/index.mjs";
5
+ export * from "./seriesType/index.mjs";
6
+ export * from "./chartsSlotsComponentsPropsPremium.mjs";
@@ -1,4 +1,5 @@
1
1
  export * from "./rangeBar.mjs";
2
2
  export * from "./ohlc.mjs";
3
3
  export * from "./radialLine.mjs";
4
- export * from "./radialBar.mjs";
4
+ export * from "./radialBar.mjs";
5
+ export * from "./mapShape.mjs";
@@ -1,4 +1,5 @@
1
1
  export * from "./rangeBar.js";
2
2
  export * from "./ohlc.js";
3
3
  export * from "./radialLine.js";
4
- export * from "./radialBar.js";
4
+ export * from "./radialBar.js";
5
+ export * from "./mapShape.js";
@@ -46,4 +46,15 @@ Object.keys(_radialBar).forEach(function (key) {
46
46
  return _radialBar[key];
47
47
  }
48
48
  });
49
+ });
50
+ var _mapShape = require("./mapShape");
51
+ Object.keys(_mapShape).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _mapShape[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _mapShape[key];
58
+ }
59
+ });
49
60
  });
@@ -1,4 +1,5 @@
1
1
  export * from "./rangeBar.mjs";
2
2
  export * from "./ohlc.mjs";
3
3
  export * from "./radialLine.mjs";
4
- export * from "./radialBar.mjs";
4
+ export * from "./radialBar.mjs";
5
+ export * from "./mapShape.mjs";
@@ -0,0 +1,105 @@
1
+ import type { CommonSeriesType, CommonDefaultizedProps, SeriesId, DatasetElementType } from '@mui/x-charts/internals';
2
+ import type { DefaultizedProps } from '@mui/x-internals/types';
3
+ /**
4
+ * A single entry of a `mapShape` series.
5
+ *
6
+ * The `name` is used to join the entry to a feature in the chart's `geoData`
7
+ * (matching `feature.properties.name`).
8
+ */
9
+ export interface MapShapeValueType {
10
+ /**
11
+ * Identifies the GeoJSON feature this entry maps to, via `feature.properties.name`.
12
+ */
13
+ name: string;
14
+ /**
15
+ * Numeric value associated with the feature.
16
+ */
17
+ value?: number;
18
+ /**
19
+ * The value used to compute the color of the item through a color axis.
20
+ * Falls back to `value` when no `colorValue` is provided.
21
+ */
22
+ colorValue?: any;
23
+ /**
24
+ * Label used in legends and tooltips.
25
+ */
26
+ label?: string;
27
+ /**
28
+ * Color used for the item. Fallback on the series color if not defined.
29
+ */
30
+ color?: string;
31
+ }
32
+ export interface MapShapeSeriesType extends Omit<CommonSeriesType<MapShapeValueType, 'mapShape'>, 'valueFormatter'> {
33
+ type: 'mapShape';
34
+ /**
35
+ * The data points to render. Each entry is joined to a feature in `geoData`
36
+ * through its `name` property.
37
+ */
38
+ data?: ReadonlyArray<MapShapeValueType>;
39
+ /**
40
+ * The label to display on the tooltip or the legend. It can be a string or a function.
41
+ */
42
+ label?: string | ((location: 'tooltip' | 'legend') => string);
43
+ /**
44
+ * The id of the color axis used to compute the color of the shapes.
45
+ * It points to the id of an axis defined with the `zAxis` prop.
46
+ */
47
+ colorAxisId?: string;
48
+ /**
49
+ * A function to extract and transform the value from the `dataset` item.
50
+ * It receives the full dataset item and should return a map shape value.
51
+ * Can be used as an alternative to `datasetKeys`.
52
+ * @param {DatasetElementType<unknown>} item The full dataset item.
53
+ * @returns {MapShapeValueType} The transformed value.
54
+ */
55
+ valueGetter?: (item: DatasetElementType<unknown>) => MapShapeValueType;
56
+ /**
57
+ * The keys used to retrieve data from the dataset.
58
+ *
59
+ * When this prop is provided, `name` is required to match each entry with a
60
+ * GeoJSON feature. `label`, `value`, and `colorValue` are optional.
61
+ */
62
+ datasetKeys?: {
63
+ /**
64
+ * The key used to retrieve the feature name from the dataset.
65
+ */
66
+ name: string;
67
+ /**
68
+ * The key used to retrieve the item label from the dataset.
69
+ */
70
+ label?: string;
71
+ /**
72
+ * The key used to retrieve the item numeric value from the dataset.
73
+ */
74
+ value?: string;
75
+ /**
76
+ * The key used to retrieve the color value from the dataset.
77
+ */
78
+ colorValue?: string;
79
+ };
80
+ /**
81
+ * Formatter used to render values in tooltips or other data displays.
82
+ * @param {MapShapeValueType} value The data entry to format.
83
+ * @param {object} context The rendering context.
84
+ * @param {number} context.dataIndex The index of the data point in the series.
85
+ * @returns {string | null} The string to display, or `null` if the value should not be shown.
86
+ */
87
+ valueFormatter?: (value: MapShapeValueType, context: {
88
+ dataIndex: number;
89
+ }) => string | null;
90
+ }
91
+ /**
92
+ * Identifies a single item in a `mapShape` series.
93
+ */
94
+ export type MapShapeItemIdentifier = {
95
+ type: 'mapShape';
96
+ seriesId: SeriesId;
97
+ dataIndex: number;
98
+ };
99
+ export type DefaultizedMapShapeValueType = MapShapeValueType & {
100
+ hidden: boolean;
101
+ };
102
+ export interface DefaultizedMapShapeSeriesType extends Omit<DefaultizedProps<MapShapeSeriesType, CommonDefaultizedProps | 'color'>, 'data'> {
103
+ hidden: boolean;
104
+ data: ReadonlyArray<DefaultizedMapShapeValueType>;
105
+ }