@carto/ps-react-ui 5.0.0-widgets.5 → 5.0.0-widgets.7
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.
- package/dist/{error-DGzuzmn1.js → error-G3sy6lw3.js} +2 -2
- package/dist/{error-DGzuzmn1.js.map → error-G3sy6lw3.js.map} +1 -1
- package/dist/{no-data-BBAoT1vK.js → no-data-DfkC_Kc_.js} +2 -2
- package/dist/{no-data-BBAoT1vK.js.map → no-data-DfkC_Kc_.js.map} +1 -1
- package/dist/{row-C_m1ovHv.js → row-B9hTUitn.js} +2 -2
- package/dist/{row-C_m1ovHv.js.map → row-B9hTUitn.js.map} +1 -1
- package/dist/{series-6xp-KQ0S.js → series-DojKkd_o.js} +3 -3
- package/dist/{series-6xp-KQ0S.js.map → series-DojKkd_o.js.map} +1 -1
- package/dist/types/widgets/category/config.d.ts +1 -0
- package/dist/types/widgets/category/types.d.ts +1 -0
- package/dist/types/widgets/root/utils.d.ts +1 -1
- package/dist/types/widgets/stores/types.d.ts +0 -75
- package/dist/types/widgets/table/config.d.ts +7 -1
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +2 -16
- package/dist/types/widgets/table/hooks/use-selection.d.ts +0 -2
- package/dist/types/widgets/table/hooks/use-sort.d.ts +3 -10
- package/dist/types/widgets/table/index.d.ts +1 -1
- package/dist/types/widgets/table/types.d.ts +14 -19
- package/dist/widget-store-Dd7_sWZT.js +132 -0
- package/dist/widget-store-Dd7_sWZT.js.map +1 -0
- package/dist/widgets/actions.js +51 -51
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +1 -1
- package/dist/widgets/category.js +134 -128
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/echart.js +1 -1
- package/dist/widgets/error.js +1 -1
- package/dist/widgets/formula.js +3 -3
- package/dist/widgets/histogram.js +1 -1
- package/dist/widgets/markdown.js +1 -1
- package/dist/widgets/no-data.js +1 -1
- package/dist/widgets/pie.js +1 -1
- package/dist/widgets/range.js +2 -2
- package/dist/widgets/root.js +1 -1
- package/dist/widgets/root.js.map +1 -1
- package/dist/widgets/scatterplot.js +1 -1
- package/dist/widgets/skeleton-loader.js +1 -1
- package/dist/widgets/spread.js +3 -3
- package/dist/widgets/stores.js +1 -1
- package/dist/widgets/table.js +535 -537
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +1 -1
- package/dist/widgets/wrapper.js +1 -1
- package/dist/widgets.js +3 -3
- package/package.json +1 -1
- package/dist/widget-store-DNyVElxd.js +0 -190
- package/dist/widget-store-DNyVElxd.js.map +0 -1
package/dist/widgets/category.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as h, jsxs as R } from "react/jsx-runtime";
|
|
2
2
|
import { c as M } from "react/compiler-runtime";
|
|
3
|
-
import { Box as
|
|
3
|
+
import { Box as C, Typography as L, useTheme as Q, Skeleton as N } from "@mui/material";
|
|
4
4
|
import "react";
|
|
5
|
-
import { u as
|
|
6
|
-
import { useShallow as
|
|
5
|
+
import { u as X } from "../widget-store-Dd7_sWZT.js";
|
|
6
|
+
import { useShallow as Y } from "zustand/shallow";
|
|
7
7
|
import "@mui/icons-material";
|
|
8
8
|
import "react-markdown";
|
|
9
|
-
import { d as
|
|
9
|
+
import { d as z, a as U } from "../exports-Cr43OCul.js";
|
|
10
10
|
import "../lasso-tool-CYn3ivf-.js";
|
|
11
11
|
import "../cjs-D9ro6BXv.js";
|
|
12
12
|
import "@dnd-kit/core";
|
|
@@ -143,7 +143,7 @@ const u = {
|
|
|
143
143
|
color: "text.disabled"
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
|
-
function
|
|
146
|
+
function J(t) {
|
|
147
147
|
const e = M(6), {
|
|
148
148
|
value: r,
|
|
149
149
|
maxValue: o,
|
|
@@ -162,9 +162,9 @@ function z(t) {
|
|
|
162
162
|
}, e[0] = i, e[1] = a, e[2] = c, e[3] = d) : d = e[3];
|
|
163
163
|
const l = d;
|
|
164
164
|
let m;
|
|
165
|
-
return e[4] !== l ? (m = /* @__PURE__ */ h(
|
|
165
|
+
return e[4] !== l ? (m = /* @__PURE__ */ h(C, { sx: u.bar, children: /* @__PURE__ */ h(C, { sx: l }) }), e[4] = l, e[5] = m) : m = e[5], m;
|
|
166
166
|
}
|
|
167
|
-
function
|
|
167
|
+
function Z(t) {
|
|
168
168
|
const e = M(23), {
|
|
169
169
|
name: r,
|
|
170
170
|
value: o,
|
|
@@ -178,27 +178,27 @@ function Y(t) {
|
|
|
178
178
|
e[0] !== r || e[1] !== a ? (m = a ? () => a({
|
|
179
179
|
name: r
|
|
180
180
|
}) : void 0, e[0] = r, e[1] = a, e[2] = m) : m = e[2];
|
|
181
|
-
const f = m,
|
|
182
|
-
let y;
|
|
183
|
-
e[3] !== r ? (y = /* @__PURE__ */ h(L, { sx: u.rowLabel, children: r }), e[3] = r, e[4] = y) : y = e[4];
|
|
184
|
-
let x;
|
|
185
|
-
e[5] !== c || e[6] !== o ? (x = c(o), e[5] = c, e[6] = o, e[7] = x) : x = e[7];
|
|
181
|
+
const f = m, y = a ? u.rowClickable : u.row;
|
|
186
182
|
let g;
|
|
187
|
-
e[
|
|
188
|
-
let
|
|
189
|
-
e[
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
] }), e[10] = y, e[11] = g, e[12] = v) : v = e[12];
|
|
183
|
+
e[3] !== r ? (g = /* @__PURE__ */ h(L, { sx: u.rowLabel, children: r }), e[3] = r, e[4] = g) : g = e[4];
|
|
184
|
+
let w;
|
|
185
|
+
e[5] !== c || e[6] !== o ? (w = c(o), e[5] = c, e[6] = o, e[7] = w) : w = e[7];
|
|
186
|
+
let x;
|
|
187
|
+
e[8] !== w ? (x = /* @__PURE__ */ h(L, { sx: u.rowValue, children: w }), e[8] = w, e[9] = x) : x = e[9];
|
|
193
188
|
let b;
|
|
194
|
-
e[
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
] }), e[
|
|
189
|
+
e[10] !== g || e[11] !== x ? (b = /* @__PURE__ */ R(C, { sx: u.rowHeader, children: [
|
|
190
|
+
g,
|
|
191
|
+
x
|
|
192
|
+
] }), e[10] = g, e[11] = x, e[12] = b) : b = e[12];
|
|
193
|
+
let k;
|
|
194
|
+
e[13] !== n || e[14] !== i || e[15] !== l || e[16] !== o ? (k = /* @__PURE__ */ h(J, { value: o, maxValue: i, color: n, selected: l }), e[13] = n, e[14] = i, e[15] = l, e[16] = o, e[17] = k) : k = e[17];
|
|
195
|
+
let v;
|
|
196
|
+
return e[18] !== f || e[19] !== y || e[20] !== b || e[21] !== k ? (v = /* @__PURE__ */ R(C, { sx: y, onClick: f, children: [
|
|
197
|
+
b,
|
|
198
|
+
k
|
|
199
|
+
] }), e[18] = f, e[19] = y, e[20] = b, e[21] = k, e[22] = v) : v = e[22], v;
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function ee(t) {
|
|
202
202
|
const e = M(25), {
|
|
203
203
|
name: r,
|
|
204
204
|
values: o,
|
|
@@ -212,27 +212,27 @@ function Z(t) {
|
|
|
212
212
|
e[0] !== r || e[1] !== a ? (m = a ? () => a({
|
|
213
213
|
name: r
|
|
214
214
|
}) : void 0, e[0] = r, e[1] = a, e[2] = m) : m = e[2];
|
|
215
|
-
const f = m,
|
|
216
|
-
let
|
|
217
|
-
e[3] !== r ? (
|
|
218
|
-
let
|
|
215
|
+
const f = m, y = a ? u.rowClickable : u.row;
|
|
216
|
+
let g;
|
|
217
|
+
e[3] !== r ? (g = /* @__PURE__ */ h(L, { sx: u.rowLabel, children: r }), e[3] = r, e[4] = g) : g = e[4];
|
|
218
|
+
let w;
|
|
219
219
|
if (e[5] !== n || e[6] !== c || e[7] !== i || e[8] !== r || e[9] !== l || e[10] !== o) {
|
|
220
|
-
let
|
|
221
|
-
e[12] !== n || e[13] !== c || e[14] !== i || e[15] !== r || e[16] !== l ? (
|
|
222
|
-
/* @__PURE__ */ h(
|
|
223
|
-
/* @__PURE__ */ h(L, { sx: u.multiBarValue, children: c(
|
|
224
|
-
] }, `${r}-${
|
|
220
|
+
let k;
|
|
221
|
+
e[12] !== n || e[13] !== c || e[14] !== i || e[15] !== r || e[16] !== l ? (k = (v, D) => /* @__PURE__ */ R(C, { sx: u.multiBarRow, children: [
|
|
222
|
+
/* @__PURE__ */ h(C, { sx: u.multiBarContainer, children: /* @__PURE__ */ h(J, { value: v, maxValue: i, color: n[D % n.length] ?? "", selected: l }) }),
|
|
223
|
+
/* @__PURE__ */ h(L, { sx: u.multiBarValue, children: c(v) })
|
|
224
|
+
] }, `${r}-${v}-${D}`), e[12] = n, e[13] = c, e[14] = i, e[15] = r, e[16] = l, e[17] = k) : k = e[17], w = o.map(k), e[5] = n, e[6] = c, e[7] = i, e[8] = r, e[9] = l, e[10] = o, e[11] = w;
|
|
225
225
|
} else
|
|
226
|
-
|
|
227
|
-
let
|
|
228
|
-
e[18] !==
|
|
229
|
-
let
|
|
230
|
-
return e[20] !== f || e[21] !==
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
] }), e[20] = f, e[21] =
|
|
226
|
+
w = e[11];
|
|
227
|
+
let x;
|
|
228
|
+
e[18] !== w ? (x = /* @__PURE__ */ h(C, { sx: u.barContainer, children: w }), e[18] = w, e[19] = x) : x = e[19];
|
|
229
|
+
let b;
|
|
230
|
+
return e[20] !== f || e[21] !== y || e[22] !== g || e[23] !== x ? (b = /* @__PURE__ */ R(C, { sx: y, onClick: f, children: [
|
|
231
|
+
g,
|
|
232
|
+
x
|
|
233
|
+
] }), e[20] = f, e[21] = y, e[22] = g, e[23] = x, e[24] = b) : b = e[24], b;
|
|
234
234
|
}
|
|
235
|
-
function
|
|
235
|
+
function te(t) {
|
|
236
236
|
const e = M(10), {
|
|
237
237
|
hiddenCount: r,
|
|
238
238
|
otherLabel: o,
|
|
@@ -250,12 +250,12 @@ function ee(t) {
|
|
|
250
250
|
")"
|
|
251
251
|
] }), e[5] = d, e[6] = m) : m = e[6];
|
|
252
252
|
let f;
|
|
253
|
-
return e[7] !== l || e[8] !== m ? (f = /* @__PURE__ */ R(
|
|
253
|
+
return e[7] !== l || e[8] !== m ? (f = /* @__PURE__ */ R(C, { sx: u.otherRow, children: [
|
|
254
254
|
l,
|
|
255
255
|
m
|
|
256
256
|
] }), e[7] = l, e[8] = m, e[9] = f) : f = e[9], f;
|
|
257
257
|
}
|
|
258
|
-
function
|
|
258
|
+
function oe(t) {
|
|
259
259
|
const e = M(7), {
|
|
260
260
|
series: r,
|
|
261
261
|
colors: o
|
|
@@ -265,8 +265,8 @@ function te(t) {
|
|
|
265
265
|
let i;
|
|
266
266
|
if (e[0] !== o || e[1] !== r) {
|
|
267
267
|
let c;
|
|
268
|
-
e[3] !== o ? (c = (a, d) => /* @__PURE__ */ R(
|
|
269
|
-
/* @__PURE__ */ h(
|
|
268
|
+
e[3] !== o ? (c = (a, d) => /* @__PURE__ */ R(C, { sx: u.legendItem, children: [
|
|
269
|
+
/* @__PURE__ */ h(C, { sx: {
|
|
270
270
|
...u.legendDot,
|
|
271
271
|
backgroundColor: a.color ?? o[d % o.length]
|
|
272
272
|
} }),
|
|
@@ -275,13 +275,13 @@ function te(t) {
|
|
|
275
275
|
} else
|
|
276
276
|
i = e[2];
|
|
277
277
|
let n;
|
|
278
|
-
return e[5] !== i ? (n = /* @__PURE__ */ h(
|
|
278
|
+
return e[5] !== i ? (n = /* @__PURE__ */ h(C, { sx: u.legend, children: i }), e[5] = i, e[6] = n) : n = e[6], n;
|
|
279
279
|
}
|
|
280
|
-
const
|
|
281
|
-
function
|
|
280
|
+
const le = (t) => t.toString();
|
|
281
|
+
function we(t) {
|
|
282
282
|
const e = M(46), {
|
|
283
283
|
id: r
|
|
284
|
-
} = t, o =
|
|
284
|
+
} = t, o = Q();
|
|
285
285
|
let i;
|
|
286
286
|
e[0] !== r ? (i = (s) => {
|
|
287
287
|
const p = s.getWidget(r);
|
|
@@ -292,170 +292,176 @@ function Ce(t) {
|
|
|
292
292
|
maxItems: p?.maxItems,
|
|
293
293
|
labels: p?.labels,
|
|
294
294
|
onRowClick: p?.onRowClick,
|
|
295
|
-
selected: p?.selected
|
|
295
|
+
selected: p?.selected,
|
|
296
|
+
max: p?.max
|
|
296
297
|
};
|
|
297
298
|
}, e[0] = r, e[1] = i) : i = e[1];
|
|
298
|
-
const n =
|
|
299
|
+
const n = X(Y(i)), c = n?.formatter ?? le;
|
|
299
300
|
n?.series;
|
|
300
301
|
let a;
|
|
301
302
|
e[2] !== n?.series ? (a = n?.series ?? [], e[2] = n?.series, e[3] = a) : a = e[3];
|
|
302
|
-
const d = a, l = n?.data, m = n?.maxItems, f = n?.labels,
|
|
303
|
+
const d = a, l = n?.data, m = n?.maxItems, f = n?.labels, y = n?.onRowClick, g = n?.selected, w = n?.max;
|
|
303
304
|
let x;
|
|
304
305
|
e[4] !== o.palette.qualitative.bold ? (x = Object.values(o.palette.qualitative.bold), e[4] = o.palette.qualitative.bold, e[5] = x) : x = e[5];
|
|
305
|
-
const
|
|
306
|
-
let
|
|
306
|
+
const b = x;
|
|
307
|
+
let k;
|
|
307
308
|
e: {
|
|
308
309
|
if (d.length > 0) {
|
|
309
310
|
let p;
|
|
310
|
-
if (e[6] !==
|
|
311
|
+
if (e[6] !== b || e[7] !== d || e[8] !== o.palette.primary.main) {
|
|
311
312
|
let $;
|
|
312
|
-
e[10] !==
|
|
313
|
+
e[10] !== b || e[11] !== o.palette.primary.main ? ($ = (_, S) => _.color ?? b[S % b.length] ?? o.palette.primary.main, e[10] = b, e[11] = o.palette.primary.main, e[12] = $) : $ = e[12], p = d.map($), e[6] = b, e[7] = d, e[8] = o.palette.primary.main, e[9] = p;
|
|
313
314
|
} else
|
|
314
315
|
p = e[9];
|
|
315
|
-
|
|
316
|
+
k = p;
|
|
316
317
|
break e;
|
|
317
318
|
}
|
|
318
319
|
let s;
|
|
319
|
-
e[13] !== o.palette.primary.main ? (s = [o.palette.primary.main], e[13] = o.palette.primary.main, e[14] = s) : s = e[14],
|
|
320
|
+
e[13] !== o.palette.primary.main ? (s = [o.palette.primary.main], e[13] = o.palette.primary.main, e[14] = s) : s = e[14], k = s;
|
|
320
321
|
}
|
|
321
|
-
const
|
|
322
|
-
let
|
|
322
|
+
const v = k;
|
|
323
|
+
let D;
|
|
323
324
|
e: {
|
|
324
325
|
if (!l || l.length === 0) {
|
|
325
326
|
let $;
|
|
326
|
-
e[15] === Symbol.for("react.memo_cache_sentinel") ? ($ = [], e[15] = $) : $ = e[15],
|
|
327
|
+
e[15] === Symbol.for("react.memo_cache_sentinel") ? ($ = [], e[15] = $) : $ = e[15], D = $;
|
|
327
328
|
break e;
|
|
328
329
|
}
|
|
329
330
|
const s = Math.max(l.length, 1);
|
|
330
331
|
let p;
|
|
331
332
|
if (e[16] !== l || e[17] !== s) {
|
|
332
|
-
const $ = /* @__PURE__ */ new Map(),
|
|
333
|
+
const $ = /* @__PURE__ */ new Map(), _ = [];
|
|
333
334
|
for (let S = 0; S < l.length; S++) {
|
|
334
|
-
const
|
|
335
|
-
for (const
|
|
336
|
-
let
|
|
337
|
-
|
|
335
|
+
const K = l[S];
|
|
336
|
+
for (const E of K) {
|
|
337
|
+
let P = $.get(E.name);
|
|
338
|
+
P || (P = new Array(s).fill(0), $.set(E.name, P), _.push(E.name)), P[S] = E.value;
|
|
338
339
|
}
|
|
339
340
|
}
|
|
340
|
-
p =
|
|
341
|
+
p = _.map((S) => ({
|
|
341
342
|
name: S,
|
|
342
343
|
values: $.get(S)
|
|
343
344
|
})), e[16] = l, e[17] = s, e[18] = p;
|
|
344
345
|
} else
|
|
345
346
|
p = e[18];
|
|
346
|
-
|
|
347
|
+
D = p;
|
|
347
348
|
}
|
|
348
|
-
const
|
|
349
|
-
let
|
|
349
|
+
const I = D;
|
|
350
|
+
let j;
|
|
350
351
|
e: {
|
|
351
|
-
if (
|
|
352
|
-
|
|
352
|
+
if (w !== void 0) {
|
|
353
|
+
j = w;
|
|
354
|
+
break e;
|
|
355
|
+
}
|
|
356
|
+
if (I.length === 0) {
|
|
357
|
+
j = 0;
|
|
353
358
|
break e;
|
|
354
359
|
}
|
|
355
360
|
let s;
|
|
356
|
-
e[19] !==
|
|
361
|
+
e[19] !== I ? (s = I.flatMap(re), e[19] = I, e[20] = s) : s = e[20], j = Math.max(...s);
|
|
357
362
|
}
|
|
358
|
-
const
|
|
359
|
-
let
|
|
363
|
+
const A = j;
|
|
364
|
+
let O;
|
|
360
365
|
e: {
|
|
361
366
|
if (m === void 0) {
|
|
362
|
-
|
|
367
|
+
O = I;
|
|
363
368
|
break e;
|
|
364
369
|
}
|
|
365
370
|
const s = Math.max(0, m);
|
|
366
|
-
if (s >=
|
|
367
|
-
|
|
371
|
+
if (s >= I.length) {
|
|
372
|
+
O = I;
|
|
368
373
|
break e;
|
|
369
374
|
}
|
|
370
375
|
let p;
|
|
371
|
-
e[21] !==
|
|
376
|
+
e[21] !== I || e[22] !== s ? (p = I.slice(0, s), e[21] = I, e[22] = s, e[23] = p) : p = e[23], O = p;
|
|
372
377
|
}
|
|
373
|
-
const
|
|
374
|
-
if (
|
|
378
|
+
const W = O, q = I.length - W.length;
|
|
379
|
+
if (I.length === 0)
|
|
375
380
|
return null;
|
|
376
|
-
const
|
|
377
|
-
let D;
|
|
378
|
-
e[24] !== b || e[25] !== c || e[26] !== P || e[27] !== W || e[28] !== C || e[29] !== y || e[30] !== o || e[31] !== F ? (D = P ? F.map((s) => /* @__PURE__ */ h(Z, { name: s.name, values: s.values, maxValue: W, colors: b, formatter: c, onClick: C, selected: y?.(s.name) ?? !0 }, s.name)) : F.map((s) => /* @__PURE__ */ h(Y, { name: s.name, value: s.values[0] ?? 0, selected: y?.(s.name) ?? !0, maxValue: W, color: b[0] ?? o.palette.primary.main, formatter: c, onClick: C }, s.name)), e[24] = b, e[25] = c, e[26] = P, e[27] = W, e[28] = C, e[29] = y, e[30] = o, e[31] = F, e[32] = D) : D = e[32];
|
|
381
|
+
const G = d.length > 1;
|
|
379
382
|
let V;
|
|
380
|
-
e[
|
|
383
|
+
e[24] !== v || e[25] !== c || e[26] !== G || e[27] !== A || e[28] !== y || e[29] !== g || e[30] !== o || e[31] !== W ? (V = G ? W.map((s) => /* @__PURE__ */ h(ee, { name: s.name, values: s.values, maxValue: A, colors: v, formatter: c, onClick: y, selected: g?.(s.name) ?? !0 }, s.name)) : W.map((s) => /* @__PURE__ */ h(Z, { name: s.name, value: s.values[0] ?? 0, selected: g?.(s.name) ?? !0, maxValue: A, color: v[0] ?? o.palette.primary.main, formatter: c, onClick: y }, s.name)), e[24] = v, e[25] = c, e[26] = G, e[27] = A, e[28] = y, e[29] = g, e[30] = o, e[31] = W, e[32] = V) : V = e[32];
|
|
381
384
|
let B;
|
|
382
|
-
e[
|
|
383
|
-
D,
|
|
384
|
-
V
|
|
385
|
-
] }), e[37] = D, e[38] = V, e[39] = B) : B = e[39];
|
|
385
|
+
e[33] !== q || e[34] !== f?.other || e[35] !== f?.otherCount ? (B = q > 0 && /* @__PURE__ */ h(te, { hiddenCount: q, otherLabel: f?.other, otherCountLabel: f?.otherCount }), e[33] = q, e[34] = f?.other, e[35] = f?.otherCount, e[36] = B) : B = e[36];
|
|
386
386
|
let T;
|
|
387
|
-
e[
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
] }), e[
|
|
387
|
+
e[37] !== V || e[38] !== B ? (T = /* @__PURE__ */ R(C, { sx: u.list, children: [
|
|
388
|
+
V,
|
|
389
|
+
B
|
|
390
|
+
] }), e[37] = V, e[38] = B, e[39] = T) : T = e[39];
|
|
391
|
+
let F;
|
|
392
|
+
e[40] !== v || e[41] !== d ? (F = d.length > 0 && /* @__PURE__ */ h(oe, { series: d, colors: v }), e[40] = v, e[41] = d, e[42] = F) : F = e[42];
|
|
393
|
+
let H;
|
|
394
|
+
return e[43] !== T || e[44] !== F ? (H = /* @__PURE__ */ R(C, { sx: u.root, children: [
|
|
395
|
+
T,
|
|
396
|
+
F
|
|
397
|
+
] }), e[43] = T, e[44] = F, e[45] = H) : H = e[45], H;
|
|
393
398
|
}
|
|
394
|
-
function
|
|
399
|
+
function re(t) {
|
|
395
400
|
return t.values;
|
|
396
401
|
}
|
|
397
|
-
const
|
|
398
|
-
function
|
|
402
|
+
const ne = [85, 70, 55, 75, 60];
|
|
403
|
+
function ve() {
|
|
399
404
|
const t = M(1);
|
|
400
405
|
let e;
|
|
401
|
-
return t[0] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ h(
|
|
406
|
+
return t[0] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ h(C, { sx: u.list, "aria-label": "Category skeleton", children: Array.from({
|
|
402
407
|
length: 5
|
|
403
|
-
}).map(
|
|
408
|
+
}).map(ie) }), t[0] = e) : e = t[0], e;
|
|
404
409
|
}
|
|
405
|
-
function
|
|
406
|
-
return /* @__PURE__ */ R(
|
|
407
|
-
/* @__PURE__ */ R(
|
|
408
|
-
/* @__PURE__ */ h(
|
|
409
|
-
/* @__PURE__ */ h(
|
|
410
|
+
function ie(t, e) {
|
|
411
|
+
return /* @__PURE__ */ R(C, { sx: u.row, children: [
|
|
412
|
+
/* @__PURE__ */ R(C, { sx: u.rowHeader, children: [
|
|
413
|
+
/* @__PURE__ */ h(N, { width: 80, height: 16 }),
|
|
414
|
+
/* @__PURE__ */ h(N, { width: 40, height: 16 })
|
|
410
415
|
] }),
|
|
411
|
-
/* @__PURE__ */ h(
|
|
416
|
+
/* @__PURE__ */ h(N, { variant: "rectangular", height: 4, sx: {
|
|
412
417
|
borderRadius: 2,
|
|
413
|
-
width: `${
|
|
418
|
+
width: `${ne[e]}%`
|
|
414
419
|
} })
|
|
415
420
|
] }, e);
|
|
416
421
|
}
|
|
417
|
-
function
|
|
422
|
+
function ke({
|
|
418
423
|
refUI: t,
|
|
419
424
|
series: e
|
|
420
425
|
}) {
|
|
421
426
|
return [{
|
|
422
|
-
...
|
|
423
|
-
modifier: () =>
|
|
427
|
+
...z,
|
|
428
|
+
modifier: () => z.modifier(t)
|
|
424
429
|
}, {
|
|
425
|
-
...
|
|
430
|
+
...U,
|
|
426
431
|
modifier: async (r) => {
|
|
427
432
|
if (!r?.length || r[0]?.length === 0)
|
|
428
|
-
return
|
|
433
|
+
return U.modifier([]);
|
|
429
434
|
const o = r.length, i = /* @__PURE__ */ new Map(), n = [];
|
|
430
435
|
for (let l = 0; l < o; l++) {
|
|
431
436
|
const m = r[l];
|
|
432
437
|
for (const f of m) {
|
|
433
|
-
let
|
|
434
|
-
|
|
438
|
+
let y = i.get(f.name);
|
|
439
|
+
y || (y = new Array(o).fill(0), i.set(f.name, y), n.push(f.name)), y[l] = f.value;
|
|
435
440
|
}
|
|
436
441
|
}
|
|
437
442
|
const c = n.map((l) => [l, ...i.get(l)]), d = o > 1 ? ["Category", ...e?.map((l) => l.name) ?? Array.from({
|
|
438
443
|
length: o
|
|
439
444
|
}, (l, m) => `Series ${m + 1}`)] : ["Category", "Value"];
|
|
440
|
-
return
|
|
445
|
+
return U.modifier([d, ...c]);
|
|
441
446
|
}
|
|
442
447
|
}];
|
|
443
448
|
}
|
|
444
|
-
function
|
|
449
|
+
function $e() {
|
|
445
450
|
return {
|
|
446
451
|
series: [],
|
|
447
|
-
maxItems: void 0
|
|
452
|
+
maxItems: void 0,
|
|
453
|
+
max: void 0
|
|
448
454
|
};
|
|
449
455
|
}
|
|
450
456
|
export {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
457
|
+
J as CategoryBar,
|
|
458
|
+
oe as CategoryLegend,
|
|
459
|
+
ee as CategoryRowMulti,
|
|
460
|
+
te as CategoryRowOther,
|
|
461
|
+
Z as CategoryRowSingle,
|
|
462
|
+
ve as CategorySkeleton,
|
|
463
|
+
we as CategoryUI,
|
|
464
|
+
$e as categoryConfig,
|
|
465
|
+
ke as categoryDownloadConfig
|
|
460
466
|
};
|
|
461
467
|
//# sourceMappingURL=category.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n overflow: 'auto',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport {\n CategoryRowSingle,\n CategoryRowMulti,\n CategoryRowOther,\n CategoryLegend,\n} from './components'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\ninterface GroupedCategoryItem {\n name: string\n values: number[]\n}\n\nexport function CategoryUI({ id }: CategoryUIProps) {\n const theme = useTheme()\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<CategoryWidgetState>(id)\n return {\n formatter: widget?.formatter,\n series: widget?.series,\n data: widget?.data,\n maxItems: widget?.maxItems,\n labels: widget?.labels,\n onRowClick: widget?.onRowClick,\n selected: widget?.selected,\n }\n }),\n )\n\n const formatter = widget?.formatter ?? defaultFormatter\n const series = useMemo(() => widget?.series ?? [], [widget?.series])\n const data = widget?.data\n const maxItems = widget?.maxItems\n const labels = widget?.labels\n const onRowClick = widget?.onRowClick\n const selected = widget?.selected\n\n const qualitativeColors = useMemo(\n () => Object.values(theme.palette.qualitative.bold),\n [theme.palette.qualitative.bold],\n )\n\n const colors = useMemo((): string[] => {\n if (series.length > 0) {\n return series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.primary.main,\n )\n }\n return [theme.palette.primary.main]\n }, [series, theme.palette.primary.main, qualitativeColors])\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = useMemo((): GroupedCategoryItem[] => {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n }, [data])\n\n const maxValue = useMemo(() => {\n if (groupedData.length === 0) return 0\n return Math.max(...groupedData.flatMap((item) => item.values))\n }, [groupedData])\n\n // Slice data to maxItems and compute hidden count\n const visibleData = useMemo(() => {\n if (maxItems === undefined) {\n return groupedData\n }\n const limit = Math.max(0, maxItems)\n if (limit >= groupedData.length) {\n return groupedData\n }\n return groupedData.slice(0, limit)\n }, [groupedData, maxItems])\n\n const hiddenCount = groupedData.length - visibleData.length\n\n if (groupedData.length === 0) {\n return null\n }\n\n const isMulti = series.length > 1\n\n return (\n <Box sx={styles.root}>\n <Box sx={styles.list}>\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0] ?? theme.palette.primary.main}\n formatter={formatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../root/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n CategoryLabels,\n} from './types'\n\nexport interface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\nexport interface CategoryConfigProps {\n data?: CategoryWidgetData\n series?: CategorySeriesConfig[]\n formatter?: (value: number) => string\n maxItems?: number\n labels?: CategoryLabels\n}\n\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: undefined,\n }\n}\n"],"names":["styles","root","display","flexDirection","position","overflow","list","gap","theme","spacing","row","pointerEvents","rowClickable","rowHeader","justifyContent","alignItems","rowLabel","typography","fontWeight","color","rowValue","barContainer","bar","height","borderRadius","backgroundColor","palette","action","disabledBackground","transition","cursor","hover","filter","barFill","barFillMuted","disabled","legend","flexWrap","paddingTop","bottom","borderTop","divider","marginTop","legendItem","legendDot","width","legendLabel","textTransform","multiBarRow","multiBarValue","minWidth","textAlign","multiBarContainer","flex","otherRow","otherLabel","fontStyle","otherCount","CategoryBar","t0","$","_c","value","maxValue","selected","t1","undefined","percentage","t2","barFillSx","t3","jsx","Box","CategoryRowSingle","name","formatter","onClick","handleClick","rowStyle","Typography","t4","t5","t6","t7","t8","jsxs","CategoryRowMulti","values","colors","index","length","map","CategoryRowOther","hiddenCount","otherCountLabel","replace","String","countText","CategoryLegend","series","item","defaultFormatter","toString","CategoryUI","id","useTheme","state","widget","getWidget","data","maxItems","labels","onRowClick","widget_0","useWidgetStore","useShallow","qualitative","bold","Object","qualitativeColors","bb0","primary","main","s","bb1","Symbol","for","seriesCount","Math","max","grouped","Map","nameOrder","seriesIndex","seriesData","get","Array","fill","set","push","groupedData","bb2","flatMap","_temp","bb3","limit","slice","visibleData","isMulti","item_1","item_2","t9","other","t10","t11","t12","item_0","widthPatterns","CategorySkeleton","from","_","Skeleton","categoryDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","headers","i","categoryConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"category.js","sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n overflow: 'auto',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useMemo } from 'react'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport {\n CategoryRowSingle,\n CategoryRowMulti,\n CategoryRowOther,\n CategoryLegend,\n} from './components'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\ninterface GroupedCategoryItem {\n name: string\n values: number[]\n}\n\nexport function CategoryUI({ id }: CategoryUIProps) {\n const theme = useTheme()\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<CategoryWidgetState>(id)\n return {\n formatter: widget?.formatter,\n series: widget?.series,\n data: widget?.data,\n maxItems: widget?.maxItems,\n labels: widget?.labels,\n onRowClick: widget?.onRowClick,\n selected: widget?.selected,\n max: widget?.max,\n }\n }),\n )\n\n const formatter = widget?.formatter ?? defaultFormatter\n const series = useMemo(() => widget?.series ?? [], [widget?.series])\n const data = widget?.data\n const maxItems = widget?.maxItems\n const labels = widget?.labels\n const onRowClick = widget?.onRowClick\n const selected = widget?.selected\n const max = widget?.max\n\n const qualitativeColors = useMemo(\n () => Object.values(theme.palette.qualitative.bold),\n [theme.palette.qualitative.bold],\n )\n\n const colors = useMemo((): string[] => {\n if (series.length > 0) {\n return series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.primary.main,\n )\n }\n return [theme.palette.primary.main]\n }, [series, theme.palette.primary.main, qualitativeColors])\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = useMemo((): GroupedCategoryItem[] => {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n }, [data])\n\n const maxValue = useMemo(() => {\n // If max is explicitly configured, use it\n if (max !== undefined) {\n return max\n }\n\n // Otherwise, calculate from data (existing behavior)\n if (groupedData.length === 0) return 0\n return Math.max(...groupedData.flatMap((item) => item.values))\n }, [max, groupedData])\n\n // Slice data to maxItems and compute hidden count\n const visibleData = useMemo(() => {\n if (maxItems === undefined) {\n return groupedData\n }\n const limit = Math.max(0, maxItems)\n if (limit >= groupedData.length) {\n return groupedData\n }\n return groupedData.slice(0, limit)\n }, [groupedData, maxItems])\n\n const hiddenCount = groupedData.length - visibleData.length\n\n if (groupedData.length === 0) {\n return null\n }\n\n const isMulti = series.length > 1\n\n return (\n <Box sx={styles.root}>\n <Box sx={styles.list}>\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0] ?? theme.palette.primary.main}\n formatter={formatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../root/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n CategoryLabels,\n} from './types'\n\nexport interface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\nexport interface CategoryConfigProps {\n data?: CategoryWidgetData\n series?: CategorySeriesConfig[]\n formatter?: (value: number) => string\n maxItems?: number\n labels?: CategoryLabels\n max?: number\n}\n\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: undefined,\n max: undefined,\n }\n}\n"],"names":["styles","root","display","flexDirection","position","overflow","list","gap","theme","spacing","row","pointerEvents","rowClickable","rowHeader","justifyContent","alignItems","rowLabel","typography","fontWeight","color","rowValue","barContainer","bar","height","borderRadius","backgroundColor","palette","action","disabledBackground","transition","cursor","hover","filter","barFill","barFillMuted","disabled","legend","flexWrap","paddingTop","bottom","borderTop","divider","marginTop","legendItem","legendDot","width","legendLabel","textTransform","multiBarRow","multiBarValue","minWidth","textAlign","multiBarContainer","flex","otherRow","otherLabel","fontStyle","otherCount","CategoryBar","t0","$","_c","value","maxValue","selected","t1","undefined","percentage","t2","barFillSx","t3","jsx","Box","CategoryRowSingle","name","formatter","onClick","handleClick","rowStyle","Typography","t4","t5","t6","t7","t8","jsxs","CategoryRowMulti","values","colors","index","length","map","CategoryRowOther","hiddenCount","otherCountLabel","replace","String","countText","CategoryLegend","series","item","defaultFormatter","toString","CategoryUI","id","useTheme","state","widget","getWidget","data","maxItems","labels","onRowClick","max","widget_0","useWidgetStore","useShallow","qualitative","bold","Object","qualitativeColors","bb0","primary","main","s","bb1","Symbol","for","seriesCount","Math","grouped","Map","nameOrder","seriesIndex","seriesData","get","Array","fill","set","push","groupedData","bb2","flatMap","_temp","bb3","limit","slice","visibleData","isMulti","item_1","item_2","t9","other","t10","t11","t12","item_0","widthPatterns","CategorySkeleton","from","_","Skeleton","categoryDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","headers","i","categoryConfig"],"mappings":"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"}
|
package/dist/widgets/echart.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as j } from "react/jsx-runtime";
|
|
|
2
2
|
import { c as U } from "react/compiler-runtime";
|
|
3
3
|
import { useRef as I, useEffect as h, useImperativeHandle as $ } from "react";
|
|
4
4
|
import * as B from "echarts";
|
|
5
|
-
import { u as k } from "../widget-store-
|
|
5
|
+
import { u as k } from "../widget-store-Dd7_sWZT.js";
|
|
6
6
|
import { useShallow as D } from "zustand/shallow";
|
|
7
7
|
import { g as Q } from "../options-D9wflre6.js";
|
|
8
8
|
import { g as V, a as X, b as Y, m as ee } from "../utils-Dv5Z47UQ.js";
|
package/dist/widgets/error.js
CHANGED