@carto/ps-react-ui 4.3.10 → 4.4.0-chat-ui.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/chat.js +798 -0
  2. package/dist/chat.js.map +1 -0
  3. package/dist/components.js +260 -240
  4. package/dist/components.js.map +1 -1
  5. package/dist/types/chat/bubbles/chat-error-message.d.ts +2 -0
  6. package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +2 -0
  7. package/dist/types/chat/bubbles/chat-user-message.d.ts +2 -0
  8. package/dist/types/chat/bubbles/index.d.ts +4 -0
  9. package/dist/types/chat/const.d.ts +3 -0
  10. package/dist/types/chat/containers/chat-content.d.ts +2 -0
  11. package/dist/types/chat/containers/chat-footer.d.ts +2 -0
  12. package/dist/types/chat/containers/chat-header.d.ts +2 -0
  13. package/dist/types/chat/containers/chat-starter.d.ts +2 -0
  14. package/dist/types/chat/containers/index.d.ts +4 -0
  15. package/dist/types/chat/containers/styles.d.ts +101 -0
  16. package/dist/types/chat/feedback/chat-loader.d.ts +2 -0
  17. package/dist/types/chat/feedback/chat-rating-action.d.ts +2 -0
  18. package/dist/types/chat/feedback/chat-thinking.d.ts +2 -0
  19. package/dist/types/chat/feedback/chat-tools.d.ts +2 -0
  20. package/dist/types/chat/feedback/index.d.ts +5 -0
  21. package/dist/types/chat/feedback/styles.d.ts +65 -0
  22. package/dist/types/chat/index.d.ts +16 -0
  23. package/dist/types/chat/types.d.ts +99 -0
  24. package/dist/types/components/copy-button/copy-button.d.ts +2 -0
  25. package/dist/types/components/copy-button/types.d.ts +6 -0
  26. package/dist/types/components/index.d.ts +2 -0
  27. package/dist/widgets/actions.js +22 -21
  28. package/dist/widgets/actions.js.map +1 -1
  29. package/dist/widgets/bar.js +7 -6
  30. package/dist/widgets/bar.js.map +1 -1
  31. package/dist/widgets/category.js +9 -8
  32. package/dist/widgets/category.js.map +1 -1
  33. package/dist/widgets/formula.js +11 -10
  34. package/dist/widgets/formula.js.map +1 -1
  35. package/dist/widgets/histogram.js +7 -6
  36. package/dist/widgets/histogram.js.map +1 -1
  37. package/dist/widgets/markdown.js +9 -8
  38. package/dist/widgets/markdown.js.map +1 -1
  39. package/dist/widgets/pie.js +7 -6
  40. package/dist/widgets/pie.js.map +1 -1
  41. package/dist/widgets/scatterplot.js +7 -6
  42. package/dist/widgets/scatterplot.js.map +1 -1
  43. package/dist/widgets/spread.js +57 -56
  44. package/dist/widgets/spread.js.map +1 -1
  45. package/dist/widgets/table.js +67 -66
  46. package/dist/widgets/table.js.map +1 -1
  47. package/dist/widgets/timeseries.js +23 -22
  48. package/dist/widgets/timeseries.js.map +1 -1
  49. package/dist/widgets/wrapper.js +21 -20
  50. package/dist/widgets/wrapper.js.map +1 -1
  51. package/package.json +7 -3
  52. package/src/chat/bubbles/chat-agent-message.test.tsx +30 -0
  53. package/src/chat/bubbles/chat-agent-message.tsx +11 -0
  54. package/src/chat/bubbles/chat-error-message.test.tsx +40 -0
  55. package/src/chat/bubbles/chat-error-message.tsx +47 -0
  56. package/src/chat/bubbles/chat-suggestion-button.test.tsx +24 -0
  57. package/src/chat/bubbles/chat-suggestion-button.tsx +27 -0
  58. package/src/chat/bubbles/chat-user-message.test.tsx +27 -0
  59. package/src/chat/bubbles/chat-user-message.tsx +27 -0
  60. package/src/chat/bubbles/index.ts +4 -0
  61. package/src/chat/bubbles/styles.ts +106 -0
  62. package/src/chat/const.ts +3 -0
  63. package/src/chat/containers/chat-content.test.tsx +15 -0
  64. package/src/chat/containers/chat-content.tsx +32 -0
  65. package/src/chat/containers/chat-footer.test.tsx +34 -0
  66. package/src/chat/containers/chat-footer.tsx +78 -0
  67. package/src/chat/containers/chat-header.test.tsx +28 -0
  68. package/src/chat/containers/chat-header.tsx +29 -0
  69. package/src/chat/containers/chat-starter.test.tsx +32 -0
  70. package/src/chat/containers/chat-starter.tsx +75 -0
  71. package/src/chat/containers/index.ts +4 -0
  72. package/src/chat/containers/styles.ts +107 -0
  73. package/src/chat/feedback/chat-actions-container.test.tsx +64 -0
  74. package/src/chat/feedback/chat-actions-container.tsx +7 -0
  75. package/src/chat/feedback/chat-loader.test.tsx +10 -0
  76. package/src/chat/feedback/chat-loader.tsx +31 -0
  77. package/src/chat/feedback/chat-rating-action.tsx +43 -0
  78. package/src/chat/feedback/chat-thinking.test.tsx +15 -0
  79. package/src/chat/feedback/chat-thinking.tsx +23 -0
  80. package/src/chat/feedback/chat-tools.test.tsx +23 -0
  81. package/src/chat/feedback/chat-tools.tsx +54 -0
  82. package/src/chat/feedback/index.ts +5 -0
  83. package/src/chat/feedback/styles.ts +80 -0
  84. package/src/chat/index.ts +45 -0
  85. package/src/chat/types.ts +124 -0
  86. package/src/components/copy-button/copy-button.test.tsx +41 -0
  87. package/src/components/copy-button/copy-button.tsx +31 -0
  88. package/src/components/copy-button/types.ts +10 -0
  89. package/src/components/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pie.js","sources":["../../src/widgets/pie/config.ts","../../src/widgets/pie/style.ts","../../src/widgets/pie/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type { PieConfig, PieWidgetConfig, PieWidgetData } from './types'\nimport {\n buildGridConfig,\n buildLegendConfig,\n flattenObjectArrayToCSV,\n createTooltipFormatter,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function pieDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<PieWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = flattenObjectArrayToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function pieConfig(props: PieConfig): PieWidgetConfig {\n return {\n type: 'pie',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: PieConfig): EchartOptionsProps {\n const multiSeries = (data?.length ?? 0) > 1\n\n if (multiSeries) {\n return {\n xAxis: {\n type: 'value',\n show: true,\n },\n yAxis: {\n type: 'category',\n show: true,\n },\n legend: {\n show: true,\n bottom: 0,\n },\n grid: {\n bottom: parseInt(theme.spacing(4)),\n right: parseInt(theme.spacing(4)),\n },\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'bar',\n barMaxWidth: 100,\n emphasis: {\n focus: 'series',\n },\n })),\n }\n }\n\n const hasLegend = true\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...buildGridConfig(hasLegend, theme),\n left: 0,\n top: 0,\n right: 0,\n },\n xAxis: {\n show: false,\n },\n yAxis: {\n show: false,\n },\n tooltip: {\n trigger: 'item',\n formatter: createTooltipFormatter((item) => {\n const value =\n item.value &&\n typeof item.value === 'object' &&\n !Array.isArray(item.value)\n ? (Object.values(item.value) as (string | number)[])\n : []\n const index = item.encode?.value?.at(0)\n const _value = value[index ?? 0]\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const seriesName = item.seriesName ? `${item.seriesName}: ` : ''\n const name = item.name ?? ''\n\n return {\n name: seriesName,\n seriesName: name,\n marker,\n value: formattedValue,\n }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'pie',\n colorBy: 'data',\n radius: ['74%', '90%'],\n avoidLabelOverlap: true,\n selectedOffset: 0,\n bottom: parseInt(theme.spacing(4)),\n\n label: {\n show: true,\n position: 'center',\n formatter: (params) => {\n const { name } = params\n const encodeIndex = params.encode?.value?.[0]\n if (encodeIndex === undefined) {\n return ''\n }\n\n const value = Object.values(params.data ?? {}).at(encodeIndex) as\n | number\n | string\n\n const formattedValue =\n typeof value === 'number' && formatter\n ? formatter(value)\n : (value ?? '')\n\n const nameFormatted = name\n\n return `{c|${formattedValue}}\\n\\n{b|${nameFormatted}}`\n },\n rich: {\n b: {\n fontSize: 16,\n fontWeight: 'normal',\n lineHeight: 20,\n },\n c: {\n fontSize: 28,\n fontWeight: 'bold',\n lineHeight: 27,\n },\n },\n },\n emphasis: {\n disabled: true,\n },\n itemStyle: {\n borderColor: theme.palette.background.paper,\n borderWidth: 1,\n },\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: baseSkeletonStyles.graph,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst GUTTER = 32\nconst SIZE = 294 - GUTTER\nconst INNER_SIZE = SIZE - GUTTER\n\nexport function PieSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <Skeleton variant='circular' width={SIZE} height={SIZE} />\n <Skeleton\n sx={{\n position: 'absolute',\n zIndex: 1,\n }}\n variant='circular'\n width={INNER_SIZE}\n height={INNER_SIZE}\n />\n <Box\n sx={{\n position: 'absolute',\n zIndex: 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: ({ spacing }) => spacing(1),\n }}\n >\n <Skeleton height={24} width={72} />\n <Skeleton height={8} width={48} />\n </Box>\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n }}\n >\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["pieDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","pieConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","length","xAxis","show","yAxis","legend","bottom","grid","parseInt","spacing","right","series","map","_","index","datasetIndex","barMaxWidth","emphasis","focus","hasLegend","buildLegendConfig","buildGridConfig","left","top","tooltip","trigger","createTooltipFormatter","item","value","Array","isArray","Object","values","encode","at","_value","formattedValue","marker","seriesName","name","color","palette","qualitative","bold","colorBy","radius","avoidLabelOverlap","selectedOffset","label","position","params","encodeIndex","undefined","rich","b","fontSize","fontWeight","lineHeight","c","disabled","itemStyle","borderColor","background","paper","borderWidth","styles","skeleton","graph","baseSkeletonStyles","GUTTER","SIZE","INNER_SIZE","PieSkeleton","$","_c","t0","t1","Symbol","for","display","alignItems","justifyContent","Skeleton","t2","jsx","zIndex","t3","Box","jsxs","flexDirection","gap","_temp","t4","container","_temp2","height","_temp3","fill","_temp5","i","_temp4","spacing_2","spacing_1","spacing_0"],"mappings":"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"}
