@carto/ps-react-ui 4.3.6 → 4.3.8

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 (117) hide show
  1. package/dist/components.js +123 -123
  2. package/dist/components.js.map +1 -1
  3. package/dist/error-CEkRPccv.js +39 -0
  4. package/dist/error-CEkRPccv.js.map +1 -0
  5. package/dist/{lasso-tool-BctzdzBu.js → lasso-tool-jl4YK02H.js} +19 -19
  6. package/dist/lasso-tool-jl4YK02H.js.map +1 -0
  7. package/dist/no-data-hR3KcJ-_.js +60 -0
  8. package/dist/no-data-hR3KcJ-_.js.map +1 -0
  9. package/dist/{row-D3uVFImu.js → row-BKmVAUN5.js} +2 -2
  10. package/dist/{row-D3uVFImu.js.map → row-BKmVAUN5.js.map} +1 -1
  11. package/dist/{series-BAImrSBo.js → series-D1pynfeh.js} +3 -3
  12. package/dist/{series-BAImrSBo.js.map → series-D1pynfeh.js.map} +1 -1
  13. package/dist/{styles-CCZnY17y.js → styles-DrPyd0y5.js} +28 -22
  14. package/dist/styles-DrPyd0y5.js.map +1 -0
  15. package/dist/types/components/lasso-tool/types.d.ts +1 -1
  16. package/dist/types/widgets/_shared/chart-config/index.d.ts +1 -1
  17. package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +7 -0
  18. package/dist/types/widgets/_shared/chart-config/option-builders.test.d.ts +1 -0
  19. package/dist/types/widgets/actions/change-column/change-column.d.ts +4 -0
  20. package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
  21. package/dist/types/widgets/actions/fullscreen/types.d.ts +2 -1
  22. package/dist/types/widgets/actions/index.d.ts +1 -1
  23. package/dist/types/widgets/actions/lock-selection/types.d.ts +7 -7
  24. package/dist/types/widgets/actions/relative-data/types.d.ts +1 -1
  25. package/dist/types/widgets/echart/types.d.ts +0 -4
  26. package/dist/types/widgets/echart/utils.d.ts +2 -1
  27. package/dist/types/widgets/error/error.d.ts +1 -1
  28. package/dist/types/widgets/error/types.d.ts +8 -0
  29. package/dist/types/widgets/loader/loader.d.ts +1 -1
  30. package/dist/types/widgets/loader/types.d.ts +1 -1
  31. package/dist/types/widgets/stores/types.d.ts +1 -1
  32. package/dist/{use-widget-ref-B8x4sHIj.js → use-widget-ref-P-2i0MJG.js} +2 -2
  33. package/dist/{use-widget-ref-B8x4sHIj.js.map → use-widget-ref-P-2i0MJG.js.map} +1 -1
  34. package/dist/{utils-D3-eQyDR.js → utils-idmvq0Oa.js} +17 -16
  35. package/dist/utils-idmvq0Oa.js.map +1 -0
  36. package/dist/{widget-store-Dn0Bnc4h.js → widget-store-CzDt8oSK.js} +31 -46
  37. package/dist/widget-store-CzDt8oSK.js.map +1 -0
  38. package/dist/widgets/actions.js +714 -697
  39. package/dist/widgets/actions.js.map +1 -1
  40. package/dist/widgets/bar.js +67 -63
  41. package/dist/widgets/bar.js.map +1 -1
  42. package/dist/widgets/category.js +250 -241
  43. package/dist/widgets/category.js.map +1 -1
  44. package/dist/widgets/echart.js +93 -100
  45. package/dist/widgets/echart.js.map +1 -1
  46. package/dist/widgets/error.js +1 -1
  47. package/dist/widgets/formula.js +64 -72
  48. package/dist/widgets/formula.js.map +1 -1
  49. package/dist/widgets/histogram.js +75 -73
  50. package/dist/widgets/histogram.js.map +1 -1
  51. package/dist/widgets/loader.js +58 -49
  52. package/dist/widgets/loader.js.map +1 -1
  53. package/dist/widgets/markdown.js +2 -2
  54. package/dist/widgets/no-data.js +1 -1
  55. package/dist/widgets/pie.js +4 -4
  56. package/dist/widgets/range.js +97 -105
  57. package/dist/widgets/range.js.map +1 -1
  58. package/dist/widgets/scatterplot.js +8 -8
  59. package/dist/widgets/skeleton-loader.js +1 -1
  60. package/dist/widgets/spread.js +84 -100
  61. package/dist/widgets/spread.js.map +1 -1
  62. package/dist/widgets/stores.js +1 -1
  63. package/dist/widgets/table.js +493 -485
  64. package/dist/widgets/table.js.map +1 -1
  65. package/dist/widgets/timeseries.js +4 -4
  66. package/dist/widgets/wrapper.js +156 -156
  67. package/dist/widgets/wrapper.js.map +1 -1
  68. package/dist/widgets.js +4 -4
  69. package/package.json +1 -1
  70. package/src/components/lasso-tool/lasso-tool-inline.tsx +19 -17
  71. package/src/components/lasso-tool/lasso-tool.tsx +22 -20
  72. package/src/components/lasso-tool/types.ts +4 -3
  73. package/src/widgets/_shared/chart-config/index.ts +1 -0
  74. package/src/widgets/_shared/chart-config/option-builders.test.ts +40 -0
  75. package/src/widgets/_shared/chart-config/option-builders.ts +12 -0
  76. package/src/widgets/actions/change-column/change-column.test.tsx +129 -2
  77. package/src/widgets/actions/change-column/change-column.tsx +79 -2
  78. package/src/widgets/actions/fullscreen/fullscreen.tsx +8 -8
  79. package/src/widgets/actions/fullscreen/types.ts +6 -1
  80. package/src/widgets/actions/index.ts +4 -1
  81. package/src/widgets/actions/lock-selection/lock-selection.test.tsx +28 -30
  82. package/src/widgets/actions/lock-selection/types.ts +8 -8
  83. package/src/widgets/actions/relative-data/relative-data.test.tsx +13 -13
  84. package/src/widgets/actions/relative-data/types.ts +1 -1
  85. package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +19 -9
  86. package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +113 -95
  87. package/src/widgets/bar/config.ts +37 -28
  88. package/src/widgets/category/category-ui.tsx +25 -22
  89. package/src/widgets/echart/echart-ui.test.tsx +3 -18
  90. package/src/widgets/echart/echart-ui.tsx +4 -22
  91. package/src/widgets/echart/echart.test.tsx +9 -25
  92. package/src/widgets/echart/echart.tsx +36 -29
  93. package/src/widgets/echart/types.ts +0 -4
  94. package/src/widgets/echart/utils.ts +3 -1
  95. package/src/widgets/error/error.tsx +17 -14
  96. package/src/widgets/error/types.ts +10 -0
  97. package/src/widgets/formula/components/value.tsx +13 -13
  98. package/src/widgets/histogram/config.ts +36 -29
  99. package/src/widgets/loader/loader.tsx +28 -25
  100. package/src/widgets/loader/types.ts +3 -1
  101. package/src/widgets/no-data/no-data.tsx +8 -11
  102. package/src/widgets/range/components/range-item.tsx +9 -13
  103. package/src/widgets/spread/components/max-value.tsx +13 -13
  104. package/src/widgets/spread/components/min-value.tsx +13 -13
  105. package/src/widgets/stores/types.ts +1 -4
  106. package/src/widgets/stores/widget-store.ts +1 -27
  107. package/src/widgets/table/hooks/use-pagination.ts +44 -35
  108. package/src/widgets/table/hooks/use-sort.ts +25 -23
  109. package/src/widgets/wrapper/wrapper-ui.tsx +16 -17
  110. package/dist/error-piB8FwYO.js +0 -38
  111. package/dist/error-piB8FwYO.js.map +0 -1
  112. package/dist/lasso-tool-BctzdzBu.js.map +0 -1
  113. package/dist/no-data-jdlbMef0.js +0 -61
  114. package/dist/no-data-jdlbMef0.js.map +0 -1
  115. package/dist/styles-CCZnY17y.js.map +0 -1
  116. package/dist/utils-D3-eQyDR.js.map +0 -1
  117. package/dist/widget-store-Dn0Bnc4h.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { jsxs as p, jsx as a } from "react/jsx-runtime";
