@carto/ps-react-ui 4.3.0-widgets.0 → 4.3.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 (292) hide show
  1. package/dist/{cjs-D9ro6BXv.js → cjs-D4KH3azB.js} +2 -2
  2. package/dist/{cjs-D9ro6BXv.js.map → cjs-D4KH3azB.js.map} +1 -1
  3. package/dist/components.js +59 -64
  4. package/dist/components.js.map +1 -1
  5. package/dist/error-B2IJ9d2h.js +38 -0
  6. package/dist/error-B2IJ9d2h.js.map +1 -0
  7. package/dist/exports-Cr43OCul.js +51 -0
  8. package/dist/exports-Cr43OCul.js.map +1 -0
  9. package/dist/lasso-tool-BwRzEW7k.js +534 -0
  10. package/dist/lasso-tool-BwRzEW7k.js.map +1 -0
  11. package/dist/no-data-C54XJt13.js +61 -0
  12. package/dist/no-data-C54XJt13.js.map +1 -0
  13. package/dist/note-t51drNe0.js +124 -0
  14. package/dist/note-t51drNe0.js.map +1 -0
  15. package/dist/options-D9wflre6.js +49 -0
  16. package/dist/options-D9wflre6.js.map +1 -0
  17. package/dist/row-DrHwXNvF.js +35 -0
  18. package/dist/row-DrHwXNvF.js.map +1 -0
  19. package/dist/series-D3Pc-kYX.js +91 -0
  20. package/dist/series-D3Pc-kYX.js.map +1 -0
  21. package/dist/{smart-tooltip-BSlcAkBM.js → smart-tooltip-BEtBaIdz.js} +2 -2
  22. package/dist/{smart-tooltip-BSlcAkBM.js.map → smart-tooltip-BEtBaIdz.js.map} +1 -1
  23. package/dist/styles-CCZnY17y.js +117 -0
  24. package/dist/styles-CCZnY17y.js.map +1 -0
  25. package/dist/tooltip-BDnrRKrp.js +25 -0
  26. package/dist/tooltip-BDnrRKrp.js.map +1 -0
  27. package/dist/types/components/measurement-tools/styles.d.ts +13 -4
  28. package/dist/types/hooks/index.d.ts +2 -0
  29. package/dist/types/hooks/use-debounce.d.ts +19 -0
  30. package/dist/types/hooks/use-widget-ref.d.ts +17 -0
  31. package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +5 -11
  32. package/dist/types/widgets/_shared/chart-config/index.d.ts +1 -1
  33. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +54 -8
  34. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
  35. package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
  36. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
  37. package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
  38. package/dist/types/widgets/actions/download/download.d.ts +1 -1
  39. package/dist/types/widgets/actions/download/exports.d.ts +1 -1
  40. package/dist/types/widgets/actions/download/types.d.ts +3 -11
  41. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  42. package/dist/types/widgets/actions/fullscreen/styles.d.ts +6 -0
  43. package/dist/types/widgets/actions/fullscreen/types.d.ts +8 -9
  44. package/dist/types/widgets/actions/index.d.ts +14 -1
  45. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
  46. package/dist/types/widgets/actions/lock-selection/types.d.ts +36 -0
  47. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
  48. package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
  49. package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
  50. package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
  51. package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
  52. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
  53. package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
  54. package/dist/types/widgets/actions/searcher/types.d.ts +64 -0
  55. package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
  56. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
  57. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
  58. package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
  59. package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
  60. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
  61. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
  62. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
  63. package/dist/types/widgets/bar/config.d.ts +5 -4
  64. package/dist/types/widgets/bar/index.d.ts +2 -2
  65. package/dist/types/widgets/bar/types.d.ts +6 -12
  66. package/dist/types/widgets/category/category-ui.d.ts +2 -0
  67. package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
  68. package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
  69. package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
  70. package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
  71. package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
  72. package/dist/types/widgets/category/components/index.d.ts +10 -0
  73. package/dist/types/widgets/category/config.d.ts +16 -0
  74. package/dist/types/widgets/category/index.d.ts +6 -0
  75. package/dist/types/widgets/category/skeleton.d.ts +1 -0
  76. package/dist/types/widgets/category/style.d.ts +120 -0
  77. package/dist/types/widgets/category/types.d.ts +34 -0
  78. package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
  79. package/dist/types/widgets/echart/index.d.ts +2 -2
  80. package/dist/types/widgets/echart/options.d.ts +2 -3
  81. package/dist/types/widgets/echart/types.d.ts +13 -10
  82. package/dist/types/widgets/echart/utils.d.ts +22 -16
  83. package/dist/types/widgets/error/error.d.ts +2 -0
  84. package/dist/types/widgets/error/index.d.ts +2 -0
  85. package/dist/types/widgets/error/types.d.ts +12 -0
  86. package/dist/types/widgets/formula/components/row.d.ts +1 -1
  87. package/dist/types/widgets/formula/config.d.ts +4 -2
  88. package/dist/types/widgets/formula/index.d.ts +2 -1
  89. package/dist/types/widgets/formula/types.d.ts +6 -18
  90. package/dist/types/widgets/histogram/config.d.ts +5 -4
  91. package/dist/types/widgets/histogram/index.d.ts +2 -2
  92. package/dist/types/widgets/histogram/types.d.ts +6 -12
  93. package/dist/types/widgets/index.d.ts +9 -4
  94. package/dist/types/widgets/loader/index.d.ts +3 -0
  95. package/dist/types/widgets/loader/loader.d.ts +2 -0
  96. package/dist/types/widgets/loader/types.d.ts +9 -0
  97. package/dist/types/widgets/loader/utils.d.ts +12 -0
  98. package/dist/types/widgets/loader/utils.test.d.ts +1 -0
  99. package/dist/types/widgets/markdown/config.d.ts +4 -2
  100. package/dist/types/widgets/markdown/index.d.ts +2 -2
  101. package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
  102. package/dist/types/widgets/markdown/types.d.ts +6 -16
  103. package/dist/types/widgets/no-data/index.d.ts +2 -0
  104. package/dist/types/widgets/no-data/no-data.d.ts +35 -0
  105. package/dist/types/widgets/no-data/style.d.ts +6 -0
  106. package/dist/types/widgets/no-data/types.d.ts +67 -0
  107. package/dist/types/widgets/note/index.d.ts +2 -2
  108. package/dist/types/widgets/note/note.d.ts +2 -2
  109. package/dist/types/widgets/note/style.d.ts +12 -1
  110. package/dist/types/widgets/note/types.d.ts +4 -3
  111. package/dist/types/widgets/pie/config.d.ts +5 -4
  112. package/dist/types/widgets/pie/index.d.ts +2 -2
  113. package/dist/types/widgets/pie/types.d.ts +6 -12
  114. package/dist/types/widgets/range/config.d.ts +6 -2
  115. package/dist/types/widgets/range/index.d.ts +2 -1
  116. package/dist/types/widgets/range/types.d.ts +6 -17
  117. package/dist/types/widgets/scatterplot/config.d.ts +5 -4
  118. package/dist/types/widgets/scatterplot/index.d.ts +2 -2
  119. package/dist/types/widgets/scatterplot/types.d.ts +6 -12
  120. package/dist/types/widgets/selection-summary/index.d.ts +2 -0
  121. package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
  122. package/dist/types/widgets/{root → selection-summary}/style.d.ts +3 -2
  123. package/dist/types/widgets/selection-summary/types.d.ts +13 -0
  124. package/dist/types/widgets/spread/config.d.ts +10 -2
  125. package/dist/types/widgets/spread/index.d.ts +2 -1
  126. package/dist/types/widgets/spread/types.d.ts +6 -18
  127. package/dist/types/widgets/stores/index.d.ts +2 -0
  128. package/dist/types/widgets/stores/types.d.ts +108 -12
  129. package/dist/types/widgets/stores/widget-store.d.ts +2 -27
  130. package/dist/types/widgets/subheader/index.d.ts +2 -0
  131. package/dist/types/widgets/subheader/style.d.ts +19 -0
  132. package/dist/types/widgets/subheader/subheader.d.ts +2 -0
  133. package/dist/types/widgets/subheader/types.d.ts +10 -0
  134. package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
  135. package/dist/types/widgets/table/components/cell.d.ts +16 -0
  136. package/dist/types/widgets/table/components/index.d.ts +4 -0
  137. package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
  138. package/dist/types/widgets/table/components/pagination.d.ts +5 -0
  139. package/dist/types/widgets/table/components/row.d.ts +5 -0
  140. package/dist/types/widgets/table/config.d.ts +17 -0
  141. package/dist/types/widgets/table/helpers.d.ts +38 -0
  142. package/dist/types/widgets/table/helpers.test.d.ts +1 -0
  143. package/dist/types/widgets/table/hooks/index.d.ts +6 -0
  144. package/dist/types/widgets/table/hooks/use-pagination.d.ts +33 -0
  145. package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
  146. package/dist/types/widgets/table/hooks/use-selection.d.ts +30 -0
  147. package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
  148. package/dist/types/widgets/table/hooks/use-sort.d.ts +22 -0
  149. package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
  150. package/dist/types/widgets/table/index.d.ts +13 -0
  151. package/dist/types/widgets/table/serializer.d.ts +16 -0
  152. package/dist/types/widgets/table/skeleton.d.ts +10 -0
  153. package/dist/types/widgets/table/style.d.ts +33 -0
  154. package/dist/types/widgets/table/table-ui.d.ts +32 -0
  155. package/dist/types/widgets/table/types.d.ts +196 -0
  156. package/dist/types/widgets/timeseries/config.d.ts +5 -4
  157. package/dist/types/widgets/timeseries/index.d.ts +2 -2
  158. package/dist/types/widgets/timeseries/types.d.ts +6 -12
  159. package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
  160. package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
  161. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
  162. package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
  163. package/dist/types/widgets/wrapper/index.d.ts +2 -2
  164. package/dist/types/widgets/wrapper/styles.d.ts +6 -0
  165. package/dist/types/widgets/wrapper/types.d.ts +7 -5
  166. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
  167. package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
  168. package/dist/use-widget-ref-B0aNCANx.js +19 -0
  169. package/dist/use-widget-ref-B0aNCANx.js.map +1 -0
  170. package/dist/utils-D3-eQyDR.js +144 -0
  171. package/dist/utils-D3-eQyDR.js.map +1 -0
  172. package/dist/widget-store-CB6Trp_0.js +131 -0
  173. package/dist/widget-store-CB6Trp_0.js.map +1 -0
  174. package/dist/widgets/actions.js +869 -6
  175. package/dist/widgets/actions.js.map +1 -1
  176. package/dist/widgets/bar.js +185 -4
  177. package/dist/widgets/bar.js.map +1 -1
  178. package/dist/widgets/category.js +427 -0
  179. package/dist/widgets/category.js.map +1 -0
  180. package/dist/widgets/echart.js +112 -8
  181. package/dist/widgets/echart.js.map +1 -1
  182. package/dist/widgets/error.js +5 -0
  183. package/dist/widgets/error.js.map +1 -0
  184. package/dist/widgets/formula.js +112 -20
  185. package/dist/widgets/formula.js.map +1 -1
  186. package/dist/widgets/histogram.js +183 -4
  187. package/dist/widgets/histogram.js.map +1 -1
  188. package/dist/widgets/loader.js +61 -0
  189. package/dist/widgets/loader.js.map +1 -0
  190. package/dist/widgets/markdown.js +127 -0
  191. package/dist/widgets/markdown.js.map +1 -0
  192. package/dist/widgets/no-data.js +5 -0
  193. package/dist/widgets/no-data.js.map +1 -0
  194. package/dist/widgets/note.js +2 -2
  195. package/dist/widgets/pie.js +227 -4
  196. package/dist/widgets/pie.js.map +1 -1
  197. package/dist/widgets/range.js +210 -12
  198. package/dist/widgets/range.js.map +1 -1
  199. package/dist/widgets/scatterplot.js +230 -4
  200. package/dist/widgets/scatterplot.js.map +1 -1
  201. package/dist/widgets/selection-summary.js +40 -0
  202. package/dist/widgets/selection-summary.js.map +1 -0
  203. package/dist/widgets/skeleton-loader.js +21 -2
  204. package/dist/widgets/skeleton-loader.js.map +1 -1
  205. package/dist/widgets/spread.js +158 -18
  206. package/dist/widgets/spread.js.map +1 -1
  207. package/dist/widgets/stores.js +5 -0
  208. package/dist/widgets/stores.js.map +1 -0
  209. package/dist/widgets/subheader.js +52 -0
  210. package/dist/widgets/subheader.js.map +1 -0
  211. package/dist/widgets/table.js +672 -0
  212. package/dist/widgets/table.js.map +1 -0
  213. package/dist/widgets/timeseries.js +184 -4
  214. package/dist/widgets/timeseries.js.map +1 -1
  215. package/dist/widgets/toolbar-actions.js +6725 -0
  216. package/dist/widgets/toolbar-actions.js.map +1 -0
  217. package/dist/widgets/wrapper.js +292 -6
  218. package/dist/widgets/wrapper.js.map +1 -1
  219. package/dist/widgets.js +10 -83
  220. package/dist/widgets.js.map +1 -1
  221. package/package.json +51 -11
  222. package/dist/const-BLV7Tvte.js +0 -758
  223. package/dist/const-BLV7Tvte.js.map +0 -1
  224. package/dist/download-KroQ0SWg.js +0 -195
  225. package/dist/download-KroQ0SWg.js.map +0 -1
  226. package/dist/echart-CqfROFu3.js +0 -214
  227. package/dist/echart-CqfROFu3.js.map +0 -1
  228. package/dist/formula-ui-ChzvMEOG.js +0 -52
  229. package/dist/formula-ui-ChzvMEOG.js.map +0 -1
  230. package/dist/lasso-tool-BC-rsMMW.js +0 -552
  231. package/dist/lasso-tool-BC-rsMMW.js.map +0 -1
  232. package/dist/markdown-n_tOtoiT.js +0 -27
  233. package/dist/markdown-n_tOtoiT.js.map +0 -1
  234. package/dist/markdown-ui-BBrzzd7Y.js +0 -62
  235. package/dist/markdown-ui-BBrzzd7Y.js.map +0 -1
  236. package/dist/note-DF-n70TX.js +0 -101
  237. package/dist/note-DF-n70TX.js.map +0 -1
  238. package/dist/range-ui-CtUX11Xm.js +0 -146
  239. package/dist/range-ui-CtUX11Xm.js.map +0 -1
  240. package/dist/root-L_WZnJY5.js +0 -46
  241. package/dist/root-L_WZnJY5.js.map +0 -1
  242. package/dist/row-DQaSxmDV.js +0 -18
  243. package/dist/row-DQaSxmDV.js.map +0 -1
  244. package/dist/series-CsyEPq-X.js +0 -83
  245. package/dist/series-CsyEPq-X.js.map +0 -1
  246. package/dist/skeleton-BSPcEvfq.js +0 -27
  247. package/dist/skeleton-BSPcEvfq.js.map +0 -1
  248. package/dist/skeleton-C4rOYTy-.js +0 -78
  249. package/dist/skeleton-C4rOYTy-.js.map +0 -1
  250. package/dist/skeleton-C9Jqc241.js +0 -82
  251. package/dist/skeleton-C9Jqc241.js.map +0 -1
  252. package/dist/skeleton-D-zHBBIw.js +0 -64
  253. package/dist/skeleton-D-zHBBIw.js.map +0 -1
  254. package/dist/skeleton-DMP-IwaJ.js +0 -109
  255. package/dist/skeleton-DMP-IwaJ.js.map +0 -1
  256. package/dist/skeleton-DRorqowB.js +0 -22
  257. package/dist/skeleton-DRorqowB.js.map +0 -1
  258. package/dist/skeleton-DsZhv-AH.js +0 -89
  259. package/dist/skeleton-DsZhv-AH.js.map +0 -1
  260. package/dist/skeleton-Dx3FCer0.js +0 -13
  261. package/dist/skeleton-Dx3FCer0.js.map +0 -1
  262. package/dist/skeleton-QVDdb1c2.js +0 -21
  263. package/dist/skeleton-QVDdb1c2.js.map +0 -1
  264. package/dist/skeleton-loader-DWC1-EAx.js +0 -23
  265. package/dist/skeleton-loader-DWC1-EAx.js.map +0 -1
  266. package/dist/spread-ui-BjzH190y.js +0 -82
  267. package/dist/spread-ui-BjzH190y.js.map +0 -1
  268. package/dist/style-BGeCtQkP.js +0 -19
  269. package/dist/style-BGeCtQkP.js.map +0 -1
  270. package/dist/style-C7v1iwqD.js +0 -34
  271. package/dist/style-C7v1iwqD.js.map +0 -1
  272. package/dist/styles-cohnxh9F.js +0 -23
  273. package/dist/styles-cohnxh9F.js.map +0 -1
  274. package/dist/types/widgets/config-loader/index.d.ts +0 -2
  275. package/dist/types/widgets/config-loader/types.d.ts +0 -12
  276. package/dist/types/widgets/config-loader/use-config.d.ts +0 -5
  277. package/dist/types/widgets/root/index.d.ts +0 -2
  278. package/dist/types/widgets/root/root.d.ts +0 -2
  279. package/dist/types/widgets/root/types.d.ts +0 -15
  280. package/dist/types/widgets/widget/const.d.ts +0 -2
  281. package/dist/types/widgets/widget/types.d.ts +0 -47
  282. package/dist/types/widgets/widget/widget.d.ts +0 -2
  283. package/dist/use-config-BYEOiIcu.js +0 -43
  284. package/dist/use-config-BYEOiIcu.js.map +0 -1
  285. package/dist/widget-store-yDO2ul8g.js +0 -44
  286. package/dist/widget-store-yDO2ul8g.js.map +0 -1
  287. package/dist/widgets/config-loader.js +0 -5
  288. package/dist/widgets/config-loader.js.map +0 -1
  289. package/dist/widgets/root.js +0 -5
  290. package/dist/widgets/root.js.map +0 -1
  291. package/dist/wrapper-57csMybC.js +0 -265
  292. package/dist/wrapper-57csMybC.js.map +0 -1
