@embeddable.com/remarkable-ui 0.1.49 → 0.1.51

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 (100) hide show
  1. package/dist/BarChartDefaultHorizontalPro.js +18 -17
  2. package/dist/BarChartDefaultHorizontalPro.js.map +1 -1
  3. package/dist/BarChartDefaultPro.js +18 -17
  4. package/dist/BarChartDefaultPro.js.map +1 -1
  5. package/dist/BarChartGroupedHorizontalPro.js +20 -19
  6. package/dist/BarChartGroupedHorizontalPro.js.map +1 -1
  7. package/dist/BarChartGroupedPro.js +20 -19
  8. package/dist/BarChartGroupedPro.js.map +1 -1
  9. package/dist/BarChartStackedHorizontalPro.js +24 -23
  10. package/dist/BarChartStackedHorizontalPro.js.map +1 -1
  11. package/dist/BarChartStackedPro.js +24 -23
  12. package/dist/BarChartStackedPro.js.map +1 -1
  13. package/dist/{ChartCard-CMgDz_bs.js → ChartCard-D-0O5ugW.js} +37 -37
  14. package/dist/{ChartCard-CMgDz_bs.js.map → ChartCard-D-0O5ugW.js.map} +1 -1
  15. package/dist/{ComparisonPeriod.type.emb-C1o3iM9L.js → ComparisonPeriod.type.emb-CYp3nw-9.js} +2 -2
  16. package/dist/{ComparisonPeriod.type.emb-C1o3iM9L.js.map → ComparisonPeriod.type.emb-CYp3nw-9.js.map} +1 -1
  17. package/dist/ComparisonPeriodSelectFieldPro.js +8 -8
  18. package/dist/DateRangeSelectFieldPro.js +2 -2
  19. package/dist/DonutChartPro.js +2 -2
  20. package/dist/DonutLabelChartPro.js +2 -2
  21. package/dist/{EditorCard-CJoUz4uM.js → EditorCard-BhC7oToX.js} +15 -15
  22. package/dist/{EditorCard-CJoUz4uM.js.map → EditorCard-BhC7oToX.js.map} +1 -1
  23. package/dist/HeatMap-By9_uzV_.js +223 -0
  24. package/dist/HeatMap-By9_uzV_.js.map +1 -0
  25. package/dist/HeatMapPro.js +138 -0
  26. package/dist/HeatMapPro.js.map +1 -0
  27. package/dist/{KpiChart-C6zepuhF.js → KpiChart-CS9s8nJ4.js} +10 -10
  28. package/dist/{KpiChart-C6zepuhF.js.map → KpiChart-CS9s8nJ4.js.map} +1 -1
  29. package/dist/KpiChartNumberComparisonPro.js +29 -29
  30. package/dist/KpiChartNumberPro.js +4 -4
  31. package/dist/LineChartComparisonDefaultPro.js +13 -13
  32. package/dist/LineChartDefaultPro.js +10 -10
  33. package/dist/LineChartGroupedPro.js +6 -6
  34. package/dist/MultiSelectFieldPro.js +2 -2
  35. package/dist/PieChartPro.js +2 -2
  36. package/dist/PivotTable-Cx4WG6MV.js +273 -0
  37. package/dist/PivotTable-Cx4WG6MV.js.map +1 -0
  38. package/dist/PivotTablePro.js +43 -43
  39. package/dist/PivotTablePro.js.map +1 -1
  40. package/dist/{SingleSelectField-CJNiLfee.js → SingleSelectField-DlVCi5Ej.js} +15 -15
  41. package/dist/{SingleSelectField-CJNiLfee.js.map → SingleSelectField-DlVCi5Ej.js.map} +1 -1
  42. package/dist/SingleSelectFieldPro.js +2 -2
  43. package/dist/TableChartPaginated.js +27 -27
  44. package/dist/bars.utils-DTdoPs5N.js +146 -0
  45. package/dist/bars.utils-DTdoPs5N.js.map +1 -0
  46. package/dist/{charts.utils-HfNL9dVl.js → charts.utils-D9TXwxGs.js} +4 -4
  47. package/dist/charts.utils-D9TXwxGs.js.map +1 -0
  48. package/dist/{component.constants-CFaxyNCw.js → component.constants-DCOqCFoY.js} +3286 -3124
  49. package/dist/component.constants-DCOqCFoY.js.map +1 -0
  50. package/dist/embeddable-components.json +12 -11
  51. package/dist/embeddable-theme-2b917.js +1 -1
  52. package/dist/{formatter.utils-Cu4uKJSZ.js → formatter.utils-B80iNq9Q.js} +2 -2
  53. package/dist/{formatter.utils-Cu4uKJSZ.js.map → formatter.utils-B80iNq9Q.js.map} +1 -1
  54. package/dist/{index-BAfVF5iP.js → index--tdFwk_H.js} +7 -7
  55. package/dist/{index-BAfVF5iP.js.map → index--tdFwk_H.js.map} +1 -1
  56. package/dist/{index-DvEWwlqq.js → index-BcPj51g3.js} +23 -23
  57. package/dist/{index-DvEWwlqq.js.map → index-BcPj51g3.js.map} +1 -1
  58. package/dist/{index-CxxeUDMD.js → index-C3o3AQpK.js} +11 -11
  59. package/dist/{index-CxxeUDMD.js.map → index-C3o3AQpK.js.map} +1 -1
  60. package/dist/{index-C4BiW71l.js → index-CmE__sUg.js} +8 -8
  61. package/dist/{index-C4BiW71l.js.map → index-CmE__sUg.js.map} +1 -1
  62. package/dist/{index-DW-LmiPi.js → index-D4oPbYPT.js} +8 -8
  63. package/dist/{index-DW-LmiPi.js.map → index-D4oPbYPT.js.map} +1 -1
  64. package/dist/{index-DvMr1tvf.js → index-DpIR-B0R.js} +18 -18
  65. package/dist/{index-DvMr1tvf.js.map → index-DpIR-B0R.js.map} +1 -1
  66. package/dist/index.js +148 -138
  67. package/dist/index.js.map +1 -1
  68. package/dist/{pies.utils-JpKM3rVw.js → pies.utils-DEkgZgVk.js} +6 -6
  69. package/dist/{pies.utils-JpKM3rVw.js.map → pies.utils-DEkgZgVk.js.map} +1 -1
  70. package/dist/remarkable-pro/components/charts/tables/HeatMapPro/index.d.ts +29 -0
  71. package/dist/remarkable-pro/components/charts/tables/HeatMapPro/index.d.ts.map +1 -0
  72. package/dist/remarkable-pro/components/component.constants.d.ts +7 -0
  73. package/dist/remarkable-pro/components/component.constants.d.ts.map +1 -1
  74. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.d.ts +3 -0
  75. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.d.ts.map +1 -0
  76. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.stories.d.ts +9 -0
  77. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.stories.d.ts.map +1 -0
  78. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.types.d.ts +30 -0
  79. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.types.d.ts.map +1 -0
  80. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.utils.d.ts +43 -0
  81. package/dist/remarkable-ui/charts/tables/HeatMap/HeatMap.utils.d.ts.map +1 -0
  82. package/dist/remarkable-ui/charts/tables/PivotTable/PivotTable.d.ts.map +1 -1
  83. package/dist/remarkable-ui/charts/tables/PivotTable/PivotTable.types.d.ts +1 -0
  84. package/dist/remarkable-ui/charts/tables/PivotTable/PivotTable.types.d.ts.map +1 -1
  85. package/dist/remarkable-ui/charts/tables/tables.utils.d.ts +6 -0
  86. package/dist/remarkable-ui/charts/tables/tables.utils.d.ts.map +1 -0
  87. package/dist/remarkable-ui/index.d.ts +6 -1
  88. package/dist/remarkable-ui/index.d.ts.map +1 -1
  89. package/dist/remarkable-ui.css +1 -1
  90. package/dist/tables.utils-D7KXdM2S.js +9 -0
  91. package/dist/tables.utils-D7KXdM2S.js.map +1 -0
  92. package/dist/{timeRange.utils-Z2lmKTCB.js → timeRange.utils-u1NZ0u7o.js} +2 -2
  93. package/dist/{timeRange.utils-Z2lmKTCB.js.map → timeRange.utils-u1NZ0u7o.js.map} +1 -1
  94. package/package.json +1 -1
  95. package/dist/PivotTable-SNPquHl0.js +0 -253
  96. package/dist/PivotTable-SNPquHl0.js.map +0 -1
  97. package/dist/bars.utils-vXPRJDGQ.js +0 -311
  98. package/dist/bars.utils-vXPRJDGQ.js.map +0 -1
  99. package/dist/charts.utils-HfNL9dVl.js.map +0 -1
  100. package/dist/component.constants-CFaxyNCw.js.map +0 -1
