@carto/ps-react-ui 4.4.0 → 4.4.2

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 (213) hide show
  1. package/dist/components.js.map +1 -1
  2. package/dist/error-CEkRPccv.js.map +1 -1
  3. package/dist/exports-Cr43OCul.js.map +1 -1
  4. package/dist/formatter-B1Xh8XDH.js +5 -0
  5. package/dist/formatter-B1Xh8XDH.js.map +1 -0
  6. package/dist/lasso-tool-BYbxrJ-7.js.map +1 -1
  7. package/dist/note-t51drNe0.js.map +1 -1
  8. package/dist/options-D9wflre6.js.map +1 -1
  9. package/dist/row-DTCV0Ocm.js.map +1 -1
  10. package/dist/series-CYNOu2Ju.js.map +1 -1
  11. package/dist/smart-tooltip-D4vwQpFf.js.map +1 -1
  12. package/dist/styles-C_8vOEep.js +167 -0
  13. package/dist/styles-C_8vOEep.js.map +1 -0
  14. package/dist/tooltip-BDnrRKrp.js.map +1 -1
  15. package/dist/types/components/basemaps/basemaps.d.ts +20 -0
  16. package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +11 -0
  17. package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +17 -0
  18. package/dist/types/components/lasso-tool/lasso-tool.d.ts +21 -0
  19. package/dist/types/components/list-data/list-data.d.ts +16 -0
  20. package/dist/types/components/measurement-tools/measurement-tools.d.ts +20 -0
  21. package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +17 -0
  22. package/dist/types/components/tooltip/tooltip.d.ts +13 -0
  23. package/dist/types/components/zoom-controls/zoom-controls.d.ts +16 -0
  24. package/dist/types/hooks/use-widget-ref.d.ts +4 -4
  25. package/dist/types/widgets/actions/download/download.d.ts +11 -0
  26. package/dist/types/widgets/actions/download/exports.d.ts +15 -0
  27. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +13 -0
  28. package/dist/types/widgets/actions/index.d.ts +1 -1
  29. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -0
  30. package/dist/types/widgets/bar/config.d.ts +8 -4
  31. package/dist/types/widgets/category/category-ui.d.ts +3 -0
  32. package/dist/types/widgets/category/components/category-bar.d.ts +3 -0
  33. package/dist/types/widgets/category/components/category-legend.d.ts +3 -0
  34. package/dist/types/widgets/category/components/category-row-multi.d.ts +3 -0
  35. package/dist/types/widgets/category/components/category-row-other.d.ts +3 -0
  36. package/dist/types/widgets/category/components/category-row-single.d.ts +3 -0
  37. package/dist/types/widgets/category/config.d.ts +11 -0
  38. package/dist/types/widgets/echart/echart-ui.d.ts +7 -0
  39. package/dist/types/widgets/echart/echart.d.ts +6 -0
  40. package/dist/types/widgets/echart/options.d.ts +7 -0
  41. package/dist/types/widgets/echart/types.d.ts +1 -0
  42. package/dist/types/widgets/echart/utils.d.ts +42 -1
  43. package/dist/types/widgets/error/error.d.ts +10 -0
  44. package/dist/types/widgets/formula/components/item.d.ts +3 -0
  45. package/dist/types/widgets/formula/components/prefix.d.ts +3 -0
  46. package/dist/types/widgets/formula/components/row.d.ts +3 -0
  47. package/dist/types/widgets/formula/components/series.d.ts +3 -0
  48. package/dist/types/widgets/formula/components/suffix.d.ts +3 -0
  49. package/dist/types/widgets/formula/components/value.d.ts +3 -0
  50. package/dist/types/widgets/formula/config.d.ts +11 -0
  51. package/dist/types/widgets/formula/formula-ui.d.ts +3 -0
  52. package/dist/types/widgets/histogram/config.d.ts +8 -4
  53. package/dist/types/widgets/loader/loader.d.ts +22 -0
  54. package/dist/types/widgets/loader/utils.d.ts +26 -3
  55. package/dist/types/widgets/markdown/config.d.ts +10 -0
  56. package/dist/types/widgets/markdown/markdown-ui.d.ts +7 -0
  57. package/dist/types/widgets/markdown/markdown.d.ts +3 -0
  58. package/dist/types/widgets/note/note.d.ts +10 -0
  59. package/dist/types/widgets/pie/config.d.ts +8 -4
  60. package/dist/types/widgets/range/components/range-item.d.ts +3 -0
  61. package/dist/types/widgets/range/config.d.ts +5 -0
  62. package/dist/types/widgets/range/range-ui.d.ts +3 -0
  63. package/dist/types/widgets/scatterplot/config.d.ts +7 -3
  64. package/dist/types/widgets/selection-summary/selection-summary.d.ts +11 -0
  65. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +10 -0
  66. package/dist/types/widgets/spread/components/max-value.d.ts +3 -0
  67. package/dist/types/widgets/spread/components/min-value.d.ts +3 -0
  68. package/dist/types/widgets/spread/components/separator.d.ts +3 -0
  69. package/dist/types/widgets/spread/config.d.ts +11 -0
  70. package/dist/types/widgets/spread/spread-ui.d.ts +3 -0
  71. package/dist/types/widgets/subheader/subheader.d.ts +11 -0
  72. package/dist/types/widgets/table/config.d.ts +8 -3
  73. package/dist/types/widgets/table/hooks/use-pagination.d.ts +11 -3
  74. package/dist/types/widgets/table/hooks/use-selection.d.ts +11 -2
  75. package/dist/types/widgets/table/hooks/use-sort.d.ts +11 -3
  76. package/dist/types/widgets/timeseries/config.d.ts +8 -4
  77. package/dist/types/widgets/utils/chart-config/download-config.d.ts +3 -0
  78. package/dist/types/widgets/{_shared → utils}/chart-config/index.d.ts +2 -0
  79. package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.d.ts +1 -1
  80. package/dist/types/widgets/utils/formatter.d.ts +1 -0
  81. package/dist/types/widgets/utils/index.d.ts +7 -0
  82. package/dist/types/widgets/wrapper/components/actions.d.ts +3 -0
  83. package/dist/types/widgets/wrapper/components/options.d.ts +3 -0
  84. package/dist/types/widgets/wrapper/components/title.d.ts +3 -0
  85. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +14 -0
  86. package/dist/types/widgets/wrapper/wrapper.d.ts +14 -0
  87. package/dist/use-widget-ref-wtFLDFCD.js.map +1 -1
  88. package/dist/{utils-Cx3gYUcL.js → utils-BOhInag6.js} +67 -48
  89. package/dist/utils-BOhInag6.js.map +1 -0
  90. package/dist/widgets/actions.js +651 -628
  91. package/dist/widgets/actions.js.map +1 -1
  92. package/dist/widgets/bar.js +66 -86
  93. package/dist/widgets/bar.js.map +1 -1
  94. package/dist/widgets/category.js +21 -21
  95. package/dist/widgets/category.js.map +1 -1
  96. package/dist/widgets/echart.js +1 -1
  97. package/dist/widgets/echart.js.map +1 -1
  98. package/dist/widgets/formula.js +54 -54
  99. package/dist/widgets/formula.js.map +1 -1
  100. package/dist/widgets/histogram.js +45 -65
  101. package/dist/widgets/histogram.js.map +1 -1
  102. package/dist/widgets/loader.js.map +1 -1
  103. package/dist/widgets/markdown.js.map +1 -1
  104. package/dist/widgets/pie.js +122 -99
  105. package/dist/widgets/pie.js.map +1 -1
  106. package/dist/widgets/range.js +23 -22
  107. package/dist/widgets/range.js.map +1 -1
  108. package/dist/widgets/scatterplot.js +39 -59
  109. package/dist/widgets/scatterplot.js.map +1 -1
  110. package/dist/widgets/selection-summary.js.map +1 -1
  111. package/dist/widgets/skeleton-loader.js.map +1 -1
  112. package/dist/widgets/spread.js +40 -41
  113. package/dist/widgets/spread.js.map +1 -1
  114. package/dist/widgets/subheader.js.map +1 -1
  115. package/dist/widgets/table.js.map +1 -1
  116. package/dist/widgets/timeseries.js +39 -59
  117. package/dist/widgets/timeseries.js.map +1 -1
  118. package/dist/widgets/utils.js +31 -0
  119. package/dist/widgets/utils.js.map +1 -0
  120. package/dist/widgets/wrapper.js.map +1 -1
  121. package/package.json +5 -1
  122. package/src/components/basemaps/basemaps.tsx +20 -0
  123. package/src/components/geolocation-controls/geolocation-controls.tsx +11 -0
  124. package/src/components/lasso-tool/lasso-tool-inline.tsx +17 -0
  125. package/src/components/lasso-tool/lasso-tool.tsx +21 -0
  126. package/src/components/list-data/list-data.tsx +16 -0
  127. package/src/components/measurement-tools/measurement-tools.tsx +20 -0
  128. package/src/components/smart-tooltip/smart-tooltip.tsx +17 -0
  129. package/src/components/tooltip/tooltip.tsx +13 -0
  130. package/src/components/zoom-controls/zoom-controls.tsx +16 -0
  131. package/src/hooks/use-widget-ref.ts +4 -4
  132. package/src/widgets/README.md +10 -10
  133. package/src/widgets/actions/download/download.tsx +11 -0
  134. package/src/widgets/actions/download/exports.tsx +15 -0
  135. package/src/widgets/actions/fullscreen/fullscreen.tsx +13 -0
  136. package/src/widgets/actions/index.ts +1 -0
  137. package/src/widgets/actions/relative-data/relative-data.test.tsx +62 -1
  138. package/src/widgets/actions/relative-data/relative-data.tsx +62 -39
  139. package/src/widgets/bar/config.ts +12 -20
  140. package/src/widgets/bar/style.ts +1 -1
  141. package/src/widgets/category/category-ui.tsx +4 -2
  142. package/src/widgets/category/components/category-bar.tsx +3 -0
  143. package/src/widgets/category/components/category-legend.tsx +3 -0
  144. package/src/widgets/category/components/category-row-multi.tsx +3 -0
  145. package/src/widgets/category/components/category-row-other.tsx +3 -0
  146. package/src/widgets/category/components/category-row-single.tsx +3 -0
  147. package/src/widgets/category/config.ts +11 -0
  148. package/src/widgets/echart/echart-ui.tsx +7 -0
  149. package/src/widgets/echart/echart.tsx +6 -0
  150. package/src/widgets/echart/options.ts +7 -0
  151. package/src/widgets/echart/types.ts +1 -0
  152. package/src/widgets/echart/utils.ts +74 -6
  153. package/src/widgets/error/error.tsx +10 -0
  154. package/src/widgets/formula/components/item.tsx +3 -0
  155. package/src/widgets/formula/components/prefix.tsx +3 -0
  156. package/src/widgets/formula/components/row.tsx +3 -0
  157. package/src/widgets/formula/components/series.tsx +3 -0
  158. package/src/widgets/formula/components/suffix.tsx +3 -0
  159. package/src/widgets/formula/components/value.tsx +4 -2
  160. package/src/widgets/formula/config.ts +11 -0
  161. package/src/widgets/formula/formula-ui.tsx +3 -0
  162. package/src/widgets/histogram/config.ts +11 -20
  163. package/src/widgets/histogram/style.ts +1 -1
  164. package/src/widgets/loader/loader.tsx +22 -0
  165. package/src/widgets/loader/utils.ts +26 -3
  166. package/src/widgets/markdown/config.ts +10 -0
  167. package/src/widgets/markdown/markdown-ui.tsx +7 -0
  168. package/src/widgets/markdown/markdown.tsx +3 -0
  169. package/src/widgets/note/note.tsx +10 -0
  170. package/src/widgets/pie/config.ts +85 -30
  171. package/src/widgets/pie/style.ts +1 -1
  172. package/src/widgets/range/components/range-item.tsx +5 -2
  173. package/src/widgets/range/config.ts +5 -0
  174. package/src/widgets/range/range-ui.tsx +3 -0
  175. package/src/widgets/scatterplot/config.ts +11 -20
  176. package/src/widgets/scatterplot/style.ts +1 -1
  177. package/src/widgets/selection-summary/selection-summary.tsx +11 -0
  178. package/src/widgets/skeleton-loader/skeleton-loader.tsx +10 -0
  179. package/src/widgets/spread/components/max-value.tsx +4 -2
  180. package/src/widgets/spread/components/min-value.tsx +4 -2
  181. package/src/widgets/spread/components/separator.tsx +3 -0
  182. package/src/widgets/spread/config.ts +11 -0
  183. package/src/widgets/spread/spread-ui.tsx +3 -0
  184. package/src/widgets/subheader/subheader.tsx +11 -0
  185. package/src/widgets/table/config.ts +8 -3
  186. package/src/widgets/table/hooks/use-pagination.ts +11 -3
  187. package/src/widgets/table/hooks/use-selection.ts +11 -2
  188. package/src/widgets/table/hooks/use-sort.ts +11 -3
  189. package/src/widgets/timeseries/config.ts +11 -20
  190. package/src/widgets/timeseries/style.ts +1 -1
  191. package/src/widgets/utils/chart-config/download-config.ts +22 -0
  192. package/src/widgets/{_shared → utils}/chart-config/index.ts +4 -0
  193. package/src/widgets/{_shared → utils}/chart-config/option-builders.ts +1 -1
  194. package/src/widgets/utils/formatter.ts +1 -0
  195. package/src/widgets/utils/index.ts +26 -0
  196. package/src/widgets/wrapper/components/actions.tsx +3 -0
  197. package/src/widgets/wrapper/components/options.tsx +3 -0
  198. package/src/widgets/wrapper/components/title.tsx +3 -0
  199. package/src/widgets/wrapper/wrapper-ui.tsx +14 -0
  200. package/src/widgets/wrapper/wrapper.tsx +14 -0
  201. package/dist/styles-CAroD5Rc.js +0 -123
  202. package/dist/styles-CAroD5Rc.js.map +0 -1
  203. package/dist/utils-Cx3gYUcL.js.map +0 -1
  204. /package/dist/types/widgets/{_shared → utils}/chart-config/config-factory.d.ts +0 -0
  205. /package/dist/types/widgets/{_shared → utils}/chart-config/csv-modifiers.d.ts +0 -0
  206. /package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.test.d.ts +0 -0
  207. /package/dist/types/widgets/{_shared → utils}/skeleton/index.d.ts +0 -0
  208. /package/dist/types/widgets/{_shared → utils}/skeleton/styles.d.ts +0 -0
  209. /package/src/widgets/{_shared → utils}/chart-config/config-factory.ts +0 -0
  210. /package/src/widgets/{_shared → utils}/chart-config/csv-modifiers.ts +0 -0
  211. /package/src/widgets/{_shared → utils}/chart-config/option-builders.test.ts +0 -0
  212. /package/src/widgets/{_shared → utils}/skeleton/index.ts +0 -0
  213. /package/src/widgets/{_shared → utils}/skeleton/styles.ts +0 -0
