@carto/ps-react-ui 4.4.1 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/components.js.map +1 -1
  2. package/dist/error-CEkRPccv.js.map +1 -1
  3. package/dist/exports-Cr43OCul.js.map +1 -1
  4. package/dist/formatter-B1Xh8XDH.js +5 -0
  5. package/dist/formatter-B1Xh8XDH.js.map +1 -0
  6. package/dist/lasso-tool-BYbxrJ-7.js.map +1 -1
  7. package/dist/note-t51drNe0.js.map +1 -1
  8. package/dist/options-D9wflre6.js.map +1 -1
  9. package/dist/row-DTCV0Ocm.js.map +1 -1
  10. package/dist/series-CYNOu2Ju.js.map +1 -1
  11. package/dist/smart-tooltip-D4vwQpFf.js.map +1 -1
  12. package/dist/styles-C_8vOEep.js +167 -0
  13. package/dist/styles-C_8vOEep.js.map +1 -0
  14. package/dist/tooltip-BDnrRKrp.js.map +1 -1
  15. package/dist/types/components/basemaps/basemaps.d.ts +20 -0
  16. package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +11 -0
  17. package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +17 -0
  18. package/dist/types/components/lasso-tool/lasso-tool.d.ts +21 -0
  19. package/dist/types/components/list-data/list-data.d.ts +16 -0
  20. package/dist/types/components/measurement-tools/measurement-tools.d.ts +20 -0
  21. package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +17 -0
  22. package/dist/types/components/tooltip/tooltip.d.ts +13 -0
  23. package/dist/types/components/zoom-controls/zoom-controls.d.ts +16 -0
  24. package/dist/types/hooks/use-widget-ref.d.ts +4 -4
  25. package/dist/types/widgets/actions/download/download.d.ts +11 -0
  26. package/dist/types/widgets/actions/download/exports.d.ts +15 -0
  27. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +13 -0
  28. package/dist/types/widgets/actions/index.d.ts +1 -1
  29. package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -0
  30. package/dist/types/widgets/bar/config.d.ts +8 -4
  31. package/dist/types/widgets/category/category-ui.d.ts +3 -0
  32. package/dist/types/widgets/category/components/category-bar.d.ts +3 -0
  33. package/dist/types/widgets/category/components/category-legend.d.ts +3 -0
  34. package/dist/types/widgets/category/components/category-row-multi.d.ts +3 -0
  35. package/dist/types/widgets/category/components/category-row-other.d.ts +3 -0
  36. package/dist/types/widgets/category/components/category-row-single.d.ts +3 -0
  37. package/dist/types/widgets/category/config.d.ts +11 -0
  38. package/dist/types/widgets/echart/echart-ui.d.ts +7 -0
  39. package/dist/types/widgets/echart/echart.d.ts +6 -0
  40. package/dist/types/widgets/echart/options.d.ts +7 -0
  41. package/dist/types/widgets/echart/types.d.ts +1 -0
  42. package/dist/types/widgets/echart/utils.d.ts +41 -0
  43. package/dist/types/widgets/error/error.d.ts +10 -0
  44. package/dist/types/widgets/formula/components/item.d.ts +3 -0
  45. package/dist/types/widgets/formula/components/prefix.d.ts +3 -0
  46. package/dist/types/widgets/formula/components/row.d.ts +3 -0
  47. package/dist/types/widgets/formula/components/series.d.ts +3 -0
  48. package/dist/types/widgets/formula/components/suffix.d.ts +3 -0
  49. package/dist/types/widgets/formula/components/value.d.ts +3 -0
  50. package/dist/types/widgets/formula/config.d.ts +11 -0
  51. package/dist/types/widgets/formula/formula-ui.d.ts +3 -0
  52. package/dist/types/widgets/histogram/config.d.ts +8 -4
  53. package/dist/types/widgets/loader/loader.d.ts +22 -0
  54. package/dist/types/widgets/loader/utils.d.ts +26 -3
  55. package/dist/types/widgets/markdown/config.d.ts +10 -0
  56. package/dist/types/widgets/markdown/markdown-ui.d.ts +7 -0
  57. package/dist/types/widgets/markdown/markdown.d.ts +3 -0
  58. package/dist/types/widgets/note/note.d.ts +10 -0
  59. package/dist/types/widgets/pie/config.d.ts +8 -4
  60. package/dist/types/widgets/range/components/range-item.d.ts +3 -0
  61. package/dist/types/widgets/range/config.d.ts +5 -0
  62. package/dist/types/widgets/range/range-ui.d.ts +3 -0
  63. package/dist/types/widgets/scatterplot/config.d.ts +7 -3
  64. package/dist/types/widgets/selection-summary/selection-summary.d.ts +11 -0
  65. package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +10 -0
  66. package/dist/types/widgets/spread/components/max-value.d.ts +3 -0
  67. package/dist/types/widgets/spread/components/min-value.d.ts +3 -0
  68. package/dist/types/widgets/spread/components/separator.d.ts +3 -0
  69. package/dist/types/widgets/spread/config.d.ts +11 -0
  70. package/dist/types/widgets/spread/spread-ui.d.ts +3 -0
  71. package/dist/types/widgets/subheader/subheader.d.ts +11 -0
  72. package/dist/types/widgets/table/config.d.ts +8 -3
  73. package/dist/types/widgets/table/hooks/use-pagination.d.ts +11 -3
  74. package/dist/types/widgets/table/hooks/use-selection.d.ts +11 -2
  75. package/dist/types/widgets/table/hooks/use-sort.d.ts +11 -3
  76. package/dist/types/widgets/timeseries/config.d.ts +8 -4
  77. package/dist/types/widgets/utils/chart-config/download-config.d.ts +3 -0
  78. package/dist/types/widgets/{_shared → utils}/chart-config/index.d.ts +2 -0
  79. package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.d.ts +1 -1
  80. package/dist/types/widgets/utils/formatter.d.ts +1 -0
  81. package/dist/types/widgets/utils/index.d.ts +7 -0
  82. package/dist/types/widgets/wrapper/components/actions.d.ts +3 -0
  83. package/dist/types/widgets/wrapper/components/options.d.ts +3 -0
  84. package/dist/types/widgets/wrapper/components/title.d.ts +3 -0
  85. package/dist/types/widgets/wrapper/wrapper-ui.d.ts +14 -0
  86. package/dist/types/widgets/wrapper/wrapper.d.ts +14 -0
  87. package/dist/use-widget-ref-wtFLDFCD.js.map +1 -1
  88. package/dist/utils-BOhInag6.js.map +1 -1
  89. package/dist/widgets/actions.js +651 -628
  90. package/dist/widgets/actions.js.map +1 -1
  91. package/dist/widgets/bar.js +66 -86
  92. package/dist/widgets/bar.js.map +1 -1
  93. package/dist/widgets/category.js +21 -21
  94. package/dist/widgets/category.js.map +1 -1
  95. package/dist/widgets/echart.js.map +1 -1
  96. package/dist/widgets/formula.js +54 -54
  97. package/dist/widgets/formula.js.map +1 -1
  98. package/dist/widgets/histogram.js +45 -65
  99. package/dist/widgets/histogram.js.map +1 -1
  100. package/dist/widgets/loader.js.map +1 -1
  101. package/dist/widgets/markdown.js.map +1 -1
  102. package/dist/widgets/pie.js +122 -99
  103. package/dist/widgets/pie.js.map +1 -1
  104. package/dist/widgets/range.js +23 -22
  105. package/dist/widgets/range.js.map +1 -1
  106. package/dist/widgets/scatterplot.js +39 -59
  107. package/dist/widgets/scatterplot.js.map +1 -1
  108. package/dist/widgets/selection-summary.js.map +1 -1
  109. package/dist/widgets/skeleton-loader.js.map +1 -1
  110. package/dist/widgets/spread.js +40 -41
  111. package/dist/widgets/spread.js.map +1 -1
  112. package/dist/widgets/subheader.js.map +1 -1
  113. package/dist/widgets/table.js.map +1 -1
  114. package/dist/widgets/timeseries.js +39 -59
  115. package/dist/widgets/timeseries.js.map +1 -1
  116. package/dist/widgets/utils.js +31 -0
  117. package/dist/widgets/utils.js.map +1 -0
  118. package/dist/widgets/wrapper.js.map +1 -1
  119. package/package.json +5 -1
  120. package/src/components/basemaps/basemaps.tsx +20 -0
  121. package/src/components/geolocation-controls/geolocation-controls.tsx +11 -0
  122. package/src/components/lasso-tool/lasso-tool-inline.tsx +17 -0
  123. package/src/components/lasso-tool/lasso-tool.tsx +21 -0
  124. package/src/components/list-data/list-data.tsx +16 -0
  125. package/src/components/measurement-tools/measurement-tools.tsx +20 -0
  126. package/src/components/smart-tooltip/smart-tooltip.tsx +17 -0
  127. package/src/components/tooltip/tooltip.tsx +13 -0
  128. package/src/components/zoom-controls/zoom-controls.tsx +16 -0
  129. package/src/hooks/use-widget-ref.ts +4 -4
  130. package/src/widgets/README.md +10 -10
  131. package/src/widgets/actions/download/download.tsx +11 -0
  132. package/src/widgets/actions/download/exports.tsx +15 -0
  133. package/src/widgets/actions/fullscreen/fullscreen.tsx +13 -0
  134. package/src/widgets/actions/index.ts +1 -0
  135. package/src/widgets/actions/relative-data/relative-data.test.tsx +62 -1
  136. package/src/widgets/actions/relative-data/relative-data.tsx +62 -39
  137. package/src/widgets/bar/config.ts +12 -20
  138. package/src/widgets/bar/style.ts +1 -1
  139. package/src/widgets/category/category-ui.tsx +4 -2
  140. package/src/widgets/category/components/category-bar.tsx +3 -0
  141. package/src/widgets/category/components/category-legend.tsx +3 -0
  142. package/src/widgets/category/components/category-row-multi.tsx +3 -0
  143. package/src/widgets/category/components/category-row-other.tsx +3 -0
  144. package/src/widgets/category/components/category-row-single.tsx +3 -0
  145. package/src/widgets/category/config.ts +11 -0
  146. package/src/widgets/echart/echart-ui.tsx +7 -0
  147. package/src/widgets/echart/echart.tsx +6 -0
  148. package/src/widgets/echart/options.ts +7 -0
  149. package/src/widgets/echart/types.ts +1 -0
  150. package/src/widgets/echart/utils.ts +41 -0
  151. package/src/widgets/error/error.tsx +10 -0
  152. package/src/widgets/formula/components/item.tsx +3 -0
  153. package/src/widgets/formula/components/prefix.tsx +3 -0
  154. package/src/widgets/formula/components/row.tsx +3 -0
  155. package/src/widgets/formula/components/series.tsx +3 -0
  156. package/src/widgets/formula/components/suffix.tsx +3 -0
  157. package/src/widgets/formula/components/value.tsx +4 -2
  158. package/src/widgets/formula/config.ts +11 -0
  159. package/src/widgets/formula/formula-ui.tsx +3 -0
  160. package/src/widgets/histogram/config.ts +11 -20
  161. package/src/widgets/histogram/style.ts +1 -1
  162. package/src/widgets/loader/loader.tsx +22 -0
  163. package/src/widgets/loader/utils.ts +26 -3
  164. package/src/widgets/markdown/config.ts +10 -0
  165. package/src/widgets/markdown/markdown-ui.tsx +7 -0
  166. package/src/widgets/markdown/markdown.tsx +3 -0
  167. package/src/widgets/note/note.tsx +10 -0
  168. package/src/widgets/pie/config.ts +85 -30
  169. package/src/widgets/pie/style.ts +1 -1
  170. package/src/widgets/range/components/range-item.tsx +5 -2
  171. package/src/widgets/range/config.ts +5 -0
  172. package/src/widgets/range/range-ui.tsx +3 -0
  173. package/src/widgets/scatterplot/config.ts +11 -20
  174. package/src/widgets/scatterplot/style.ts +1 -1
  175. package/src/widgets/selection-summary/selection-summary.tsx +11 -0
  176. package/src/widgets/skeleton-loader/skeleton-loader.tsx +10 -0
  177. package/src/widgets/spread/components/max-value.tsx +4 -2
  178. package/src/widgets/spread/components/min-value.tsx +4 -2
  179. package/src/widgets/spread/components/separator.tsx +3 -0
  180. package/src/widgets/spread/config.ts +11 -0
  181. package/src/widgets/spread/spread-ui.tsx +3 -0
  182. package/src/widgets/subheader/subheader.tsx +11 -0
  183. package/src/widgets/table/config.ts +8 -3
  184. package/src/widgets/table/hooks/use-pagination.ts +11 -3
  185. package/src/widgets/table/hooks/use-selection.ts +11 -2
  186. package/src/widgets/table/hooks/use-sort.ts +11 -3
  187. package/src/widgets/timeseries/config.ts +11 -20
  188. package/src/widgets/timeseries/style.ts +1 -1
  189. package/src/widgets/utils/chart-config/download-config.ts +22 -0
  190. package/src/widgets/{_shared → utils}/chart-config/index.ts +4 -0
  191. package/src/widgets/{_shared → utils}/chart-config/option-builders.ts +1 -1
  192. package/src/widgets/utils/formatter.ts +1 -0
  193. package/src/widgets/utils/index.ts +26 -0
  194. package/src/widgets/wrapper/components/actions.tsx +3 -0
  195. package/src/widgets/wrapper/components/options.tsx +3 -0
  196. package/src/widgets/wrapper/components/title.tsx +3 -0
  197. package/src/widgets/wrapper/wrapper-ui.tsx +14 -0
  198. package/src/widgets/wrapper/wrapper.tsx +14 -0
  199. package/dist/styles-CAroD5Rc.js +0 -123
  200. package/dist/styles-CAroD5Rc.js.map +0 -1
  201. /package/dist/types/widgets/{_shared → utils}/chart-config/config-factory.d.ts +0 -0
  202. /package/dist/types/widgets/{_shared → utils}/chart-config/csv-modifiers.d.ts +0 -0
  203. /package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.test.d.ts +0 -0
  204. /package/dist/types/widgets/{_shared → utils}/skeleton/index.d.ts +0 -0
  205. /package/dist/types/widgets/{_shared → utils}/skeleton/styles.d.ts +0 -0
  206. /package/src/widgets/{_shared → utils}/chart-config/config-factory.ts +0 -0
  207. /package/src/widgets/{_shared → utils}/chart-config/csv-modifiers.ts +0 -0
  208. /package/src/widgets/{_shared → utils}/chart-config/option-builders.test.ts +0 -0
  209. /package/src/widgets/{_shared → utils}/skeleton/index.ts +0 -0
  210. /package/src/widgets/{_shared → utils}/skeleton/styles.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"exports-Cr43OCul.js","sources":["../src/widgets/actions/download/exports.tsx"],"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<D>(value: D): string {\n const str =\n value == null\n ? ''\n : typeof value === 'object'\n ? JSON.stringify(value)\n : String(value)\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<D>(data: D[][]) {\n const csvContent = data\n .map((row) => row.map(escapeCSVCell<D>).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, '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"],"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"],"mappings":";;;;AAOA,SAASA,EAAiBC,GAAkB;AAC1C,QAAMC,IACJD,KAAS,OACL,KACA,OAAOA,KAAU,WACfE,KAAKC,UAAUH,CAAK,IACpBI,OAAOJ,CAAK;AAGpB,SAAI,SAASK,KAAKJ,CAAG,IACZ,IAAIA,EAAIK,QAAQ,MAAM,IAAI,CAAC,MAE7BL;AACT;AAEA,eAAeM,EAAqBC,GAAa;AAC/C,QAAMC,IAAaD,EAChBE,IAAKC,CAAAA,MAAQA,EAAID,IAAIX,CAAgB,EAAEa,KAAK,GAAG,CAAC,EAChDA,KAAK;AAAA,CAAI,GACNC,IAAO,IAAIC,KAAK,CAACL,CAAU,GAAG;AAAA,IAAEM,MAAM;AAAA,EAAA,CAA2B;AACvE,SAAOC,QAAQC,QAAQC,IAAIC,gBAAgBN,CAAI,CAAC;AAClD;AAEO,MAAMO,IAA2C;AAAA,EACtDC,IAAI;AAAA,EACJC,OAAO;AAAA,EACPC,wBACGC,GAAA,EACC,UAAA,gBAAAC,EAAC,SACC,OAAM,8BACN,OAAM,MACN,QAAO,MACP,MAAK,QACL,SAAQ,aAER,UAAA,gBAAAA,EAAC,QAAA,EACC,MAAK,gBACL,GAAE,+sBAAA,CAA8sB,EAAA,CAEptB,EAAA,CACF;AAAA,EAEFC,UAAUnB;AAAAA,EACVoB,UAAWnB,CAAAA,MAAS;AAClBU,QAAIU,gBAAgBpB,CAAI;AAAA,EAC1B;AACF;AAEA,eAAeqB,EAAkBC,GAA0C;AACzE,MAAI,CAACA,KAAO,OAAOA,KAAQ,cAAc,CAACA,EAAIC,SAAS;AAErDC,YAAQC,KACN,uKAGF;AACA;AAAA,EACF;AAGA,QAAMC,IADUJ,EAAIC,QACEI,UAAU,EAAI;AAEpCD,EAAAA,EAAME,cAAc,2BAA2B,GAAGC,OAAAA,GAClDH,EAAME,cAAc,yBAAyB,GAAGC,OAAAA,GAEhDC,SAASC,KAAKC,YAAYN,CAAK;AAE/B,QAAMO,IAAOP,EAAMQ,sBAAAA,GAEbC,IAAO;AAAA,IACXC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPC,iBAAiB;AAAA,IACjBC,OAAON,EAAKM;AAAAA,IACZC,QAAQP,EAAKO;AAAAA,EAAAA,GAKTC,KAFkC,MAAMC,EAAYhB,GAAOS,CAAI,GAEzCQ,UAAU,WAAW;AAEjDb,kBAASC,KAAKa,YAAYlB,CAAK,GAExBlB,QAAQC,QAAQgC,CAAM;AAC/B;AAEO,MAAMI,IAIT;AAAA,EACFhC,IAAI;AAAA,EACJC,OAAO;AAAA,EACPC,wBAAO+B,GAAA,EAAa;AAAA,EACpB5B,UAAUG;AACZ;"}
