@carto/ps-react-ui 5.0.0-widgets.4 → 5.0.0-widgets.6

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 (62) hide show
  1. package/dist/{error-DGzuzmn1.js → error-G3sy6lw3.js} +2 -2
  2. package/dist/{error-DGzuzmn1.js.map → error-G3sy6lw3.js.map} +1 -1
  3. package/dist/{no-data-BBAoT1vK.js → no-data-DfkC_Kc_.js} +2 -2
  4. package/dist/{no-data-BBAoT1vK.js.map → no-data-DfkC_Kc_.js.map} +1 -1
  5. package/dist/note-Clng2ej6.js +124 -0
  6. package/dist/note-Clng2ej6.js.map +1 -0
  7. package/dist/{row-C_m1ovHv.js → row-B9hTUitn.js} +2 -2
  8. package/dist/{row-C_m1ovHv.js.map → row-B9hTUitn.js.map} +1 -1
  9. package/dist/{series-6xp-KQ0S.js → series-DojKkd_o.js} +3 -3
  10. package/dist/{series-6xp-KQ0S.js.map → series-DojKkd_o.js.map} +1 -1
  11. package/dist/types/widgets/category/config.d.ts +1 -0
  12. package/dist/types/widgets/category/types.d.ts +1 -0
  13. package/dist/types/widgets/echart/types.d.ts +1 -0
  14. package/dist/types/widgets/index.d.ts +2 -0
  15. package/dist/types/widgets/stores/types.d.ts +0 -75
  16. package/dist/types/widgets/subheader/index.d.ts +2 -2
  17. package/dist/types/widgets/subheader/subheader.d.ts +2 -2
  18. package/dist/types/widgets/subheader/types.d.ts +1 -1
  19. package/dist/types/widgets/table/hooks/use-pagination.d.ts +1 -7
  20. package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -2
  21. package/dist/types/widgets/table/hooks/use-sort.d.ts +1 -7
  22. package/dist/types/widgets/table/types.d.ts +16 -5
  23. package/dist/widget-store-Dd7_sWZT.js +132 -0
  24. package/dist/widget-store-Dd7_sWZT.js.map +1 -0
  25. package/dist/widgets/actions.js +23 -22
  26. package/dist/widgets/actions.js.map +1 -1
  27. package/dist/widgets/bar.js +8 -7
  28. package/dist/widgets/bar.js.map +1 -1
  29. package/dist/widgets/category.js +135 -128
  30. package/dist/widgets/category.js.map +1 -1
  31. package/dist/widgets/echart.js +1 -1
  32. package/dist/widgets/error.js +1 -1
  33. package/dist/widgets/formula.js +19 -18
  34. package/dist/widgets/formula.js.map +1 -1
  35. package/dist/widgets/histogram.js +54 -53
  36. package/dist/widgets/histogram.js.map +1 -1
  37. package/dist/widgets/markdown.js +1 -1
  38. package/dist/widgets/no-data.js +1 -1
  39. package/dist/widgets/note.js +2 -121
  40. package/dist/widgets/note.js.map +1 -1
  41. package/dist/widgets/pie.js +8 -7
  42. package/dist/widgets/pie.js.map +1 -1
  43. package/dist/widgets/range.js +2 -2
  44. package/dist/widgets/root.js +1 -1
  45. package/dist/widgets/scatterplot.js +8 -7
  46. package/dist/widgets/scatterplot.js.map +1 -1
  47. package/dist/widgets/skeleton-loader.js +1 -1
  48. package/dist/widgets/spread.js +20 -19
  49. package/dist/widgets/spread.js.map +1 -1
  50. package/dist/widgets/stores.js +1 -1
  51. package/dist/widgets/subheader.js +5 -5
  52. package/dist/widgets/subheader.js.map +1 -1
  53. package/dist/widgets/table.js +499 -488
  54. package/dist/widgets/table.js.map +1 -1
  55. package/dist/widgets/timeseries.js +8 -7
  56. package/dist/widgets/timeseries.js.map +1 -1
  57. package/dist/widgets/wrapper.js +1 -1
  58. package/dist/widgets.js +6 -4
  59. package/dist/widgets.js.map +1 -1
  60. package/package.json +1 -1
  61. package/dist/widget-store-DNyVElxd.js +0 -190
  62. package/dist/widget-store-DNyVElxd.js.map +0 -1
@@ -1,12 +1,13 @@
1
- import { I as F, S as D, P, a as W } from "../series-6xp-KQ0S.js";
1
+ import { I as F, S as D, P, a as W } from "../series-DojKkd_o.js";
2
2
  import { jsx as l, jsxs as k, Fragment as C } from "react/jsx-runtime";
3
3
  import { c as S } from "react/compiler-runtime";
