@carto/ps-react-ui 4.3.0-widgets.0 → 5.0.0-widgets.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 (277) hide show
  1. package/dist/components.js +25 -23
  2. package/dist/components.js.map +1 -1
  3. package/dist/error-zHOU_QIB.js +38 -0
  4. package/dist/error-zHOU_QIB.js.map +1 -0
  5. package/dist/exports-Cr43OCul.js +51 -0
  6. package/dist/exports-Cr43OCul.js.map +1 -0
  7. package/dist/{lasso-tool-BC-rsMMW.js → lasso-tool-CYn3ivf-.js} +165 -183
  8. package/dist/lasso-tool-CYn3ivf-.js.map +1 -0
  9. package/dist/no-data-Cz80hEWj.js +61 -0
  10. package/dist/no-data-Cz80hEWj.js.map +1 -0
  11. package/dist/options-D9wflre6.js +49 -0
  12. package/dist/options-D9wflre6.js.map +1 -0
  13. package/dist/row-C_m1ovHv.js +35 -0
  14. package/dist/row-C_m1ovHv.js.map +1 -0
  15. package/dist/series-6xp-KQ0S.js +91 -0
  16. package/dist/series-6xp-KQ0S.js.map +1 -0
  17. package/dist/{smart-tooltip-BSlcAkBM.js → smart-tooltip-BEtBaIdz.js} +2 -2
  18. package/dist/{smart-tooltip-BSlcAkBM.js.map → smart-tooltip-BEtBaIdz.js.map} +1 -1
  19. package/dist/styles-dOu_pRNb.js +77 -0
  20. package/dist/styles-dOu_pRNb.js.map +1 -0
  21. package/dist/tooltip-BDnrRKrp.js +25 -0
  22. package/dist/tooltip-BDnrRKrp.js.map +1 -0
  23. package/dist/types/hooks/index.d.ts +2 -0
  24. package/dist/types/hooks/use-debounce.d.ts +19 -0
  25. package/dist/types/hooks/use-widget-ref.d.ts +17 -0
  26. package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +5 -11
  27. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +3 -8
  28. package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
  29. package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
  30. package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
  31. package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
  32. package/dist/types/widgets/actions/download/download.d.ts +1 -1
  33. package/dist/types/widgets/actions/download/exports.d.ts +1 -1
  34. package/dist/types/widgets/actions/download/types.d.ts +3 -11
  35. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  36. package/dist/types/widgets/actions/fullscreen/styles.d.ts +6 -0
  37. package/dist/types/widgets/actions/fullscreen/types.d.ts +8 -9
  38. package/dist/types/widgets/actions/index.d.ts +14 -1
  39. package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
  40. package/dist/types/widgets/actions/lock-selection/types.d.ts +38 -0
  41. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
  42. package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
  43. package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
  44. package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
  45. package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
  46. package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
  47. package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
  48. package/dist/types/widgets/actions/searcher/types.d.ts +64 -0
  49. package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
  50. package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
  51. package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
  52. package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
  53. package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
  54. package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
  55. package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
  56. package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
  57. package/dist/types/widgets/bar/config.d.ts +5 -4
  58. package/dist/types/widgets/bar/index.d.ts +2 -2
  59. package/dist/types/widgets/bar/types.d.ts +6 -12
  60. package/dist/types/widgets/category/category-ui.d.ts +2 -0
  61. package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
  62. package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
  63. package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
  64. package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
  65. package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
  66. package/dist/types/widgets/category/components/index.d.ts +10 -0
  67. package/dist/types/widgets/category/config.d.ts +15 -0
  68. package/dist/types/widgets/category/index.d.ts +6 -0
  69. package/dist/types/widgets/category/skeleton.d.ts +1 -0
  70. package/dist/types/widgets/category/style.d.ts +121 -0
  71. package/dist/types/widgets/category/types.d.ts +33 -0
  72. package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
  73. package/dist/types/widgets/echart/index.d.ts +2 -2
  74. package/dist/types/widgets/echart/options.d.ts +2 -3
  75. package/dist/types/widgets/echart/types.d.ts +11 -10
  76. package/dist/types/widgets/echart/utils.d.ts +22 -16
  77. package/dist/types/widgets/error/error.d.ts +2 -0
  78. package/dist/types/widgets/error/index.d.ts +2 -0
  79. package/dist/types/widgets/error/types.d.ts +12 -0
  80. package/dist/types/widgets/formula/components/row.d.ts +1 -1
  81. package/dist/types/widgets/formula/config.d.ts +4 -2
  82. package/dist/types/widgets/formula/index.d.ts +2 -1
  83. package/dist/types/widgets/formula/types.d.ts +6 -18
  84. package/dist/types/widgets/histogram/config.d.ts +5 -4
  85. package/dist/types/widgets/histogram/index.d.ts +2 -2
  86. package/dist/types/widgets/histogram/types.d.ts +6 -12
  87. package/dist/types/widgets/index.d.ts +6 -4
  88. package/dist/types/widgets/markdown/config.d.ts +4 -2
  89. package/dist/types/widgets/markdown/index.d.ts +2 -2
  90. package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
  91. package/dist/types/widgets/markdown/types.d.ts +6 -16
  92. package/dist/types/widgets/no-data/index.d.ts +2 -0
  93. package/dist/types/widgets/no-data/no-data.d.ts +35 -0
  94. package/dist/types/widgets/no-data/style.d.ts +6 -0
  95. package/dist/types/widgets/no-data/types.d.ts +67 -0
  96. package/dist/types/widgets/note/note.d.ts +1 -1
  97. package/dist/types/widgets/note/style.d.ts +12 -1
  98. package/dist/types/widgets/note/types.d.ts +4 -3
  99. package/dist/types/widgets/pie/config.d.ts +5 -4
  100. package/dist/types/widgets/pie/index.d.ts +2 -2
  101. package/dist/types/widgets/pie/types.d.ts +6 -12
  102. package/dist/types/widgets/range/config.d.ts +6 -2
  103. package/dist/types/widgets/range/index.d.ts +2 -1
  104. package/dist/types/widgets/range/types.d.ts +6 -17
  105. package/dist/types/widgets/root/index.d.ts +2 -1
  106. package/dist/types/widgets/root/root.d.ts +1 -1
  107. package/dist/types/widgets/root/types.d.ts +6 -12
  108. package/dist/types/widgets/root/utils.d.ts +1 -0
  109. package/dist/types/widgets/scatterplot/config.d.ts +5 -4
  110. package/dist/types/widgets/scatterplot/index.d.ts +2 -2
  111. package/dist/types/widgets/scatterplot/types.d.ts +6 -12
  112. package/dist/types/widgets/selection-summary/index.d.ts +2 -0
  113. package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
  114. package/dist/types/widgets/selection-summary/style.d.ts +9 -0
  115. package/dist/types/widgets/selection-summary/types.d.ts +13 -0
  116. package/dist/types/widgets/spread/config.d.ts +10 -2
  117. package/dist/types/widgets/spread/index.d.ts +2 -1
  118. package/dist/types/widgets/spread/types.d.ts +6 -18
  119. package/dist/types/widgets/stores/index.d.ts +2 -0
  120. package/dist/types/widgets/stores/types.d.ts +179 -12
  121. package/dist/types/widgets/stores/widget-store.d.ts +2 -27
  122. package/dist/types/widgets/subheader/index.d.ts +2 -0
  123. package/dist/types/widgets/subheader/style.d.ts +19 -0
  124. package/dist/types/widgets/subheader/subheader.d.ts +2 -0
  125. package/dist/types/widgets/subheader/types.d.ts +10 -0
  126. package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
  127. package/dist/types/widgets/table/components/cell.d.ts +16 -0
  128. package/dist/types/widgets/table/components/index.d.ts +4 -0
  129. package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
  130. package/dist/types/widgets/table/components/pagination.d.ts +5 -0
  131. package/dist/types/widgets/table/components/row.d.ts +5 -0
  132. package/dist/types/widgets/table/config.d.ts +11 -0
  133. package/dist/types/widgets/table/helpers.d.ts +38 -0
  134. package/dist/types/widgets/table/helpers.test.d.ts +1 -0
  135. package/dist/types/widgets/table/hooks/index.d.ts +6 -0
  136. package/dist/types/widgets/table/hooks/use-pagination.d.ts +45 -0
  137. package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
  138. package/dist/types/widgets/table/hooks/use-selection.d.ts +32 -0
  139. package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
  140. package/dist/types/widgets/table/hooks/use-sort.d.ts +29 -0
  141. package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
  142. package/dist/types/widgets/table/index.d.ts +13 -0
  143. package/dist/types/widgets/table/serializer.d.ts +16 -0
  144. package/dist/types/widgets/table/skeleton.d.ts +10 -0
  145. package/dist/types/widgets/table/style.d.ts +33 -0
  146. package/dist/types/widgets/table/table-ui.d.ts +32 -0
  147. package/dist/types/widgets/table/types.d.ts +201 -0
  148. package/dist/types/widgets/timeseries/config.d.ts +5 -4
  149. package/dist/types/widgets/timeseries/index.d.ts +2 -2
  150. package/dist/types/widgets/timeseries/types.d.ts +6 -12
  151. package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
  152. package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
  153. package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
  154. package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
  155. package/dist/types/widgets/wrapper/index.d.ts +2 -2
  156. package/dist/types/widgets/wrapper/styles.d.ts +6 -0
  157. package/dist/types/widgets/wrapper/types.d.ts +7 -5
  158. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
  159. package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
  160. package/dist/utils-Dv5Z47UQ.js +144 -0
  161. package/dist/utils-Dv5Z47UQ.js.map +1 -0
  162. package/dist/widget-store-DNyVElxd.js +190 -0
  163. package/dist/widget-store-DNyVElxd.js.map +1 -0
  164. package/dist/widgets/actions.js +826 -6
  165. package/dist/widgets/actions.js.map +1 -1
  166. package/dist/widgets/bar.js +189 -4
  167. package/dist/widgets/bar.js.map +1 -1
  168. package/dist/widgets/category.js +460 -0
  169. package/dist/widgets/category.js.map +1 -0
  170. package/dist/widgets/echart.js +120 -8
  171. package/dist/widgets/echart.js.map +1 -1
  172. package/dist/widgets/error.js +5 -0
  173. package/dist/widgets/error.js.map +1 -0
  174. package/dist/widgets/formula.js +117 -20
  175. package/dist/widgets/formula.js.map +1 -1
  176. package/dist/widgets/histogram.js +172 -4
  177. package/dist/widgets/histogram.js.map +1 -1
  178. package/dist/widgets/markdown.js +127 -0
  179. package/dist/widgets/markdown.js.map +1 -0
  180. package/dist/widgets/no-data.js +5 -0
  181. package/dist/widgets/no-data.js.map +1 -0
  182. package/dist/widgets/note.js +121 -2
  183. package/dist/widgets/note.js.map +1 -1
  184. package/dist/widgets/pie.js +213 -4
  185. package/dist/widgets/pie.js.map +1 -1
  186. package/dist/widgets/range.js +210 -12
  187. package/dist/widgets/range.js.map +1 -1
  188. package/dist/widgets/root.js +65 -2
  189. package/dist/widgets/root.js.map +1 -1
  190. package/dist/widgets/scatterplot.js +219 -4
  191. package/dist/widgets/scatterplot.js.map +1 -1
  192. package/dist/widgets/selection-summary.js +40 -0
  193. package/dist/widgets/selection-summary.js.map +1 -0
  194. package/dist/widgets/skeleton-loader.js +21 -2
  195. package/dist/widgets/skeleton-loader.js.map +1 -1
  196. package/dist/widgets/spread.js +162 -17
  197. package/dist/widgets/spread.js.map +1 -1
  198. package/dist/widgets/stores.js +5 -0
  199. package/dist/widgets/stores.js.map +1 -0
  200. package/dist/widgets/subheader.js +52 -0
  201. package/dist/widgets/subheader.js.map +1 -0
  202. package/dist/widgets/table.js +691 -0
  203. package/dist/widgets/table.js.map +1 -0
  204. package/dist/widgets/timeseries.js +171 -4
  205. package/dist/widgets/timeseries.js.map +1 -1
  206. package/dist/widgets/toolbar-actions.js +6106 -0
  207. package/dist/widgets/toolbar-actions.js.map +1 -0
  208. package/dist/widgets/wrapper.js +292 -6
  209. package/dist/widgets/wrapper.js.map +1 -1
  210. package/dist/widgets.js +6 -83
  211. package/dist/widgets.js.map +1 -1
  212. package/package.json +46 -6
  213. package/dist/const-BLV7Tvte.js +0 -758
  214. package/dist/const-BLV7Tvte.js.map +0 -1
  215. package/dist/download-KroQ0SWg.js +0 -195
  216. package/dist/download-KroQ0SWg.js.map +0 -1
  217. package/dist/echart-CqfROFu3.js +0 -214
  218. package/dist/echart-CqfROFu3.js.map +0 -1
  219. package/dist/formula-ui-ChzvMEOG.js +0 -52
  220. package/dist/formula-ui-ChzvMEOG.js.map +0 -1
  221. package/dist/lasso-tool-BC-rsMMW.js.map +0 -1
  222. package/dist/markdown-n_tOtoiT.js +0 -27
  223. package/dist/markdown-n_tOtoiT.js.map +0 -1
  224. package/dist/markdown-ui-BBrzzd7Y.js +0 -62
  225. package/dist/markdown-ui-BBrzzd7Y.js.map +0 -1
  226. package/dist/note-DF-n70TX.js +0 -101
  227. package/dist/note-DF-n70TX.js.map +0 -1
  228. package/dist/range-ui-CtUX11Xm.js +0 -146
  229. package/dist/range-ui-CtUX11Xm.js.map +0 -1
  230. package/dist/root-L_WZnJY5.js +0 -46
  231. package/dist/root-L_WZnJY5.js.map +0 -1
  232. package/dist/row-DQaSxmDV.js +0 -18
  233. package/dist/row-DQaSxmDV.js.map +0 -1
  234. package/dist/series-CsyEPq-X.js +0 -83
  235. package/dist/series-CsyEPq-X.js.map +0 -1
  236. package/dist/skeleton-BSPcEvfq.js +0 -27
  237. package/dist/skeleton-BSPcEvfq.js.map +0 -1
  238. package/dist/skeleton-C4rOYTy-.js +0 -78
  239. package/dist/skeleton-C4rOYTy-.js.map +0 -1
  240. package/dist/skeleton-C9Jqc241.js +0 -82
  241. package/dist/skeleton-C9Jqc241.js.map +0 -1
  242. package/dist/skeleton-D-zHBBIw.js +0 -64
  243. package/dist/skeleton-D-zHBBIw.js.map +0 -1
  244. package/dist/skeleton-DMP-IwaJ.js +0 -109
  245. package/dist/skeleton-DMP-IwaJ.js.map +0 -1
  246. package/dist/skeleton-DRorqowB.js +0 -22
  247. package/dist/skeleton-DRorqowB.js.map +0 -1
  248. package/dist/skeleton-DsZhv-AH.js +0 -89
  249. package/dist/skeleton-DsZhv-AH.js.map +0 -1
  250. package/dist/skeleton-Dx3FCer0.js +0 -13
  251. package/dist/skeleton-Dx3FCer0.js.map +0 -1
  252. package/dist/skeleton-QVDdb1c2.js +0 -21
  253. package/dist/skeleton-QVDdb1c2.js.map +0 -1
  254. package/dist/skeleton-loader-DWC1-EAx.js +0 -23
  255. package/dist/skeleton-loader-DWC1-EAx.js.map +0 -1
  256. package/dist/spread-ui-BjzH190y.js +0 -82
  257. package/dist/spread-ui-BjzH190y.js.map +0 -1
  258. package/dist/style-BGeCtQkP.js +0 -19
  259. package/dist/style-BGeCtQkP.js.map +0 -1
  260. package/dist/style-C7v1iwqD.js +0 -34
  261. package/dist/style-C7v1iwqD.js.map +0 -1
  262. package/dist/styles-cohnxh9F.js +0 -23
  263. package/dist/styles-cohnxh9F.js.map +0 -1
  264. package/dist/types/widgets/config-loader/index.d.ts +0 -2
  265. package/dist/types/widgets/config-loader/types.d.ts +0 -12
  266. package/dist/types/widgets/config-loader/use-config.d.ts +0 -5
  267. package/dist/types/widgets/widget/const.d.ts +0 -2
  268. package/dist/types/widgets/widget/types.d.ts +0 -47
  269. package/dist/types/widgets/widget/widget.d.ts +0 -2
  270. package/dist/use-config-BYEOiIcu.js +0 -43
  271. package/dist/use-config-BYEOiIcu.js.map +0 -1
  272. package/dist/widget-store-yDO2ul8g.js +0 -44
  273. package/dist/widget-store-yDO2ul8g.js.map +0 -1
  274. package/dist/widgets/config-loader.js +0 -5
  275. package/dist/widgets/config-loader.js.map +0 -1
  276. package/dist/wrapper-57csMybC.js +0 -265
  277. package/dist/wrapper-57csMybC.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"const-BLV7Tvte.js","sources":["../src/widgets/actions/download/exports.tsx","../src/widgets/markdown/config.ts","../src/widgets/formula/config.ts","../src/widgets/_shared/chart-config/config-factory.ts","../src/widgets/_shared/chart-config/csv-modifiers.ts","../src/widgets/_shared/chart-config/option-builders.ts","../src/widgets/bar/config.ts","../src/widgets/pie/config.ts","../src/widgets/scatterplot/config.ts","../src/widgets/timeseries/config.ts","../src/widgets/histogram/config.ts","../src/widgets/spread/config.ts","../src/widgets/range/config.ts","../src/widgets/widget/const.ts"],"sourcesContent":["import type { Ref } from 'react'\nimport type { DownloadItem } from './types'\nimport html2canvas from 'html2canvas'\nimport { ImageOutlined } from '@mui/icons-material'\nimport { SvgIcon } from '@mui/material'\n\n// Helper to escape CSV cell values\nfunction escapeCSVCell(value: unknown): string {\n const str =\n value == null\n ? ''\n : typeof value === 'object'\n ? JSON.stringify(value)\n : String(value as string)\n\n // If the value contains a comma, quote, or newline, wrap in quotes and escape quotes\n if (/[\",\\n]/.test(str)) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`\n }\n return str\n}\n\nasync function downloadFileToCSV(data: unknown[][]) {\n const csvContent = data\n .map((row) => row.map(escapeCSVCell).join(','))\n .join('\\n')\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })\n return Promise.resolve(URL.createObjectURL(blob))\n}\n\nexport const downloadToCSV: DownloadItem<unknown[][]> = {\n id: 'csv',\n label: 'CSV',\n icon: (\n <SvgIcon>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width='18'\n height='18'\n fill='none'\n viewBox='0 0 18 18'\n >\n <path\n fill='currentColor'\n d='M4.313 11.25h2.25v-1.125H4.688v-2.25h1.875V6.75h-2.25a.726.726 0 0 0-.535.216.726.726 0 0 0-.216.534v3c0 .213.072.39.216.534a.726.726 0 0 0 .534.216Zm2.925 0h2.25c.212 0 .39-.072.534-.216a.726.726 0 0 0 .216-.534V9.375a.931.931 0 0 0-.216-.59.658.658 0 0 0-.534-.273H8.363v-.637h1.875V6.75h-2.25a.726.726 0 0 0-.535.216.726.726 0 0 0-.216.534v1.125c0 .213.072.403.216.572a.675.675 0 0 0 .534.253h1.126v.675H7.238v1.125Zm4.95 0h1.124l1.313-4.5H13.5l-.75 2.588L12 6.75h-1.125l1.313 4.5ZM3 15c-.413 0-.766-.147-1.06-.44a1.445 1.445 0 0 1-.44-1.06v-9c0-.412.147-.766.44-1.06C2.235 3.148 2.588 3 3 3h12c.412 0 .766.147 1.06.44.293.294.44.648.44 1.06v9c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3Zm0-1.5h12v-9H3v9Z'\n />\n </svg>\n </SvgIcon>\n ),\n modifier: downloadFileToCSV,\n callback: (data) => {\n URL.revokeObjectURL(data)\n },\n}\n\nasync function downloadFileToPNG(ref: Ref<HTMLElement | null> | undefined) {\n if (!ref || typeof ref === 'function' || !ref.current) {\n // eslint-disable-next-line no-console\n console.warn(\n '[CARTO downloadFileToPNG] Invalid ref passed to downloadFileToPNG. ' +\n 'Expected a React ref object with a .current property pointing to an HTMLElement. ' +\n 'Download aborted.',\n )\n return\n }\n\n const element = ref.current\n const clone = element.cloneNode(true) as HTMLElement\n\n clone.querySelector('.widget-toolbar-container')?.remove()\n clone.querySelector('.widget-wrapper-actions')?.remove()\n\n document.body.appendChild(clone)\n\n const rect = clone.getBoundingClientRect()\n\n const opts = {\n useCORS: true,\n scale: 2,\n backgroundColor: '#fff',\n width: rect.width,\n height: rect.height,\n }\n\n const canvasResult: HTMLCanvasElement = await html2canvas(clone, opts)\n\n const result = canvasResult.toDataURL('image/png')\n\n document.body.removeChild(clone)\n\n return Promise.resolve(result)\n}\n\nexport const downloadToPNG: Omit<DownloadItem<unknown[][]>, 'modifier'> & {\n modifier: (\n ref: Ref<HTMLElement | null> | undefined,\n ) => Promise<string | undefined>\n} = {\n id: 'png',\n label: 'PNG',\n icon: <ImageOutlined />,\n modifier: downloadFileToPNG,\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type {\n MarkdownConfig,\n MarkdownWidgetConfig,\n MarkdownWidgetData,\n} from './types'\n\nexport function markdownConfig({\n refUI,\n data,\n ...props\n}: MarkdownConfig): MarkdownWidgetConfig {\n return {\n ...props,\n data,\n type: 'markdown',\n fullScreenConfig: {\n enabled: true,\n isFullScreen: false,\n },\n downloadConfig: {\n enabled: true,\n isDownloading: false,\n items: [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data: MarkdownWidgetData) => {\n const markdownData = [[data?.content ?? '']]\n return downloadToCSV.modifier(markdownData)\n },\n },\n ],\n },\n }\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type {\n FormulaConfig,\n FormulaWidgetConfig,\n FormulaWidgetData,\n} from './types'\n\nexport function formulaConfig({\n refUI,\n data,\n ...props\n}: FormulaConfig): FormulaWidgetConfig {\n return {\n ...props,\n data,\n type: 'formula',\n downloadConfig: {\n enabled: true,\n isDownloading: false,\n items: [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data: FormulaWidgetData) => {\n const formulaData = [data?.map((item) => item.value) ?? []]\n return downloadToCSV.modifier(formulaData)\n },\n },\n ],\n },\n }\n}\n","import { downloadToCSV, downloadToPNG } from '../../actions'\nimport type {\n EchartOptionsProps,\n EchartWidgetData,\n EchartWidgetConfig,\n} from '../../echart'\nimport type { BaseConfig } from '../../config-loader'\nimport type { Ref } from 'react'\n\n/**\n * Base configuration interface for chart widgets\n */\nexport interface ChartWidgetBaseConfig<TData = EchartWidgetData>\n extends Omit<BaseConfig, 'data'> {\n data?: TData\n}\n\n/**\n * Parameters for creating a chart widget configuration\n */\nexport interface CreateChartWidgetConfigParams<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> {\n /** Widget type identifier (e.g., 'bar', 'pie', 'histogram') */\n type: TType\n /** Function to get EChart options from config */\n getOptions: (config: Omit<TConfig, 'refUI'>) => EchartOptionsProps\n /** Function to create CSV data from widget data */\n csvModifier: (data: TData) => string[][]\n}\n\n/**\n * Return type of the chart widget config function\n */\nexport type ChartWidgetConfigResult<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n> = Omit<TConfig, 'data' | 'refUI'> &\n EchartWidgetConfig<TData> & {\n type: TType\n }\n\n/**\n * Factory function to create a standardized chart widget config function.\n * This eliminates duplication across chart widgets by providing a common structure.\n *\n * @example\n * ```ts\n * export const barConfig = createChartWidgetConfig({\n * type: 'bar' as const,\n * getOptions: ({ data, theme }) => ({\n * // EChart configuration\n * }),\n * csvModifier: (data) => flattenObjectArrayToCSV(data),\n * })\n * ```\n */\nexport function createChartWidgetConfig<\n TData = EchartWidgetData,\n TConfig extends ChartWidgetBaseConfig<TData> = ChartWidgetBaseConfig<TData>,\n TType extends string = string,\n>({\n type,\n getOptions,\n csvModifier,\n}: CreateChartWidgetConfigParams<TData, TConfig, TType>): (\n config: TConfig & { refUI?: Ref<HTMLElement | null> },\n) => ChartWidgetConfigResult<TData, TConfig, TType> {\n return function (config: TConfig & { refUI?: Ref<HTMLElement | null> }) {\n const { refUI, data, ...props } = config\n\n return {\n ...props,\n data,\n option: getOptions({ data, ...props } as Omit<TConfig, 'refUI'>),\n refUI,\n // Static properties common to all chart widgets\n type: type,\n downloadConfig: {\n enabled: true,\n isDownloading: false,\n items: [\n // PNG export\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n // CSV export\n {\n ...downloadToCSV,\n modifier: async (data: TData) => {\n const rows = csvModifier(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ],\n },\n fullScreenConfig: {\n enabled: true,\n isFullScreen: false,\n },\n } as ChartWidgetConfigResult<TData, TConfig, TType>\n }\n}\n","/**\n * Shared CSV export modifiers for chart widgets\n */\n\n/**\n * Flattens object array data into CSV-ready rows.\n * Used by bar, pie, histogram, and timeseries widgets.\n *\n * @param data - Array of series, where each series is an array of data objects\n * @returns CSV rows with headers and values\n */\nexport function flattenObjectArrayToCSV<T extends Record<string, unknown>>(\n data: T[][],\n): string[][] {\n const rows: string[][] = []\n\n // Add headers from first data point if available\n if (data.length > 0 && (data[0]?.length ?? 0) > 0) {\n const firstDataPoint = data?.[0]?.[0] ?? {}\n const headers = Object.keys(firstDataPoint)\n rows.push(headers)\n }\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n const values = Object.values(dataPoint).map((v) => String(v))\n rows.push(values)\n })\n })\n\n return rows\n}\n\n/**\n * Creates CSV rows for scatterplot data.\n * Scatterplot uses array format [x, y] instead of objects.\n *\n * @param data - Array of series, where each series is an array of [x, y] tuples\n * @returns CSV rows with ['x', 'y'] headers\n */\nexport function scatterplotDataToCSV(data: number[][][]): string[][] {\n const rows: string[][] = []\n\n // Add headers\n rows.push(['x', 'y'])\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n rows.push([String(dataPoint[0]), String(dataPoint[1])])\n })\n })\n\n return rows\n}\n","import type { Theme } from '@mui/material'\nimport type { GridComponentOption } from 'echarts'\n\n/**\n * Shared EChart configuration builders for chart widgets\n */\n\n/**\n * Builds standard legend configuration for chart widgets\n *\n * @param hasLegend - Whether to show the legend\n * @returns Legend configuration object\n */\nexport function buildLegendConfig(hasLegend: boolean) {\n return {\n show: hasLegend,\n icon: 'circle' as const,\n left: 0,\n bottom: 0,\n }\n}\n\n/**\n * Builds standard grid configuration with legend-aware spacing\n *\n * @param hasLegend - Whether the chart has a legend\n * @param theme - MUI theme for spacing\n * @param additionalConfig - Additional grid configuration to merge\n * @returns Grid configuration object\n */\nexport function buildGridConfig(\n hasLegend: boolean,\n theme: Theme,\n additionalConfig: Record<string, GridComponentOption> = {},\n) {\n return {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(1)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(5)) }),\n ...additionalConfig,\n }\n}\n\n/**\n * Creates a tooltip position calculator that handles overflow\n * Used by bar, histogram, and scatterplot widgets\n *\n * @param theme - MUI theme for spacing\n * @returns Tooltip position function\n */\nexport function createTooltipPositioner(theme: Theme) {\n return function (\n point: [number, number],\n _params: unknown,\n _dom: unknown,\n _rect: unknown,\n size: { contentSize: [number, number]; viewSize: [number, number] },\n ) {\n const position = { top: parseInt(theme.spacing(0.5)) } as Record<\n string,\n number\n >\n\n // Position tooltip left or right based on available space\n if (size.contentSize[0] < size.viewSize[0] - point[0]) {\n position.left = point[0]\n } else {\n position.right = size.viewSize[0] - point[0]\n }\n\n return position\n }\n}\n","import type { EchartOptionsProps } from '../echart'\nimport type { BarConfig, BarWidgetData } from './types'\nimport {\n createChartWidgetConfig,\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n} from '../_shared/chart-config'\n\nexport const barConfig = createChartWidgetConfig<\n BarWidgetData,\n BarConfig,\n 'bar'\n>({\n type: 'bar' as const,\n getOptions,\n csvModifier: (data) => flattenObjectArrayToCSV(data),\n})\n\nfunction getOptions({\n data = [],\n theme,\n}: Omit<BarConfig, 'refUI'>): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [parseInt(theme.spacing(0.5)), 0, 0, 0],\n margin: 0,\n },\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n ...theme.typography.overlineDelicate,\n margin: parseInt(theme.spacing(1)),\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n tooltip: {\n position: createTooltipPositioner(theme),\n },\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'bar',\n barMaxWidth: 100,\n emphasis: {\n focus: 'series',\n },\n // itemStyle: {\n // color(params) {\n // const color =\n // getColorBySchema({\n // colorSchema: config?.colorSchema,\n // value: params.value as ColorSchemaValue,\n // }) ?? params.color!\n\n // if (!selected?.length) {\n // return color\n // }\n\n // if (selected.map(String).includes(params.name)) {\n // return color\n // }\n\n // return theme.palette.black[25]\n // },\n // },\n })),\n dataset: data.map((d) => ({\n source: d,\n })),\n } as EchartOptionsProps\n}\n","import type { EchartOptionsProps } from '../echart'\nimport type { PieConfig, PieWidgetData } from './types'\nimport {\n createChartWidgetConfig,\n flattenObjectArrayToCSV,\n} from '../_shared/chart-config'\n\nexport const pieConfig = createChartWidgetConfig<\n PieWidgetData,\n PieConfig,\n 'pie'\n>({\n type: 'pie' as const,\n getOptions,\n csvModifier: (data) => flattenObjectArrayToCSV(data),\n})\n\nfunction getOptions({\n data = [],\n theme,\n}: Omit<PieConfig, 'refUI'>): EchartOptionsProps {\n const multiSeries = (data?.length ?? 0) > 1\n\n if (multiSeries) {\n return {\n xAxis: {\n type: 'value',\n show: true,\n },\n yAxis: {\n type: 'category',\n show: true,\n },\n legend: {\n show: true,\n bottom: 0,\n },\n grid: {\n bottom: parseInt(theme.spacing(4)),\n right: parseInt(theme.spacing(4)),\n },\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'bar',\n barMaxWidth: 100,\n emphasis: {\n focus: 'series',\n },\n })),\n }\n }\n\n return {\n legend: {\n show: true,\n icon: 'circle',\n left: 0,\n bottom: 0,\n orient: 'horizontal',\n },\n grid: {\n left: 0,\n top: 0,\n right: 0,\n bottom: parseInt(theme.spacing(5)),\n },\n xAxis: {\n show: false,\n },\n yAxis: {\n show: false,\n },\n tooltip: {\n trigger: 'item',\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'pie',\n colorBy: 'data',\n radius: ['74%', '90%'],\n avoidLabelOverlap: true,\n selectedOffset: 0,\n bottom: parseInt(theme.spacing(4)),\n\n label: {\n show: true,\n position: 'center',\n formatter: (params) => {\n const { name } = params\n const encodeIndex = params.encode?.value?.[0]\n if (encodeIndex === undefined) {\n return ''\n }\n\n const value = Object.values(params.data ?? {}).at(encodeIndex) as\n | number\n | string\n\n const formattedValue = value ?? ''\n\n const nameFormatted = name\n\n return `{c|${formattedValue}}\\n\\n{b|${nameFormatted}}`\n },\n rich: {\n b: {\n fontSize: 16,\n fontWeight: 'normal',\n lineHeight: 20,\n },\n c: {\n fontSize: 28,\n fontWeight: 'bold',\n lineHeight: 27,\n },\n },\n },\n emphasis: {\n disabled: true,\n },\n itemStyle: {\n borderColor: theme.palette.background.paper,\n borderWidth: 1,\n },\n })),\n dataset: data.map((d) => ({\n source: d,\n })),\n } as EchartOptionsProps\n}\n","import type { EchartOptionsProps } from '../echart'\nimport type { ScatterplotConfig, ScatterplotWidgetData } from './types'\nimport {\n createChartWidgetConfig,\n scatterplotDataToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n} from '../_shared/chart-config'\n\nexport const scatterplotConfig = createChartWidgetConfig<\n ScatterplotWidgetData,\n ScatterplotConfig,\n 'scatterplot'\n>({\n type: 'scatterplot' as const,\n getOptions,\n csvModifier: (data) => scatterplotDataToCSV(data),\n})\n\nfunction getOptions({\n data = [],\n theme,\n}: Omit<ScatterplotConfig, 'refUI'>): EchartOptionsProps {\n const hasLegend = data.length > 1\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'value',\n axisLine: { show: false },\n axisTick: { show: false },\n\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n inside: false,\n padding: [\n 0,\n 0,\n parseInt(theme.spacing(1.25)),\n parseInt(theme.spacing(3.25)),\n ],\n margin: 0,\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n align: 'right',\n verticalAlign: 'bottom',\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n },\n tooltip: {\n trigger: 'item',\n position: createTooltipPositioner(theme),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'scatter',\n symbolSize: 8,\n })),\n dataset: data.map((d) => ({\n source: d,\n })),\n } as EchartOptionsProps\n}\n","import type { EchartOptionsProps } from '../echart'\nimport type { TimeseriesConfig, TimeseriesWidgetData } from './types'\nimport {\n createChartWidgetConfig,\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n} from '../_shared/chart-config'\n\nexport const timeseriesConfig = createChartWidgetConfig<\n TimeseriesWidgetData,\n TimeseriesConfig,\n 'timeseries'\n>({\n type: 'timeseries' as const,\n getOptions,\n csvModifier: (data) => flattenObjectArrayToCSV(data),\n})\n\nfunction getOptions({\n data = [],\n theme,\n}: Omit<TimeseriesConfig, 'refUI'>): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme, {\n outerBounds: {\n left: parseInt(theme.spacing(3)),\n right: parseInt(theme.spacing(1)),\n top: parseInt(theme.spacing(2)),\n },\n }),\n xAxis: {\n type: 'category',\n axisTick: {\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n showMaxLabel: true,\n showMinLabel: true,\n rotate: 45,\n },\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n margin: 0,\n padding: [\n 0,\n parseInt(theme.spacing(0.75)),\n parseInt(theme.spacing(1.25)),\n -parseInt(theme.spacing(1)),\n ],\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'line',\n smooth: true,\n emphasis: {\n focus: 'series',\n },\n })),\n dataset: data.map((d) => ({\n source: d,\n })),\n } as EchartOptionsProps\n}\n","import type { EchartOptionsProps } from '../echart'\nimport type { HistogramConfig, HistogramWidgetData } from './types'\nimport {\n createChartWidgetConfig,\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n} from '../_shared/chart-config'\n\nexport const histogramConfig = createChartWidgetConfig<\n HistogramWidgetData,\n HistogramConfig,\n 'histogram'\n>({\n type: 'histogram' as const,\n getOptions,\n csvModifier: (data) => flattenObjectArrayToCSV(data),\n})\n\nfunction getOptions({\n data = [],\n theme,\n}: Omit<HistogramConfig, 'refUI'>): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n margin: 0,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n margin: parseInt(theme.spacing(1)),\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n tooltip: {\n position: createTooltipPositioner(theme),\n },\n series: data.map((_, index) => ({\n datasetIndex: index,\n type: 'bar',\n barMaxWidth: 100,\n barGap: '0%', // No gap between bars in histogram\n barCategoryGap: '0%', // No gap between categories in histogram\n emphasis: {\n focus: 'series',\n },\n })),\n dataset: data.map((d) => ({\n source: d,\n })),\n } as EchartOptionsProps\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type {\n SpreadConfig,\n SpreadWidgetConfig,\n SpreadWidgetData,\n} from './types'\n\nexport function spreadConfig({\n refUI,\n data,\n ...props\n}: SpreadConfig): SpreadWidgetConfig {\n return {\n ...props,\n data,\n type: 'spread',\n downloadConfig: {\n enabled: true,\n isDownloading: false,\n items: [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data: SpreadWidgetData) => {\n const spreadData = [\n ['Min', 'Max'],\n ...(data?.map((item) => [item.min, item.max]) ?? []),\n ]\n return downloadToCSV.modifier(spreadData)\n },\n },\n ],\n },\n }\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type { RangeConfig, RangeWidgetConfig, RangeWidgetData } from './types'\n\nexport function rangeConfig({\n refUI,\n data,\n ...props\n}: RangeConfig): RangeWidgetConfig {\n return {\n ...props,\n data,\n type: 'range',\n downloadConfig: {\n enabled: true,\n isDownloading: false,\n items: [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data: RangeWidgetData) => {\n const rangeData = [\n [\n 'Min Bound',\n 'Max Bound',\n 'Selected Min',\n 'Selected Max',\n 'Note',\n ],\n ...(data?.map((item) => [\n item.min,\n item.max,\n item.value?.[0] ?? item.min,\n item.value?.[1] ?? item.max,\n ]) ?? []),\n ]\n return downloadToCSV.modifier(rangeData)\n },\n },\n ],\n },\n }\n}\n","import type { WidgetComponentConfig } from './types'\nimport { formulaConfig } from '../formula/config'\nimport { barConfig } from '../bar/config'\nimport type { BarConfig } from '../bar/types'\nimport type { FormulaConfig } from '../formula/types'\nimport { pieConfig } from '../pie/config'\nimport type { PieConfig } from '../pie/types'\nimport { scatterplotConfig } from '../scatterplot/config'\nimport type { ScatterplotConfig } from '../scatterplot/types'\nimport { timeseriesConfig } from '../timeseries/config'\nimport type { TimeseriesConfig } from '../timeseries/types'\nimport { histogramConfig } from '../histogram/config'\nimport type { HistogramConfig } from '../histogram/types'\nimport { spreadConfig } from '../spread/config'\nimport type { SpreadConfig } from '../spread/types'\nimport { rangeConfig } from '../range/config'\nimport type { RangeConfig } from '../range/types'\nimport { markdownConfig } from '../markdown/config'\nimport type { MarkdownConfig } from '../markdown/types'\nimport { lazy } from 'react'\n\nexport const WIDGET_CONFIG_MAP: WidgetComponentConfig = {\n formula: {\n component: lazy(() =>\n import('../formula/formula-ui').then((module) => ({\n default: module.FormulaUI,\n })),\n ),\n skeleton: lazy(() =>\n import('../formula/skeleton').then((module) => ({\n default: module.FormulaSkeleton,\n })),\n ),\n defaultConfig: (props) => formulaConfig(props as FormulaConfig),\n },\n bar: {\n component: lazy(() =>\n import('../echart/echart').then((module) => ({\n default: module.Echart,\n })),\n ),\n skeleton: lazy(() =>\n import('../bar/skeleton').then((module) => ({\n default: module.BarSkeleton,\n })),\n ),\n defaultConfig: (props) => barConfig(props as BarConfig),\n },\n pie: {\n component: lazy(() =>\n import('../echart/echart').then((module) => ({\n default: module.Echart,\n })),\n ),\n skeleton: lazy(() =>\n import('../pie/skeleton').then((module) => ({\n default: module.PieSkeleton,\n })),\n ),\n defaultConfig: (props) => pieConfig(props as PieConfig),\n },\n scatterplot: {\n component: lazy(() =>\n import('../echart/echart').then((module) => ({\n default: module.Echart,\n })),\n ),\n skeleton: lazy(() =>\n import('../scatterplot/skeleton').then((module) => ({\n default: module.ScatterplotSkeleton,\n })),\n ),\n defaultConfig: (props) => scatterplotConfig(props as ScatterplotConfig),\n },\n timeseries: {\n component: lazy(() =>\n import('../echart/echart').then((module) => ({\n default: module.Echart,\n })),\n ),\n skeleton: lazy(() =>\n import('../timeseries/skeleton').then((module) => ({\n default: module.TimeseriesSkeleton,\n })),\n ),\n defaultConfig: (props) => timeseriesConfig(props as TimeseriesConfig),\n },\n histogram: {\n component: lazy(() =>\n import('../echart/echart').then((module) => ({\n default: module.Echart,\n })),\n ),\n skeleton: lazy(() =>\n import('../histogram/skeleton').then((module) => ({\n default: module.HistogramSkeleton,\n })),\n ),\n defaultConfig: (props) => histogramConfig(props as HistogramConfig),\n },\n spread: {\n component: lazy(() =>\n import('../spread/spread-ui').then((module) => ({\n default: module.SpreadUI,\n })),\n ),\n skeleton: lazy(() =>\n import('../spread/skeleton').then((module) => ({\n default: module.SpreadSkeleton,\n })),\n ),\n defaultConfig: (props) => spreadConfig(props as SpreadConfig),\n },\n range: {\n component: lazy(() =>\n import('../range/range-ui').then((module) => ({\n default: module.RangeUI,\n })),\n ),\n skeleton: lazy(() =>\n import('../range/skeleton').then((module) => ({\n default: module.RangeSkeleton,\n })),\n ),\n defaultConfig: (props) => rangeConfig(props as RangeConfig),\n },\n markdown: {\n component: lazy(() =>\n import('../markdown/markdown').then((module) => ({\n default: module.Markdown,\n })),\n ),\n skeleton: lazy(() =>\n import('../markdown/skeleton').then((module) => ({\n default: module.MarkdownSkeleton,\n })),\n ),\n defaultConfig: (props) => markdownConfig(props as MarkdownConfig),\n },\n}\n"],"names":["escapeCSVCell","value","str","JSON","stringify","String","test","replace","downloadFileToCSV","data","csvContent","map","row","join","blob","Blob","type","Promise","resolve","URL","createObjectURL","downloadToCSV","id","label","icon","SvgIcon","jsx","modifier","callback","revokeObjectURL","downloadFileToPNG","ref","current","console","warn","clone","cloneNode","querySelector","remove","document","body","appendChild","rect","getBoundingClientRect","opts","useCORS","scale","backgroundColor","width","height","result","html2canvas","toDataURL","removeChild","downloadToPNG","ImageOutlined","markdownConfig","refUI","props","fullScreenConfig","enabled","isFullScreen","downloadConfig","isDownloading","items","markdownData","content","formulaConfig","formulaData","item","createChartWidgetConfig","getOptions","csvModifier","config","option","rows","flattenObjectArrayToCSV","length","firstDataPoint","headers","Object","keys","push","forEach","series","dataPoint","values","v","scatterplotDataToCSV","buildLegendConfig","hasLegend","show","left","bottom","buildGridConfig","theme","additionalConfig","parseInt","spacing","createTooltipPositioner","point","_params","_dom","_rect","size","position","top","contentSize","viewSize","right","barConfig","legend","grid","xAxis","axisLine","axisTick","axisLabel","padding","margin","yAxis","typography","overlineDelicate","showMaxLabel","showMinLabel","verticalAlign","splitLine","lineStyle","color","palette","black","tooltip","_","index","datasetIndex","barMaxWidth","emphasis","focus","dataset","d","source","pieConfig","orient","trigger","qualitative","bold","colorBy","radius","avoidLabelOverlap","selectedOffset","formatter","params","name","encodeIndex","encode","undefined","at","rich","b","fontSize","fontWeight","lineHeight","c","disabled","itemStyle","borderColor","background","paper","borderWidth","scatterplotConfig","fontFamily","hideOverlap","inside","align","symbolSize","timeseriesConfig","outerBounds","alignWithLabel","rotate","smooth","histogramConfig","barGap","barCategoryGap","spreadConfig","spreadData","min","max","rangeConfig","rangeData","WIDGET_CONFIG_MAP","formula","component","lazy","n","then","module","default","FormulaUI","skeleton","FormulaSkeleton","defaultConfig","bar","Echart","BarSkeleton","pie","PieSkeleton","scatterplot","ScatterplotSkeleton","timeseries","TimeseriesSkeleton","histogram","HistogramSkeleton","spread","SpreadUI","SpreadSkeleton","range","RangeUI","RangeSkeleton","markdown","Markdown","MarkdownSkeleton"],"mappings":"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"}