1
+ {"version":3,"file":"exports-Cr43OCul.js","sources":["../src/widgets/actions/download/exports.tsx"],"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<D>(value: D): string {\n const str =\n value == null\n ? ''\n : typeof value === 'object'\n ? JSON.stringify(value)\n : String(value)\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<D>(data: D[][]) {\n const csvContent = data\n .map((row) => row.map(escapeCSVCell<D>).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\n/**\n * Pre-configured download item for exporting widget data as a CSV file.\n *\n * Converts a 2D array of data into CSV format with proper escaping and\n * triggers a browser download. Revokes the object URL after download.\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\n/**\n * Pre-configured download item for exporting a widget as a PNG image.\n *\n * Uses html2canvas to capture the widget DOM element referenced by a React ref.\n * Strips toolbar and action elements before capturing.\n *\n * @remarks\n * The modifier expects a React ref to the widget's root HTML element, not raw data.\n */\nexport const downloadToPNG: Omit<DownloadItem, '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"],"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"],"mappings":";;;;AAOA,SAASA,EAAiBC,GAAkB;AAC1C,QAAMC,IACJD,KAAS,OACL,KACA,OAAOA,KAAU,WACfE,KAAKC,UAAUH,CAAK,IACpBI,OAAOJ,CAAK;AAGpB,SAAI,SAASK,KAAKJ,CAAG,IACZ,IAAIA,EAAIK,QAAQ,MAAM,IAAI,CAAC,MAE7BL;AACT;AAEA,eAAeM,EAAqBC,GAAa;AAC/C,QAAMC,IAAaD,EAChBE,IAAKC,CAAAA,MAAQA,EAAID,IAAIX,CAAgB,EAAEa,KAAK,GAAG,CAAC,EAChDA,KAAK;AAAA,CAAI,GACNC,IAAO,IAAIC,KAAK,CAACL,CAAU,GAAG;AAAA,IAAEM,MAAM;AAAA,EAAA,CAA2B;AACvE,SAAOC,QAAQC,QAAQC,IAAIC,gBAAgBN,CAAI,CAAC;AAClD;AAQO,MAAMO,IAA2C;AAAA,EACtDC,IAAI;AAAA,EACJC,OAAO;AAAA,EACPC,wBACGC,GAAA,EACC,UAAA,gBAAAC,EAAC,SACC,OAAM,8BACN,OAAM,MACN,QAAO,MACP,MAAK,QACL,SAAQ,aAER,UAAA,gBAAAA,EAAC,QAAA,EACC,MAAK,gBACL,GAAE,+sBAAA,CAA8sB,EAAA,CAEptB,EAAA,CACF;AAAA,EAEFC,UAAUnB;AAAAA,EACVoB,UAAWnB,CAAAA,MAAS;AAClBU,QAAIU,gBAAgBpB,CAAI;AAAA,EAC1B;AACF;AAEA,eAAeqB,EAAkBC,GAA0C;AACzE,MAAI,CAACA,KAAO,OAAOA,KAAQ,cAAc,CAACA,EAAIC,SAAS;AAErDC,YAAQC,KACN,uKAGF;AACA;AAAA,EACF;AAGA,QAAMC,IADUJ,EAAIC,QACEI,UAAU,EAAI;AAEpCD,EAAAA,EAAME,cAAc,2BAA2B,GAAGC,OAAAA,GAClDH,EAAME,cAAc,yBAAyB,GAAGC,OAAAA,GAEhDC,SAASC,KAAKC,YAAYN,CAAK;AAE/B,QAAMO,IAAOP,EAAMQ,sBAAAA,GAEbC,IAAO;AAAA,IACXC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPC,iBAAiB;AAAA,IACjBC,OAAON,EAAKM;AAAAA,IACZC,QAAQP,EAAKO;AAAAA,EAAAA,GAKTC,KAFkC,MAAMC,EAAYhB,GAAOS,CAAI,GAEzCQ,UAAU,WAAW;AAEjDb,kBAASC,KAAKa,YAAYlB,CAAK,GAExBlB,QAAQC,QAAQgC,CAAM;AAC/B;AAWO,MAAMI,IAIT;AAAA,EACFhC,IAAI;AAAA,EACJC,OAAO;AAAA,EACPC,wBAAO+B,GAAA,EAAa;AAAA,EACpB5B,UAAUG;AACZ;"}
@@ -0,0 +1,5 @@
1
+ const o = (t) => t.toString();
2
+ export {
3
+ o as d
4
+ };
5
+ //# sourceMappingURL=formatter-B1Xh8XDH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter-B1Xh8XDH.js","sources":["../src/widgets/utils/formatter.ts"],"sourcesContent":["export const defaultFormatter = (value: number) => value.toString()\n"],"names":["defaultFormatter","value","toString"],"mappings":"AAAO,MAAMA,IAAmBA,CAACC,MAAkBA,EAAMC,SAAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"lasso-tool-BYbxrJ-7.js","sources":["../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx"],"sourcesContent":["import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: <DrawPolygonIcon />,\n },\n rectangle: {\n icon: <DrawSquareIcon />,\n },\n circle: {\n icon: <DrawCircleIcon />,\n },\n lasso: {\n icon: <DrawLassoIcon />,\n },\n edit: {\n icon: <SelectToolIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingTop: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nconst EMPTY_VALUES: LassoToolsComponentProps['values'] = []\nconst EMPTY_PAPER_PROPS: NonNullable<LassoToolsComponentProps['PaperProps']> =\n {}\n\nexport function LassoToolsUI({\n enabled,\n values = EMPTY_VALUES,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nconst EMPTY_TRIGGER_PROPS: { Icon?: ReactNode; sx?: SxProps<Theme> } = {}\n\nfunction Options({\n TriggerProps = EMPTY_TRIGGER_PROPS,\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const { Icon, sx } = TriggerProps\n const IconNode = Icon ?? <ArrowDropDown />\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {IconNode}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: NonNullable<(typeof data)[number]>['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n </>\n )\n}\n"],"names":["DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","options","mode","title","circle","lasso","polygon","rectangle","edit","noData","description","actions","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","width","height","borderRadius","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","paddingX","paddingBottom","icons","color","palette","text","primary","more","overflowX","scrollbarWidth","flexWrap","LassoToolsUIChip","chipProps","value","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","EMPTY_VALUES","EMPTY_PAPER_PROPS","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","undefined","sx","Chips","Action","SecondaryActions","Options","slotArgs","t9","t10","t11","t12","t13","t14","jsxs","Paper","LassoToolsUIAction","children","actionState","actionLabel","ToggleButton","EMPTY_TRIGGER_PROPS","TriggerProps","MenuProps","Icon","ArrowDropDown","IconNode","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleToggle","handleClose","IconButton","onClose","Menu","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","filter","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","Fragment","useMemo","deepmerge","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode"],"mappings":"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"}
1
+ {"version":3,"file":"lasso-tool-BYbxrJ-7.js","sources":["../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx"],"sourcesContent":["import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: <DrawPolygonIcon />,\n },\n rectangle: {\n icon: <DrawSquareIcon />,\n },\n circle: {\n icon: <DrawCircleIcon />,\n },\n lasso: {\n icon: <DrawLassoIcon />,\n },\n edit: {\n icon: <SelectToolIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingTop: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nconst EMPTY_VALUES: LassoToolsComponentProps['values'] = []\nconst EMPTY_PAPER_PROPS: NonNullable<LassoToolsComponentProps['PaperProps']> =\n {}\n\n/**\n * Provides a comprehensive floating interface for spatial selection and drawing operations on maps, supporting polygon, rectangle, circle, freehand lasso, and edit modes.\n *\n * @remarks\n * Supports customizable slots for action, options, chips, and secondary actions via compound component pattern (e.g., `LassoToolsUI.Action`, `LassoToolsUI.Chips`).\n *\n * @example\n * ```tsx\n * <LassoToolsUI\n * enabled={enabled}\n * values={spatialFilters}\n * modes={modes}\n * modesMapping={modesMapping}\n * modeSelected={modeSelected}\n * onActionToggle={setEnabled}\n * onChangeMode={setModeSelected}\n * onChipToggle={handleChipToggle}\n * onDelete={handleDelete}\n * />\n * ```\n */\nexport function LassoToolsUI({\n enabled,\n values = EMPTY_VALUES,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nconst EMPTY_TRIGGER_PROPS: { Icon?: ReactNode; sx?: SxProps<Theme> } = {}\n\nfunction Options({\n TriggerProps = EMPTY_TRIGGER_PROPS,\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const { Icon, sx } = TriggerProps\n const IconNode = Icon ?? <ArrowDropDown />\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {IconNode}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: NonNullable<(typeof data)[number]>['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n </>\n )\n}\n"],"names":["DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","options","mode","title","circle","lasso","polygon","rectangle","edit","noData","description","actions","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","width","height","borderRadius","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","paddingX","paddingBottom","icons","color","palette","text","primary","more","overflowX","scrollbarWidth","flexWrap","LassoToolsUIChip","chipProps","value","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","EMPTY_VALUES","EMPTY_PAPER_PROPS","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","undefined","sx","Chips","Action","SecondaryActions","Options","slotArgs","t9","t10","t11","t12","t13","t14","jsxs","Paper","LassoToolsUIAction","children","actionState","actionLabel","ToggleButton","EMPTY_TRIGGER_PROPS","TriggerProps","MenuProps","Icon","ArrowDropDown","IconNode","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleToggle","handleClose","IconButton","onClose","Menu","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","filter","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","Fragment","useMemo","deepmerge","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"note-t51drNe0.js","sources":["../src/widgets/note/style.ts","../src/widgets/note/note.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n typography: 'caption',\n color: (theme: Theme) => theme.palette.text.secondary,\n marginBlockStart: ({ spacing }) => spacing(1),\n },\n clamped: {\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n },\n expanded: {\n display: 'block',\n },\n linkButton: {\n padding: 0,\n minWidth: 'auto',\n textTransform: 'none',\n typography: 'caption',\n fontWeight: 500,\n textDecoration: 'none',\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useState, useEffect, useRef, useEffectEvent } from 'react'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport type { WidgetNoteProps } from './types'\nimport { styles } from './style'\nimport ReactMarkdown, { type Components } from 'react-markdown'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nconst DEFAULT_P = ({ children }: { children?: React.ReactNode }) => (\n <Typography paragraph color='inherit' variant='caption'>\n {children}\n </Typography>\n)\n\nconst COMPONENTS: Components = {\n h1: DEFAULT_P,\n h2: DEFAULT_P,\n h3: DEFAULT_P,\n p: DEFAULT_P,\n a: ({ children, href, target = '_blank', rel = 'noopener noreferrer' }) => (\n <Link\n href={href}\n target={target}\n rel={rel}\n color='text.primary'\n underline='always'\n >\n {children}\n </Link>\n ),\n img: () => null,\n ul: DEFAULT_P,\n ol: DEFAULT_P,\n li: DEFAULT_P,\n}\n\nexport function WidgetNote({\n children,\n labels = DEFAULT_LABELS,\n}: WidgetNoteProps) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [shouldShowToggle, setShouldShowToggle] = useState(false)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const checkOverflow = useEffectEvent(() => {\n if (contentRef.current) {\n // Check if content overflows 3 lines\n const isOverflowing =\n contentRef.current.scrollHeight > contentRef.current.clientHeight\n setShouldShowToggle(isOverflowing)\n }\n })\n\n useEffect(() => {\n checkOverflow()\n }, [children])\n\n useEffect(() => {\n const element = contentRef.current\n if (!element) return\n\n const resizeObserver = new ResizeObserver(() => {\n checkOverflow()\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n if (!children) {\n return null\n }\n\n const handleToggle = () => {\n setIsExpanded(!isExpanded)\n }\n\n const mergedLabels = { ...DEFAULT_LABELS, ...labels }\n\n return (\n <Box>\n <Box\n ref={contentRef}\n sx={{\n ...styles.root,\n ...(isExpanded ? styles.expanded : styles.clamped),\n }}\n >\n <ReactMarkdown components={COMPONENTS}>{children}</ReactMarkdown>\n </Box>\n {(shouldShowToggle || isExpanded) && (\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n sx={styles.linkButton}\n aria-expanded={isExpanded}\n aria-label={\n isExpanded ? mergedLabels.showLess : mergedLabels.showMore\n }\n aria-controls='note-content'\n >\n {isExpanded ? mergedLabels.showLess : mergedLabels.showMore}\n </Button>\n )}\n </Box>\n )\n}\n"],"names":["styles","root","typography","color","theme","palette","text","secondary","marginBlockStart","spacing","clamped","display","WebkitLineClamp","WebkitBoxOrient","overflow","expanded","linkButton","padding","minWidth","textTransform","fontWeight","textDecoration","backgroundColor","DEFAULT_LABELS","showMore","showLess","DEFAULT_P","t0","$","_c","children","t1","jsx","Typography","COMPONENTS","h1","h2","h3","p","a","href","target","rel","Link","img","ul","ol","li","WidgetNote","labels","undefined","isExpanded","setIsExpanded","useState","shouldShowToggle","setShouldShowToggle","contentRef","useRef","t2","Symbol","for","current","isOverflowing","scrollHeight","clientHeight","checkOverflow","useEffectEvent","t3","t4","useEffect","t5","element","resizeObserver","ResizeObserver","observe","disconnect","t6","t7","handleToggle","t8","mergedLabels","t9","t10","t11","ReactMarkdown","t12","Box","t13","Button","t14"],"mappings":"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"}
1
+ {"version":3,"file":"note-t51drNe0.js","sources":["../src/widgets/note/style.ts","../src/widgets/note/note.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n typography: 'caption',\n color: (theme: Theme) => theme.palette.text.secondary,\n marginBlockStart: ({ spacing }) => spacing(1),\n },\n clamped: {\n display: '-webkit-box',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n },\n expanded: {\n display: 'block',\n },\n linkButton: {\n padding: 0,\n minWidth: 'auto',\n textTransform: 'none',\n typography: 'caption',\n fontWeight: 500,\n textDecoration: 'none',\n '&:hover': {\n backgroundColor: 'transparent',\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useState, useEffect, useRef, useEffectEvent } from 'react'\nimport { Box, Button, Link, Typography } from '@mui/material'\nimport type { WidgetNoteProps } from './types'\nimport { styles } from './style'\nimport ReactMarkdown, { type Components } from 'react-markdown'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nconst DEFAULT_P = ({ children }: { children?: React.ReactNode }) => (\n <Typography paragraph color='inherit' variant='caption'>\n {children}\n </Typography>\n)\n\nconst COMPONENTS: Components = {\n h1: DEFAULT_P,\n h2: DEFAULT_P,\n h3: DEFAULT_P,\n p: DEFAULT_P,\n a: ({ children, href, target = '_blank', rel = 'noopener noreferrer' }) => (\n <Link\n href={href}\n target={target}\n rel={rel}\n color='text.primary'\n underline='always'\n >\n {children}\n </Link>\n ),\n img: () => null,\n ul: DEFAULT_P,\n ol: DEFAULT_P,\n li: DEFAULT_P,\n}\n\n/**\n * Displays text content with markdown support and automatic show more/less functionality for long content. Automatically detects content exceeding 3 lines and shows an expand/collapse button.\n *\n * @example\n * ```tsx\n * <WidgetNote>\n * {\"**Important:** This data is from Q4 2024.\"}\n * </WidgetNote>\n * ```\n */\nexport function WidgetNote({\n children,\n labels = DEFAULT_LABELS,\n}: WidgetNoteProps) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [shouldShowToggle, setShouldShowToggle] = useState(false)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const checkOverflow = useEffectEvent(() => {\n if (contentRef.current) {\n // Check if content overflows 3 lines\n const isOverflowing =\n contentRef.current.scrollHeight > contentRef.current.clientHeight\n setShouldShowToggle(isOverflowing)\n }\n })\n\n useEffect(() => {\n checkOverflow()\n }, [children])\n\n useEffect(() => {\n const element = contentRef.current\n if (!element) return\n\n const resizeObserver = new ResizeObserver(() => {\n checkOverflow()\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n if (!children) {\n return null\n }\n\n const handleToggle = () => {\n setIsExpanded(!isExpanded)\n }\n\n const mergedLabels = { ...DEFAULT_LABELS, ...labels }\n\n return (\n <Box>\n <Box\n ref={contentRef}\n sx={{\n ...styles.root,\n ...(isExpanded ? styles.expanded : styles.clamped),\n }}\n >\n <ReactMarkdown components={COMPONENTS}>{children}</ReactMarkdown>\n </Box>\n {(shouldShowToggle || isExpanded) && (\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n sx={styles.linkButton}\n aria-expanded={isExpanded}\n aria-label={\n isExpanded ? mergedLabels.showLess : mergedLabels.showMore\n }\n aria-controls='note-content'\n >\n {isExpanded ? mergedLabels.showLess : mergedLabels.showMore}\n </Button>\n )}\n </Box>\n )\n}\n"],"names":["styles","root","typography","color","theme","palette","text","secondary","marginBlockStart","spacing","clamped","display","WebkitLineClamp","WebkitBoxOrient","overflow","expanded","linkButton","padding","minWidth","textTransform","fontWeight","textDecoration","backgroundColor","DEFAULT_LABELS","showMore","showLess","DEFAULT_P","t0","$","_c","children","t1","jsx","Typography","COMPONENTS","h1","h2","h3","p","a","href","target","rel","Link","img","ul","ol","li","WidgetNote","labels","undefined","isExpanded","setIsExpanded","useState","shouldShowToggle","setShouldShowToggle","contentRef","useRef","t2","Symbol","for","current","isOverflowing","scrollHeight","clientHeight","checkOverflow","useEffectEvent","t3","t4","useEffect","t5","element","resizeObserver","ResizeObserver","observe","disconnect","t6","t7","handleToggle","t8","mergedLabels","t9","t10","t11","ReactMarkdown","t12","Box","t13","Button","t14"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"options-D9wflre6.js","sources":["../src/widgets/echart/options.ts"],"sourcesContent":["import type { EchartOptionsProps, EchartWidgetOptionProps } from './types'\n\nexport function getCommonOptions({\n theme,\n}: EchartWidgetOptionProps<unknown>): 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(\n (theme.palette as { qualitative?: { bold?: Record<string, string> } })\n .qualitative?.bold ?? {},\n ),\n ],\n }\n}\n"],"names":["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","Object","values","qualitative","bold"],"mappings":"AAEO,SAASA,EAAiB;AAAA,EAC/BC,OAAAA;AACgC,GAAuB;AACvD,SAAO;AAAA,IACLC,MAAM;AAAA,MACJC,MAAMC,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAC/BC,KAAKF,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAC9BE,OAAOH,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAChCG,QAAQJ,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MACjCI,cAAc;AAAA,IAAA;AAAA,IAEhBC,SAAS;AAAA,MACPC,MAAM;AAAA,IAAA;AAAA,IAERC,SAAS;AAAA,MACPC,aAAa;AAAA,QACXC,MAAM;AAAA,QACNC,aAAa;AAAA,UACXC,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEFC,iBAAiBhB,EAAMiB,QAAQC,KAAK,GAAG;AAAA,MACvCC,aAAa;AAAA,MACbC,SAAS,CAACjB,SAASH,EAAMI,QAAQ,CAAC,CAAC,GAAGD,SAASH,EAAMI,QAAQ,CAAC,CAAC,CAAC;AAAA,MAChEiB,WAAW;AAAA,QACTN,OAAOf,EAAMiB,QAAQK,OAAOC;AAAAA,QAC5BC,UAAU;AAAA,QACVC,YAAYzB,EAAM0B,WAAWC,QAAQF;AAAAA,MAAAA;AAAAA,MAEvCG,SAAS;AAAA,IAAA;AAAA,IAEXC,QAAQ;AAAA,MACNhB,MAAM;AAAA,MACNN,QAAQ;AAAA,IAAA;AAAA,IAEVK,aAAa;AAAA,MACXkB,WAAW;AAAA,QACTf,OAAOf,EAAMiB,QAAQC,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEFa,OAAO,CAAA;AAAA,IACPC,OAAO,CAAA;AAAA,IACPjB,OAAO,CACLf,EAAMiB,QAAQgB,UAAUC,MACxB,GAAGC,OAAOC,OACPpC,EAAMiB,QACJoB,aAAaC,QAAQ,CAAA,CAC1B,CAAC;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"options-D9wflre6.js","sources":["../src/widgets/echart/options.ts"],"sourcesContent":["import type { EchartOptionsProps, EchartWidgetOptionProps } from './types'\n\n/**\n * Returns the shared base ECharts options used across all EChart-based widgets (bar, pie, histogram, etc.).\n *\n * @remarks\n * Configures grid spacing, tooltip styling, legend, axis pointer, and the default color palette\n * derived from the MUI theme.\n */\nexport function getCommonOptions({\n theme,\n}: EchartWidgetOptionProps<unknown>): 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(\n (theme.palette as { qualitative?: { bold?: Record<string, string> } })\n .qualitative?.bold ?? {},\n ),\n ],\n }\n}\n"],"names":["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","Object","values","qualitative","bold"],"mappings":"AASO,SAASA,EAAiB;AAAA,EAC/BC,OAAAA;AACgC,GAAuB;AACvD,SAAO;AAAA,IACLC,MAAM;AAAA,MACJC,MAAMC,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAC/BC,KAAKF,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAC9BE,OAAOH,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MAChCG,QAAQJ,SAASH,EAAMI,QAAQ,CAAC,CAAC;AAAA,MACjCI,cAAc;AAAA,IAAA;AAAA,IAEhBC,SAAS;AAAA,MACPC,MAAM;AAAA,IAAA;AAAA,IAERC,SAAS;AAAA,MACPC,aAAa;AAAA,QACXC,MAAM;AAAA,QACNC,aAAa;AAAA,UACXC,OAAO;AAAA,QAAA;AAAA,MACT;AAAA,MAEFC,iBAAiBhB,EAAMiB,QAAQC,KAAK,GAAG;AAAA,MACvCC,aAAa;AAAA,MACbC,SAAS,CAACjB,SAASH,EAAMI,QAAQ,CAAC,CAAC,GAAGD,SAASH,EAAMI,QAAQ,CAAC,CAAC,CAAC;AAAA,MAChEiB,WAAW;AAAA,QACTN,OAAOf,EAAMiB,QAAQK,OAAOC;AAAAA,QAC5BC,UAAU;AAAA,QACVC,YAAYzB,EAAM0B,WAAWC,QAAQF;AAAAA,MAAAA;AAAAA,MAEvCG,SAAS;AAAA,IAAA;AAAA,IAEXC,QAAQ;AAAA,MACNhB,MAAM;AAAA,MACNN,QAAQ;AAAA,IAAA;AAAA,IAEVK,aAAa;AAAA,MACXkB,WAAW;AAAA,QACTf,OAAOf,EAAMiB,QAAQC,KAAK,GAAG;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEFa,OAAO,CAAA;AAAA,IACPC,OAAO,CAAA;AAAA,IACPjB,OAAO,CACLf,EAAMiB,QAAQgB,UAAUC,MACxB,GAAGC,OAAOC,OACPpC,EAAMiB,QACJoB,aAAaC,QAAQ,CAAA,CAC1B,CAAC;AAAA,EAAA;AAGP;"}
@@ -1 +1 @@
1
- {"version":3,"file":"row-DTCV0Ocm.js","sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Row(props: RowProps) {\n const data = useWidgetStore(\n useShallow((state) => state.getWidget<FormulaWidgetState>(props.id)?.data),\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"names":["styles","item","color","theme","palette","text","disabled","row","display","alignItems","gap","spacing","marginTop","Row","props","$","_c","t0","id","state","getWidget","data","useWidgetStore","useShallow","t1","map","_","index","jsx","Box","children"],"mappings":";;;;;AAEO,MAAMA,IAAS;AAAA,EAMpBC,MAAM;AAAA,IACJ,2BAA2B;AAAA,MACzBC,OAAOA,CAACC,MAAiBA,EAAMC,QAAQC,KAAKC;AAAAA,IAAAA;AAAAA,EAC9C;AAAA,EAEFC,KAAK;AAAA,IACHC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAACP,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAEtC,SAAS;AAAA,MACPC,WAAWA,CAACT,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,EAC9C;AAEJ;AChBO,SAAAE,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAD,EAAAI,MAEQD,IAAAE,CAAAA,MAAWA,EAAKC,UAA+BN,EAAKI,EAAS,GAACG,MAAAN,EAAA,CAAA,IAAAD,EAAAI,IAAAH,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAD3E,QAAAM,IAAaC,EACXC,EAAWN,CAA8D,CAC3E;AAAC,MAAAO;AAAA,SAAAT,EAAA,CAAA,MAAAM,KAAAN,SAAAD,KAEMU,IAAAH,GAAII,IAAM,CAAAC,GAAAC,MAEb,gBAAAC,EAACC,GAAA,EAAQ,IAAA7B,EAAMO,KACZ,UAAA,OAAOO,EAAKgB,YAAc,aACvBhB,EAAKgB,SAAU;AAAA,IAAAH,OAAAA;AAAAA,EAAAA,CACF,IAAbb,EAAKgB,YAHe,OAAOH,CAAK,EAItC,CAEH,GAACZ,OAAAM,GAAAN,OAAAD,GAAAC,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GARKS;AAQL;"}
1
+ {"version":3,"file":"row-DTCV0Ocm.js","sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Iterates over the widget's data items and renders a row for each one using render props.\n */\nexport function Row(props: RowProps) {\n const data = useWidgetStore(\n useShallow((state) => state.getWidget<FormulaWidgetState>(props.id)?.data),\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={`row-${index}`}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"names":["styles","item","color","theme","palette","text","disabled","row","display","alignItems","gap","spacing","marginTop","Row","props","$","_c","t0","id","state","getWidget","data","useWidgetStore","useShallow","t1","map","_","index","jsx","Box","children"],"mappings":";;;;;AAEO,MAAMA,IAAS;AAAA,EAMpBC,MAAM;AAAA,IACJ,2BAA2B;AAAA,MACzBC,OAAOA,CAACC,MAAiBA,EAAMC,QAAQC,KAAKC;AAAAA,IAAAA;AAAAA,EAC9C;AAAA,EAEFC,KAAK;AAAA,IACHC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAACP,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAEtC,SAAS;AAAA,MACPC,WAAWA,CAACT,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,EAC9C;AAEJ;ACbO,SAAAE,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAD,EAAAI,MAEQD,IAAAE,CAAAA,MAAWA,EAAKC,UAA+BN,EAAKI,EAAS,GAACG,MAAAN,EAAA,CAAA,IAAAD,EAAAI,IAAAH,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAD3E,QAAAM,IAAaC,EACXC,EAAWN,CAA8D,CAC3E;AAAC,MAAAO;AAAA,SAAAT,EAAA,CAAA,MAAAM,KAAAN,SAAAD,KAEMU,IAAAH,GAAII,IAAM,CAAAC,GAAAC,MAEb,gBAAAC,EAACC,GAAA,EAAQ,IAAA7B,EAAMO,KACZ,UAAA,OAAOO,EAAKgB,YAAc,aACvBhB,EAAKgB,SAAU;AAAA,IAAAH,OAAAA;AAAAA,EAAAA,CACF,IAAbb,EAAKgB,YAHe,OAAOH,CAAK,EAItC,CAEH,GAACZ,OAAAM,GAAAN,OAAAD,GAAAC,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GARKS;AAQL;"}
@@ -1 +1 @@
1
- {"version":3,"file":"series-CYNOu2Ju.js","sources":["../src/widgets/formula/components/item.tsx","../src/widgets/formula/components/prefix.tsx","../src/widgets/formula/components/suffix.tsx","../src/widgets/formula/components/series.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport type { ItemProps } from '../types'\nimport { styles } from '../style'\n\nexport function Item(props: ItemProps) {\n return (\n <Typography\n sx={styles.item}\n variant='h5'\n fontWeight='medium'\n data-disabled={props.disabled}\n color='default'\n {...props.TypographyProps}\n >\n {props.children}\n </Typography>\n )\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Prefix({ id, index = 0, ...props }: ValueProps) {\n const prefix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.prefix,\n ),\n )\n\n if (!prefix) {\n return null\n }\n\n return <Item {...props}>{prefix}</Item>\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport type { Theme } from '@mui/material'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Suffix({ id, index = 0, ...props }: ValueProps) {\n const suffix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.suffix,\n ),\n )\n\n if (!suffix) {\n return null\n }\n\n return (\n <Item\n TypographyProps={{\n color: (theme: Theme) => theme.palette.text.secondary,\n }}\n {...props}\n >\n {suffix}\n </Item>\n )\n}\n","import { Avatar } from '@mui/material'\nimport type { FormulaWidgetState, ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Series({ id, index = 0 }: Pick<ValueProps, 'id' | 'index'>) {\n const serie = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.series?.[index],\n ),\n )\n if (!serie) {\n return null\n }\n\n const { name, color } = serie\n\n return (\n <Avatar\n sx={{\n bgcolor: color,\n width: 32,\n height: 32,\n fontSize: '0.875rem',\n fontWeight: 'medium',\n ...(color && {\n color: (theme) => theme.palette.getContrastText(color),\n }),\n }}\n >\n {name.charAt(0).toUpperCase()}\n </Avatar>\n )\n}\n"],"names":["Item","props","$","_c","t0","TypographyProps","children","disabled","Typography","styles","item","Prefix","id","t1","index","undefined","t2","state","getWidget","data","prefix","useWidgetStore","useShallow","t3","jsx","Suffix","suffix","Symbol","for","color","_temp","t4","theme","palette","text","secondary","Series","series","serie","name","getContrastText","bgcolor","width","height","fontSize","fontWeight","t5","charAt","toUpperCase","t6","Avatar"],"mappings":"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"}
1
+ {"version":3,"file":"series-CYNOu2Ju.js","sources":["../src/widgets/formula/components/item.tsx","../src/widgets/formula/components/prefix.tsx","../src/widgets/formula/components/suffix.tsx","../src/widgets/formula/components/series.tsx"],"sourcesContent":["import { Typography } from '@mui/material'\nimport type { ItemProps } from '../types'\nimport { styles } from '../style'\n\n/**\n * Base typography wrapper used by formula sub-components (Value, Prefix, Suffix) to render styled text.\n */\nexport function Item(props: ItemProps) {\n return (\n <Typography\n sx={styles.item}\n variant='h5'\n fontWeight='medium'\n data-disabled={props.disabled}\n color='default'\n {...props.TypographyProps}\n >\n {props.children}\n </Typography>\n )\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Renders the prefix content (e.g., currency symbol) before a formula value, if defined in the data item.\n */\nexport function Prefix({ id, index = 0, ...props }: ValueProps) {\n const prefix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.prefix,\n ),\n )\n\n if (!prefix) {\n return null\n }\n\n return <Item {...props}>{prefix}</Item>\n}\n","import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport type { Theme } from '@mui/material'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Renders the suffix content (e.g., unit label) after a formula value, if defined in the data item.\n */\nexport function Suffix({ id, index = 0, ...props }: ValueProps) {\n const suffix = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.data?.[index]?.suffix,\n ),\n )\n\n if (!suffix) {\n return null\n }\n\n return (\n <Item\n TypographyProps={{\n color: (theme: Theme) => theme.palette.text.secondary,\n }}\n {...props}\n >\n {suffix}\n </Item>\n )\n}\n","import { Avatar } from '@mui/material'\nimport type { FormulaWidgetState, ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Renders a colored avatar badge showing the first letter of the series name for multi-value formula widgets.\n */\nexport function Series({ id, index = 0 }: Pick<ValueProps, 'id' | 'index'>) {\n const serie = useWidgetStore(\n useShallow(\n (state) => state.getWidget<FormulaWidgetState>(id)?.series?.[index],\n ),\n )\n if (!serie) {\n return null\n }\n\n const { name, color } = serie\n\n return (\n <Avatar\n sx={{\n bgcolor: color,\n width: 32,\n height: 32,\n fontSize: '0.875rem',\n fontWeight: 'medium',\n ...(color && {\n color: (theme) => theme.palette.getContrastText(color),\n }),\n }}\n >\n {name.charAt(0).toUpperCase()}\n </Avatar>\n )\n}\n"],"names":["Item","props","$","_c","t0","TypographyProps","children","disabled","Typography","styles","item","Prefix","id","t1","index","undefined","t2","state","getWidget","data","prefix","useWidgetStore","useShallow","t3","jsx","Suffix","suffix","Symbol","for","color","_temp","t4","theme","palette","text","secondary","Series","series","serie","name","getContrastText","bgcolor","width","height","fontSize","fontWeight","t5","charAt","toUpperCase","t6","Avatar"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-tooltip-D4vwQpFf.js","sources":["../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n\n useLayoutEffect(() => {\n const timerId = setTimeout(() => {\n if (ref.current) {\n const isOverflowing =\n ref.current.scrollWidth > ref.current.clientWidth ||\n ref.current.scrollHeight > ref.current.clientHeight\n\n setIsOverflowing(isOverflowing)\n }\n }, timeout)\n\n return () => clearTimeout(timerId)\n }, [dependencies, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"names":["EMPTY_DEPENDENCIES","SmartTooltip","t0","$","_c","title","dependencies","t1","timeout","t2","TooltipProps","children","undefined","ref","useRef","isOverflowing","setIsOverflowing","useState","t3","timerId","setTimeout","current","isOverflowing_0","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","t4","useLayoutEffect","t5","t6","t7","Tooltip"],"mappings":";;;;AAIA,MAAMA,IAAgC,CAAA;AAE/B,SAAAC,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA6C;AAAA,IAAAC,OAAAA;AAAAA,IAAAC,cAAAC;AAAAA,IAAAC,SAAAC;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAT,GAElDI,IAAAC,MAAAK,SAAAZ,IAAAO,GACAC,IAAAC,MAAAG,SAAA,MAAAH,GAUAI,IAAYC,EAAU,IAAI,GAC1B,CAAAC,GAAAC,CAAA,IAA0CC,EAAS,EAAK;AAAC,MAAAC;AAAA,EAAAf,SAAAK,KAEzCU,IAAAA,MAAA;AACd,UAAAC,IAAgBC,WAAW,MAAA;AACzB,UAAIP,EAAGQ,SAAQ;AACb,cAAAC,IACET,EAAGQ,QAAQE,cAAeV,EAAGQ,QAAQG,eACrCX,EAAGQ,QAAQI,eAAgBZ,EAAGQ,QAAQK;AAExCV,QAAAA,EAAiBD,CAAa;AAAA,MAAC;AAAA,IAChC,GACAP,CAAO;AAAC,WAEJ,MAAMmB,aAAaR,CAAO;AAAA,EAAC,GACnChB,OAAAK,GAAAL,OAAAe,KAAAA,IAAAf,EAAA,CAAA;AAAA,MAAAyB;AAAA,EAAAzB,EAAA,CAAA,MAAAG,KAAAH,SAAAK,KAAEoB,IAAA,CAACtB,GAAcE,CAAO,GAACL,OAAAG,GAAAH,OAAAK,GAAAL,OAAAyB,KAAAA,IAAAzB,EAAA,CAAA,GAZ1B0B,EAAgBX,GAYbU,CAAuB;AAGR,QAAAE,IAAAf,KAAAV;AAAsB,MAAA0B;AAAA,EAAA5B,SAAAQ,KACnCoB,IAAApB,EAAS;AAAA,IAAAE,KAAAA;AAAAA,EAAAA,CAAO,GAACV,OAAAQ,GAAAR,OAAA4B,KAAAA,IAAA5B,EAAA,CAAA;AAAA,MAAA6B;AAAA,SAAA7B,EAAA,CAAA,MAAAO,KAAAP,SAAA2B,KAAA3B,EAAA,CAAA,MAAA4B,KADpBC,sBAACC,GAAA,EAAe,OAAAH,GAAsB,GAAMpB,GACzCqB,UAAAA,GACH,GAAU5B,OAAAO,GAAAP,OAAA2B,GAAA3B,OAAA4B,GAAA5B,QAAA6B,KAAAA,IAAA7B,EAAA,EAAA,GAFV6B;AAEU;"}
1
+ {"version":3,"file":"smart-tooltip-D4vwQpFf.js","sources":["../src/components/smart-tooltip/smart-tooltip.tsx"],"sourcesContent":["import type { TooltipProps } from '@mui/material'\nimport { useLayoutEffect, useRef, useState, type JSX, type Ref } from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_DEPENDENCIES: unknown[] = []\n\n/**\n * An intelligent tooltip wrapper that automatically detects text overflow and displays a tooltip only when content is truncated.\n *\n * @remarks\n * Uses a render prop pattern. The child function receives a `ref` that must be attached to the element being monitored for overflow. Use the `dependencies` array to trigger re-evaluation when content or container size changes.\n *\n * @example\n * ```tsx\n * <SmartTooltip title=\"This is a long text that might get truncated\">\n * {({ ref }) => (\n * <Typography ref={ref} noWrap sx={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>\n * This is a long text that might get truncated\n * </Typography>\n * )}\n * </SmartTooltip>\n * ```\n */\nexport function SmartTooltip<T extends HTMLElement>({\n title,\n dependencies = EMPTY_DEPENDENCIES,\n timeout = 500,\n TooltipProps,\n children,\n}: {\n title: string | undefined\n dependencies?: unknown[]\n timeout?: number\n children: (props: { ref: Ref<T> }) => JSX.Element\n TooltipProps?: Partial<TooltipProps>\n}) {\n const ref = useRef<T>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n\n useLayoutEffect(() => {\n const timerId = setTimeout(() => {\n if (ref.current) {\n const isOverflowing =\n ref.current.scrollWidth > ref.current.clientWidth ||\n ref.current.scrollHeight > ref.current.clientHeight\n\n setIsOverflowing(isOverflowing)\n }\n }, timeout)\n\n return () => clearTimeout(timerId)\n }, [dependencies, timeout])\n\n return (\n <Tooltip title={isOverflowing && title} {...TooltipProps}>\n {children({ ref })}\n </Tooltip>\n )\n}\n"],"names":["EMPTY_DEPENDENCIES","SmartTooltip","t0","$","_c","title","dependencies","t1","timeout","t2","TooltipProps","children","undefined","ref","useRef","isOverflowing","setIsOverflowing","useState","t3","timerId","setTimeout","current","isOverflowing_0","scrollWidth","clientWidth","scrollHeight","clientHeight","clearTimeout","t4","useLayoutEffect","t5","t6","t7","Tooltip"],"mappings":";;;;AAIA,MAAMA,IAAgC,CAAA;AAmB/B,SAAAC,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA6C;AAAA,IAAAC,OAAAA;AAAAA,IAAAC,cAAAC;AAAAA,IAAAC,SAAAC;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAT,GAElDI,IAAAC,MAAAK,SAAAZ,IAAAO,GACAC,IAAAC,MAAAG,SAAA,MAAAH,GAUAI,IAAYC,EAAU,IAAI,GAC1B,CAAAC,GAAAC,CAAA,IAA0CC,EAAS,EAAK;AAAC,MAAAC;AAAA,EAAAf,SAAAK,KAEzCU,IAAAA,MAAA;AACd,UAAAC,IAAgBC,WAAW,MAAA;AACzB,UAAIP,EAAGQ,SAAQ;AACb,cAAAC,IACET,EAAGQ,QAAQE,cAAeV,EAAGQ,QAAQG,eACrCX,EAAGQ,QAAQI,eAAgBZ,EAAGQ,QAAQK;AAExCV,QAAAA,EAAiBD,CAAa;AAAA,MAAC;AAAA,IAChC,GACAP,CAAO;AAAC,WAEJ,MAAMmB,aAAaR,CAAO;AAAA,EAAC,GACnChB,OAAAK,GAAAL,OAAAe,KAAAA,IAAAf,EAAA,CAAA;AAAA,MAAAyB;AAAA,EAAAzB,EAAA,CAAA,MAAAG,KAAAH,SAAAK,KAAEoB,IAAA,CAACtB,GAAcE,CAAO,GAACL,OAAAG,GAAAH,OAAAK,GAAAL,OAAAyB,KAAAA,IAAAzB,EAAA,CAAA,GAZ1B0B,EAAgBX,GAYbU,CAAuB;AAGR,QAAAE,IAAAf,KAAAV;AAAsB,MAAA0B;AAAA,EAAA5B,SAAAQ,KACnCoB,IAAApB,EAAS;AAAA,IAAAE,KAAAA;AAAAA,EAAAA,CAAO,GAACV,OAAAQ,GAAAR,OAAA4B,KAAAA,IAAA5B,EAAA,CAAA;AAAA,MAAA6B;AAAA,SAAA7B,EAAA,CAAA,MAAAO,KAAAP,SAAA2B,KAAA3B,EAAA,CAAA,MAAA4B,KADpBC,sBAACC,GAAA,EAAe,OAAAH,GAAsB,GAAMpB,GACzCqB,UAAAA,GACH,GAAU5B,OAAAO,GAAAP,OAAA2B,GAAA3B,OAAA4B,GAAA5B,QAAA6B,KAAAA,IAAA7B,EAAA,EAAA,GAFV6B;AAEU;"}
@@ -0,0 +1,167 @@
1
+ import "react/jsx-runtime";
2
+ import "react/compiler-runtime";
3
+ import "@mui/material";
4
+ import "./widget-store-CzDt8oSK.js";
5
+ import "@mui/icons-material";
6
+ import "zustand/shallow";
7
+ import "react";
8
+ import "react-markdown";
9
+ import { d as p, a as f } from "./exports-Cr43OCul.js";
10
+ import "./lasso-tool-BYbxrJ-7.js";
11
+ import "./cjs-D4KH3azB.js";
12
+ import "@dnd-kit/core";
13
+ import "@dnd-kit/sortable";
14
+ import "@dnd-kit/utilities";
15
+ function I(t) {
16
+ const e = [];
17
+ if (t.length > 0 && (t[0]?.length ?? 0) > 0) {
18
+ const o = t?.[0]?.[0] ?? {}, i = Object.keys(o);
19
+ e.push(i);
20
+ }
21
+ return t.forEach((o) => {
22
+ o.forEach((i) => {
23
+ const r = Object.values(i).map((n) => String(n));
24
+ e.push(r);
25
+ });
26
+ }), e;
27
+ }
28
+ function z(t) {
29
+ const e = [];
30
+ return e.push(["x", "y"]), t.forEach((o) => {
31
+ o.forEach((i) => {
32
+ e.push([String(i[0]), String(i[1])]);
33
+ });
34
+ }), e;
35
+ }
36
+ function O(t) {
37
+ if (t === 0) return 0;
38
+ const e = Math.abs(t), o = Math.pow(10, Math.floor(Math.log10(e))), i = Math.ceil(e / o) * o;
39
+ return t < 0 ? -i : i;
40
+ }
41
+ function V(t) {
42
+ return {
43
+ show: t,
44
+ icon: "circle",
45
+ left: 0,
46
+ bottom: 0,
47
+ orient: "horizontal",
48
+ type: "scroll"
49
+ };
50
+ }
51
+ function D(t, e) {
52
+ return {
53
+ ...!t && {
54
+ bottom: parseInt(e.spacing(3))
55
+ },
56
+ ...t && {
57
+ bottom: parseInt(e.spacing(7))
58
+ }
59
+ };
60
+ }
61
+ function E(t) {
62
+ return function(e, o, i, r, n) {
63
+ const c = {
64
+ top: parseInt(t.spacing(0.5))
65
+ };
66
+ return n.contentSize[0] < n.viewSize[0] - e[0] ? c.left = e[0] : c.right = n.viewSize[0] - e[0], c;
67
+ };
68
+ }
69
+ function m(t) {
70
+ if (t)
71
+ return (e) => t(e);
72
+ }
73
+ function k(t, e) {
74
+ let o = m(e);
75
+ const i = t && !Array.isArray(t), r = t;
76
+ return (!i || r.type !== "value") && (o = void 0), {
77
+ ...r,
78
+ axisLabel: {
79
+ ...typeof r.axisLabel == "object" && r.axisLabel ? r.axisLabel : {},
80
+ formatter: o
81
+ }
82
+ };
83
+ }
84
+ function _(t, e) {
85
+ let o = m(e);
86
+ const i = t && !Array.isArray(t), r = t;
87
+ return (!i || r.type !== "value") && (o = void 0), {
88
+ ...r,
89
+ axisLabel: {
90
+ ...typeof r.axisLabel == "object" && r.axisLabel ? r.axisLabel : {},
91
+ formatter: o
92
+ }
93
+ };
94
+ }
95
+ function G(t) {
96
+ return (e) => {
97
+ const o = Array.isArray(e) ? e : [e], i = (a, s) => `<div style="margin: 0px 0 0;line-height:1;">${a ? `<div style="font-size:11px;color:#FFFFFF;font-weight:400;line-height:1; margin-bottom: 10px">${a}</div>` : ""}<div style="margin: 0;line-height:1;">${s}</div><div style="clear:both"></div></div>`, r = o.map((a) => {
98
+ const {
99
+ name: s,
100
+ seriesName: l,
101
+ marker: g,
102
+ value: d
103
+ } = t(a, o);
104
+ return {
105
+ name: s,
106
+ seriesName: l,
107
+ marker: g,
108
+ value: d
109
+ };
110
+ }), n = r[0]?.name ?? "", u = n || o.length > 1 ? "margin: 10px 0 0;line-height:1;" : "margin: 0;line-height:1;", h = r.map(({
111
+ seriesName: a,
112
+ marker: s,
113
+ value: l
114
+ }) => `<div style="${u}"><div style="margin: 0px 0 0;line-height:1;">${s}${a ? `<span style="font-size:11px;color:#FFFFFF;font-weight:400;margin-left:2px;margin-right:10px">${a}</span>` : ""}<span style="float:right;margin-left:10px;font-size:11px;color:#FFFFFF;font-weight:900">${l}</span></div></div>`);
115
+ return i(n, h.join(""));
116
+ };
117
+ }
118
+ function N(t) {
119
+ return function({
120
+ refUI: e
121
+ }) {
122
+ return [{
123
+ ...p,
124
+ modifier: () => p.modifier(e)
125
+ }, {
126
+ ...f,
127
+ modifier: async (o) => {
128
+ const i = t(o);
129
+ return f.modifier(i);
130
+ }
131
+ }];
132
+ };
133
+ }
134
+ const P = {
135
+ graph: {
136
+ /**
137
+ * Common container style for chart widget skeletons
138
+ */
139
+ container: {
140
+ display: "flex",
141
+ alignItems: "center",
142
+ justifyContent: "space-between",
143
+ flexDirection: "column",
144
+ gap: ({
145
+ spacing: t
146
+ }) => t(1),
147
+ height: ({
148
+ spacing: t
149
+ }) => t(38)
150
+ }
151
+ }
152
+ };
153
+ export {
154
+ k as a,
155
+ _ as b,
156
+ P as c,
157
+ D as d,
158
+ V as e,
159
+ m as f,
160
+ N as g,
161
+ G as h,
162
+ E as i,
163
+ I as j,
164
+ O as n,
165
+ z as s
166
+ };
167
+ //# sourceMappingURL=styles-C_8vOEep.js.map