@@ -0,0 +1,131 @@
1
+ import { create as f } from "zustand";
2
+ const T = /* @__PURE__ */ new Map(), w = f()((g, u) => ({
3
+ // State
4
+ widgets: {},
5
+ // Actions
6
+ setWidget: (e, t) => g((o) => {
7
+ const r = o.widgets[e] ?? {};
8
+ return {
9
+ widgets: {
10
+ ...o.widgets,
11
+ [e]: {
12
+ ...r,
13
+ ...t,
14
+ id: e
15
+ }
16
+ }
17
+ };
18
+ }),
19
+ removeWidget: (e) => g((t) => {
20
+ const o = {
21
+ ...t.widgets
22
+ };
23
+ return delete o[e], {
24
+ widgets: o
25
+ };
26
+ }),
27
+ clearWidgets: () => g({
28
+ widgets: {}
29
+ }),
30
+ getWidget: (e) => u().widgets[e],
31
+ registerTool: (e, t) => g((o) => {
32
+ const r = o.widgets[e] ?? {}, l = (r.registeredTools ?? []).filter((d) => d.id !== t.id);
33
+ return {
34
+ widgets: {
35
+ ...o.widgets,
36
+ [e]: {
37
+ ...r,
38
+ id: e,
39
+ registeredTools: [...l, t]
40
+ }
41
+ }
42
+ };
43
+ }),
44
+ unregisterTool: (e, t) => g((o) => {
45
+ const r = o.widgets[e];
46
+ if (!r) return o;
47
+ const l = (r.registeredTools ?? []).filter((d) => d.id !== t);
48
+ return {
49
+ widgets: {
50
+ ...o.widgets,
51
+ [e]: {
52
+ ...r,
53
+ registeredTools: l
54
+ }
55
+ }
56
+ };
57
+ }),
58
+ updateToolConfig: (e, t, o) => g((r) => {
59
+ const i = r.widgets[e];
60
+ if (!i) return r;
61
+ const d = (i.registeredTools ?? []).map((n) => n.id === t ? {
62
+ ...n,
63
+ config: {
64
+ ...n.config,
65
+ ...o
66
+ }
67
+ } : n);
68
+ return {
69
+ widgets: {
70
+ ...r.widgets,
71
+ [e]: {
72
+ ...i,
73
+ registeredTools: d
74
+ }
75
+ }
76
+ };
77
+ }),
78
+ setToolEnabled: (e, t, o) => g((r) => {
79
+ const i = r.widgets[e];
80
+ if (!i) return r;
81
+ const d = (i.registeredTools ?? []).map((n) => n.id === t ? {
82
+ ...n,
83
+ enabled: o
84
+ } : n);
85
+ return {
86
+ widgets: {
87
+ ...r.widgets,
88
+ [e]: {
89
+ ...i,
90
+ registeredTools: d
91
+ }
92
+ }
93
+ };
94
+ }),
95
+ executeToolPipeline: async (e, t) => {
96
+ const o = u().widgets[e];
97
+ if (!o) return;
98
+ const r = (T.get(e) ?? 0) + 1;
99
+ T.set(e, r);
100
+ const i = o, l = /* @__PURE__ */ new Set();
101
+ for (const s of i.registeredTools ?? [])
102
+ s.enabled && s.disables && s.disables.forEach((c) => l.add(c));
103
+ const d = [...i.registeredTools ?? []].filter((s) => s.enabled && !l.has(s.id)).sort((s, c) => s.order - c.order);
104
+ let n = t;
105
+ for (const s of d) {
106
+ if (T.get(e) !== r)
107
+ return;
108
+ try {
109
+ n = await s.fn(n, s.config);
110
+ } catch (c) {
111
+ console.error(`Tool ${s.id} failed for widget ${e}:`, c);
112
+ }
113
+ }
114
+ g((s) => {
115
+ const c = s.widgets[e];
116
+ return c ? {
117
+ widgets: {
118
+ ...s.widgets,
119
+ [e]: {
120
+ ...c,
121
+ data: n
122
+ }
123
+ }
124
+ } : s;
125
+ }), T.get(e) === r && T.delete(e);
126
+ }
127
+ }));
128
+ export {
129
+ w as u
130
+ };
131
+ //# sourceMappingURL=widget-store-CB6Trp_0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-store-CB6Trp_0.js","sources":["../src/widgets/stores/widget-store.ts"],"sourcesContent":["import { create } from 'zustand'\nimport type { WidgetState, WidgetStore, ToolRegistration } from './types'\n\n// Track active pipeline executions for cancellation\nconst activePipelines = new Map<string, number>()\n\n/**\n * Zustand store for managing widget state across the application.\n *\n * This store provides centralized state management for all widget UI components\n *\n * @example\n * ```tsx\n * // Import the store\n * import { useWidgetStore } from '@carto/ps-react-ui/widgets'\n *\n * // Use in a component\n * function MyWidget() {\n * const setWidget = useWidgetStore((state) => state.setWidget)\n * const widget = useWidgetStore((state) => state.widgets['my-widget'])\n *\n * useEffect(() => {\n * setWidget({\n * id: 'my-widget',\n * type: 'formula',\n * title: 'Total Sales',\n * isLoading: false,\n * visible: true,\n * data: { value: 1000, prefix: '$' }\n * })\n * }, [setWidget])\n *\n * return <div>{widget?.data?.value}</div>\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Get widgets by type\n * const getWidgetsByType = useWidgetStore((state) => state.getWidgetsByType)\n * const formulaWidgets = getWidgetsByType('formula')\n * ```\n */\nexport const useWidgetStore = create<WidgetStore>()((set, get) => ({\n // State\n widgets: {},\n\n // Actions\n setWidget: (id, widget) =>\n set((state) => {\n const current =\n state.widgets[id] ?? ({} as WidgetStore['widgets'][string])\n return {\n widgets: {\n ...state.widgets,\n [id]: {\n ...current,\n ...widget,\n id,\n },\n },\n }\n }),\n\n removeWidget: (id) =>\n set((state) => {\n const widgets = { ...state.widgets }\n\n delete widgets[id]\n\n return { widgets }\n }),\n\n clearWidgets: () =>\n set({\n widgets: {},\n }),\n\n getWidget: <T extends WidgetState>(id: string) => {\n return get().widgets[id] as T | undefined\n },\n\n registerTool: (widgetId: string, tool: ToolRegistration) =>\n set((state) => {\n const current = state.widgets[widgetId] ?? ({} as WidgetState)\n const registeredTools = current.registeredTools ?? []\n\n // Remove existing tool with same id if present\n const filteredTools = registeredTools.filter(\n (t: ToolRegistration) => t.id !== tool.id,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...current,\n id: widgetId,\n registeredTools: [...filteredTools, tool],\n },\n },\n }\n }),\n\n unregisterTool: (widgetId: string, toolId: string) =>\n set((state) => {\n const current = state.widgets[widgetId]\n if (!current) return state\n\n const registeredTools = current.registeredTools ?? []\n const filteredTools = registeredTools.filter(\n (t: ToolRegistration) => t.id !== toolId,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...current,\n registeredTools: filteredTools,\n },\n },\n }\n }),\n\n updateToolConfig: (\n widgetId: string,\n toolId: string,\n config: Record<string, unknown>,\n ) =>\n set((state) => {\n const current = state.widgets[widgetId]\n if (!current) return state\n\n const registeredTools = current.registeredTools ?? []\n const updatedTools = registeredTools.map((tool: ToolRegistration) =>\n tool.id === toolId\n ? {\n ...tool,\n config: { ...tool.config, ...config },\n }\n : tool,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...current,\n registeredTools: updatedTools,\n },\n },\n }\n }),\n\n setToolEnabled: (widgetId: string, toolId: string, enabled: boolean) =>\n set((state) => {\n const current = state.widgets[widgetId]\n if (!current) return state\n\n const registeredTools = current.registeredTools ?? []\n const updatedTools = registeredTools.map((tool: ToolRegistration) =>\n tool.id === toolId ? { ...tool, enabled } : tool,\n )\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...current,\n registeredTools: updatedTools,\n },\n },\n }\n }),\n\n executeToolPipeline: async (widgetId: string, sourceData: unknown) => {\n const widget = get().widgets[widgetId]\n if (!widget) return\n\n // Cancel any in-progress pipeline for this widget\n const currentExecution = (activePipelines.get(widgetId) ?? 0) + 1\n activePipelines.set(widgetId, currentExecution)\n\n const widgetWithTools = widget\n\n // Build set of tool IDs that should be disabled\n const disabledToolIds = new Set<string>()\n for (const tool of widgetWithTools.registeredTools ?? []) {\n if (tool.enabled && tool.disables) {\n tool.disables.forEach((id) => disabledToolIds.add(id))\n }\n }\n\n // Sort tools by order and filter enabled only, excluding disabled tools\n const sortedTools = [...(widgetWithTools.registeredTools ?? [])]\n .filter((tool) => tool.enabled && !disabledToolIds.has(tool.id))\n .sort((a, b) => a.order - b.order)\n\n // Execute pipeline - handle both sync and async tools\n let transformedData = sourceData\n for (const tool of sortedTools) {\n // Check if this execution was cancelled\n if (activePipelines.get(widgetId) !== currentExecution) {\n return\n }\n\n try {\n // Call tool function (may return Promise or direct value)\n transformedData = await tool.fn(transformedData, tool.config)\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Tool ${tool.id} failed for widget ${widgetId}:`, error)\n // Continue with current data to prevent one tool from breaking all\n }\n }\n\n // Single store update with final transformed data\n set((state) => {\n const currentWidget = state.widgets[widgetId]\n if (!currentWidget) return state\n\n return {\n widgets: {\n ...state.widgets,\n [widgetId]: {\n ...currentWidget,\n data: transformedData,\n },\n },\n }\n })\n\n // Clean up tracking\n if (activePipelines.get(widgetId) === currentExecution) {\n activePipelines.delete(widgetId)\n }\n },\n}))\n"],"names":["activePipelines","Map","useWidgetStore","create","set","get","widgets","setWidget","id","widget","state","current","removeWidget","clearWidgets","getWidget","registerTool","widgetId","tool","filteredTools","registeredTools","filter","t","unregisterTool","toolId","updateToolConfig","config","updatedTools","map","setToolEnabled","enabled","executeToolPipeline","sourceData","currentExecution","widgetWithTools","disabledToolIds","Set","disables","forEach","add","sortedTools","has","sort","a","b","order","transformedData","fn","error","console","currentWidget","data","delete"],"mappings":"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"}