@@ -1,195 +0,0 @@
1
- import { jsx as d, jsxs as _, Fragment as J } from "react/jsx-runtime";
2
- import { c as K } from "react/compiler-runtime";
3
- import { IconButton as H, Typography as Q, DialogTitle as R, DialogContent as U, Dialog as V, CircularProgress as X, MenuItem as Y, ListItemIcon as Z, ListItemText as ee, Menu as te } from "@mui/material";
4
- import { u as j } from "./widget-store-yDO2ul8g.js";
5
- import { FullscreenOutlined as le, Close as ne, FileDownloadOutlined as ie } from "@mui/icons-material";
6
- import { useState as oe } from "react";
7
- import "./lasso-tool-BC-rsMMW.js";
8
- import "./cjs-D9ro6BXv.js";
9
- import "html2canvas";
10
- import "react-markdown";
11
- import "./const-BLV7Tvte.js";
12
- const se = {
13
- title: {
14
- container: {
15
- display: "flex",
16
- alignItems: "center",
17
- justifyContent: "space-between",
18
- gap: 1
19
- }
20
- }
21
- };
22
- function ye(I) {
23
- const e = K(38), {
24
- id: t,
25
- labels: w,
26
- children: W,
27
- Icon: k,
28
- IconButtonProps: S
29
- } = I;
30
- let L;
31
- e[0] !== t ? (L = (P) => P.getWidget(t)?.fullScreenConfig, e[0] = t, e[1] = L) : L = e[1];
32
- const f = j(L), u = j(re);
33
- let D;
34
- e[2] !== f || e[3] !== t || e[4] !== u ? (D = (P) => {
35
- f && u(t, {
36
- fullScreenConfig: {
37
- ...f,
38
- ...P
39
- }
40
- });
41
- }, e[2] = f, e[3] = t, e[4] = u, e[5] = D) : D = e[5];
42
- const n = D;
43
- if (!f?.enabled)
44
- return null;
45
- let p;
46
- e[6] !== n ? (p = () => n({
47
- isFullScreen: !0
48
- }), e[6] = n, e[7] = p) : p = e[7];
49
- let i;
50
- e[8] !== k ? (i = k ?? /* @__PURE__ */ d(le, {}), e[8] = k, e[9] = i) : i = e[9];
51
- let h;
52
- e[10] !== S || e[11] !== p || e[12] !== i ? (h = /* @__PURE__ */ d(H, { ...S, onClick: p, children: i }), e[10] = S, e[11] = p, e[12] = i, e[13] = h) : h = e[13];
53
- const x = !!f.isFullScreen, O = w.ariaLabel ?? `fullscreen-dialog-title-${t}`;
54
- let m;
55
- e[14] !== n ? (m = () => n({
56
- isFullScreen: !1
57
- }), e[14] = n, e[15] = m) : m = e[15];
58
- const v = `fullscreen-dialog-title-${t}`;
59
- let g;
60
- e[16] !== w.title ? (g = /* @__PURE__ */ d(Q, { variant: "subtitle1", component: "span", children: w.title }), e[16] = w.title, e[17] = g) : g = e[17];
61
- let o;
62
- e[18] !== n ? (o = () => n({
63
- isFullScreen: !1
64
- }), e[18] = n, e[19] = o) : o = e[19];
65
- let y;
66
- e[20] === Symbol.for("react.memo_cache_sentinel") ? (y = /* @__PURE__ */ d(ne, {}), e[20] = y) : y = e[20];
67
- let s;
68
- e[21] !== o ? (s = /* @__PURE__ */ d(H, { onClick: o, children: y }), e[21] = o, e[22] = s) : s = e[22];
69
- let r;
70
- e[23] !== g || e[24] !== s || e[25] !== v ? (r = /* @__PURE__ */ _(R, { id: v, sx: se.title.container, children: [
71
- g,
72
- s
73
- ] }), e[23] = g, e[24] = s, e[25] = v, e[26] = r) : r = e[26];
74
- let b;
75
- e[27] !== W ? (b = /* @__PURE__ */ d(U, { children: W }), e[27] = W, e[28] = b) : b = e[28];
76
- let C;
77
- e[29] !== r || e[30] !== b || e[31] !== x || e[32] !== O || e[33] !== m ? (C = /* @__PURE__ */ _(V, { maxWidth: !1, open: x, "aria-labelledby": O, onClose: m, children: [
78
- r,
79
- b
80
- ] }), e[29] = r, e[30] = b, e[31] = x, e[32] = O, e[33] = m, e[34] = C) : C = e[34];
81
- let F;
82
- return e[35] !== C || e[36] !== h ? (F = /* @__PURE__ */ _(J, { children: [
83
- h,
84
- C
85
- ] }), e[35] = C, e[36] = h, e[37] = F) : F = e[37], F;
86
- }
87
- function re(I) {
88
- return I.setWidget;
89
- }
90
- function Se(I) {
91
- const e = K(42), {
92
- id: t,
93
- labels: w,
94
- Icon: W,
95
- IconButtonProps: k
96
- } = I;
97
- let S;
98
- e[0] !== w ? (S = w === void 0 ? {} : w, e[0] = w, e[1] = S) : S = e[1];
99
- const L = S;
100
- let f;
101
- e[2] !== t ? (f = (l) => l.getWidget(t)?.downloadConfig, e[2] = t, e[3] = f) : f = e[3];
102
- const u = j(f), D = j(ae);
103
- let n;
104
- e[4] !== t ? (n = (l) => l.getWidget(t)?.data, e[4] = t, e[5] = n) : n = e[5];
105
- const p = j(n), [i, h] = oe(null);
106
- let x;
107
- e[6] === Symbol.for("react.memo_cache_sentinel") ? (x = (l) => {
108
- l.stopPropagation(), h(l.currentTarget);
109
- }, e[6] = x) : x = e[6];
110
- const O = x;
111
- let m;
112
- e[7] !== t ? (m = (l, a) => {
113
- const c = document.createElement("a");
114
- c.href = l, c.download = a.filename ?? t, c.style.display = "none", document.body.appendChild(c), c.click(), document.body.removeChild(c), a.callback?.(c.href);
115
- }, e[7] = t, e[8] = m) : m = e[8];
116
- const v = m;
117
- let g;
118
- e[9] !== u || e[10] !== t || e[11] !== D ? (g = (l) => {
119
- u && D(t, {
120
- downloadConfig: {
121
- ...u,
122
- ...l
123
- }
124
- });
125
- }, e[9] = u, e[10] = t, e[11] = D, e[12] = g) : g = e[12];
126
- const o = g;
127
- let y;
128
- e[13] !== p || e[14] !== v || e[15] !== o ? (y = async (l, a) => {
129
- l.stopPropagation(), o({
130
- isDownloading: !0
131
- }), h(null);
132
- const c = await a.modifier(p);
133
- if (!c) {
134
- o({
135
- isDownloading: !1
136
- });
137
- return;
138
- }
139
- v(c, a), o({
140
- isDownloading: !1
141
- });
142
- }, e[13] = p, e[14] = v, e[15] = o, e[16] = y) : y = e[16];
143
- const s = y;
144
- if (!u?.enabled)
145
- return null;
146
- const {
147
- isDownloading: r,
148
- items: b
149
- } = u, C = L.ariaLabel ?? "download options", F = r || u.items?.length === 0, P = r || i ? "active" : "";
150
- let B;
151
- e[17] !== W || e[18] !== r ? (B = r ? /* @__PURE__ */ d(X, { size: 18, color: "inherit" }) : W ?? /* @__PURE__ */ d(ie, {}), e[17] = W, e[18] = r, e[19] = B) : B = e[19];
152
- let T;
153
- e[20] !== k || e[21] !== F || e[22] !== P || e[23] !== B || e[24] !== C ? (T = /* @__PURE__ */ d(H, { size: "small", "aria-label": C, "aria-controls": "options-menu", "aria-haspopup": "true", onClick: O, ...k, disabled: F, className: P, children: B }), e[20] = k, e[21] = F, e[22] = P, e[23] = B, e[24] = C, e[25] = T) : T = e[25];
154
- let E, M;
155
- e[26] === Symbol.for("react.memo_cache_sentinel") ? (E = {
156
- vertical: "bottom",
157
- horizontal: "right"
158
- }, M = {
159
- vertical: "top",
160
- horizontal: "right"
161
- }, e[26] = E, e[27] = M) : (E = e[26], M = e[27]);
162
- const G = !!i;
163
- let A, N;
164
- e[28] === Symbol.for("react.memo_cache_sentinel") ? (A = () => h(null), N = {
165
- sx: {
166
- paddingBottom: 0
167
- }
168
- }, e[28] = A, e[29] = N) : (A = e[28], N = e[29]);
169
- let $;
170
- if (e[30] !== s || e[31] !== b) {
171
- let l;
172
- e[33] !== s ? (l = (a) => /* @__PURE__ */ _(Y, { disabled: a.disabled, onClick: (c) => void s(c, a), children: [
173
- a.icon && /* @__PURE__ */ d(Z, { sx: {
174
- color: "text.primary"
175
- }, children: a.icon }),
176
- /* @__PURE__ */ d(ee, { children: a.label })
177
- ] }, a.id), e[33] = s, e[34] = l) : l = e[34], $ = b.map(l), e[30] = s, e[31] = b, e[32] = $;
178
- } else
179
- $ = e[32];
180
- let z;
181
- e[35] !== i || e[36] !== G || e[37] !== $ ? (z = /* @__PURE__ */ d(te, { variant: "menu", elevation: 8, anchorOrigin: E, transformOrigin: M, anchorEl: i, open: G, onClose: A, MenuListProps: N, children: $ }), e[35] = i, e[36] = G, e[37] = $, e[38] = z) : z = e[38];
182
- let q;
183
- return e[39] !== T || e[40] !== z ? (q = /* @__PURE__ */ _(J, { children: [
184
- T,
185
- z
186
- ] }), e[39] = T, e[40] = z, e[41] = q) : q = e[41], q;
187
- }
188
- function ae(I) {
189
- return I.setWidget;
190
- }
191
- export {
192
- Se as D,
193
- ye as F
194
- };
195
- //# sourceMappingURL=download-KroQ0SWg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"download-KroQ0SWg.js","sources":["../src/widgets/actions/fullscreen/styles.ts","../src/widgets/actions/fullscreen/fullscreen.tsx","../src/widgets/actions/download/download.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n title: {\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 1,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n Typography,\n} from '@mui/material'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Close, FullscreenOutlined } from '@mui/icons-material'\nimport type {\n FullScreenConfig,\n FullScreenProps,\n FullScreenState,\n} from './types'\nimport { styles } from './styles'\n\nexport function FullScreen({\n id,\n labels,\n children,\n Icon,\n IconButtonProps,\n}: FullScreenProps) {\n const fullScreenConfig = useWidgetStore((state) => {\n const widget = state.getWidget<FullScreenState>(id)\n return widget?.fullScreenConfig\n })\n const setWidget = useWidgetStore((state) => state.setWidget)\n\n const updateFullScreenConfig = (updates: Partial<FullScreenConfig>) => {\n if (!fullScreenConfig) return\n\n setWidget<FullScreenState>(id, {\n fullScreenConfig: { ...fullScreenConfig, ...updates },\n })\n }\n\n if (!fullScreenConfig?.enabled) return null\n\n return (\n <>\n <IconButton\n {...IconButtonProps}\n onClick={() => updateFullScreenConfig({ isFullScreen: true })}\n >\n {Icon ?? <FullscreenOutlined />}\n </IconButton>\n <Dialog\n maxWidth={false}\n open={!!fullScreenConfig.isFullScreen}\n aria-labelledby={labels.ariaLabel ?? `fullscreen-dialog-title-${id}`}\n onClose={() => updateFullScreenConfig({ isFullScreen: false })}\n >\n <DialogTitle\n id={`fullscreen-dialog-title-${id}`}\n sx={styles.title.container}\n >\n <Typography variant='subtitle1' component='span'>\n {labels.title}\n </Typography>\n <IconButton\n onClick={() => updateFullScreenConfig({ isFullScreen: false })}\n >\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent>{children}</DialogContent>\n </Dialog>\n </>\n )\n}\n","import {\n CircularProgress,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n} from '@mui/material'\nimport type {\n DownloadConfig,\n DownloadItem,\n DownloadProps,\n DownloadState,\n} from './types'\nimport { FileDownloadOutlined } from '@mui/icons-material'\nimport { useState, type MouseEvent } from 'react'\nimport { useWidgetStore } from '../../../widgets'\n\nexport function Download({\n id,\n labels = {},\n Icon,\n IconButtonProps,\n}: DownloadProps) {\n const downloadConfig = useWidgetStore(\n (state) => state.getWidget<DownloadState>(id)?.downloadConfig,\n )\n\n const setWidget = useWidgetStore((state) => state.setWidget)\n\n const data = useWidgetStore(\n (state) => state.getWidget<DownloadState>(id)?.data,\n )\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const handleToggle = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n setAnchorEl(event.currentTarget)\n }\n\n const handleDownload = (data: string, option: DownloadItem) => {\n const link = document.createElement('a')\n link.href = data\n link.download = option.filename ?? id\n link.style.display = 'none'\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n option.callback?.(link.href)\n }\n\n const updateDownloadConfig = (updates: Partial<DownloadConfig>) => {\n if (!downloadConfig) return\n\n setWidget<DownloadState>(id, {\n downloadConfig: { ...downloadConfig, ...updates },\n })\n }\n\n const handleClick = async (\n event: MouseEvent<HTMLElement>,\n option: DownloadItem,\n ) => {\n event.stopPropagation()\n\n updateDownloadConfig({ isDownloading: true })\n setAnchorEl(null)\n\n const result = await option.modifier(data)\n\n if (!result) {\n updateDownloadConfig({ isDownloading: false })\n return\n }\n\n handleDownload(result, option)\n updateDownloadConfig({ isDownloading: false })\n }\n\n if (!downloadConfig?.enabled) {\n return null\n }\n\n const { isDownloading, items } = downloadConfig\n\n return (\n <>\n <IconButton\n size='small'\n aria-label={labels.ariaLabel ?? 'download options'}\n aria-controls='options-menu'\n aria-haspopup='true'\n onClick={handleToggle}\n {...IconButtonProps}\n disabled={isDownloading || downloadConfig.items?.length === 0}\n className={isDownloading || anchorEl ? 'active' : ''}\n >\n {isDownloading ? (\n <CircularProgress size={18} color='inherit' />\n ) : (\n (Icon ?? <FileDownloadOutlined />)\n )}\n </IconButton>\n <Menu\n variant='menu'\n elevation={8}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n anchorEl={anchorEl}\n open={Boolean(anchorEl)}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n sx: {\n paddingBottom: 0,\n },\n }}\n >\n {items.map((option) => (\n <MenuItem\n key={option.id}\n disabled={option.disabled}\n onClick={(e) => void handleClick(e, option)}\n >\n {option.icon && (\n <ListItemIcon sx={{ color: 'text.primary' }}>\n {option.icon}\n </ListItemIcon>\n )}\n <ListItemText>{option.label}</ListItemText>\n </MenuItem>\n ))}\n </Menu>\n </>\n )\n}\n"],"names":["styles","title","container","display","alignItems","justifyContent","gap","FullScreen","t0","$","_c","id","labels","children","Icon","IconButtonProps","t1","state","getWidget","fullScreenConfig","useWidgetStore","setWidget","_temp","t2","updates","updateFullScreenConfig","enabled","t3","isFullScreen","t4","FullscreenOutlined","t5","IconButton","t6","t7","ariaLabel","t8","t9","t10","Typography","t11","t12","Symbol","for","Close","t13","jsx","t14","DialogTitle","t15","DialogContent","t16","jsxs","Dialog","t17","state_0","Download","undefined","downloadConfig","state_1","data","anchorEl","setAnchorEl","useState","event","stopPropagation","currentTarget","handleToggle","data_0","option","link","document","createElement","href","download","filename","style","body","appendChild","click","removeChild","callback","handleDownload","updateDownloadConfig","event_0","option_0","isDownloading","result","modifier","handleClick","items","length","CircularProgress","FileDownloadOutlined","vertical","horizontal","Boolean","t18","sx","paddingBottom","t19","t20","option_1","MenuItem","disabled","e","icon","ListItemIcon","color","ListItemText","label","map","Menu","t21"],"mappings":"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"}
@@ -1,214 +0,0 @@
1
- import { jsx as A } from "react/jsx-runtime";
2
- import { c as j } from "react/compiler-runtime";
3
- import { useId as R, useRef as S, useImperativeHandle as T, useEffect as C } from "react";
4
- import * as z from "echarts";
5
- import { a as M } from "./widget-store-yDO2ul8g.js";
6
- import { useTheme as P } from "@mui/material";
7
- import { d as k } from "./cjs-D9ro6BXv.js";
8
- function U(t) {
9
- const e = j(17), {
10
- ref: r,
11
- init: n,
12
- option: o,
13
- className: s,
14
- style: i,
15
- onEvents: c
16
- } = t, u = R(), l = S(null), a = S(null), p = S(null);
17
- let g, d;
18
- e[0] === Symbol.for("react.memo_cache_sentinel") ? (g = () => a.current, d = [], e[0] = g, e[1] = d) : (g = e[0], d = e[1]), T(r, g, d);
19
- let m, h;
20
- e[2] !== n ? (m = () => {
21
- if (l.current)
22
- return a.current = z.init(l.current, null, {
23
- renderer: "svg",
24
- height: 304,
25
- ...n
26
- }), () => {
27
- a.current?.dispose(), a.current = null;
28
- };
29
- }, h = [n], e[2] = n, e[3] = m, e[4] = h) : (m = e[3], h = e[4]), C(m, h);
30
- let b, y;
31
- e[5] !== o ? (b = () => {
32
- a.current?.setOption(o, {
33
- lazyUpdate: !0,
34
- notMerge: !0
35
- });
36
- }, y = [o], e[5] = o, e[6] = b, e[7] = y) : (b = e[6], y = e[7]), C(b, y);
37
- let x, v;
38
- e[8] === Symbol.for("react.memo_cache_sentinel") ? (x = () => {
39
- const f = () => {
40
- a.current?.resize();
41
- };
42
- return p.current = new ResizeObserver(f), p.current.observe(l.current), () => {
43
- p.current?.disconnect(), p.current = null;
44
- };
45
- }, v = [], e[8] = x, e[9] = v) : (x = e[8], v = e[9]), C(x, v);
46
- let I, E;
47
- e[10] !== c ? (E = () => {
48
- const f = {
49
- ...c ?? {}
50
- };
51
- return f.click || (f.mousemove = () => {
52
- a.current?.getZr().setCursorStyle("default");
53
- }), Object.entries(f).forEach((w) => {
54
- const [O, L] = w;
55
- a.current?.on(O, L);
56
- }), () => {
57
- Object.entries(f).forEach((w) => {
58
- const [O] = w;
59
- a.current?.off(O);
60
- });
61
- };
62
- }, I = [c], e[10] = c, e[11] = I, e[12] = E) : (I = e[11], E = e[12]), C(E, I);
63
- let _;
64
- return e[13] !== s || e[14] !== u || e[15] !== i ? (_ = /* @__PURE__ */ A("div", { id: u, ref: l, style: i, className: s }), e[13] = s, e[14] = u, e[15] = i, e[16] = _) : _ = e[16], _;
65
- }
66
- function F(t) {
67
- return {
68
- grid: {
69
- left: parseInt(t.spacing(1)),
70
- top: parseInt(t.spacing(3)),
71
- right: parseInt(t.spacing(1)),
72
- bottom: parseInt(t.spacing(4)),
73
- containLabel: !0
74
- },
75
- toolbox: {
76
- show: !1
77
- },
78
- tooltip: {
79
- axisPointer: {
80
- type: "shadow",
81
- shadowStyle: {
82
- color: "rgba(44,48,50, 0.08)"
83
- }
84
- },
85
- backgroundColor: t.palette.grey[900],
86
- borderWidth: 0,
87
- padding: [parseInt(t.spacing(1)), parseInt(t.spacing(1))],
88
- textStyle: {
89
- color: t.palette.common.white,
90
- fontSize: 11,
91
- fontFamily: t.typography.caption.fontFamily
92
- },
93
- trigger: "axis"
94
- },
95
- legend: {
96
- type: "scroll",
97
- bottom: 0
98
- },
99
- axisPointer: {
100
- lineStyle: {
101
- color: t.palette.grey[400]
102
- }
103
- },
104
- xAxis: {},
105
- yAxis: {},
106
- color: [t.palette.secondary.main, ...Object.values(t.palette.qualitative.bold)]
107
- };
108
- }
109
- const W = "stacked";
110
- function Z(...t) {
111
- return k(t[0], t[1], {
112
- customMerge: (e) => {
113
- if (e === "color")
114
- return (r, n) => n;
115
- if (e === "series")
116
- return (r, n) => r.length ? n?.map((s, i) => {
117
- const c = r?.[i] ?? {};
118
- return k(c, s);
119
- }) : r;
120
- }
121
- });
122
- }
123
- function N(t, {
124
- start: e,
125
- end: r
126
- } = {
127
- start: 0,
128
- end: 100
129
- }, {
130
- inside: n = !0,
131
- xSlider: o = !0,
132
- ySlider: s = !1
133
- } = {}, i) {
134
- return {
135
- dataZoom: [n && {
136
- throttle: 0,
137
- type: "inside",
138
- xAxisIndex: o ? [0] : [],
139
- yAxisIndex: s ? [0] : [],
140
- show: t,
141
- zoomLock: !t,
142
- start: e,
143
- end: r
144
- }, n && s && {
145
- throttle: 0,
146
- type: "inside",
147
- show: t,
148
- zoomLock: !t,
149
- start: e,
150
- end: r,
151
- orientation: "vertical"
152
- }, o && {
153
- throttle: 0,
154
- type: "slider",
155
- xAxisIndex: [0],
156
- bottom: parseInt(i.spacing(3.25)),
157
- show: t,
158
- zoomLock: !t,
159
- start: e,
160
- end: r
161
- }, s && {
162
- throttle: 0,
163
- type: "slider",
164
- left: parseInt(i.spacing(6)),
165
- yAxisIndex: [0],
166
- show: t,
167
- zoomLock: !t,
168
- start: e,
169
- end: r
170
- }].filter((c) => !!c)
171
- };
172
- }
173
- function J(t) {
174
- return t ? {
175
- brush: {
176
- brushType: "rect",
177
- brushMode: "single"
178
- }
179
- } : {};
180
- }
181
- function Q(t, e = W) {
182
- return t ? {
183
- stack: e
184
- } : {};
185
- }
186
- function $(t) {
187
- const e = j(9), r = M(t.id), n = P();
188
- if (!r)
189
- return null;
190
- let o;
191
- if (e[0] !== n || e[1] !== r.option) {
192
- let l;
193
- e[3] !== r.option ? (l = r.option ?? {}, e[3] = r.option, e[4] = l) : l = e[4], o = Z(F(n), l), e[0] = n, e[1] = r.option, e[2] = o;
194
- } else
195
- o = e[2];
196
- const s = o, i = r.onEvents, c = r.init;
197
- let u;
198
- return e[5] !== c || e[6] !== i || e[7] !== s ? (u = /* @__PURE__ */ A(U, { option: s, onEvents: i, init: c }), e[5] = c, e[6] = i, e[7] = s, e[8] = u) : u = e[8], u;
199
- }
200
- const V = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
201
- __proto__: null,
202
- Echart: $
203
- }, Symbol.toStringTag, { value: "Module" }));
204
- export {
205
- $ as E,
206
- U as a,
207
- J as b,
208
- Q as c,
209
- N as d,
210
- V as e,
211
- F as g,
212
- Z as m
213
- };
214
- //# sourceMappingURL=echart-CqfROFu3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"echart-CqfROFu3.js","sources":["../src/widgets/echart/echart-ui.tsx","../src/widgets/echart/options.ts","../src/widgets/echart/const.ts","../src/widgets/echart/utils.ts","../src/widgets/echart/echart.tsx"],"sourcesContent":["import { useId, useEffect, useRef, useImperativeHandle } from 'react'\nimport * as echarts from 'echarts'\nimport type { EchartUIProps } from './types'\n\nexport function EchartUI({\n ref,\n init,\n option,\n className,\n style,\n onEvents,\n}: EchartUIProps) {\n const id = useId()\n const chartRef = useRef<HTMLDivElement>(null)\n const chartInstance = useRef<echarts.ECharts>(null)\n const resizeObserverRef = useRef<ResizeObserver | null>(null)\n\n useImperativeHandle(ref, () => chartInstance.current!, [])\n\n useEffect(() => {\n if (!chartRef.current) return\n\n chartInstance.current = echarts.init(chartRef.current, null, {\n renderer: 'svg',\n height: 304,\n ...init,\n })\n // Cleanup function\n return () => {\n chartInstance.current?.dispose()\n chartInstance.current = null\n }\n }, [init])\n\n // Update chart when options change\n useEffect(() => {\n chartInstance.current?.setOption(option, {\n lazyUpdate: true,\n notMerge: true,\n })\n }, [option])\n\n // Handle resize using ResizeObserver\n useEffect(() => {\n const handleResize = () => {\n chartInstance.current?.resize()\n }\n\n resizeObserverRef.current = new ResizeObserver(handleResize)\n resizeObserverRef.current.observe(chartRef.current!)\n\n return () => {\n resizeObserverRef.current?.disconnect()\n resizeObserverRef.current = null\n }\n }, [])\n\n useEffect(() => {\n const _onEvents = { ...(onEvents ?? {}) }\n if (!_onEvents.click) {\n _onEvents.mousemove = () => {\n chartInstance.current?.getZr().setCursorStyle('default')\n }\n }\n\n // Attach event listeners\n Object.entries(_onEvents).forEach(([event, handler]) => {\n chartInstance.current?.on(event, handler)\n })\n // Cleanup function to remove event listeners\n return () => {\n Object.entries(_onEvents).forEach(([event]) => {\n chartInstance.current?.off(event)\n })\n }\n }, [onEvents])\n\n return <div id={id} ref={chartRef} style={style} className={className} />\n}\n","import type { EchartOptionsProps } from './types'\nimport type { theme as CartoTheme } from '@carto/meridian-ds/theme'\n\nexport function getCommonOptions(theme: typeof CartoTheme): EchartOptionsProps {\n return {\n grid: {\n left: parseInt(theme.spacing(1)),\n top: parseInt(theme.spacing(3)),\n right: parseInt(theme.spacing(1)),\n bottom: parseInt(theme.spacing(4)),\n containLabel: true,\n },\n toolbox: {\n show: false,\n },\n tooltip: {\n axisPointer: {\n type: 'shadow',\n shadowStyle: {\n color: 'rgba(44,48,50, 0.08)',\n },\n },\n backgroundColor: theme.palette.grey[900],\n borderWidth: 0,\n padding: [parseInt(theme.spacing(1)), parseInt(theme.spacing(1))],\n textStyle: {\n color: theme.palette.common.white,\n fontSize: 11,\n fontFamily: theme.typography.caption.fontFamily,\n },\n trigger: 'axis',\n },\n legend: {\n type: 'scroll',\n bottom: 0,\n },\n axisPointer: {\n lineStyle: {\n color: theme.palette.grey[400],\n },\n },\n xAxis: {},\n yAxis: {},\n color: [\n theme.palette.secondary.main,\n ...Object.values(theme.palette.qualitative.bold),\n ],\n }\n}\n","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\nexport function mergeWidgetConfig<T extends EchartOptionsProps>(\n ...options: [T, T]\n): T {\n return deepmerge(options[0], options[1], {\n customMerge: (key) => {\n if (key === 'color') {\n return (_, b: T['color']) => b\n }\n if (key === 'series') {\n return (a: T['series'][], b: T['series'][]) => {\n if (!a.length) return a // If there is no series in a, return a as is\n\n const mergedSeries = b?.map((bItem, index) => {\n const aItem = a?.[index] ?? {}\n return deepmerge(aItem, bItem as object)\n })\n return mergedSeries\n }\n }\n },\n }) as T\n}\n\nexport function getEChartZoomConfig(\n zoom: boolean,\n { start, end }: { start: number; end: number } = { start: 0, end: 100 },\n { inside = true, xSlider = true, ySlider = false } = {},\n theme: 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: parseInt(theme.spacing(3.25)),\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n },\n ySlider && {\n throttle: 0,\n type: 'slider',\n left: parseInt(theme.spacing(6)),\n yAxisIndex: [0],\n show: zoom,\n zoomLock: !zoom,\n start,\n end,\n },\n ].filter((d) => !!d),\n }\n}\n\nexport function getEChartBrushConfig(brush: boolean) {\n return brush\n ? {\n brush: {\n brushType: 'rect',\n brushMode: 'single',\n },\n }\n : {}\n}\n\nexport function getEChartStackConfig(\n stack: boolean,\n stackGroup: string = DEFAULT_STACK_GROUP,\n) {\n return stack ? { stack: stackGroup } : {}\n}\n","import type { EchartProps, EchartWidgetState } from './types'\nimport { EchartUI } from './echart-ui'\nimport { useWidget } from '../stores/widget-store'\nimport type { EChartsOption } from 'echarts'\nimport { useTheme } from '@mui/material'\nimport { getCommonOptions } from './options'\nimport { mergeWidgetConfig } from './utils'\n\nexport function Echart(props: EchartProps) {\n const widget = useWidget<EchartWidgetState>(props.id)\n const theme = useTheme()\n\n if (!widget) {\n return null\n }\n\n const option: EChartsOption = mergeWidgetConfig(\n getCommonOptions(theme),\n widget.option ?? {},\n )\n const onEvents = widget.onEvents\n const init = widget.init\n\n return <EchartUI option={option} onEvents={onEvents} init={init} />\n}\n"],"names":["EchartUI","t0","$","_c","ref","init","option","className","style","onEvents","id","useId","chartRef","useRef","chartInstance","resizeObserverRef","t1","t2","Symbol","for","current","useImperativeHandle","t3","t4","echarts","renderer","height","dispose","useEffect","t5","t6","setOption","lazyUpdate","notMerge","t7","t8","handleResize","resize","ResizeObserver","observe","disconnect","t10","t9","_onEvents","click","mousemove","getZr","setCursorStyle","Object","entries","forEach","t11","event","handler","on","t12","event_0","off","getCommonOptions","theme","grid","left","parseInt","spacing","top","right","bottom","containLabel","toolbox","show","tooltip","axisPointer","type","shadowStyle","color","backgroundColor","palette","grey","borderWidth","padding","textStyle","common","white","fontSize","fontFamily","typography","caption","trigger","legend","lineStyle","xAxis","yAxis","secondary","main","values","qualitative","bold","DEFAULT_STACK_GROUP","mergeWidgetConfig","options","deepmerge","customMerge","key","_","b","a","length","map","bItem","index","aItem","getEChartZoomConfig","zoom","start","end","inside","xSlider","ySlider","dataZoom","throttle","xAxisIndex","yAxisIndex","zoomLock","orientation","filter","d","getEChartBrushConfig","brush","brushType","brushMode","getEChartStackConfig","stack","stackGroup","Echart","props","widget","useWidget","useTheme"],"mappings":"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"}