4
- import { u as y } from "../widget-store-DNyVElxd.js";
4
+ import { u as y } from "../widget-store-Dd7_sWZT.js";
5
5
  import { useShallow as R } from "zustand/shallow";
6
- import { R as T, s as _ } from "../row-C_m1ovHv.js";
7
- import { Box as I, Skeleton as $ } from "@mui/material";
6
+ import { R as T, s as _ } from "../row-B9hTUitn.js";
7
+ import { Box as p, Skeleton as $ } from "@mui/material";
8
8
  import "@mui/icons-material";
9
9
  import { useRef as b, useEffect as j } from "react";
10
+ import "react-markdown";
10
11
  import { d as v, a as w } from "../exports-Cr43OCul.js";
11
12
  import "../lasso-tool-CYn3ivf-.js";
12
13
  import "../cjs-D9ro6BXv.js";
@@ -24,8 +25,8 @@ function U(e) {
24
25
  } = e, t[0] = e, t[1] = o, t[2] = i, t[3] = n) : (o = t[1], i = t[2], n = t[3]);
25
26
  const f = n === void 0 ? 0 : n;
26
27
  let r;
27
- t[4] !== o || t[5] !== f ? (r = (p) => {
28
- const h = p.getWidget(o);
28
+ t[4] !== o || t[5] !== f ? (r = (I) => {
29
+ const h = I.getWidget(o);
29
30
  return {
30
31
  value: h?.data?.[f]?.value,
31
32
  color: h?.data?.[f]?.color,
@@ -47,7 +48,7 @@ function U(e) {
47
48
  let c;
48
49
  return t[12] !== i || t[13] !== s || t[14] !== m ? (c = /* @__PURE__ */ l(F, { TypographyProps: s, ...i, children: m }), t[12] = i, t[13] = s, t[14] = m, t[15] = c) : c = t[15], c;
49
50
  }
50
- function tt({
51
+ function et({
51
52
  refUI: e
52
53
  }) {
53
54
  return [{
@@ -61,12 +62,12 @@ function tt({
61
62
  }
62
63
  }];
63
64
  }
64
- function et() {
65
+ function it() {
65
66
  return {
66
67
  series: []
67
68
  };
68
69
  }
69
- function it(e) {
70
+ function ot(e) {
70
71
  const t = S(9), o = b(null), i = y(V);
71
72
  let n, f;
72
73
  t[0] !== e.id || t[1] !== i ? (n = () => {
@@ -87,15 +88,15 @@ function it(e) {
87
88
  ] });
88
89
  }, t[4] = e.id, t[5] = r) : r = t[5];
89
90
  let d;
90
- return t[6] !== e.id || t[7] !== r ? (d = /* @__PURE__ */ l(I, { ref: o, children: /* @__PURE__ */ l(T, { id: e.id, children: r }) }), t[6] = e.id, t[7] = r, t[8] = d) : d = t[8], d;
91
+ return t[6] !== e.id || t[7] !== r ? (d = /* @__PURE__ */ l(p, { ref: o, children: /* @__PURE__ */ l(T, { id: e.id, children: r }) }), t[6] = e.id, t[7] = r, t[8] = d) : d = t[8], d;
91
92
  }
92
93
  function V(e) {
93
94
  return e.setWidget;
94
95
  }
95
- function ot() {
96
+ function rt() {
96
97
  const e = S(1);
97
98
  let t;
98
- return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ l(I, { sx: _.row, "aria-label": "Formula skeleton", children: /* @__PURE__ */ l($, { width: 120, height: 32 }) }), e[0] = t) : t = e[0], t;
99
+ return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ l(p, { sx: _.row, "aria-label": "Formula skeleton", children: /* @__PURE__ */ l($, { width: 120, height: 32 }) }), e[0] = t) : t = e[0], t;
99
100
  }
100
101
  function B(e) {
101
102
  return {
@@ -104,21 +105,21 @@ function B(e) {
104
105
  suffix: typeof e.suffix == "string" ? e.suffix : void 0
105
106
  };
106
107
  }
107
- function rt(e) {
108
+ function nt(e) {
108
109
  return e?.map(B);
109
110
  }
110
111
  export {
111
- ot as FormulaSkeleton,
112
- it as FormulaUI,
112
+ rt as FormulaSkeleton,
113
+ ot as FormulaUI,
113
114
  F as Item,
114
115
  P as Prefix,
115
116
  T as Row,
116
117
  D as Series,
117
118
  W as Suffix,
118
119
  U as Value,
119
- et as formulaConfig,
120
- tt as formulaDownloadConfig,
120
+ it as formulaConfig,
121
+ et as formulaDownloadConfig,
121
122
  B as sanitizeDataItem,
122
- rt as sanitizeDataItems
123
+ nt as sanitizeDataItems
123
124
  };
124
125
  //# sourceMappingURL=formula.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formula.js","sources":["../../src/widgets/formula/components/value.tsx","../../src/widgets/formula/config.ts","../../src/widgets/formula/formula-ui.tsx","../../src/widgets/formula/skeleton.tsx","../../src/widgets/formula/serializer.ts"],"sourcesContent":["import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function Value({ id, index = 0, ...props }: ValueProps) {\n const {\n value,\n color,\n formatter = defaultFormatter,\n } = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<FormulaWidgetState>(id)\n return {\n value: widget?.data?.[index]?.value,\n color: widget?.data?.[index]?.color,\n formatter: widget?.formatter,\n }\n }),\n )\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(value ?? 0)}\n </Item>\n )\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type { ConfigProps } from '../root/types'\nimport type { FormulaDownloadConfig, FormulaWidgetConfig } from './types'\n\nexport function formulaDownloadConfig({\n refUI,\n}: ConfigProps): FormulaDownloadConfig {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const formulaData = [data?.map((item) => item.value) ?? []]\n return downloadToCSV.modifier(formulaData)\n },\n },\n ]\n}\n\nexport function formulaConfig(): FormulaWidgetConfig {\n return {\n series: [],\n }\n}\n","import type { FormulaUIProps } from './types'\nimport { Row } from './components/row'\nimport { Value } from './components/value'\nimport { Prefix } from './components/prefix'\nimport { Suffix } from './components/suffix'\nimport { Series } from './components/series'\nimport { useRef, useEffect } from 'react'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { Box } from '@mui/material'\n\nexport function FormulaUI(props: FormulaUIProps) {\n const ref = useRef<HTMLElement | null>(null)\n const setWidget = useWidgetStore((store) => store.setWidget)\n\n useEffect(() => {\n if (ref.current) {\n setWidget(props.id, { refUI: ref })\n }\n }, [props.id, setWidget])\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 <Value id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function FormulaSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Formula skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import type { DataItem } from './types'\n\n/**\n * Sanitizes DataItem by converting ReactNode prefix/suffix values to undefined.\n * This ensures only string values are stored in the widget state.\n *\n * @param item - The DataItem to sanitize\n * @returns A new DataItem with ReactNode prefix/suffix values converted to undefined\n */\nexport function sanitizeDataItem(item: DataItem): DataItem {\n return {\n ...item,\n prefix: typeof item.prefix === 'string' ? item.prefix : undefined,\n suffix: typeof item.suffix === 'string' ? item.suffix : undefined,\n }\n}\n\n/**\n * Sanitizes an array of DataItems by converting ReactNode prefix/suffix values to undefined.\n *\n * @param items - Array of DataItems to sanitize\n * @returns A new array with sanitized DataItems\n */\nexport function sanitizeDataItems(\n items: DataItem[] | undefined,\n): DataItem[] | undefined {\n return items?.map(sanitizeDataItem)\n}\n"],"names":["defaultFormatter","value","toString","Value","t0","$","_c","id","props","t1","index","undefined","t2","state","widget","getWidget","data","color","formatter","t3","useWidgetStore","useShallow","t4","t5","t6","t7","Item","formulaDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","formulaData","map","item","formulaConfig","series","FormulaUI","ref","useRef","setWidget","_temp","current","useEffect","jsxs","Fragment","jsx","Series","Prefix","Suffix","Box","Row","store","FormulaSkeleton","Symbol","for","styles","row","Skeleton","sanitizeDataItem","prefix","suffix","sanitizeDataItems","items"],"mappings":"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"}
1
+ {"version":3,"file":"formula.js","sources":["../../src/widgets/formula/components/value.tsx","../../src/widgets/formula/config.ts","../../src/widgets/formula/formula-ui.tsx","../../src/widgets/formula/skeleton.tsx","../../src/widgets/formula/serializer.ts"],"sourcesContent":["import { type FormulaWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from './item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function Value({ id, index = 0, ...props }: ValueProps) {\n const {\n value,\n color,\n formatter = defaultFormatter,\n } = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<FormulaWidgetState>(id)\n return {\n value: widget?.data?.[index]?.value,\n color: widget?.data?.[index]?.color,\n formatter: widget?.formatter,\n }\n }),\n )\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(value ?? 0)}\n </Item>\n )\n}\n","import { downloadToCSV, downloadToPNG } from '../actions'\nimport type { ConfigProps } from '../root/types'\nimport type { FormulaDownloadConfig, FormulaWidgetConfig } from './types'\n\nexport function formulaDownloadConfig({\n refUI,\n}: ConfigProps): FormulaDownloadConfig {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const formulaData = [data?.map((item) => item.value) ?? []]\n return downloadToCSV.modifier(formulaData)\n },\n },\n ]\n}\n\nexport function formulaConfig(): FormulaWidgetConfig {\n return {\n series: [],\n }\n}\n","import type { FormulaUIProps } from './types'\nimport { Row } from './components/row'\nimport { Value } from './components/value'\nimport { Prefix } from './components/prefix'\nimport { Suffix } from './components/suffix'\nimport { Series } from './components/series'\nimport { useRef, useEffect } from 'react'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { Box } from '@mui/material'\n\nexport function FormulaUI(props: FormulaUIProps) {\n const ref = useRef<HTMLElement | null>(null)\n const setWidget = useWidgetStore((store) => store.setWidget)\n\n useEffect(() => {\n if (ref.current) {\n setWidget(props.id, { refUI: ref })\n }\n }, [props.id, setWidget])\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 <Value id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function FormulaSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Formula skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import type { DataItem } from './types'\n\n/**\n * Sanitizes DataItem by converting ReactNode prefix/suffix values to undefined.\n * This ensures only string values are stored in the widget state.\n *\n * @param item - The DataItem to sanitize\n * @returns A new DataItem with ReactNode prefix/suffix values converted to undefined\n */\nexport function sanitizeDataItem(item: DataItem): DataItem {\n return {\n ...item,\n prefix: typeof item.prefix === 'string' ? item.prefix : undefined,\n suffix: typeof item.suffix === 'string' ? item.suffix : undefined,\n }\n}\n\n/**\n * Sanitizes an array of DataItems by converting ReactNode prefix/suffix values to undefined.\n *\n * @param items - Array of DataItems to sanitize\n * @returns A new array with sanitized DataItems\n */\nexport function sanitizeDataItems(\n items: DataItem[] | undefined,\n): DataItem[] | undefined {\n return items?.map(sanitizeDataItem)\n}\n"],"names":["defaultFormatter","value","toString","Value","t0","$","_c","id","props","t1","index","undefined","t2","state","widget","getWidget","data","color","formatter","t3","useWidgetStore","useShallow","t4","t5","t6","t7","Item","formulaDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","formulaData","map","item","formulaConfig","series","FormulaUI","ref","useRef","setWidget","_temp","current","useEffect","jsxs","Fragment","jsx","Series","Prefix","Suffix","Box","Row","store","FormulaSkeleton","Symbol","for","styles","row","Skeleton","sanitizeDataItem","prefix","suffix","sanitizeDataItems","items"],"mappings":"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"}
@@ -2,61 +2,62 @@ import { jsx as o, jsxs as c } from "react/jsx-runtime";
2
2
  import { c as f } from "react/compiler-runtime";
3
3
  import "react";
4
4
  import "echarts";
5
- import "../widget-store-DNyVElxd.js";
5
+ import "../widget-store-Dd7_sWZT.js";
6
6
  import "zustand/shallow";
7
- import { g } from "../options-D9wflre6.js";
8
- import { m } from "../utils-Dv5Z47UQ.js";
7
+ import { g as m } from "../options-D9wflre6.js";
8
+ import { m as g } from "../utils-Dv5Z47UQ.js";
9
9
  import { f as u, c as h, b as y, a as d, d as b } from "../styles-dOu_pRNb.js";
10
10
  import { Box as n, Skeleton as l } from "@mui/material";
11
11
  import "@mui/icons-material";
12
+ import "react-markdown";
12
13
  import { d as a, a as s } from "../exports-Cr43OCul.js";
13
14
  import "../lasso-tool-CYn3ivf-.js";
14
15
  import "../cjs-D9ro6BXv.js";
15
16
  import "@dnd-kit/core";
16
17
  import "@dnd-kit/sortable";
17
18
  import "@dnd-kit/utilities";
18
- function H({
19
- refUI: t
19
+ function W({
20
+ refUI: e
20
21
  }) {
21
22
  return [{
22
23
  ...a,
23
- modifier: () => a.modifier(t)
24
+ modifier: () => a.modifier(e)
24
25
  }, {
25
26
  ...s,
26
- modifier: async (e) => {
27
- const i = u(e);
27
+ modifier: async (t) => {
28
+ const i = u(t);
28
29
  return s.modifier(i);
29
30
  }
30
31
  }];
31
32
  }
32
- function W(t) {
33
+ function q(e) {
33
34
  return {
34
35
  type: "histogram",
35
- option: m(g(t), x(t))
36
+ option: g(m(e), x(e))
36
37
  };
37
38
  }
38
39
  function x({
39
- data: t = [],
40
- theme: e
40
+ data: e = [],
41
+ theme: t
41
42
  }) {
42
- const i = (t?.length ?? 0) > 1;
43
+ const i = (e?.length ?? 0) > 1;
43
44
  return {
44
45
  legend: d(i),
45
- grid: y(i, e),
46
+ grid: y(i, t),
46
47
  xAxis: {
47
48
  type: "category",
48
49
  axisLine: {
49
50
  show: !1
50
51
  },
51
52
  axisLabel: {
52
- fontSize: e.typography.overlineDelicate.fontSize,
53
- fontFamily: e.typography.overlineDelicate.fontFamily,
53
+ fontSize: t.typography.overlineDelicate.fontSize,
54
+ fontFamily: t.typography.overlineDelicate.fontFamily,
54
55
  showMinLabel: !0,
55
56
  showMaxLabel: !0,
56
57
  hideOverlap: !0,
57
58
  margin: 0,
58
- padding: [parseInt(e.spacing(0.5)), parseInt(e.spacing(0.5)), 0, parseInt(e.spacing(0.5))],
59
- color: e.palette.black[60]
59
+ padding: [parseInt(t.spacing(0.5)), parseInt(t.spacing(0.5)), 0, parseInt(t.spacing(0.5))],
60
+ color: t.palette.black[60]
60
61
  },
61
62
  axisTick: {
62
63
  show: !1
@@ -64,7 +65,7 @@ function x({
64
65
  splitLine: {
65
66
  show: !0,
66
67
  lineStyle: {
67
- color: e.palette.black[4]
68
+ color: t.palette.black[4]
68
69
  }
69
70
  }
70
71
  },
@@ -74,9 +75,9 @@ function x({
74
75
  showMinLabel: !0,
75
76
  splitNumber: 1,
76
77
  axisLabel: {
77
- fontSize: e.typography.overlineDelicate.fontSize,
78
- fontFamily: e.typography.overlineDelicate.fontFamily,
79
- margin: parseInt(e.spacing(1)),
78
+ fontSize: t.typography.overlineDelicate.fontSize,
79
+ fontFamily: t.typography.overlineDelicate.fontFamily,
80
+ margin: parseInt(t.spacing(1)),
80
81
  show: !0,
81
82
  showMaxLabel: !0,
82
83
  showMinLabel: !0,
@@ -91,14 +92,14 @@ function x({
91
92
  splitLine: {
92
93
  show: !0,
93
94
  lineStyle: {
94
- color: e.palette.black[4]
95
+ color: t.palette.black[4]
95
96
  }
96
97
  }
97
98
  },
98
99
  tooltip: {
99
- position: h(e)
100
+ position: h(t)
100
101
  },
101
- series: t.map((r, p) => ({
102
+ series: e.map((r, p) => ({
102
103
  datasetIndex: p,
103
104
  type: "bar",
104
105
  barGap: "1%",
@@ -116,20 +117,20 @@ const w = {
116
117
  graph: b.graph
117
118
  }
118
119
  };
119
- function q() {
120
- const t = f(2);
121
- let e;
122
- t[0] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ o(n, { sx: {
120
+ function J() {
121
+ const e = f(2);
122
+ let t;
123
+ e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ o(n, { sx: {
123
124
  display: "flex",
124
125
  alignItems: "flex-end",
125
126
  justifyContent: "space-between",
126
127
  gap: k,
127
128
  height: C,
128
129
  width: "100%"
129
- }, children: Array(8).fill(0).map(S) }), t[0] = e) : e = t[0];
130
+ }, children: Array(8).fill(0).map(S) }), e[0] = t) : t = e[0];
130
131
  let i;
131
- return t[1] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ c(n, { sx: w.skeleton.graph.container, children: [
132
- e,
132
+ return e[1] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ c(n, { sx: w.skeleton.graph.container, children: [
133
+ t,
133
134
  /* @__PURE__ */ o(n, { sx: {
134
135
  display: "flex",
135
136
  alignItems: "center",
@@ -137,39 +138,39 @@ function q() {
137
138
  width: "100%",
138
139
  mt: L
139
140
  }, children: Array(4).fill(0).map(_) })
140
- ] }), t[1] = i) : i = t[1], i;
141
+ ] }), e[1] = i) : i = e[1], i;
141
142
  }
142
- function _(t, e) {
143
- return /* @__PURE__ */ o(l, { width: 32, height: 8 }, e);
143
+ function _(e, t) {
144
+ return /* @__PURE__ */ o(l, { width: 32, height: 8 }, t);
144
145
  }
145
- function L(t) {
146
+ function L(e) {
146
147
  const {
147
- spacing: e
148
- } = t;
149
- return e(1);
148
+ spacing: t
149
+ } = e;
150
+ return t(1);
150
151
  }
151
- function S(t, e) {
152
- const r = `${[60, 80, 95, 85, 70, 55, 40, 30][e]}%`;
152
+ function S(e, t) {
153
+ const r = `${[60, 80, 95, 85, 70, 55, 40, 30][t]}%`;
153
154
  return /* @__PURE__ */ o(l, { variant: "rectangular", sx: {
154
155
  flex: 1,
155
156
  height: r
156
- } }, e);
157
+ } }, t);
157
158
  }
158
- function C(t) {
159
+ function C(e) {
159
160
  const {
160
- spacing: e
161
- } = t;
162
- return e(30);
161
+ spacing: t
162
+ } = e;
163
+ return t(30);
163
164
  }
164
- function k(t) {
165
+ function k(e) {
165
166
  const {
166
- spacing: e
167
- } = t;
168
- return e(0.5);
167
+ spacing: t
168
+ } = e;
169
+ return t(0.5);
169
170
  }
170
171
  export {
171
- q as HistogramSkeleton,
172
- W as histogramConfig,
173
- H as histogramDownloadConfig
172
+ J as HistogramSkeleton,
173
+ q as histogramConfig,
174
+ W as histogramDownloadConfig
174
175
  };
175
176
  //# sourceMappingURL=histogram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"histogram.js","sources":["../../src/widgets/histogram/config.ts","../../src/widgets/histogram/style.ts","../../src/widgets/histogram/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n HistogramConfig,\n HistogramWidgetConfig,\n HistogramWidgetData,\n} from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../root/types'\n\nexport function histogramDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<HistogramWidgetData>[] {\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}\nexport function histogramConfig(props: HistogramConfig): HistogramWidgetConfig {\n return {\n type: 'histogram',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\nfunction getOption({ data = [], theme }: HistogramConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n margin: 0,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n yAxis: {\n type: 'value',\n showMaxLabel: true,\n showMinLabel: true,\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: true,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n tooltip: {\n position: createTooltipPositioner(theme),\n },\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'bar',\n barGap: '1%', // No gap between bars in histogram\n barCategoryGap: '1%', // No gap between categories in histogram\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 graph: baseSkeletonStyles.graph,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function HistogramSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'space-between',\n gap: ({ spacing }) => spacing(0.5),\n height: ({ spacing }) => spacing(30),\n width: '100%',\n }}\n >\n {Array(8)\n .fill(0)\n .map((_, i) => {\n // Create varying heights for histogram bars\n const heights = [60, 80, 95, 85, 70, 55, 40, 30]\n const height = `${heights[i]}%`\n return (\n <Skeleton\n key={i}\n variant='rectangular'\n sx={{\n flex: 1,\n height,\n }}\n />\n )\n })}\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n mt: ({ spacing }) => spacing(1),\n }}\n >\n {Array(4)\n .fill(0)\n .map((_, i) => (\n <Skeleton key={i} width={32} height={8} />\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["histogramDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","histogramConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","hasLegend","length","legend","buildLegendConfig","grid","buildGridConfig","xAxis","axisLine","show","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","margin","padding","parseInt","spacing","color","palette","black","axisTick","splitLine","lineStyle","yAxis","splitNumber","verticalAlign","tooltip","position","createTooltipPositioner","series","map","_","index","datasetIndex","barGap","barCategoryGap","emphasis","focus","styles","skeleton","graph","baseSkeletonStyles","HistogramSkeleton","$","_c","t0","Symbol","for","jsx","Box","display","alignItems","justifyContent","gap","_temp","height","_temp2","width","Array","fill","_temp3","t1","container","mt","_temp4","_temp5","__0","i_0","Skeleton","spacing_1","i","flex","spacing_0"],"mappings":"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"}
1
+ {"version":3,"file":"histogram.js","sources":["../../src/widgets/histogram/config.ts","../../src/widgets/histogram/style.ts","../../src/widgets/histogram/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n HistogramConfig,\n HistogramWidgetConfig,\n HistogramWidgetData,\n} from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n createTooltipPositioner,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../root/types'\n\nexport function histogramDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<HistogramWidgetData>[] {\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}\nexport function histogramConfig(props: HistogramConfig): HistogramWidgetConfig {\n return {\n type: 'histogram',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\nfunction getOption({ data = [], theme }: HistogramConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n return {\n legend: buildLegendConfig(hasLegend),\n grid: buildGridConfig(hasLegend, theme),\n xAxis: {\n type: 'category',\n axisLine: {\n show: false,\n },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n margin: 0,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n yAxis: {\n type: 'value',\n showMaxLabel: true,\n showMinLabel: true,\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: true,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n tooltip: {\n position: createTooltipPositioner(theme),\n },\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'bar',\n barGap: '1%', // No gap between bars in histogram\n barCategoryGap: '1%', // No gap between categories in histogram\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 graph: baseSkeletonStyles.graph,\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function HistogramSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'space-between',\n gap: ({ spacing }) => spacing(0.5),\n height: ({ spacing }) => spacing(30),\n width: '100%',\n }}\n >\n {Array(8)\n .fill(0)\n .map((_, i) => {\n // Create varying heights for histogram bars\n const heights = [60, 80, 95, 85, 70, 55, 40, 30]\n const height = `${heights[i]}%`\n return (\n <Skeleton\n key={i}\n variant='rectangular'\n sx={{\n flex: 1,\n height,\n }}\n />\n )\n })}\n </Box>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n mt: ({ spacing }) => spacing(1),\n }}\n >\n {Array(4)\n .fill(0)\n .map((_, i) => (\n <Skeleton key={i} width={32} height={8} />\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["histogramDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","histogramConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","hasLegend","length","legend","buildLegendConfig","grid","buildGridConfig","xAxis","axisLine","show","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","margin","padding","parseInt","spacing","color","palette","black","axisTick","splitLine","lineStyle","yAxis","splitNumber","verticalAlign","tooltip","position","createTooltipPositioner","series","map","_","index","datasetIndex","barGap","barCategoryGap","emphasis","focus","styles","skeleton","graph","baseSkeletonStyles","HistogramSkeleton","$","_c","t0","Symbol","for","jsx","Box","display","alignItems","justifyContent","gap","_temp","height","_temp2","width","Array","fill","_temp3","t1","container","mt","_temp4","_temp5","__0","i_0","Skeleton","spacing_1","i","flex","spacing_0"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as i, jsxs as f } from "react/jsx-runtime";
2
2
  import { c } from "react/compiler-runtime";
3
- import { u } from "../widget-store-DNyVElxd.js";
3
+ import { u } from "../widget-store-Dd7_sWZT.js";
4
4
  import { useShallow as g } from "zustand/shallow";
5
5
  import { ListItem as w, List as d, Link as k, Typography as m, Skeleton as s, Box as y } from "@mui/material";
6
6
  import S from "react-markdown";
@@ -1,4 +1,4 @@
1
- import { W as t } from "../no-data-BBAoT1vK.js";
1
+ import { W as t } from "../no-data-DfkC_Kc_.js";
2
2
  export {
3
3
  t as WidgetNoData
4
4
  };
@@ -1,124 +1,5 @@
1
- import { jsx as p, jsxs as N } from "react/jsx-runtime";
2
- import { c as R } from "react/compiler-runtime";
3
- import { useState as _, useRef as j, useEffectEvent as z, useEffect as M } from "react";
4
- import { Button as F, Box as W, Link as H, Typography as P } from "@mui/material";
5
- import U from "react-markdown";
6
- const L = {
7
- root: {
8
- typography: "caption",
9
- color: (n) => n.palette.text.secondary,
10
- marginBlockStart: ({
11
- spacing: n
12
- }) => n(1)
13
- },
14
- clamped: {
15
- display: "-webkit-box",
16
- WebkitLineClamp: 3,
17
- WebkitBoxOrient: "vertical",
18
- overflow: "hidden"
19
- },
20
- expanded: {
21
- display: "block"
22
- },
23
- linkButton: {
24
- padding: 0,
25
- minWidth: "auto",
26
- textTransform: "none",
27
- typography: "caption",
28
- fontWeight: 500,
29
- textDecoration: "none",
30
- "&:hover": {
31
- backgroundColor: "transparent"
32
- }
33
- }
34
- }, C = {
35
- showMore: "Show More",
36
- showLess: "Show Less"
37
- }, l = (n) => {
38
- const e = R(2), {
39
- children: t
40
- } = n;
41
- let r;
42
- return e[0] !== t ? (r = /* @__PURE__ */ p(P, { paragraph: !0, color: "inherit", variant: "caption", children: t }), e[0] = t, e[1] = r) : r = e[1], r;
43
- }, $ = {
44
- h1: l,
45
- h2: l,
46
- h3: l,
47
- p: l,
48
- a: ({
49
- children: n,
50
- href: e,
51
- target: t = "_blank",
52
- rel: r = "noopener noreferrer"
53
- }) => /* @__PURE__ */ p(H, { href: e, target: t, rel: r, color: "text.primary", underline: "always", children: n }),
54
- img: () => null,
55
- ul: l,
56
- ol: l,
57
- li: l
58
- };
59
- function Q(n) {
60
- const e = R(27), {
61
- children: t,
62
- labels: r
63
- } = n, S = r === void 0 ? C : r, [o, A] = _(!1), [E, D] = _(!1), h = j(null);
64
- let m;
65
- e[0] === Symbol.for("react.memo_cache_sentinel") ? (m = () => {
66
- if (h.current) {
67
- const v = h.current.scrollHeight > h.current.clientHeight;
68
- D(v);
69
- }
70
- }, e[0] = m) : m = e[0];
71
- const s = z(m);
72
- let u;
73
- e[1] !== s ? (u = () => {
74
- s();
75
- }, e[1] = s, e[2] = u) : u = e[2];
76
- let g;
77
- e[3] !== t ? (g = [t], e[3] = t, e[4] = g) : g = e[4], M(u, g);
78
- let x;
79
- e[5] !== s ? (x = () => {
80
- const v = h.current;
81
- if (!v)
82
- return;
83
- const O = new ResizeObserver(() => {
84
- s();
85
- });
86
- return O.observe(v), () => {
87
- O.disconnect();
88
- };
89
- }, e[5] = s, e[6] = x) : x = e[6];
90
- let w;
91
- if (e[7] === Symbol.for("react.memo_cache_sentinel") ? (w = [], e[7] = w) : w = e[7], M(x, w), !t)
92
- return null;
93
- let b;
94
- e[8] !== o ? (b = () => {
95
- A(!o);
96
- }, e[8] = o, e[9] = b) : b = e[9];
97
- const T = b;
98
- let y;
99
- e[10] !== S ? (y = {
100
- ...C,
101
- ...S
102
- }, e[10] = S, e[11] = y) : y = e[11];
103
- const i = y, B = o ? L.expanded : L.clamped;
104
- let c;
105
- e[12] !== B ? (c = {
106
- ...L.root,
107
- ...B
108
- }, e[12] = B, e[13] = c) : c = e[13];
109
- let a;
110
- e[14] !== t ? (a = /* @__PURE__ */ p(U, { components: $, children: t }), e[14] = t, e[15] = a) : a = e[15];
111
- let f;
112
- e[16] !== c || e[17] !== a ? (f = /* @__PURE__ */ p(W, { ref: h, sx: c, children: a }), e[16] = c, e[17] = a, e[18] = f) : f = e[18];
113
- let d;
114
- e[19] !== T || e[20] !== o || e[21] !== i || e[22] !== E ? (d = (E || o) && /* @__PURE__ */ p(F, { onClick: T, variant: "text", color: "primary", sx: L.linkButton, "aria-expanded": o, "aria-label": o ? i.showLess : i.showMore, "aria-controls": "note-content", children: o ? i.showLess : i.showMore }), e[19] = T, e[20] = o, e[21] = i, e[22] = E, e[23] = d) : d = e[23];
115
- let k;
116
- return e[24] !== f || e[25] !== d ? (k = /* @__PURE__ */ N(W, { children: [
117
- f,
118
- d
119
- ] }), e[24] = f, e[25] = d, e[26] = k) : k = e[26], k;
120
- }
1
+ import { W as t } from "../note-Clng2ej6.js";
121
2
  export {
122
- Q as WidgetNote
3
+ t as WidgetNote
123
4
  };
124
5
  //# sourceMappingURL=note.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"note.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.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,20 +2,21 @@ import { jsxs as c, jsx as r } from "react/jsx-runtime";
2
2
  import { c as x } from "react/compiler-runtime";
3
3
  import "react";
4
4
  import "echarts";
5
- import "../widget-store-DNyVElxd.js";
5
+ import "../widget-store-Dd7_sWZT.js";
6
6
  import "zustand/shallow";
7
7
  import { g as y } from "../options-D9wflre6.js";
8
8
  import { m as _ } from "../utils-Dv5Z47UQ.js";
9
9
  import { f as S, b as w, a as I, d as v } from "../styles-dOu_pRNb.js";
10
10
  import { Box as l, Skeleton as a } from "@mui/material";
11
11
  import "@mui/icons-material";
12
+ import "react-markdown";
12
13
  import { d as f, a as g } from "../exports-Cr43OCul.js";
13
14
  import "../lasso-tool-CYn3ivf-.js";
14
15
  import "../cjs-D9ro6BXv.js";
15
16
  import "@dnd-kit/core";
16
17
  import "@dnd-kit/sortable";
17
18
  import "@dnd-kit/utilities";
18
- function X({
19
+ function Y({
19
20
  refUI: e
20
21
  }) {
21
22
  return [{
@@ -29,7 +30,7 @@ function X({
29
30
  }
30
31
  }];
31
32
  }
32
- function Y(e) {
33
+ function ee(e) {
33
34
  return {
34
35
  type: "pie",
35
36
  option: _(y(e), C(e))
@@ -132,7 +133,7 @@ const j = {
132
133
  graph: v.graph
133
134
  }
134
135
  }, h = 32, m = 294 - h, u = m - h;
135
- function ee() {
136
+ function te() {
136
137
  const e = x(5);
137
138
  let t, o;
138
139
  e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = {
@@ -209,8 +210,8 @@ function T(e) {
209
210
  return t(1);
210
211
  }
211
212
  export {
212
- ee as PieSkeleton,
213
- Y as pieConfig,
214
- X as pieDownloadConfig
213
+ te as PieSkeleton,
214
+ ee as pieConfig,
215
+ Y as pieDownloadConfig
215
216
  };
216
217
  //# sourceMappingURL=pie.js.map