@@ -1,253 +0,0 @@
1
- import { j as c, ag as h, ah as p } from "./component.constants-CFaxyNCw.js";
2
- import { useMemo as $, useState as X, useEffect as Y } from "react";
3
- const Z = "_tableContainer_2e613_3", L = "_table_2e613_3", D = "_cell_2e613_78", m = "_header_2e613_106", tt = "_bold_2e613_111", o = {
4
- tableContainer: Z,
5
- table: L,
6
- cell: D,
7
- header: m,
8
- bold: tt
9
- }, z = (r) => typeof r == "number" && !Number.isNaN(r), u = (r, A) => `${r.toFixed(A)}%`, E = (r) => ({
10
- minWidth: r ? `${r}px` : void 0,
11
- width: r ? `${r}px` : void 0,
12
- maxWidth: r ? `${r}px` : void 0
13
- }), ot = ({
14
- columnWidth: r,
15
- firstColumnWidth: A,
16
- data: b,
17
- measures: n,
18
- rowDimension: y,
19
- columnDimension: g,
20
- progressive: _ = !0,
21
- batchSize: C = 100,
22
- batchDelayMs: M = 0,
23
- rowTotalsFor: R = [],
24
- columnTotalsFor: F = [],
25
- totalLabel: P = "Total"
26
- }) => {
27
- const k = $(() => {
28
- const t = /* @__PURE__ */ new Set();
29
- for (const e of b) {
30
- const l = e[y.key];
31
- l && t.add(l);
32
- }
33
- return Array.from(t);
34
- }, [b, y.key]), N = $(() => {
35
- const t = /* @__PURE__ */ new Set();
36
- for (const e of b) {
37
- const l = e[g.key];
38
- l && t.add(l);
39
- }
40
- return Array.from(t);
41
- }, [b, g.key]), G = $(() => {
42
- const t = /* @__PURE__ */ new Map();
43
- for (const e of b) {
44
- const l = String(e[y.key]), s = String(e[g.key]);
45
- t.has(l) || t.set(l, /* @__PURE__ */ new Map()), t.get(l).set(s, e);
46
- }
47
- return t;
48
- }, [b, y.key, g.key]), T = $(() => new Set(R), [R]), W = $(() => new Set(F), [F]), V = T.size > 0, H = W.size > 0, B = $(() => {
49
- const t = /* @__PURE__ */ new Map();
50
- return n.forEach((e, l) => t.set(String(e.key), l)), t;
51
- }, [n]), { colTotals: K, rowTotals: J, grandTotals: q } = $(() => {
52
- const t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), l = n.map(() => 0);
53
- for (const s of b) {
54
- const i = String(s[y.key]), a = String(s[g.key]), d = t.get(a) ?? n.map(() => 0), f = e.get(i) ?? n.map(() => 0);
55
- n.forEach((x, j) => {
56
- const w = s == null ? void 0 : s[x.key], S = Number(w);
57
- Number.isNaN(S) || (d[j] += S, f[j] += S, l[j] += S);
58
- }), t.set(a, d), e.set(i, f);
59
- }
60
- for (const s of N)
61
- t.has(String(s)) || t.set(
62
- String(s),
63
- n.map(() => 0)
64
- );
65
- for (const s of k)
66
- e.has(String(s)) || e.set(
67
- String(s),
68
- n.map(() => 0)
69
- );
70
- return { colTotals: t, rowTotals: e, grandTotals: l };
71
- }, [b, n, y.key, g.key, N, k]), [O, v] = X(
72
- () => _ ? Math.min(C, k.length) : k.length
73
- );
74
- Y(() => {
75
- if (!_) {
76
- v(k.length);
77
- return;
78
- }
79
- let t = !1, e = null;
80
- v(0);
81
- const l = () => {
82
- v((s) => {
83
- const i = Math.min(s + C, k.length);
84
- return i < k.length && !t && (e = window.setTimeout(l, M)), i;
85
- });
86
- };
87
- return e = window.setTimeout(l, M), () => {
88
- t = !0, e !== null && window.clearTimeout(e);
89
- };
90
- }, [_, C, M, k.length, b]);
91
- const Q = _ ? k.slice(0, O) : k;
92
- return /* @__PURE__ */ c.jsx("div", { className: o.tableContainer, children: /* @__PURE__ */ c.jsxs(
93
- "table",
94
- {
95
- className: o.table,
96
- "aria-label": `${y.label} by ${g.label}`,
97
- children: [
98
- /* @__PURE__ */ c.jsxs("thead", { children: [
99
- /* @__PURE__ */ c.jsxs("tr", { children: [
100
- /* @__PURE__ */ c.jsx(
101
- "th",
102
- {
103
- scope: "col",
104
- rowSpan: 1,
105
- className: h(o.cell, o.header),
106
- title: g.label,
107
- children: /* @__PURE__ */ c.jsx(p, { children: g.label })
108
- }
109
- ),
110
- N.map((t) => {
111
- const e = g.formatValue ? g.formatValue(t) : t;
112
- return /* @__PURE__ */ c.jsx(
113
- "th",
114
- {
115
- scope: "colgroup",
116
- colSpan: n.length,
117
- className: h(o.cell, o.header),
118
- title: e,
119
- children: /* @__PURE__ */ c.jsx(p, { children: e })
120
- },
121
- `col-${t}`
122
- );
123
- }),
124
- V && /* @__PURE__ */ c.jsx(
125
- "th",
126
- {
127
- scope: "colgroup",
128
- colSpan: Array.from(T).length,
129
- className: h(o.cell, o.bold),
130
- title: P,
131
- children: /* @__PURE__ */ c.jsx(p, { children: P })
132
- },
133
- "col-total-group"
134
- )
135
- ] }),
136
- /* @__PURE__ */ c.jsxs("tr", { children: [
137
- /* @__PURE__ */ c.jsx(
138
- "th",
139
- {
140
- scope: "col",
141
- rowSpan: 1,
142
- className: h(o.cell, o.header),
143
- title: y.label,
144
- style: E(A),
145
- children: /* @__PURE__ */ c.jsx(p, { children: y.label })
146
- }
147
- ),
148
- N.flatMap(
149
- (t) => n.map((e, l) => /* @__PURE__ */ c.jsx(
150
- "th",
151
- {
152
- scope: "col",
153
- className: h(o.cell, o.header),
154
- title: e.label,
155
- style: E(r),
156
- children: /* @__PURE__ */ c.jsx(p, { children: e.label })
157
- },
158
- `sub-${String(t)}-${e.key}-${l}`
159
- ))
160
- ),
161
- V && n.filter((t) => T.has(t.key)).map((t, e) => /* @__PURE__ */ c.jsx(
162
- "th",
163
- {
164
- scope: "col",
165
- className: h(o.cell, o.bold),
166
- title: t.label,
167
- style: E(r),
168
- children: /* @__PURE__ */ c.jsx(p, { children: t.label })
169
- },
170
- `sub-total-${t.key}-${e}`
171
- ))
172
- ] })
173
- ] }),
174
- /* @__PURE__ */ c.jsx("tbody", { children: Q.map((t) => {
175
- const e = y.formatValue ? y.formatValue(t) : t;
176
- return /* @__PURE__ */ c.jsxs("tr", { children: [
177
- /* @__PURE__ */ c.jsx(
178
- "th",
179
- {
180
- scope: "row",
181
- className: h(o.cell, o.header),
182
- title: e,
183
- children: /* @__PURE__ */ c.jsx(p, { children: e })
184
- }
185
- ),
186
- N.flatMap(
187
- (l) => n.map((s, i) => {
188
- var w;
189
- const a = ((w = G.get(t)) == null ? void 0 : w.get(l)) ?? {}, d = a == null ? void 0 : a[s.key], f = `cell-${t}-${l}-${s.key}-${i}`, j = (() => {
190
- if (s.showAsPercentage) {
191
- const S = B.get(String(s.key)) ?? -1, U = K.get(String(l)) ?? n.map(() => 0), I = S >= 0 ? U[S] ?? 0 : 0;
192
- if (s.showAsPercentage && z(Number(d)) && z(I) && I > 0)
193
- return `${(d / I * 100).toFixed(s.percentageDecimalPlaces ?? 0)}%`;
194
- }
195
- return s.accessor ? s.accessor(a) : d;
196
- })();
197
- return /* @__PURE__ */ c.jsx("td", { className: h(o.cell), title: j, children: /* @__PURE__ */ c.jsx(p, { children: j }) }, f);
198
- })
199
- ),
200
- V && n.filter((l) => T.has(l.key)).map((l, s) => {
201
- const i = J.get(t) ?? n.map(() => 0), a = B.get(l.key) ?? -1, d = `row-total-${String(t)}-${l.key}-${s}`, f = a >= 0 ? i[a] ?? 0 : 0;
202
- let x = f;
203
- return l.showAsPercentage ? x = u(
204
- f / (q[a] || 1) * 100,
205
- l.percentageDecimalPlaces ?? 0
206
- ) : l.accessor && (x = l.accessor({ [l.key]: f })), /* @__PURE__ */ c.jsx(
207
- "td",
208
- {
209
- className: h(o.cell, o.bold),
210
- title: x,
211
- children: /* @__PURE__ */ c.jsx(p, { children: x })
212
- },
213
- d
214
- );
215
- })
216
- ] }, `row-${t}`);
217
- }) }),
218
- /* @__PURE__ */ c.jsx("tfoot", { children: H && /* @__PURE__ */ c.jsxs("tr", { children: [
219
- /* @__PURE__ */ c.jsx("th", { scope: "row", className: h(o.cell, o.bold), title: P, children: /* @__PURE__ */ c.jsx(p, { children: P }) }),
220
- N.flatMap(
221
- (t) => n.map((e, l) => {
222
- const s = W.has(String(e.key)), i = K.get(String(t)) ?? n.map(() => 0), a = n.findIndex((w) => String(w.key) === String(e.key)), d = `col-total-${String(t)}-${e.key}-${l}`, f = i[a] ?? 0;
223
- let x = f;
224
- e.showAsPercentage ? x = u(100, e.percentageDecimalPlaces ?? 0) : e.accessor && (x = e.accessor({ [e.key]: f }));
225
- const j = s ? x : "";
226
- return /* @__PURE__ */ c.jsx(
227
- "td",
228
- {
229
- className: h(o.cell, o.bold),
230
- title: j,
231
- children: /* @__PURE__ */ c.jsx(p, { children: j })
232
- },
233
- d
234
- );
235
- })
236
- ),
237
- V && n.filter((t) => T.has(t.key)).map((t, e) => {
238
- const l = n.findIndex((d) => String(d.key) === t.key), s = `grand-total-${t.key}-${e}`, i = q[l] ?? 0;
239
- let a = i;
240
- return t.showAsPercentage ? a = u(
241
- 100,
242
- t.percentageDecimalPlaces ?? 0
243
- ) : t.accessor && (a = t.accessor({ [t.key]: i })), /* @__PURE__ */ c.jsx("td", { className: h(o.cell, o.bold), title: a, children: /* @__PURE__ */ c.jsx(p, { children: a }) }, s);
244
- })
245
- ] }, "totals-row") })
246
- ]
247
- }
248
- ) });
249
- };
250
- export {
251
- ot as P
252
- };
253
- //# sourceMappingURL=PivotTable-SNPquHl0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PivotTable-SNPquHl0.js","sources":["../src/remarkable-ui/charts/tables/PivotTable/PivotTable.tsx"],"sourcesContent":["import { FC, useEffect, useMemo, useState } from 'react';\nimport styles from './PivotTable.module.css';\nimport clsx from 'clsx';\nimport { PivotTableProps } from './PivotTable.types';\nimport { Typography } from '../../../shared/Typography/Typography';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nconst isNumber = (v: any) => typeof v === 'number' && !Number.isNaN(v);\n\nconst getPercentageDisplay = (percentage: number, percentageDecimalPlaces: number) => {\n return `${percentage.toFixed(percentageDecimalPlaces)}%`;\n};\n\nconst getCellWidthStyle = (width: number | undefined) => {\n return {\n minWidth: width ? `${width}px` : undefined,\n width: width ? `${width}px` : undefined,\n maxWidth: width ? `${width}px` : undefined,\n };\n};\n\nexport const PivotTable: FC<PivotTableProps<any>> = ({\n columnWidth,\n firstColumnWidth,\n data,\n measures,\n rowDimension,\n columnDimension,\n progressive = true,\n batchSize = 100,\n batchDelayMs = 0,\n rowTotalsFor = [],\n columnTotalsFor = [],\n totalLabel = 'Total',\n}) => {\n const rowValues = useMemo(() => {\n const s = new Set<string>();\n for (const d of data) {\n const rowValue = d[rowDimension.key];\n if (rowValue) s.add(rowValue);\n }\n return Array.from(s);\n }, [data, rowDimension.key]);\n\n const columnValues = useMemo(() => {\n const s = new Set<string>();\n for (const d of data) {\n const columnValue = d[columnDimension.key];\n if (columnValue) s.add(columnValue as string);\n }\n return Array.from(s);\n }, [data, columnDimension.key]);\n\n const cellMap = useMemo(() => {\n const map = new Map<string, Map<string, Record<string, any>>>();\n for (const d of data) {\n const r = String(d[rowDimension.key]);\n const c = String(d[columnDimension.key]);\n if (!map.has(r)) map.set(r, new Map());\n map.get(r)!.set(c, d as Record<string, any>);\n }\n return map;\n }, [data, rowDimension.key, columnDimension.key]);\n\n const rowTotalsSet = useMemo(() => new Set<string>(rowTotalsFor), [rowTotalsFor]);\n const columnTotalsSet = useMemo(() => new Set<string>(columnTotalsFor), [columnTotalsFor]);\n const hasRowTotals = rowTotalsSet.size > 0;\n const hasColumnTotals = columnTotalsSet.size > 0;\n\n const measureIndexByKey = useMemo(() => {\n const map = new Map<string, number>();\n measures.forEach((m, i) => map.set(String(m.key), i));\n return map;\n }, [measures]);\n\n const { colTotals, rowTotals, grandTotals } = useMemo(() => {\n const cTotals = new Map<string, number[]>();\n const rTotals = new Map<string, number[]>();\n const gTotals = measures.map(() => 0);\n\n for (const d of data) {\n const r = String(d[rowDimension.key]);\n const c = String(d[columnDimension.key]);\n const cArr = cTotals.get(c) ?? measures.map(() => 0);\n const rArr = rTotals.get(r) ?? measures.map(() => 0);\n\n measures.forEach((m, i) => {\n const raw = (d as any)?.[m.key];\n const v = Number(raw);\n if (!Number.isNaN(v)) {\n cArr[i]! += v;\n rArr[i]! += v;\n gTotals[i]! += v;\n }\n });\n\n cTotals.set(c, cArr);\n rTotals.set(r, rArr);\n }\n\n for (const c of columnValues) {\n if (!cTotals.has(String(c)))\n cTotals.set(\n String(c),\n measures.map(() => 0),\n );\n }\n for (const r of rowValues) {\n if (!rTotals.has(String(r)))\n rTotals.set(\n String(r),\n measures.map(() => 0),\n );\n }\n\n return { colTotals: cTotals, rowTotals: rTotals, grandTotals: gTotals };\n }, [data, measures, rowDimension.key, columnDimension.key, columnValues, rowValues]);\n\n const [visibleCount, setVisibleCount] = useState(() =>\n progressive ? Math.min(batchSize, rowValues.length) : rowValues.length,\n );\n\n useEffect(() => {\n if (!progressive) {\n setVisibleCount(rowValues.length);\n return;\n }\n let cancelled = false;\n let t: number | null = null;\n setVisibleCount(0);\n\n const tick = () => {\n setVisibleCount((prev) => {\n const next = Math.min(prev + batchSize, rowValues.length);\n if (next < rowValues.length && !cancelled) {\n t = window.setTimeout(tick, batchDelayMs);\n }\n return next;\n });\n };\n\n t = window.setTimeout(tick, batchDelayMs);\n\n return () => {\n cancelled = true;\n if (t !== null) window.clearTimeout(t);\n };\n }, [progressive, batchSize, batchDelayMs, rowValues.length, data]);\n\n const visibleRows = progressive ? rowValues.slice(0, visibleCount) : rowValues;\n\n return (\n <div className={styles.tableContainer}>\n <table\n className={styles.table}\n aria-label={`${rowDimension.label} by ${columnDimension.label}`}\n >\n <thead>\n <tr>\n <th\n scope=\"col\"\n rowSpan={1}\n className={clsx(styles.cell, styles.header)}\n title={columnDimension.label}\n >\n <Typography>{columnDimension.label}</Typography>\n </th>\n {columnValues.map((columnValue) => {\n const columnValueDisplay = columnDimension.formatValue\n ? columnDimension.formatValue(columnValue)\n : columnValue;\n return (\n <th\n key={`col-${columnValue}`}\n scope=\"colgroup\"\n colSpan={measures.length}\n className={clsx(styles.cell, styles.header)}\n title={columnValueDisplay}\n >\n <Typography>{columnValueDisplay}</Typography>\n </th>\n );\n })}\n {hasRowTotals && (\n <th\n key=\"col-total-group\"\n scope=\"colgroup\"\n colSpan={Array.from(rowTotalsSet).length}\n className={clsx(styles.cell, styles.bold)}\n title={totalLabel}\n >\n <Typography>{totalLabel}</Typography>\n </th>\n )}\n </tr>\n <tr>\n <th\n scope=\"col\"\n rowSpan={1}\n className={clsx(styles.cell, styles.header)}\n title={rowDimension.label}\n style={getCellWidthStyle(firstColumnWidth)}\n >\n <Typography>{rowDimension.label}</Typography>\n </th>\n {columnValues.flatMap((col) =>\n measures.map((measure, idx) => (\n <th\n key={`sub-${String(col)}-${measure.key}-${idx}`}\n scope=\"col\"\n className={clsx(styles.cell, styles.header)}\n title={measure.label}\n style={getCellWidthStyle(columnWidth)}\n >\n <Typography>{measure.label}</Typography>\n </th>\n )),\n )}\n {hasRowTotals &&\n measures\n .filter((measure) => rowTotalsSet.has(measure.key))\n .map((measure, idx) => (\n <th\n key={`sub-total-${measure.key}-${idx}`}\n scope=\"col\"\n className={clsx(styles.cell, styles.bold)}\n title={measure.label}\n style={getCellWidthStyle(columnWidth)}\n >\n <Typography>{measure.label}</Typography>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {visibleRows.map((row) => {\n const rowDimensionValue = rowDimension.formatValue\n ? rowDimension.formatValue(row)\n : row;\n return (\n <tr key={`row-${row}`}>\n <th\n scope=\"row\"\n className={clsx(styles.cell, styles.header)}\n title={rowDimensionValue}\n >\n <Typography>{rowDimensionValue}</Typography>\n </th>\n\n {columnValues.flatMap((columnValue) =>\n measures.map((measure, idx) => {\n const object = cellMap.get(row)?.get(columnValue) ?? {};\n const value = object?.[measure.key];\n\n const key = `cell-${row}-${columnValue}-${measure.key}-${idx}`;\n const getDisplayValue = () => {\n if (measure.showAsPercentage) {\n const mi = measureIndexByKey.get(String(measure.key)) ?? -1;\n const totalsForCol =\n colTotals.get(String(columnValue)) ?? measures.map(() => 0);\n const colTotal = mi >= 0 ? (totalsForCol[mi] ?? 0) : 0;\n\n const shouldShowPct =\n measure.showAsPercentage &&\n isNumber(Number(value)) &&\n isNumber(colTotal) &&\n colTotal > 0;\n\n if (shouldShowPct) {\n const percentage = (value / colTotal) * 100;\n return `${percentage.toFixed(measure.percentageDecimalPlaces ?? 0)}%`;\n }\n }\n\n return measure.accessor ? measure.accessor(object) : value;\n };\n\n const columnValueDisplay = getDisplayValue();\n\n return (\n <td key={key} className={clsx(styles.cell)} title={columnValueDisplay}>\n <Typography>{columnValueDisplay}</Typography>\n </td>\n );\n }),\n )}\n\n {hasRowTotals &&\n measures\n .filter((measure) => rowTotalsSet.has(measure.key))\n .map((measure, idx) => {\n const totalsForRow = rowTotals.get(row) ?? measures.map(() => 0);\n const measureIndex = measureIndexByKey.get(measure.key) ?? -1;\n const key = `row-total-${String(row)}-${measure.key}-${idx}`;\n const value: number =\n measureIndex >= 0 ? (totalsForRow[measureIndex] ?? 0) : 0;\n let displayValue: any = value;\n\n if (measure.showAsPercentage) {\n displayValue = getPercentageDisplay(\n (value / (grandTotals[measureIndex] || 1)) * 100,\n measure.percentageDecimalPlaces ?? 0,\n );\n } else if (measure.accessor) {\n displayValue = measure.accessor({ [measure.key]: value });\n }\n\n return (\n <td\n key={key}\n className={clsx(styles.cell, styles.bold)}\n title={displayValue}\n >\n <Typography>{displayValue}</Typography>\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n <tfoot>\n {hasColumnTotals && (\n <tr key=\"totals-row\">\n <th scope=\"row\" className={clsx(styles.cell, styles.bold)} title={totalLabel}>\n <Typography>{totalLabel}</Typography>\n </th>\n\n {columnValues.flatMap((columnValue) =>\n measures.map((measure, idx) => {\n const show = columnTotalsSet.has(String(measure.key));\n const totalsForCol = colTotals.get(String(columnValue)) ?? measures.map(() => 0);\n const mi = measures.findIndex((mm) => String(mm.key) === String(measure.key));\n const key = `col-total-${String(columnValue)}-${measure.key}-${idx}`;\n const value: number = totalsForCol[mi] ?? 0;\n let displayValue: any = value;\n\n if (measure.showAsPercentage) {\n displayValue = getPercentageDisplay(100, measure.percentageDecimalPlaces ?? 0);\n } else if (measure.accessor) {\n displayValue = measure.accessor({ [measure.key]: value });\n }\n const columnValueDisplay = show ? displayValue : '';\n\n return (\n <td\n key={key}\n className={clsx(styles.cell, styles.bold)}\n title={columnValueDisplay}\n >\n <Typography>{columnValueDisplay}</Typography>\n </td>\n );\n }),\n )}\n\n {hasRowTotals &&\n measures\n .filter((measure) => rowTotalsSet.has(measure.key))\n .map((measure, idx) => {\n const measureIndex = measures.findIndex((m) => String(m.key) === measure.key);\n const key = `grand-total-${measure.key}-${idx}`;\n const value: number = grandTotals[measureIndex] ?? 0;\n let displayValue: any = value;\n\n if (measure.showAsPercentage) {\n displayValue = getPercentageDisplay(\n 100,\n measure.percentageDecimalPlaces ?? 0,\n );\n } else if (measure.accessor) {\n displayValue = measure.accessor({ [measure.key]: value });\n }\n\n return (\n <td key={key} className={clsx(styles.cell, styles.bold)} title={displayValue}>\n <Typography>{displayValue}</Typography>\n </td>\n );\n })}\n </tr>\n )}\n </tfoot>\n </table>\n </div>\n );\n};\n"],"names":["isNumber","v","getPercentageDisplay","percentage","percentageDecimalPlaces","getCellWidthStyle","width","PivotTable","columnWidth","firstColumnWidth","data","measures","rowDimension","columnDimension","progressive","batchSize","batchDelayMs","rowTotalsFor","columnTotalsFor","totalLabel","rowValues","useMemo","s","d","rowValue","columnValues","columnValue","cellMap","map","r","c","rowTotalsSet","columnTotalsSet","hasRowTotals","hasColumnTotals","measureIndexByKey","m","i","colTotals","rowTotals","grandTotals","cTotals","rTotals","gTotals","cArr","rArr","raw","visibleCount","setVisibleCount","useState","useEffect","cancelled","t","tick","prev","next","visibleRows","jsx","styles","jsxs","clsx","Typography","columnValueDisplay","col","measure","idx","row","rowDimensionValue","object","_a","value","key","mi","totalsForCol","colTotal","totalsForRow","measureIndex","displayValue","show","mm"],"mappings":"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"}
@@ -1,311 +0,0 @@
1
- import { C as $, m as C, D as I, E as h, F as x, G as B, H as T, I as S, L as R, J as V, K as j, M as F, N, O as P, P as z, j as f, Q as M, R as _, S as H, T as L } from "./component.constants-CFaxyNCw.js";
2
- import { useRef as K } from "react";
3
- import { r as E, g as G } from "./charts.utils-HfNL9dVl.js";
4
- import { g as y } from "./formatter.utils-Cu4uKJSZ.js";
5
- import { g as w, a as p } from "./object.utils-D_Zzon-H.js";
6
- const J = (a) => {
7
- var t;
8
- return {
9
- ...a,
10
- datasets: (t = a.datasets) == null ? void 0 : t.map((n, s) => {
11
- const e = h[s % h.length], r = {
12
- ...n,
13
- backgroundColor: e,
14
- borderColor: e
15
- };
16
- return C(r, n);
17
- })
18
- };
19
- }, Q = (a, t) => t && a.datasetIndex === a.chart.data.datasets.length - 1 ? "auto" : !1, X = (a, t) => {
20
- const { datasets: n } = t.chart.data, s = t.dataIndex, e = n.reduce((r, d) => {
21
- const o = d.data[s];
22
- return r + (o || 0);
23
- }, 0);
24
- return e > 0 ? e : "";
25
- }, Y = (a) => ({
26
- indexAxis: "x",
27
- layout: {
28
- padding: {
29
- top: (a.stacked ? a.showTotalLabels : a.showValueLabels) ? B : 0
30
- }
31
- },
32
- plugins: {
33
- datalabels: {
34
- labels: {
35
- total: {
36
- align: (t) => t.dataset.data[t.dataIndex] >= 0 ? "top" : "left"
37
- },
38
- value: {
39
- align: (t) => a.stacked ? "center" : t.dataset.data[t.dataIndex] >= 0 ? "top" : "bottom"
40
- }
41
- }
42
- }
43
- },
44
- scales: {
45
- x: {
46
- grid: { display: !1 },
47
- ticks: {
48
- color: x("--em-chart-grid-font-color-default")
49
- },
50
- reverse: a.reverseXAxis
51
- },
52
- y: {
53
- grid: { display: !0 },
54
- ticks: {
55
- color: x("--em-chart-grid-font-color-muted")
56
- },
57
- min: a.yAxisRangeMin,
58
- max: a.yAxisRangeMax,
59
- type: a.showLogarithmicScale ? "logarithmic" : "linear"
60
- }
61
- }
62
- }), q = (a) => ({
63
- indexAxis: "y",
64
- layout: {
65
- padding: {
66
- right: (a.stacked ? a.showTotalLabels : a.showValueLabels) ? B : 0
67
- }
68
- },
69
- plugins: {
70
- datalabels: {
71
- labels: {
72
- total: {
73
- align: (t) => t.dataset.data[t.dataIndex] >= 0 ? "right" : "left"
74
- },
75
- value: {
76
- align: (t) => a.stacked ? "center" : t.dataset.data[t.dataIndex] >= 0 ? "right" : "left"
77
- }
78
- }
79
- }
80
- },
81
- scales: {
82
- x: {
83
- grid: { display: !0 },
84
- ticks: {
85
- color: x("--em-chart-grid-font-color-muted")
86
- },
87
- min: a.xAxisRangeMin,
88
- max: a.xAxisRangeMax,
89
- type: a.showLogarithmicScale ? "logarithmic" : "linear"
90
- },
91
- y: {
92
- grid: { display: !1 },
93
- ticks: {
94
- color: x("--em-chart-grid-font-color-default")
95
- },
96
- reverse: a.reverseYAxis
97
- }
98
- }
99
- }), U = (a) => {
100
- const t = {
101
- elements: {
102
- bar: {
103
- borderRadius: $("--em-chart-style-border-radius-default")
104
- }
105
- },
106
- plugins: {
107
- legend: { display: a.showLegend },
108
- tooltip: {
109
- enabled: a.showTooltips
110
- },
111
- datalabels: {
112
- display: (e) => a.showValueLabels && e.dataset.data[e.dataIndex] !== 0 ? "auto" : !1,
113
- labels: {
114
- total: {
115
- display: (e) => Q(e, a.showTotalLabels),
116
- formatter: X,
117
- anchor: (e) => e.dataset.data[e.dataIndex] >= 0 ? "end" : "start"
118
- },
119
- value: {
120
- anchor: (e) => a.stacked ? "center" : e.dataset.data[e.dataIndex] >= 0 ? "end" : "start"
121
- }
122
- }
123
- }
124
- },
125
- scales: {
126
- x: {
127
- stacked: !!a.stacked,
128
- title: {
129
- display: !!a.xAxisLabel,
130
- text: a.xAxisLabel ?? ""
131
- },
132
- ticks: { display: !0 }
133
- },
134
- y: {
135
- stacked: !!a.stacked,
136
- title: {
137
- display: !!a.yAxisLabel,
138
- text: a.yAxisLabel ?? ""
139
- },
140
- ticks: { display: !0 }
141
- }
142
- }
143
- }, s = (a.horizontal ? q : Y)(a);
144
- return C(I, t, s);
145
- };
146
- T.register(
147
- S,
148
- R,
149
- V,
150
- j,
151
- F,
152
- N,
153
- P,
154
- z
155
- );
156
- const sa = ({ data: a, onSegmentClick: t, options: n = {}, ...s }) => {
157
- const e = K(null), r = C(U(s), n), d = (o) => {
158
- const l = H(o, e);
159
- t == null || t(l);
160
- };
161
- return /* @__PURE__ */ f.jsx("div", { className: M.chartContainer, children: /* @__PURE__ */ f.jsx(
162
- _,
163
- {
164
- ref: e,
165
- data: J(a),
166
- options: r,
167
- onClick: d
168
- }
169
- ) });
170
- }, la = (a, t) => {
171
- var g;
172
- const n = y(t), { data: s = [], dimension: e, groupDimension: r, measure: d } = a, o = [...new Set(s.map((u) => u[e.name]).filter(Boolean))].sort(), l = `${r.name}${(g = r.inputs) != null && g.granularity ? `.${r.inputs.granularity}` : ""}`, i = [...new Set(s.map((u) => u[l]))].filter(Boolean), c = w(t), m = i.map((u, b) => {
173
- const A = p(
174
- `${c}.charts.backgroundColors`,
175
- `${r.name}.${u}`,
176
- t.charts.backgroundColors ?? h,
177
- b
178
- ), O = p(
179
- `${c}.charts.borderColors`,
180
- `${r.name}.${u}`,
181
- t.charts.borderColors ?? h,
182
- b
183
- );
184
- return {
185
- label: n.data(r, u),
186
- rawLabel: u,
187
- backgroundColor: A,
188
- borderColor: O,
189
- data: o.map((D) => {
190
- const k = s.find(
191
- (v) => v[l] === u && v[e.name] === D
192
- );
193
- return k ? Number(k[d.name]) : 0;
194
- })
195
- };
196
- });
197
- return {
198
- labels: o,
199
- datasets: m
200
- };
201
- }, oa = (a, t = E) => {
202
- if (!a.data)
203
- return {
204
- labels: [],
205
- datasets: [{ data: [] }]
206
- };
207
- const n = y(t), s = w(t), e = G(a.data, a.dimension, a.measures, a.maxItems);
208
- return {
209
- labels: e.map((r) => r[a.dimension.name]),
210
- datasets: a.measures.map((r, d) => {
211
- const o = p(
212
- `${s}.charts.backgroundColors`,
213
- r.name,
214
- t.charts.backgroundColors ?? L,
215
- d
216
- ), l = p(
217
- `${s}.charts.borderColors`,
218
- r.name,
219
- t.charts.borderColors ?? L,
220
- d
221
- );
222
- return {
223
- label: n.dimensionOrMeasureTitle(r),
224
- data: e.map((i) => i[r.name] ?? 0),
225
- backgroundColor: o,
226
- borderColor: l
227
- };
228
- })
229
- };
230
- }, W = (a, t) => {
231
- const { datasets: n } = a.chart.data, s = a.dataIndex, e = n.reduce((r, d) => {
232
- const o = d.data[s];
233
- return r + (o || 0);
234
- }, 0);
235
- return t(e);
236
- }, na = (a, t) => {
237
- const { onBarClicked: n, measures: s, dimension: e, horizontal: r, data: d } = a, o = y(t);
238
- return {
239
- plugins: {
240
- legend: { position: t.charts.legendPosition ?? "bottom" },
241
- datalabels: {
242
- labels: {
243
- total: {
244
- formatter: (l, i) => W(
245
- i,
246
- (c) => o.data(s[0], c)
247
- )
248
- },
249
- value: {
250
- formatter: (l, i) => {
251
- const c = s[i.datasetIndex % s.length];
252
- return o.data(c, l);
253
- }
254
- }
255
- }
256
- },
257
- tooltip: {
258
- callbacks: {
259
- title: (l) => {
260
- var c;
261
- const i = (c = l[0]) == null ? void 0 : c.label;
262
- return o.data(e, i);
263
- },
264
- label: (l) => {
265
- const i = s[l.datasetIndex % s.length], c = l.raw;
266
- return `${o.data(e, l.dataset.label) || ""}: ${o.data(i, c)}`;
267
- }
268
- }
269
- }
270
- },
271
- scales: {
272
- x: {
273
- ticks: {
274
- callback: (l) => {
275
- if (r)
276
- return o.data(s[0], l);
277
- if (!d || !d.labels) return;
278
- const i = d.labels[Number(l)];
279
- return o.data(e, i);
280
- }
281
- }
282
- },
283
- y: {
284
- ticks: {
285
- callback: (l) => {
286
- if (!r)
287
- return o.data(s[0], l);
288
- if (!d || !d.labels) return;
289
- const i = d.labels[Number(l)];
290
- return o.data(e, i);
291
- }
292
- }
293
- }
294
- },
295
- onClick: (l, i, c) => {
296
- var b;
297
- const m = i[0], g = m ? c.data.labels[m.index] : null, u = m ? (b = c.data.datasets[m.datasetIndex]) == null ? void 0 : b.rawLabel : null;
298
- n({
299
- axisDimensionValue: g,
300
- groupingDimensionValue: u
301
- });
302
- }
303
- };
304
- };
305
- export {
306
- sa as B,
307
- na as a,
308
- la as b,
309
- oa as g
310
- };
311
- //# sourceMappingURL=bars.utils-vXPRJDGQ.js.map