1
+ import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
2
  import { c as b } from "react/compiler-runtime";
3
3
  import "react";
4
4
  import "echarts";
5
- import "../widget-store-Dn0Bnc4h.js";
5
+ import "../widget-store-CzDt8oSK.js";
6
6
  import "zustand/shallow";
7
7
  import { g as k } from "../options-D9wflre6.js";
8
- import { m as w } from "../utils-D3-eQyDR.js";
9
- import { f as v, c as _, a as S, b as L, d as C, e as A, g as T } from "../styles-CCZnY17y.js";
8
+ import { m as w } from "../utils-idmvq0Oa.js";
9
+ import { f as _, c as v, a as S, n as L, b as C, d as N, e as T } from "../styles-DrPyd0y5.js";
10
10
  import { Box as s, Skeleton as o } from "@mui/material";
11
11
  import "@mui/icons-material";
12
12
  import "react-markdown";
13
- import { d as g, a as f } from "../exports-Cr43OCul.js";
14
- import "../lasso-tool-BctzdzBu.js";
13
+ import { d as f, a as u } from "../exports-Cr43OCul.js";
14
+ import "../lasso-tool-jl4YK02H.js";
15
15
  import "../cjs-D4KH3azB.js";
16
16
  import "@dnd-kit/core";
17
17
  import "@dnd-kit/sortable";