@@ -1,87 +1,106 @@
1
1
  import { d } from "./cjs-D4KH3azB.js";
2
2
  const m = "stacked";
3
- function h(...o) {
4
- return d(o[0] ?? {}, o[1] ?? {}, {
5
- customMerge: (e) => {
6
- if (e === "color")
7
- return (i, I) => I;
8
- if (e === "series")
9
- return (i, I) => i.length ? I?.map((r, l) => {
10
- const g = i?.[l] ?? {};
11
- return d(g, r);
12
- }) : i;
3
+ function S(o, i, n) {
4
+ return d(o ?? {}, i ?? {}, {
5
+ customMerge: (r) => {
6
+ const l = n?.(r);
7
+ if (l) return l;
8
+ if (r === "color")
9
+ return (t, e) => e;
10
+ if (r === "axisLabel")
11
+ return (t, e) => {
12
+ const g = {
13
+ ...t,
14
+ ...e
15
+ };
16
+ if (typeof t?.formatter == "function" && typeof e?.formatter == "function") {
17
+ const a = t.formatter, c = e.formatter;
18
+ g.formatter = (I) => a(I) === "" ? "" : c(I);
19
+ }
20
+ return g;
21
+ };
22
+ if (r === "series")
23
+ return (t, e) => {
24
+ const g = Math.max(t?.length ?? 0, e?.length ?? 0);
25
+ return Array.from({
26
+ length: g
27
+ }, (a, c) => {
28
+ const I = t?.[c] ?? {}, s = e?.[c] ?? {};
29
+ return d(I, s);
30
+ });
31
+ };
13
32
  }
14
33
  });
15
34
  }
16
35
  function p({
17
36
  start: o,
18
- end: e
37
+ end: i
19
38
  } = {
20
39
  start: 0,
21
40
  end: 100
22
41
  }, {
23
- inside: i = !0,
24
- xSlider: I = !0,
25
- ySlider: a = !1,
26
- showSliders: r = !0,
27
- xAxisLabelFormatter: l,
42
+ inside: n = !0,
43
+ xSlider: r = !0,
44
+ ySlider: l = !1,
45
+ showSliders: t = !0,
46
+ xAxisLabelFormatter: e,
28
47
  bottomOffset: g = 0
29
- } = {}, t) {
30
- const n = t ? s(t) : {};
48
+ } = {}, a) {
49
+ const I = a ? y(a) : {};
31
50
  return {
32
- dataZoom: [i && {
51
+ dataZoom: [n && {
33
52
  throttle: 0,
34
53
  type: "inside",
35
- xAxisIndex: I ? [0] : [],
36
- yAxisIndex: a ? [0] : [],
54
+ xAxisIndex: r ? [0] : [],
55
+ yAxisIndex: l ? [0] : [],
37
56
  show: !0,
38
57
  zoomLock: !1,
39
58
  start: o,
40
- end: e
41
- }, i && a && {
59
+ end: i
60
+ }, n && l && {
42
61
  throttle: 0,
43
62
  type: "inside",
44
63
  show: !0,
45
64
  zoomLock: !1,
46
65
  start: o,
47
- end: e,
66
+ end: i,
48
67
  orientation: "vertical"
49
- }, I && {
68
+ }, r && {
50
69
  throttle: 0,
51
70
  type: "slider",
52
71
  xAxisIndex: [0],
53
72
  bottom: g,
54
- height: parseInt(t?.spacing?.(4) ?? "32"),
55
- show: r,
73
+ height: parseInt(a?.spacing?.(4) ?? "32"),
74
+ show: t,
56
75
  zoomLock: !1,
57
76
  start: o,
58
- end: e,
59
- labelFormatter: l,
77
+ end: i,
78
+ labelFormatter: e,
60
79
  showDetail: !1,
61
- ...n,
80
+ ...I,
62
81
  brushSelect: !1,
63
82
  moveHandleSize: 8,
64
83
  handleSize: "100%",
65
84
  handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
66
- }, a && {
85
+ }, l && {
67
86
  throttle: 0,
68
87
  type: "slider",
69
- left: parseInt(t?.spacing?.(6) ?? "48"),
70
- width: parseInt(t?.spacing?.(4) ?? "32"),
88
+ left: parseInt(a?.spacing?.(6) ?? "48"),
89
+ width: parseInt(a?.spacing?.(4) ?? "32"),
71
90
  yAxisIndex: [0],
72
- show: r,
91
+ show: t,
73
92
  zoomLock: !1,
74
93
  start: o,
75
- end: e,
76
- ...n,
94
+ end: i,
95
+ ...I,
77
96
  brushSelect: !1,
78
97
  moveHandleSize: 8,
79
98
  handleSize: "100%",
80
99
  handleIcon: "image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4="
81
- }].filter((c) => !!c)
100
+ }].filter((s) => !!s)
82
101
  };
83
102
  }
84
- function s(o) {
103
+ function y(o) {
85
104
  return {
86
105
  fillerColor: "rgba(53, 139, 231, 0.25)",
87
106
  borderColor: "rgba(53, 139, 231, 0.3)",
@@ -122,30 +141,30 @@ function s(o) {
122
141
  }
123
142
  };
124
143
  }
125
- function z({
144
+ function b({
126
145
  brushType: o = "lineX",
127
- brushMode: e = "single",
128
- xAxisIndex: i = 0
146
+ brushMode: i = "single",
147
+ xAxisIndex: n = 0
129
148
  } = {}) {
130
149
  return {
131
150
  brush: {
132
151
  toolbox: ["lineX", "clear"],
133
152
  brushType: o,
134
- brushMode: e,
135
- xAxisIndex: i
153
+ brushMode: i,
154
+ xAxisIndex: n
136
155
  }
137
156
  };
138
157
  }
139
- function b(o = m) {
158
+ function u(o = m) {
140
159
  return {
141
160
  stack: o
142
161
  };
143
162
  }
144
163
  export {
145
164
  m as D,
146
- b as a,
165
+ u as a,
147
166
  p as b,
148
- z as g,
149
- h as m
167
+ b as g,
168
+ S as m
150
169
  };
151
- //# sourceMappingURL=utils-Cx3gYUcL.js.map
170
+ //# sourceMappingURL=utils-BOhInag6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BOhInag6.js","sources":["../src/widgets/echart/const.ts","../src/widgets/echart/utils.ts"],"sourcesContent":["export const DEFAULT_STACK_GROUP = 'stacked'\n","import deepmerge from 'deepmerge'\nimport type { EchartOptionsProps } from './types'\nimport type { Theme } from '@mui/material'\nimport { DEFAULT_STACK_GROUP } from './const'\n\n/**\n * Deep-merges two ECharts option objects with smart handling for `color`, `axisLabel`, and `series` keys.\n *\n * @param optionA - Base ECharts options.\n * @param optionB - Override ECharts options to merge on top.\n * @param customMergeFn - Optional function returning a custom merge strategy per key.\n * @returns The merged ECharts options object.\n *\n * @remarks\n * - `color` arrays are replaced entirely (not concatenated).\n * - `axisLabel` formatters are composed so the base formatter can suppress values by returning `''`.\n * - `series` arrays are merged element-by-element rather than concatenated.\n *\n * @example\n * ```tsx\n * const option = mergeEchartWidgetConfig(props.option, {\n * series: [{ barWidth: '60%', itemStyle: { borderRadius: [4, 4, 0, 0] } }],\n * tooltip: { trigger: 'axis' },\n * })\n * ```\n */\nexport function mergeEchartWidgetConfig<T extends EchartOptionsProps>(\n optionA: T | undefined,\n optionB: T | undefined,\n customMergeFn?: (\n key: string,\n ) => ((a: unknown, b: unknown) => unknown) | undefined,\n): T {\n return deepmerge(optionA ?? {}, optionB ?? {}, {\n customMerge: (key) => {\n const externalMerge = customMergeFn?.(key)\n if (externalMerge) return externalMerge\n\n if (key === 'color') {\n return (_, b: T['color']) => b\n }\n if (key === 'axisLabel') {\n return (\n a: Record<string, unknown> | undefined,\n b: Record<string, unknown> | undefined,\n ) => {\n const merged = { ...a, ...b }\n if (\n typeof a?.formatter === 'function' &&\n typeof b?.formatter === 'function'\n ) {\n const baseFormatter = a.formatter as (value: unknown) => unknown\n const customFormatter = b.formatter as (value: unknown) => unknown\n merged.formatter = (value: unknown) => {\n const baseResult = baseFormatter(value)\n if (baseResult === '') return ''\n return customFormatter(value)\n }\n }\n return merged\n }\n }\n if (key === 'series') {\n return (a: T['series'][], b: T['series'][]) => {\n const maxLength = Math.max(a?.length ?? 0, b?.length ?? 0)\n return Array.from({ length: maxLength }, (_, index) => {\n const aItem = a?.[index] ?? {}\n const bItem = b?.[index] ?? {}\n return deepmerge(aItem, bItem as object)\n })\n }\n }\n },\n }) as T\n}\n\n/**\n * Generates ECharts `dataZoom` configuration for interactive zoom and pan on chart axes.\n *\n * @param range - Initial visible range as `{ start, end }` percentages (0-100). Defaults to full range.\n * @param options - Zoom behavior options including axis sliders, inside zoom, and formatter.\n * @param theme - Optional MUI theme for styled slider handles and backgrounds.\n * @returns An object containing the `dataZoom` array configuration.\n */\nexport function getEChartZoomConfig(\n { start, end }: { start: number; end: number } = { start: 0, end: 100 },\n {\n inside = true,\n xSlider = true,\n ySlider = false,\n showSliders = true,\n xAxisLabelFormatter,\n bottomOffset = 0,\n } = {} as {\n inside?: boolean\n xSlider?: boolean\n ySlider?: boolean\n showSliders?: boolean\n xAxisLabelFormatter?: (value: number) => string\n bottomOffset?: number\n },\n theme?: Theme,\n) {\n const zoom = true\n const sliderStyles = theme ? getEChartZoomSliderStyles(theme) : {}\n\n return {\n dataZoom: [\n inside && {\n throttle: 0,\n type: 'inside',\n xAxisIndex: xSlider ? [0] : [],\n yAxisIndex: ySlider ? [0] : [],\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n },\n inside &&\n ySlider && {\n throttle: 0,\n type: 'inside',\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n orientation: 'vertical',\n },\n xSlider && {\n throttle: 0,\n type: 'slider',\n xAxisIndex: [0],\n bottom: bottomOffset,\n height: parseInt(theme?.spacing?.(4) ?? '32'),\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n labelFormatter: xAxisLabelFormatter,\n showDetail: false,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOSIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDkgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iLTAuNSIgd2lkdGg9IjgiIGhlaWdodD0iMTgiIHJ4PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMyAyMykiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMTkpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAzIDE1KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ySlider && {\n throttle: 0,\n type: 'slider',\n left: parseInt(theme?.spacing?.(6) ?? '48'),\n width: parseInt(theme?.spacing?.(4) ?? '32'),\n yAxisIndex: [0],\n show: zoom && showSliders,\n zoomLock: !zoom,\n start,\n end,\n ...sliderStyles,\n brushSelect: false,\n moveHandleSize: 8,\n handleSize: '100%',\n handleIcon:\n 'image://data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDM2IDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjAuNSIgeT0iMC41IiB3aWR0aD0iOCIgaGVpZ2h0PSIxOCIgcng9IjQiIHRyYW5zZm9ybT0icm90YXRlKC05MCAwLjUgMC41KSIgZmlsbD0id2hpdGUiIHN0cm9rZT0iIzM1OEJFNyIvPgo8cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIyIiByeD0iMSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDEzIDYpIiBmaWxsPSIjMzU4QkU3Ii8+CjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHJ4PSIxIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMTcgNikiIGZpbGw9IiMzNThCRTciLz4KPHJlY3Qgd2lkdGg9IjMiIGhlaWdodD0iMiIgcng9IjEiIHRyYW5zZm9ybT0icm90YXRlKC05MCAyMSA2KSIgZmlsbD0iIzM1OEJFNyIvPgo8L3N2Zz4=',\n },\n ].filter((d) => !!d),\n }\n}\n\nfunction getEChartZoomSliderStyles(theme: Theme) {\n return {\n fillerColor: 'rgba(53, 139, 231, 0.25)',\n borderColor: 'rgba(53, 139, 231, 0.3)',\n borderWidth: 0.5,\n backgroundColor: 'transparent',\n borderRadius: 4,\n dataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n selectedDataBackground: {\n lineStyle: {\n opacity: 0,\n },\n areaStyle: {\n opacity: 1,\n color: theme.palette.secondary.main,\n },\n },\n handleStyle: {\n color: theme.palette.common.white,\n borderColor: 'rgba(3, 111, 226, 0.08)',\n borderWidth: 1,\n shadowBlur: 3,\n shadowColor: 'rgba(0, 0, 0, 0.1)',\n shadowOffsetX: 0,\n shadowOffsetY: 1,\n },\n textStyle: {\n color: theme.palette.black[60],\n fontSize: parseInt(theme.typography.overlineDelicate.fontSize as string),\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n },\n } as const\n}\n\n/**\n * Generates ECharts `brush` configuration for interactive data selection on charts.\n *\n * @param options - Brush options including type, mode, and target axis index.\n * @returns An object containing the `brush` configuration.\n */\nexport function getEChartBrushConfig(\n { brushType = 'lineX', brushMode = 'single', xAxisIndex = 0 } = {} as {\n brushType?: string\n brushMode?: string\n xAxisIndex?: number\n throttleType?: string\n throttleDelay?: number\n },\n) {\n return {\n brush: {\n toolbox: ['lineX', 'clear'],\n brushType,\n brushMode,\n xAxisIndex,\n },\n }\n}\n\n/**\n * Returns an ECharts `stack` configuration to group series into a stacked layout.\n *\n * @param stackGroup - The stack group identifier. Defaults to the library's default group.\n * @returns An object with the `stack` property set to the group name.\n */\nexport function getEChartStackConfig(stackGroup: string = DEFAULT_STACK_GROUP) {\n return { stack: stackGroup }\n}\n"],"names":["DEFAULT_STACK_GROUP","mergeEchartWidgetConfig","optionA","optionB","customMergeFn","deepmerge","customMerge","key","externalMerge","_","b","a","merged","formatter","baseFormatter","customFormatter","value","maxLength","Math","max","length","Array","from","index","aItem","bItem","getEChartZoomConfig","start","end","inside","xSlider","ySlider","showSliders","xAxisLabelFormatter","bottomOffset","theme","sliderStyles","getEChartZoomSliderStyles","dataZoom","throttle","type","xAxisIndex","yAxisIndex","show","zoom","zoomLock","orientation","bottom","height","parseInt","spacing","labelFormatter","showDetail","brushSelect","moveHandleSize","handleSize","handleIcon","left","width","filter","d","fillerColor","borderColor","borderWidth","backgroundColor","borderRadius","dataBackground","lineStyle","opacity","areaStyle","color","palette","secondary","main","selectedDataBackground","handleStyle","common","white","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","textStyle","black","fontSize","typography","overlineDelicate","fontFamily","getEChartBrushConfig","brushType","brushMode","brush","toolbox","getEChartStackConfig","stackGroup","stack"],"mappings":"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"}