1
+ {"version":3,"file":"pie.js","sources":["../../src/widgets/pie/config.ts","../../src/widgets/pie/style.ts","../../src/widgets/pie/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type { PieConfig, PieWidgetConfig, PieWidgetData } from './types'\nimport {\n buildGridConfig,\n buildLegendConfig,\n flattenObjectArrayToCSV,\n createTooltipFormatter,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function pieDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<PieWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = flattenObjectArrayToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function pieConfig(props: PieConfig): PieWidgetConfig {\n return {\n type: 'pie',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: PieConfig): EchartOptionsProps {\n const multiSeries = (data?.length ?? 0) > 1\n\n if (multiSeries) {\n return {\n xAxis: {\n type: 'value',\n show: true,\n },\n yAxis: {\n type: 'category',\n show: true,\n },\n legend: {\n show: true,\n bottom: 0,\n },\n grid: {\n bottom: parseInt(theme.spacing(4)),\n right: parseInt(theme.spacing(4)),\n },\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'bar',\n barMaxWidth: 100,\n emphasis: {\n focus: 'series',\n },\n })),\n }\n }\n\n const hasLegend = true\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...buildGridConfig(hasLegend, theme),\n left: 0,\n top: 0,\n right: 0,\n },\n xAxis: {\n show: false,\n },\n yAxis: {\n show: false,\n },\n tooltip: {\n trigger: 'item',\n formatter: createTooltipFormatter((item) => {\n const value =\n item.value &&\n typeof item.value === 'object' &&\n !Array.isArray(item.value)\n ? (Object.values(item.value) as (string | number)[])\n : []\n const index = item.encode?.value?.at(0)\n const _value = value[index ?? 0]\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const seriesName = item.seriesName ? `${item.seriesName}: ` : ''\n const name = item.name ?? ''\n\n return {\n name: seriesName,\n seriesName: name,\n marker,\n value: formattedValue,\n }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'pie',\n colorBy: 'data',\n radius: ['74%', '90%'],\n avoidLabelOverlap: true,\n selectedOffset: 0,\n bottom: parseInt(theme.spacing(4)),\n\n label: {\n show: true,\n position: 'center',\n formatter: (params) => {\n const { name } = params\n const encodeIndex = params.encode?.value?.[0]\n if (encodeIndex === undefined) {\n return ''\n }\n\n const value = Object.values(params.data ?? {}).at(encodeIndex) as\n | number\n | string\n\n const formattedValue =\n typeof value === 'number' && formatter\n ? formatter(value)\n : (value ?? '')\n\n const nameFormatted = name\n\n return `{c|${formattedValue}}\\n\\n{b|${nameFormatted}}`\n },\n rich: {\n b: {\n fontSize: 16,\n fontWeight: 'normal',\n lineHeight: 20,\n },\n c: {\n fontSize: 28,\n fontWeight: 'bold',\n lineHeight: 27,\n },\n },\n },\n emphasis: {\n disabled: true,\n },\n itemStyle: {\n borderColor: theme.palette.background.paper,\n borderWidth: 1,\n },\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: baseSkeletonStyles.graph,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst GUTTER = 32\nconst SIZE = 294 - GUTTER\nconst INNER_SIZE = SIZE - GUTTER\n\nexport function PieSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <Skeleton variant='circular' width={SIZE} height={SIZE} />\n <Skeleton\n sx={{\n position: 'absolute',\n zIndex: 1,\n }}\n variant='circular'\n width={INNER_SIZE}\n height={INNER_SIZE}\n />\n <Box\n sx={{\n position: 'absolute',\n zIndex: 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: ({ spacing }) => spacing(1),\n }}\n >\n <Skeleton height={24} width={72} />\n <Skeleton height={8} width={48} />\n </Box>\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n }}\n >\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["pieDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","pieConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","length","xAxis","show","yAxis","legend","bottom","grid","parseInt","spacing","right","series","map","_","index","datasetIndex","barMaxWidth","emphasis","focus","hasLegend","buildLegendConfig","buildGridConfig","left","top","tooltip","trigger","createTooltipFormatter","item","value","Array","isArray","Object","values","encode","at","_value","formattedValue","marker","seriesName","name","color","palette","qualitative","bold","colorBy","radius","avoidLabelOverlap","selectedOffset","label","position","params","encodeIndex","undefined","rich","b","fontSize","fontWeight","lineHeight","c","disabled","itemStyle","borderColor","background","paper","borderWidth","styles","skeleton","graph","baseSkeletonStyles","GUTTER","SIZE","INNER_SIZE","PieSkeleton","$","_c","t0","t1","Symbol","for","display","alignItems","justifyContent","Skeleton","t2","jsx","zIndex","t3","Box","jsxs","flexDirection","gap","_temp","t4","container","_temp2","height","_temp3","fill","_temp5","i","_temp4","spacing_2","spacing_1","spacing_0"],"mappings":"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"}
@@ -13,10 +13,11 @@ import "react-markdown";
13
13
  import { d as c, a as f } from "../exports-Cr43OCul.js";
14
14
  import "../lasso-tool-BYbxrJ-7.js";
15
15
  import "../cjs-D4KH3azB.js";
16
+ import "@carto/ps-utils";
16
17
  import "@dnd-kit/core";
17
18
  import "@dnd-kit/sortable";
18
19
  import "@dnd-kit/utilities";
19
- function U({
20
+ function X({
20
21
  refUI: e
21
22
  }) {
22
23
  return [{
@@ -30,7 +31,7 @@ function U({
30
31
  }
31
32
  }];
32
33
  }
33
- function X(e) {
34
+ function Z(e) {
34
35
  return {
35
36
  type: "scatterplot",
36
37
  option: S(w(e), T(e))
@@ -191,7 +192,7 @@ const m = {
191
192
  left: "40%",
192
193
  top: "40%"
193
194
  }];
194
- function Z() {
195
+ function tt() {
195
196
  const e = b(2);
196
197
  let t;
197
198
  e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = C.map(F), e[0] = t) : t = e[0];
@@ -226,8 +227,8 @@ function F(e, t) {
226
227
  } }, `skeleton-point-${t}`);
227
228
  }
228
229
  export {
229
- Z as ScatterplotSkeleton,
230
- X as scatterplotConfig,
231
- U as scatterplotDownloadConfig
230
+ tt as ScatterplotSkeleton,
231
+ Z as scatterplotConfig,
232
+ X as scatterplotDownloadConfig
232
233
  };
233
234
  //# sourceMappingURL=scatterplot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scatterplot.js","sources":["../../src/widgets/scatterplot/config.ts","../../src/widgets/scatterplot/style.ts","../../src/widgets/scatterplot/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n ScatterplotConfig,\n ScatterplotWidgetConfig,\n ScatterplotWidgetData,\n} from './types'\nimport {\n scatterplotDataToCSV,\n buildLegendConfig,\n createTooltipFormatter,\n applyYAxisFormatter,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function scatterplotDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<ScatterplotWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = scatterplotDataToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function scatterplotConfig(\n props: ScatterplotConfig,\n): ScatterplotWidgetConfig {\n return {\n type: 'scatterplot',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: ScatterplotConfig): EchartOptionsProps {\n const hasLegend = data.length > 1\n\n const xAxis = {\n type: 'value' as const,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n const yAxis = {\n type: 'value' as const,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n inside: false,\n padding: [\n 0,\n 0,\n parseInt(theme.spacing(1.25)),\n parseInt(theme.spacing(3.25)),\n ],\n margin: 0,\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n align: 'right',\n verticalAlign: 'bottom',\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(1)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(10)) }),\n },\n xAxis,\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n trigger: 'item',\n // position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.encode?.y?.at(0)\n const _value = value[index ?? '']\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const name = item.seriesName ?? ''\n\n return { name, seriesName: '', marker, value: formattedValue }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'scatter',\n symbolSize: 8,\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: {\n container: {\n ...baseSkeletonStyles.graph.container,\n position: 'relative',\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n position: 'absolute',\n bottom: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst SCATTER_POINTS = [\n { left: '20%', top: '62%' },\n { left: '26%', top: '70%' },\n { left: '29%', top: '73%' },\n { left: '38%', top: '63%' },\n { left: '41%', top: '68%' },\n { left: '47%', top: '62%' },\n { left: '53%', top: '49%' },\n { left: '56%', top: '55%' },\n { left: '65%', top: '37%' },\n { left: '68%', top: '43%' },\n { left: '77%', top: '59%' },\n { left: '25%', top: '30%' },\n { left: '60%', top: '70%' },\n { left: '10%', top: '55%' },\n { left: '40%', top: '40%' },\n]\n\nexport function ScatterplotSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {SCATTER_POINTS.map((point, index) => (\n <Skeleton\n key={`skeleton-point-${index}`}\n variant='circular'\n width={12}\n height={12}\n sx={{\n position: 'absolute',\n top: point.top,\n left: point.left,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["scatterplotDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","scatterplotDataToCSV","scatterplotConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","xAxis","axisLine","show","axisTick","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","padding","parseInt","spacing","color","palette","black","splitLine","lineStyle","yAxis","inside","margin","align","verticalAlign","legend","buildLegendConfig","grid","bottom","applyYAxisFormatter","tooltip","trigger","createTooltipFormatter","item","value","index","encode","y","at","_value","formattedValue","marker","name","seriesName","Object","values","qualitative","bold","series","map","_","datasetIndex","symbolSize","styles","skeleton","graph","container","baseSkeletonStyles","position","display","alignItems","gap","height","SCATTER_POINTS","left","top","ScatterplotSkeleton","$","_c","t0","Symbol","for","_temp","t1","Box","jsx","Array","fill","_temp3","i","jsxs","_temp2","Skeleton","point","transform"],"mappings":"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"}
1
+ {"version":3,"file":"scatterplot.js","sources":["../../src/widgets/scatterplot/config.ts","../../src/widgets/scatterplot/style.ts","../../src/widgets/scatterplot/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n ScatterplotConfig,\n ScatterplotWidgetConfig,\n ScatterplotWidgetData,\n} from './types'\nimport {\n scatterplotDataToCSV,\n buildLegendConfig,\n createTooltipFormatter,\n applyYAxisFormatter,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function scatterplotDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<ScatterplotWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = scatterplotDataToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function scatterplotConfig(\n props: ScatterplotConfig,\n): ScatterplotWidgetConfig {\n return {\n type: 'scatterplot',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: ScatterplotConfig): EchartOptionsProps {\n const hasLegend = data.length > 1\n\n const xAxis = {\n type: 'value' as const,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n const yAxis = {\n type: 'value' as const,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n inside: false,\n padding: [\n 0,\n 0,\n parseInt(theme.spacing(1.25)),\n parseInt(theme.spacing(3.25)),\n ],\n margin: 0,\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n align: 'right',\n verticalAlign: 'bottom',\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(1)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(10)) }),\n },\n xAxis,\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n trigger: 'item',\n // position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.encode?.y?.at(0)\n const _value = value[index ?? '']\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const name = item.seriesName ?? ''\n\n return { name, seriesName: '', marker, value: formattedValue }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'scatter',\n symbolSize: 8,\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: {\n container: {\n ...baseSkeletonStyles.graph.container,\n position: 'relative',\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n position: 'absolute',\n bottom: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst SCATTER_POINTS = [\n { left: '20%', top: '62%' },\n { left: '26%', top: '70%' },\n { left: '29%', top: '73%' },\n { left: '38%', top: '63%' },\n { left: '41%', top: '68%' },\n { left: '47%', top: '62%' },\n { left: '53%', top: '49%' },\n { left: '56%', top: '55%' },\n { left: '65%', top: '37%' },\n { left: '68%', top: '43%' },\n { left: '77%', top: '59%' },\n { left: '25%', top: '30%' },\n { left: '60%', top: '70%' },\n { left: '10%', top: '55%' },\n { left: '40%', top: '40%' },\n]\n\nexport function ScatterplotSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {SCATTER_POINTS.map((point, index) => (\n <Skeleton\n key={`skeleton-point-${index}`}\n variant='circular'\n width={12}\n height={12}\n sx={{\n position: 'absolute',\n top: point.top,\n left: point.left,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["scatterplotDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","scatterplotDataToCSV","scatterplotConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","xAxis","axisLine","show","axisTick","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","padding","parseInt","spacing","color","palette","black","splitLine","lineStyle","yAxis","inside","margin","align","verticalAlign","legend","buildLegendConfig","grid","bottom","applyYAxisFormatter","tooltip","trigger","createTooltipFormatter","item","value","index","encode","y","at","_value","formattedValue","marker","name","seriesName","Object","values","qualitative","bold","series","map","_","datasetIndex","symbolSize","styles","skeleton","graph","container","baseSkeletonStyles","position","display","alignItems","gap","height","SCATTER_POINTS","left","top","ScatterplotSkeleton","$","_c","t0","Symbol","for","_temp","t1","Box","jsx","Array","fill","_temp3","i","jsxs","_temp2","Skeleton","point","transform"],"mappings":"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"}
@@ -12,118 +12,119 @@ import "react-markdown";
12
12
  import "html2canvas";
13
13
  import "../lasso-tool-BYbxrJ-7.js";
14
14
  import "../cjs-D4KH3azB.js";
15
+ import "@carto/ps-utils";
15
16
  import "@dnd-kit/core";
16
17
  import "@dnd-kit/sortable";
17
18
  import "@dnd-kit/utilities";
18
19
  import { d as W, a as $ } from "../exports-Cr43OCul.js";
19
- function b(t) {
20
- const e = w(2);
20
+ function b(e) {
21
+ const t = w(2);
21
22
  let i;
22
- return e[0] !== t ? (i = /* @__PURE__ */ a(y, { ...t, children: "-" }), e[0] = t, e[1] = i) : i = e[1], i;
23
+ return t[0] !== e ? (i = /* @__PURE__ */ a(y, { ...e, children: "-" }), t[0] = e, t[1] = i) : i = t[1], i;
23
24
  }
24
- const j = (t) => t.toString();
25
- function v(t) {
26
- const e = w(19);
25
+ const j = (e) => e.toString();
26
+ function v(e) {
27
+ const t = w(19);
27
28
  let i, o, r;
28
- e[0] !== t ? ({
29
+ t[0] !== e ? ({
29
30
  id: i,
30
31
  index: r,
31
32
  ...o
32
- } = t, e[0] = t, e[1] = i, e[2] = o, e[3] = r) : (i = e[1], o = e[2], r = e[3]);
33
+ } = e, t[0] = e, t[1] = i, t[2] = o, t[3] = r) : (i = t[1], o = t[2], r = t[3]);
33
34
  const n = r === void 0 ? 0 : r;
34
35
  let s;
35
- e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.min, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
36
+ t[4] !== i || t[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.min, t[4] = i, t[5] = n, t[6] = s) : s = t[6];
36
37
  const m = S(h(s));
37
38
  let c;
38
- e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
39
- const u = S(h(c)), x = S(h((f) => f.getWidget(i)?.formatter)) ?? j;
39
+ t[7] !== i || t[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, t[7] = i, t[8] = n, t[9] = c) : c = t[9];
40
+ const u = S(h(c)), p = S(h((f) => f.getWidget(i)?.formatter)) ?? j;
40
41
  let l;
41
- e[10] !== u ? (l = {
42
+ t[10] !== u ? (l = {
42
43
  color: u
43
- }, e[10] = u, e[11] = l) : l = e[11];
44
- const p = m ?? 0;
44
+ }, t[10] = u, t[11] = l) : l = t[11];
45
+ const x = m ?? 0;
45
46
  let d;
46
- e[12] !== x || e[13] !== p ? (d = x(p), e[12] = x, e[13] = p, e[14] = d) : d = e[14];
47
+ t[12] !== p || t[13] !== x ? (d = p(x), t[12] = p, t[13] = x, t[14] = d) : d = t[14];
47
48
  let g;
48
- return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
49
+ return t[15] !== o || t[16] !== l || t[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), t[15] = o, t[16] = l, t[17] = d, t[18] = g) : g = t[18], g;
49
50
  }
50
- const _ = (t) => t.toString();
51
- function B(t) {
52
- const e = w(19);
51
+ const _ = (e) => e.toString();
52
+ function B(e) {
53
+ const t = w(19);
53
54
  let i, o, r;
54
- e[0] !== t ? ({
55
+ t[0] !== e ? ({
55
56
  id: i,
56
57
  index: r,
57
58
  ...o
58
- } = t, e[0] = t, e[1] = i, e[2] = o, e[3] = r) : (i = e[1], o = e[2], r = e[3]);
59
+ } = e, t[0] = e, t[1] = i, t[2] = o, t[3] = r) : (i = t[1], o = t[2], r = t[3]);
59
60
  const n = r === void 0 ? 0 : r;
60
61
  let s;
61
- e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.max, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
62
+ t[4] !== i || t[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.max, t[4] = i, t[5] = n, t[6] = s) : s = t[6];
62
63
  const m = S(h(s));
63
64
  let c;
64
- e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
65
- const u = S(h(c)), x = S(h((f) => f.getWidget(i)?.formatter)) ?? _;
65
+ t[7] !== i || t[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, t[7] = i, t[8] = n, t[9] = c) : c = t[9];
66
+ const u = S(h(c)), p = S(h((f) => f.getWidget(i)?.formatter)) ?? _;
66
67
  let l;
67
- e[10] !== u ? (l = {
68
+ t[10] !== u ? (l = {
68
69
  color: u
69
- }, e[10] = u, e[11] = l) : l = e[11];
70
- const p = m ?? 0;
70
+ }, t[10] = u, t[11] = l) : l = t[11];
71
+ const x = m ?? 0;
71
72
  let d;
72
- e[12] !== x || e[13] !== p ? (d = x(p), e[12] = x, e[13] = p, e[14] = d) : d = e[14];
73
+ t[12] !== p || t[13] !== x ? (d = p(x), t[12] = p, t[13] = x, t[14] = d) : d = t[14];
73
74
  let g;
74
- return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
75
+ return t[15] !== o || t[16] !== l || t[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), t[15] = o, t[16] = l, t[17] = d, t[18] = g) : g = t[18], g;
75
76
  }
76
- function ie(t) {
77
- const e = w(8), i = V(t.id);
77
+ function ot(e) {
78
+ const t = w(8), i = V(e.id);
78
79
  let o;
79
- e[0] !== t.id ? (o = (s) => {
80
+ t[0] !== e.id ? (o = (s) => {
80
81
  const {
81
82
  index: m
82
83
  } = s;
83
84
  return /* @__PURE__ */ T(I, { children: [
84
- /* @__PURE__ */ a(M, { id: t.id, index: m }),
85
- /* @__PURE__ */ a(k, { id: t.id, index: m }),
86
- /* @__PURE__ */ a(v, { id: t.id, index: m }),
85
+ /* @__PURE__ */ a(M, { id: e.id, index: m }),
86
+ /* @__PURE__ */ a(k, { id: e.id, index: m }),
87
+ /* @__PURE__ */ a(v, { id: e.id, index: m }),
87
88
  /* @__PURE__ */ a(b, {}),
88
- /* @__PURE__ */ a(B, { id: t.id, index: m }),
89
- /* @__PURE__ */ a(C, { id: t.id, index: m })
89
+ /* @__PURE__ */ a(B, { id: e.id, index: m }),
90
+ /* @__PURE__ */ a(C, { id: e.id, index: m })
90
91
  ] });
91
- }, e[0] = t.id, e[1] = o) : o = e[1];
92
+ }, t[0] = e.id, t[1] = o) : o = t[1];
92
93
  let r;
93
- e[2] !== t.id || e[3] !== o ? (r = /* @__PURE__ */ a(R, { id: t.id, children: o }), e[2] = t.id, e[3] = o, e[4] = r) : r = e[4];
94
+ t[2] !== e.id || t[3] !== o ? (r = /* @__PURE__ */ a(R, { id: e.id, children: o }), t[2] = e.id, t[3] = o, t[4] = r) : r = t[4];
94
95
  let n;
95
- return e[5] !== i || e[6] !== r ? (n = /* @__PURE__ */ a(P, { ref: i, children: r }), e[5] = i, e[6] = r, e[7] = n) : n = e[7], n;
96
+ return t[5] !== i || t[6] !== r ? (n = /* @__PURE__ */ a(P, { ref: i, children: r }), t[5] = i, t[6] = r, t[7] = n) : n = t[7], n;
96
97
  }
97
98
  const D = {
98
99
  row: {
99
100
  display: "flex",
100
101
  alignItems: "center",
101
- gap: (t) => t.spacing(0.25),
102
+ gap: (e) => e.spacing(0.25),
102
103
  "& + &": {
103
- marginTop: (t) => t.spacing(1)
104
+ marginTop: (e) => e.spacing(1)
104
105
  }
105
106
  }
106
107
  };
107
- function oe() {
108
- const t = w(1);
109
- let e;
110
- return t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ a(P, { sx: D.row, "aria-label": "Spread skeleton", children: /* @__PURE__ */ a(F, { width: 120, height: 32 }) }), t[0] = e) : e = t[0], e;
108
+ function rt() {
109
+ const e = w(1);
110
+ let t;
111
+ return e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ a(P, { sx: D.row, "aria-label": "Spread skeleton", children: /* @__PURE__ */ a(F, { width: 120, height: 32 }) }), e[0] = t) : t = e[0], t;
111
112
  }
112
- function re({
113
- refUI: t
113
+ function nt({
114
+ refUI: e
114
115
  }) {
115
116
  return [{
116
117
  ...W,
117
- modifier: () => W.modifier(t)
118
+ modifier: () => W.modifier(e)
118
119
  }, {
119
120
  ...$,
120
- modifier: async (e) => {
121
- const i = e.map((o) => [o.min, o.max]);
121
+ modifier: async (t) => {
122
+ const i = t.map((o) => [o.min, o.max]);
122
123
  return $.modifier([["Min", "Max"], ...i]);
123
124
  }
124
125
  }];
125
126
  }
126
- function ne() {
127
+ function lt() {
127
128
  return {
128
129
  series: []
129
130
  };
@@ -136,10 +137,10 @@ export {
136
137
  R as Row,
137
138
  b as Separator,
138
139
  M as Series,
139
- oe as SpreadSkeleton,
140
- ie as SpreadUI,
140
+ rt as SpreadSkeleton,
141
+ ot as SpreadUI,
141
142
  C as Suffix,
142
- ne as spreadConfig,
143
- re as spreadDownloadConfig
143
+ lt as spreadConfig,
144
+ nt as spreadDownloadConfig
144
145
  };
145
146
  //# sourceMappingURL=spread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const min = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.min,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const max = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.max,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\nexport function SpreadUI(props: SpreadUIProps) {\n const ref = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","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(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","defaultFormatter","value","toString","MinValue","id","t1","index","undefined","t2","state","getWidget","data","min","useWidgetStore","useShallow","t3","state_0","color","formatter","state_1","t4","t5","t6","t7","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}
1
+ {"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const min = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.min,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const max = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.max,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\nexport function SpreadUI(props: SpreadUIProps) {\n const ref = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","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(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","defaultFormatter","value","toString","MinValue","id","t1","index","undefined","t2","state","getWidget","data","min","useWidgetStore","useShallow","t3","state_0","color","formatter","state_1","t4","t5","t6","t7","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}