@@ -20,13 +20,13 @@ function Z({
20
20
  refUI: e
21
21
  }) {
22
22
  return [{
23
- ...g,
24
- modifier: () => g.modifier(e)
25
- }, {
26
23
  ...f,
24
+ modifier: () => f.modifier(e)
25
+ }, {
26
+ ...u,
27
27
  modifier: async (t) => {
28
- const i = v(t);
29
- return f.modifier(i);
28
+ const n = _(t);
29
+ return u.modifier(n);
30
30
  }
31
31
  }];
32
32
  }
@@ -39,37 +39,13 @@ function ee(e) {
39
39
  function I({
40
40
  data: e = [],
41
41
  theme: t,
42
- formatter: i
42
+ formatter: n
43
43
  }) {
44
- const m = (e?.length ?? 0) > 1, d = {
45
- type: "value",
46
- splitNumber: 1,
47
- axisLabel: {
48
- fontSize: t.typography.overlineDelicate.fontSize,
49
- fontFamily: t.typography.overlineDelicate.fontFamily,
50
- margin: parseInt(t.spacing(1)),
51
- show: !0,
52
- showMaxLabel: !0,
53
- showMinLabel: !1,
54
- verticalAlign: "bottom",
55
- inside: !0
56
- },
57
- axisLine: {
58
- show: !1
59
- },
60
- axisTick: {
61
- show: !1
62
- },
63
- splitLine: {
64
- show: !0,
65
- lineStyle: {
66
- color: t.palette.black[4]
67
- }
68
- }
69
- };
44
+ const g = (e?.length ?? 0) > 1;
45
+ let l = 1;
70
46
  return {
71
- legend: A(m),
72
- grid: C(m, t),
47
+ legend: N(g),
48
+ grid: C(g, t),
73
49
  xAxis: {
74
50
  type: "category",
75
51
  axisLine: {
@@ -83,21 +59,49 @@ function I({
83
59
  margin: 0
84
60
  }
85
61
  },
86
- yAxis: L(d, i),
62
+ yAxis: {
63
+ type: "value",
64
+ min: 0,
65
+ max: (i) => (l = i.max <= 0 ? 1 : L(i.max), l),
66
+ splitNumber: 1,
67
+ axisLabel: {
68
+ fontSize: t.typography.overlineDelicate.fontSize,
69
+ fontFamily: t.typography.overlineDelicate.fontFamily,
70
+ margin: parseInt(t.spacing(1)),
71
+ show: !0,
72
+ showMaxLabel: !0,
73
+ showMinLabel: !1,
74
+ verticalAlign: "bottom",
75
+ inside: !0,
76
+ formatter: (i) => i !== l ? "" : n ? n(i) : String(i)
77
+ },
78
+ axisLine: {
79
+ show: !1
80
+ },
81
+ axisTick: {
82
+ show: !1
83
+ },
84
+ splitLine: {
85
+ show: !0,
86
+ lineStyle: {
87
+ color: t.palette.black[4]
88
+ }
89
+ }
90
+ },
87
91
  tooltip: {
88
92
  position: S(t),
89
- formatter: _((n) => {
90
- const l = n.value, u = n.dimensionNames?.[n.encode?.y?.at(0) ?? 1], c = l[u ?? ""], h = typeof c == "number" && i ? i(c) : c ?? "", x = typeof n.marker == "string" ? n.marker : "", y = n.seriesName ? `${n.seriesName}: ` : "";
93
+ formatter: v((i) => {
94
+ const c = i.value, d = i.dimensionNames?.[i.encode?.y?.at(0) ?? 1], m = c[d ?? ""], h = typeof m == "number" && n ? n(m) : m ?? "", x = typeof i.marker == "string" ? i.marker : "", y = i.seriesName ? `${i.seriesName}: ` : "";
91
95
  return {
92
- name: n.name ?? "",
96
+ name: i.name ?? "",
93
97
  seriesName: y,
94
98
  marker: x,
95
99
  value: h
96
100
  };
97
101
  })
98
102
  },
99
- series: e.map((n, l) => ({
100
- datasetIndex: l,
103
+ series: e.map((i, c) => ({
104
+ datasetIndex: c,
101
105
  type: "bar",
102
106
  barMaxWidth: 100,
103
107
  emphasis: {
@@ -106,7 +110,7 @@ function I({
106
110
  }))
107
111
  };
108
112
  }
109
- const r = {
113
+ const a = {
110
114
  skeleton: {
111
115
  item: {
112
116
  flex: 1,
@@ -134,32 +138,32 @@ const r = {
134
138
  function te() {
135
139
  const e = b(2);
136
140
  let t;
137
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ p(s, { sx: r.skeleton.graph.grid, children: [
138
- /* @__PURE__ */ a(o, { sx: r.skeleton.item, variant: "rectangular", height: "20%" }),
139
- /* @__PURE__ */ a(o, { sx: r.skeleton.item, variant: "rectangular", height: "40%" }),
140
- /* @__PURE__ */ a(o, { sx: r.skeleton.item, variant: "rectangular", height: "60%" }),
141
- /* @__PURE__ */ a(o, { sx: r.skeleton.item, variant: "rectangular", height: "20%" }),
142
- /* @__PURE__ */ a(o, { sx: r.skeleton.item, variant: "rectangular", height: "80%" })
141
+ e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ p(s, { sx: a.skeleton.graph.grid, children: [
142
+ /* @__PURE__ */ r(o, { sx: a.skeleton.item, variant: "rectangular", height: "20%" }),
143
+ /* @__PURE__ */ r(o, { sx: a.skeleton.item, variant: "rectangular", height: "40%" }),
144
+ /* @__PURE__ */ r(o, { sx: a.skeleton.item, variant: "rectangular", height: "60%" }),
145
+ /* @__PURE__ */ r(o, { sx: a.skeleton.item, variant: "rectangular", height: "20%" }),
146
+ /* @__PURE__ */ r(o, { sx: a.skeleton.item, variant: "rectangular", height: "80%" })
143
147
  ] }), e[0] = t) : t = e[0];
144
- let i;
145
- return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ p(s, { sx: r.skeleton.graph.container, children: [
148
+ let n;
149
+ return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (n = /* @__PURE__ */ p(s, { sx: a.skeleton.graph.container, children: [
146
150
  t,
147
- /* @__PURE__ */ a(s, { sx: {
151
+ /* @__PURE__ */ r(s, { sx: {
148
152
  display: "flex",
149
153
  alignItems: "center",
150
154
  gap: D,
151
- height: F
152
- }, children: Array(2).fill(0).map(N) })
153
- ] }), e[1] = i) : i = e[1], i;
155
+ height: M
156
+ }, children: Array(2).fill(0).map(A) })
157
+ ] }), e[1] = n) : n = e[1], n;
154
158
  }
155
- function N(e, t) {
159
+ function A(e, t) {
156
160
  return /* @__PURE__ */ p(s, { sx: {
157
161
  display: "flex",
158
162
  alignItems: "center",
159
163
  gap: j
160
164
  }, children: [
161
- /* @__PURE__ */ a(o, { variant: "circular", width: 8, height: 8 }),
162
- /* @__PURE__ */ a(o, { width: 48, height: 8 })
165
+ /* @__PURE__ */ r(o, { variant: "circular", width: 8, height: 8 }),
166
+ /* @__PURE__ */ r(o, { width: 48, height: 8 })
163
167
  ] }, t);
164
168
  }
165
169
  function j(e) {
@@ -168,7 +172,7 @@ function j(e) {
168
172
  } = e;
169
173
  return t(1.5);
170
174
  }
171
- function F(e) {
175
+ function M(e) {
172
176
  const {
173
177
  spacing: t
174
178
  } = e;
@@ -1 +1 @@
1
- {"version":3,"file":"bar.js","sources":["../../src/widgets/bar/config.ts","../../src/widgets/bar/style.ts","../../src/widgets/bar/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type { BarConfig, BarWidgetConfig, BarWidgetData } from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\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 barDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<BarWidgetData>[] {\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 barConfig(props: BarConfig): BarWidgetConfig {\n return {\n type: 'bar',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: BarConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n\n const yAxis = {\n type: 'value' as const,\n splitNumber: 1,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n margin: parseInt(theme.spacing(1)),\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom' as const,\n inside: true,\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [parseInt(theme.spacing(0.5)), 0, 0, 0],\n margin: 0,\n },\n },\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.dimensionNames?.[item.encode?.y?.at(0) ?? 1]\n const _value = value[index ?? '']\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 { name, seriesName, marker, value: formattedValue }\n }),\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 } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n item: {\n flex: 1,\n maxWidth: ({ spacing }) => spacing(12),\n\n '& + &': {\n marginLeft: ({ spacing }) => spacing(1),\n },\n },\n graph: {\n ...baseSkeletonStyles.graph,\n grid: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: '1 1 auto',\n alignItems: 'flex-end',\n width: '100%',\n },\n },\n mask: {\n gray: {\n backgroundColor: ({ palette }) => palette.grey[100],\n },\n white: {\n backgroundColor: ({ palette }) => palette.common.white,\n },\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function BarSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box sx={styles.skeleton.graph.grid}>\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='40%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='60%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='80%'\n />\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={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":["barDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","barConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","yAxis","splitNumber","axisLabel","fontSize","typography","overlineDelicate","fontFamily","margin","parseInt","spacing","show","showMaxLabel","showMinLabel","verticalAlign","inside","axisLine","axisTick","splitLine","lineStyle","color","palette","black","legend","buildLegendConfig","grid","buildGridConfig","xAxis","padding","applyYAxisFormatter","tooltip","position","createTooltipPositioner","createTooltipFormatter","item","value","index","dimensionNames","encode","y","at","_value","formattedValue","marker","seriesName","name","series","map","_","datasetIndex","barMaxWidth","emphasis","focus","styles","skeleton","flex","maxWidth","marginLeft","graph","baseSkeletonStyles","display","justifyContent","alignItems","width","BarSkeleton","$","_c","t0","Symbol","for","Box","jsx","Skeleton","t1","container","gap","_temp","height","_temp2","Array","fill","_temp4","i","jsxs","_temp3","spacing_1","spacing_0"],"mappings":"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"}
1
+ {"version":3,"file":"bar.js","sources":["../../src/widgets/bar/config.ts","../../src/widgets/bar/style.ts","../../src/widgets/bar/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type { BarConfig, BarWidgetConfig, BarWidgetData } from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n createTooltipFormatter,\n niceNum,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function barDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<BarWidgetData>[] {\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 barConfig(props: BarConfig): BarWidgetConfig {\n return {\n type: 'bar',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: BarConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n\n let niceMax = 1\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [parseInt(theme.spacing(0.5)), 0, 0, 0],\n margin: 0,\n },\n },\n yAxis: {\n type: 'value' as const,\n min: 0,\n max: (extent: { min: number; max: number }) => {\n niceMax = extent.max <= 0 ? 1 : niceNum(extent.max)\n return niceMax\n },\n splitNumber: 1,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n margin: parseInt(theme.spacing(1)),\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom' as const,\n inside: true,\n formatter: (value: number) => {\n if (value !== niceMax) return ''\n return formatter ? formatter(value) : String(value)\n },\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n tooltip: {\n position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.dimensionNames?.[item.encode?.y?.at(0) ?? 1]\n const _value = value[index ?? '']\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 { name, seriesName, marker, value: formattedValue }\n }),\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 } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n item: {\n flex: 1,\n maxWidth: ({ spacing }) => spacing(12),\n\n '& + &': {\n marginLeft: ({ spacing }) => spacing(1),\n },\n },\n graph: {\n ...baseSkeletonStyles.graph,\n grid: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: '1 1 auto',\n alignItems: 'flex-end',\n width: '100%',\n },\n },\n mask: {\n gray: {\n backgroundColor: ({ palette }) => palette.grey[100],\n },\n white: {\n backgroundColor: ({ palette }) => palette.common.white,\n },\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function BarSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box sx={styles.skeleton.graph.grid}>\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='40%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='60%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.item}\n variant='rectangular'\n height='80%'\n />\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={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":["barDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","barConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","niceMax","legend","buildLegendConfig","grid","buildGridConfig","xAxis","axisLine","show","axisTick","axisLabel","padding","parseInt","spacing","margin","yAxis","min","max","extent","niceNum","splitNumber","fontSize","typography","overlineDelicate","fontFamily","showMaxLabel","showMinLabel","verticalAlign","inside","value","String","splitLine","lineStyle","color","palette","black","tooltip","position","createTooltipPositioner","createTooltipFormatter","item","index","dimensionNames","encode","y","at","_value","formattedValue","marker","seriesName","name","series","map","_","datasetIndex","barMaxWidth","emphasis","focus","styles","skeleton","flex","maxWidth","marginLeft","graph","baseSkeletonStyles","display","justifyContent","alignItems","width","BarSkeleton","$","_c","t0","Symbol","for","Box","jsx","Skeleton","t1","container","gap","_temp","height","_temp2","Array","fill","_temp4","i","jsxs","_temp3","spacing_1","spacing_0"],"mappings":"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"}