@dcs-tech/ui 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/CHANGELOG.md +362 -0
  2. package/README.md +3 -2
  3. package/THIRD_PARTY_NOTICES.md +23 -0
  4. package/dist/ChartImageMenu-sB2QNQzd.js +9673 -0
  5. package/dist/ChartView-BstZkP1g.js +1942 -0
  6. package/dist/{SummaryChart-i6fOdrDM.js → SummaryChart-B5ibDNOZ.js} +11 -10
  7. package/dist/{SummaryImage-CCt5ozD9.js → SummaryImage-CRP7X2Nl.js} +2 -2
  8. package/dist/SummarySeeAll-CtYRGV4G.js +101 -0
  9. package/dist/assets/fileTask.worker-D97s2vRV.js +1 -0
  10. package/dist/{columnValue-74XDBcVF.js → columnValue-BOn9NC8X.js} +86 -79
  11. package/dist/exportContext-CMzuzRjc.js +274 -0
  12. package/dist/{exportEngine-BmDly7iw.js → exportEngine-CYDN8Ty-.js} +167 -137
  13. package/dist/file-worker.js +1 -1
  14. package/dist/{fileActions-CFNO14Aj.js → fileActions-DkPEWE-t.js} +1 -1
  15. package/dist/{geometry-DG134nYI.js → geometry-CFS5If1N.js} +769 -466
  16. package/dist/index.js +21095 -12669
  17. package/dist/{labels-BPItSeRU.js → labels-mukFhYkc.js} +124 -1
  18. package/dist/{runFileTask-BIZTFnZP.js → runFileTask-DI_39TjR.js} +17 -0
  19. package/dist/scrollArea-B52kugL1.js +291 -0
  20. package/dist/style.css +1 -1
  21. package/dist/{summaryChartData-BiQYJbYZ.js → summaryChartData-D15kw64n.js} +6 -5
  22. package/dist/types/components/Charts/BarList.d.ts +4 -3
  23. package/dist/types/components/Charts/CalendarHeatmap.d.ts +4 -2
  24. package/dist/types/components/Charts/Chart.d.ts +3 -2
  25. package/dist/types/components/Charts/ChartView.d.ts +3 -2
  26. package/dist/types/components/Charts/ColumnChart.d.ts +4 -3
  27. package/dist/types/components/Charts/Donut.d.ts +3 -2
  28. package/dist/types/components/Charts/Funnel.d.ts +3 -2
  29. package/dist/types/components/Charts/Gauge.d.ts +3 -2
  30. package/dist/types/components/Charts/LineChart.d.ts +4 -3
  31. package/dist/types/components/Charts/NumberTrend.d.ts +4 -3
  32. package/dist/types/components/Charts/Progress.d.ts +3 -2
  33. package/dist/types/components/Charts/StackedBar.d.ts +3 -2
  34. package/dist/types/components/Charts/Treemap.d.ts +3 -2
  35. package/dist/types/components/Charts/chartData.d.ts +6 -0
  36. package/dist/types/components/Charts/chartImage.d.ts +2 -0
  37. package/dist/types/components/Charts/geometry.d.ts +3 -0
  38. package/dist/types/components/Charts/index.d.ts +2 -0
  39. package/dist/types/components/Charts/palette.d.ts +1 -0
  40. package/dist/types/components/Charts/parts.d.ts +14 -0
  41. package/dist/types/components/Charts/useChartMotion.d.ts +8 -0
  42. package/dist/types/components/DataTable/DataTable.d.ts +3 -1
  43. package/dist/types/components/DataTable/DisplayPopover.d.ts +1 -0
  44. package/dist/types/components/DataTable/HeaderMenu.d.ts +1 -0
  45. package/dist/types/components/DataTable/TableColumnModal.d.ts +4 -1
  46. package/dist/types/components/DataTable/TableToolbar.d.ts +20 -1
  47. package/dist/types/components/DataTable/TableView.d.ts +18 -2
  48. package/dist/types/components/DataTable/cards/CardView.d.ts +25 -5
  49. package/dist/types/components/DataTable/cards/rowParts.d.ts +1 -0
  50. package/dist/types/components/DataTable/cellSelection/CellRangeBar.d.ts +16 -0
  51. package/dist/types/components/DataTable/cellSelection/cellRangeStore.d.ts +18 -0
  52. package/dist/types/components/DataTable/cellSelection/paintRanges.d.ts +2 -0
  53. package/dist/types/components/DataTable/cellSelection/useCellSelection.d.ts +63 -0
  54. package/dist/types/components/DataTable/data/listDelta.d.ts +27 -0
  55. package/dist/types/components/DataTable/data/rowLineage.d.ts +3 -0
  56. package/dist/types/components/DataTable/data/rowModels.d.ts +9 -0
  57. package/dist/types/components/DataTable/data/rowTransaction.d.ts +9 -0
  58. package/dist/types/components/DataTable/data/useServerData.d.ts +3 -1
  59. package/dist/types/components/DataTable/export/exportCells.d.ts +5 -2
  60. package/dist/types/components/DataTable/export/exportEngine.d.ts +7 -2
  61. package/dist/types/components/DataTable/export/useTableExport.d.ts +17 -1
  62. package/dist/types/components/DataTable/filters/filterRowModel.d.ts +1 -0
  63. package/dist/types/components/DataTable/grouping/groupModel.d.ts +11 -0
  64. package/dist/types/components/DataTable/index.d.ts +1 -1
  65. package/dist/types/components/DataTable/keyboard/ShortcutsDialog.d.ts +4 -1
  66. package/dist/types/components/DataTable/keyboard/useGridKeyboard.d.ts +8 -0
  67. package/dist/types/components/DataTable/labels.d.ts +128 -0
  68. package/dist/types/components/DataTable/layout/LayoutSwitcher.d.ts +10 -2
  69. package/dist/types/components/DataTable/layout/useFitWidths.d.ts +7 -0
  70. package/dist/types/components/DataTable/menu/RowMenu.d.ts +1 -0
  71. package/dist/types/components/DataTable/menu/buildRowMenu.d.ts +6 -3
  72. package/dist/types/components/DataTable/motion/RowChangeNotice.d.ts +19 -0
  73. package/dist/types/components/DataTable/motion/rowChanges.d.ts +25 -0
  74. package/dist/types/components/DataTable/motion/useNoticeInsets.d.ts +2 -0
  75. package/dist/types/components/DataTable/motion/useRowChangeNotices.d.ts +35 -0
  76. package/dist/types/components/DataTable/motion/useRowMotion.d.ts +29 -3
  77. package/dist/types/components/DataTable/persistence/reconcile.d.ts +4 -0
  78. package/dist/types/components/DataTable/persistence/useColumnPersistence.d.ts +5 -1
  79. package/dist/types/components/DataTable/pivot/PivotPanel.d.ts +11 -0
  80. package/dist/types/components/DataTable/pivot/PivotView.d.ts +22 -0
  81. package/dist/types/components/DataTable/pivot/pivotModel.d.ts +54 -0
  82. package/dist/types/components/DataTable/pivot/usePivot.d.ts +44 -0
  83. package/dist/types/components/DataTable/rows/PressRow.d.ts +1 -0
  84. package/dist/types/components/DataTable/rows/RowLead.d.ts +23 -0
  85. package/dist/types/components/DataTable/rows/rowPress.d.ts +2 -0
  86. package/dist/types/components/DataTable/rows/usePinnedRows.d.ts +34 -0
  87. package/dist/types/components/DataTable/rows/useRowDrag.d.ts +44 -0
  88. package/dist/types/components/DataTable/split/SplitView.d.ts +4 -2
  89. package/dist/types/components/DataTable/summary/SummaryChart.d.ts +2 -1
  90. package/dist/types/components/DataTable/summary/TableSummary.d.ts +2 -1
  91. package/dist/types/components/DataTable/summary/summaryModel.d.ts +28 -6
  92. package/dist/types/components/DataTable/summary/useTableSummary.d.ts +3 -0
  93. package/dist/types/components/DataTable/toolbar/ToolbarMore.d.ts +14 -0
  94. package/dist/types/components/DataTable/toolbar/useToolbarFit.d.ts +10 -0
  95. package/dist/types/components/DataTable/tree/TreeChips.d.ts +5 -0
  96. package/dist/types/components/DataTable/tree/treeExport.d.ts +54 -0
  97. package/dist/types/components/DataTable/tree/treeMove.d.ts +1 -0
  98. package/dist/types/components/DataTable/tree/useTreeChildren.d.ts +15 -0
  99. package/dist/types/components/DataTable/tree/useTreeData.d.ts +60 -0
  100. package/dist/types/components/DataTable/types.d.ts +272 -4
  101. package/dist/types/components/DataTable/useDataChangeTracker.d.ts +11 -4
  102. package/dist/types/components/DataTable/useTable.d.ts +13 -1
  103. package/dist/types/components/DataTable/virtual/useVirtualLines.d.ts +1 -0
  104. package/dist/types/components/EventCalendar/EventCalendar.d.ts +46 -0
  105. package/dist/types/components/EventCalendar/eventParts.d.ts +10 -0
  106. package/dist/types/components/EventCalendar/index.d.ts +3 -0
  107. package/dist/types/components/EventCalendar/useCalendarEdit.d.ts +40 -0
  108. package/dist/types/components/Icon/Icon.d.ts +36 -0
  109. package/dist/types/components/Icon/Icon.storyData.d.ts +6 -0
  110. package/dist/types/components/Icon/IconContext.d.ts +7 -0
  111. package/dist/types/components/Icon/icons.d.ts +223 -0
  112. package/dist/types/components/Icon/index.d.ts +7 -0
  113. package/dist/types/components/Icon/useIconDone.d.ts +5 -0
  114. package/dist/types/components/Popover/Popover.d.ts +1 -0
  115. package/dist/types/components/Popover/floatingPosition.d.ts +22 -2
  116. package/dist/types/components/ReorderList/ReorderList.d.ts +2 -1
  117. package/dist/types/components/Scroll/ui.d.ts +1 -0
  118. package/dist/types/components/SlidingHighlight/index.d.ts +2 -0
  119. package/dist/types/components/SlidingHighlight/useSlidingHighlight.d.ts +20 -0
  120. package/dist/types/components/Suggest/SuggestionList.d.ts +1 -0
  121. package/dist/types/components/UIProvider/UILabelsContext.d.ts +34 -0
  122. package/dist/types/components/UIProvider/UIProvider.d.ts +2 -0
  123. package/dist/types/core/hooks/index.d.ts +1 -1
  124. package/dist/types/core/hooks/usePresence.d.ts +1 -0
  125. package/dist/types/core/icons/actions.icons.d.ts +37 -0
  126. package/dist/types/core/icons/commerce.icons.d.ts +16 -0
  127. package/dist/types/core/icons/communication.icons.d.ts +10 -0
  128. package/dist/types/core/icons/delivery.icons.d.ts +13 -0
  129. package/dist/types/core/icons/devices.icons.d.ts +16 -0
  130. package/dist/types/core/icons/files.icons.d.ts +13 -0
  131. package/dist/types/core/icons/general.icons.d.ts +24 -0
  132. package/dist/types/core/icons/index.d.ts +14 -0
  133. package/dist/types/core/icons/media.icons.d.ts +11 -0
  134. package/dist/types/core/icons/navigation.icons.d.ts +25 -0
  135. package/dist/types/core/icons/people.icons.d.ts +13 -0
  136. package/dist/types/core/icons/registry.d.ts +2 -0
  137. package/dist/types/core/icons/state.icons.d.ts +14 -0
  138. package/dist/types/core/icons/status.icons.d.ts +10 -0
  139. package/dist/types/core/icons/table.icons.d.ts +22 -0
  140. package/dist/types/core/icons/text.icons.d.ts +13 -0
  141. package/dist/types/core/logic/cellRange.logic.d.ts +66 -0
  142. package/dist/types/core/logic/cellTouch.logic.d.ts +16 -0
  143. package/dist/types/core/logic/columnGroups.logic.d.ts +31 -0
  144. package/dist/types/core/logic/dropdownSide.logic.d.ts +19 -0
  145. package/dist/types/core/logic/eventCalendar.logic.d.ts +225 -0
  146. package/dist/types/core/logic/fitColumns.logic.d.ts +7 -0
  147. package/dist/types/core/logic/icon.logic.d.ts +24 -0
  148. package/dist/types/core/logic/index.d.ts +16 -0
  149. package/dist/types/core/logic/pivot.logic.d.ts +100 -0
  150. package/dist/types/core/logic/rowActions.logic.d.ts +7 -0
  151. package/dist/types/core/logic/rowDrag.logic.d.ts +36 -0
  152. package/dist/types/core/logic/rowPinning.logic.d.ts +12 -0
  153. package/dist/types/core/logic/slidingHighlight.logic.d.ts +20 -0
  154. package/dist/types/core/logic/toolbarOverflow.logic.d.ts +21 -0
  155. package/dist/types/core/logic/treeData.logic.d.ts +44 -0
  156. package/dist/types/core/logic/treeDrag.logic.d.ts +63 -0
  157. package/dist/types/core/logic/tween.logic.d.ts +33 -0
  158. package/dist/types/core/logic/visualViewport.logic.d.ts +13 -0
  159. package/dist/types/core/types/eventCalendar.types.d.ts +18 -0
  160. package/dist/types/core/types/fileEngine.types.d.ts +6 -0
  161. package/dist/types/core/types/icon.types.d.ts +109 -0
  162. package/dist/types/core/types/index.d.ts +2 -0
  163. package/dist/types/index.d.ts +7 -0
  164. package/package.json +4 -4
  165. package/dist/ChartImageMenu-3OfqNFyt.js +0 -1510
  166. package/dist/ChartView-n4G5_2ro.js +0 -1707
  167. package/dist/SummarySeeAll-BY8knsRe.js +0 -101
  168. package/dist/assets/fileTask.worker--Q3rI3Bn.js +0 -1
  169. package/dist/exportContext-C52ZuHd8.js +0 -166
  170. package/dist/scrollArea-D84Cwm4o.js +0 -310
@@ -1,9 +1,260 @@
1
1
  "use client";
2
- import { B as e, D as t, O as n, a as r, c as i, g as a, k as o, n as s } from "./columnValue-74XDBcVF.js";
3
- import { createContext as c, useContext as l, useMemo as u } from "react";
4
- import { Fragment as ee, jsx as d, jsxs as te } from "react/jsx-runtime";
2
+ import { B as e, D as t, O as n, _ as r, a as i, c as a, g as o, k as s, n as c } from "./columnValue-BOn9NC8X.js";
3
+ import { createContext as l, useContext as u, useMemo as d } from "react";
4
+ import { Fragment as f, jsx as p, jsxs as ee } from "react/jsx-runtime";
5
+ // src/core/logic/tween.logic.ts
6
+ var te = {
7
+ micro: 100,
8
+ short: 150,
9
+ medium: 200,
10
+ long: 300
11
+ }, ne = [
12
+ .2,
13
+ 0,
14
+ 0,
15
+ 1
16
+ ];
17
+ function re(e, t, n, r) {
18
+ let i = 3 * e, a = 3 * (n - e) - i, o = 1 - i - a, s = 3 * t, c = 3 * (r - t) - s, l = 1 - s - c, u = (e) => ((o * e + a) * e + i) * e, d = (e) => ((l * e + c) * e + s) * e, f = (e) => (3 * o * e + 2 * a) * e + i;
19
+ return (e) => {
20
+ if (e <= 0) return 0;
21
+ if (e >= 1) return 1;
22
+ let t = e;
23
+ for (let n = 0; n < 8; n++) {
24
+ let n = u(t) - e;
25
+ if (Math.abs(n) < 1e-6) return d(t);
26
+ let r = f(t);
27
+ if (Math.abs(r) < 1e-6) break;
28
+ t -= n / r;
29
+ }
30
+ let n = 0, r = 1;
31
+ t = e;
32
+ for (let i = 0; i < 40; i++) {
33
+ let i = u(t);
34
+ if (Math.abs(i - e) < 1e-6) break;
35
+ i < e ? n = t : r = t, t = (n + r) / 2;
36
+ }
37
+ return d(t);
38
+ };
39
+ }
40
+ var ie = re(...ne), m = (e, t) => e.duration <= 0 || t - e.start >= e.duration;
41
+ function ae(e, t, n = ie) {
42
+ if (m(e, t)) return { ...e.to };
43
+ let r = n(Math.max(0, (t - e.start) / e.duration)), { from: i, to: a, hold: o } = e, s = {};
44
+ for (let e in i) s[e] = e in a ? i[e] + (a[e] - i[e]) * r : o?.(e) ? i[e] : i[e] * (1 - r);
45
+ for (let e in a) e in s || (s[e] = o?.(e) ? a[e] : a[e] * r);
46
+ return s;
47
+ }
48
+ function oe(e, t, n, r, i, a = ie, o) {
49
+ let s = e && !m(e, r) ? ae(e, r, a) : { ...t };
50
+ return o ? {
51
+ from: s,
52
+ to: n,
53
+ start: r,
54
+ duration: i,
55
+ hold: o
56
+ } : {
57
+ from: s,
58
+ to: n,
59
+ start: r,
60
+ duration: i
61
+ };
62
+ }
63
+ function se(e, t) {
64
+ let n = 0;
65
+ for (let r in e) {
66
+ if (e[r] !== t[r]) return !1;
67
+ n++;
68
+ }
69
+ for (let e in t) n--;
70
+ return n === 0;
71
+ }
72
+ function ce(e, t, n, r) {
73
+ let i = new Set(e.map(n)), a = [...e];
74
+ return t.forEach((e, o) => {
75
+ let s = n(e);
76
+ if (i.has(s) || !r(s)) return;
77
+ let c = 0;
78
+ for (let e = o - 1; e >= 0; e--) {
79
+ let r = n(t[e]), i = a.findIndex((e) => n(e) === r);
80
+ if (i >= 0) {
81
+ c = i + 1;
82
+ break;
83
+ }
84
+ }
85
+ a.splice(c, 0, e);
86
+ }), a;
87
+ }
88
+ var h = (e) => e > 0 ? e < 1 ? e : 1 : 0;
89
+ function le(e) {
90
+ let t = 0;
91
+ return e.map((e, n) => {
92
+ let r = h(e), i = n === 0 ? 0 : r * t;
93
+ return t = Math.max(t, r), i;
94
+ });
95
+ }
96
+ function ue(e) {
97
+ let t = e.map(h), n = t.reduce((e, t) => e + t, 0), r = 0;
98
+ return t.map((e) => {
99
+ let t = {
100
+ start: n ? r / n : 0,
101
+ size: n ? e / n : 0
102
+ };
103
+ return r += e, t;
104
+ });
105
+ }
106
+ function de(e) {
107
+ let t = e.length;
108
+ if (!t) return [];
109
+ let n = e.map(h), r = Array(t), i = 0;
110
+ for (let e = t - 1; e >= 0; e--) r[e] = i, i = Math.max(i, n[e]);
111
+ let a = Array(t), o = 0, s = 0;
112
+ for (let e = 0; e < t; e++) e > 0 && (s += (n[e - 1] * r[e - 1] + n[e] * o) / 2), a[e] = s, o = Math.max(o, n[e]);
113
+ let c = Math.min(1, s);
114
+ return a.map((e) => .5 + ((s > 0 ? e / s : .5) - .5) * c);
115
+ }
116
+ function fe(e, t) {
117
+ let n = [];
118
+ for (let r in e) r.startsWith(t) && n.push({
119
+ value: Number(r.slice(t.length)),
120
+ alpha: h(e[r])
121
+ });
122
+ return n.sort((e, t) => e.value - t.value);
123
+ }
124
+ var pe = (e, t) => t > 0 ? h(e / t) : 0, me = /* @__PURE__ */ new Map();
125
+ function he(e, t) {
126
+ let n = `${e ?? ""}|${JSON.stringify(t)}`, r = me.get(n);
127
+ if (!r) {
128
+ try {
129
+ r = new Intl.NumberFormat(e, t);
130
+ } catch {
131
+ r = new Intl.NumberFormat(void 0, {
132
+ ...t,
133
+ ...t.currency ? {
134
+ style: "decimal",
135
+ currency: void 0
136
+ } : {}
137
+ });
138
+ }
139
+ me.set(n, r);
140
+ }
141
+ return r;
142
+ }
143
+ var ge = /* @__PURE__ */ new Map();
144
+ function _e(e, t) {
145
+ let n = `${e ?? ""}|${JSON.stringify(t)}`, r = ge.get(n);
146
+ if (!r) {
147
+ try {
148
+ r = new Intl.DateTimeFormat(e, t);
149
+ } catch {
150
+ r = new Intl.DateTimeFormat(void 0, t);
151
+ }
152
+ ge.set(n, r);
153
+ }
154
+ return r;
155
+ }
156
+ var ve = {
157
+ day: "numeric",
158
+ month: "short",
159
+ year: "numeric"
160
+ }, ye = {
161
+ hour: "numeric",
162
+ minute: "2-digit"
163
+ }, g = (e) => e === void 0 ? {} : {
164
+ minimumFractionDigits: e,
165
+ maximumFractionDigits: e
166
+ };
167
+ function be(n = {}) {
168
+ let { locale: r, currency: i } = n, a = n.dateFormat ?? "dd-mm-yyyy";
169
+ return {
170
+ locale: r,
171
+ currency: i,
172
+ dateFormat: a,
173
+ number: (e, t) => he(r, g(t)).format(e),
174
+ money: (e, t = 2) => he(r, i ? {
175
+ style: "currency",
176
+ currency: i,
177
+ ...g(t)
178
+ } : g(t)).format(e),
179
+ percent: (e, t = 0) => he(r, {
180
+ style: "percent",
181
+ ...g(t)
182
+ }).format(e),
183
+ day: (e) => t(s(e), a),
184
+ dateTime: (t) => {
185
+ let n = s(t);
186
+ if (!n) return "";
187
+ let i = e(n.slice(0, 10), a);
188
+ return n.length > 10 ? `${i} ${_e(r, ye).format(/* @__PURE__ */ new Date(`${n}:00`))}` : i;
189
+ },
190
+ shortDate: (e) => {
191
+ let t = s(e);
192
+ return t ? _e(r, ve).format(/* @__PURE__ */ new Date(`${t.slice(0, 10)}T00:00:00`)) : "";
193
+ }
194
+ };
195
+ }
196
+ function xe(e, t) {
197
+ return {
198
+ locale: t.locale ?? e.locale,
199
+ currency: t.currency ?? e.currency,
200
+ dateFormat: t.dateFormat ?? e.dateFormat
201
+ };
202
+ }
203
+ // src/core/logic/tooltip.logic.ts
204
+ function Se(e) {
205
+ if (e == null || e === !1 || e === "") return null;
206
+ let t = typeof e == "object" && !Array.isArray(e) && !("$$typeof" in e) && "content" in e ? e : { content: e };
207
+ return t.disabled || t.content === null || t.content === void 0 || t.content === "" ? null : t;
208
+ }
209
+ function Ce(e) {
210
+ return e.openedBy !== "pointer" || e.anchorTo === "element" ? !1 : e.anchorTo === "pointer" || e.anchorWidth > e.tooltipWidth;
211
+ }
212
+ var we = {
213
+ top: "bottom",
214
+ bottom: "top",
215
+ left: "right",
216
+ right: "left"
217
+ };
218
+ function Te(e) {
219
+ let t = e === "top" || e === "bottom" ? ["right", "left"] : ["bottom", "top"];
220
+ return [
221
+ e,
222
+ we[e],
223
+ ...t
224
+ ];
225
+ }
226
+ function Ee(e, { anchor: t, tooltip: n, viewport: r, offset: i, margin: a = 8 }) {
227
+ switch (e) {
228
+ case "top": return t.top - i - n.height >= a;
229
+ case "bottom": return t.top + t.height + i + n.height <= r.height - a;
230
+ case "left": return t.left - i - n.width >= a;
231
+ case "right": return t.left + t.width + i + n.width <= r.width - a;
232
+ default: return !1;
233
+ }
234
+ }
235
+ var De = (e, t, n) => Math.min(Math.max(e, t), n);
236
+ function Oe(e) {
237
+ let { anchor: t, tooltip: n, viewport: r, offset: i, margin: a = 8 } = e, o = Te(e.placement).find((t) => Ee(t, e)) || e.placement, s, c;
238
+ switch (o) {
239
+ case "bottom":
240
+ s = t.top + t.height + i, c = t.left + t.width / 2 - n.width / 2;
241
+ break;
242
+ case "left":
243
+ s = t.top + t.height / 2 - n.height / 2, c = t.left - i - n.width;
244
+ break;
245
+ case "right":
246
+ s = t.top + t.height / 2 - n.height / 2, c = t.left + t.width + i;
247
+ break;
248
+ default: s = t.top - i - n.height, c = t.left + t.width / 2 - n.width / 2;
249
+ }
250
+ return {
251
+ placement: o,
252
+ left: De(c, a, Math.max(a, r.width - n.width - a)),
253
+ top: De(s, a, Math.max(a, r.height - n.height - a))
254
+ };
255
+ }
5
256
  // src/components/UIProvider/UILabelsContext.tsx
6
- var ne = {
257
+ var ke = {
7
258
  common: { loading: "Loading" },
8
259
  dialog: {
9
260
  ok: "OK",
@@ -87,6 +338,40 @@ var ne = {
87
338
  ytd: "Year to date"
88
339
  }
89
340
  },
341
+ eventCalendar: {
342
+ name: "Calendar",
343
+ previousMonth: "Previous month",
344
+ nextMonth: "Next month",
345
+ today: "Today",
346
+ more: (e) => `+${e} more`,
347
+ showMore: (e, t) => `Show ${e} more events, ${t}`,
348
+ eventCount: (e) => e === 1 ? "1 event" : `${e} events`,
349
+ allDay: "All day",
350
+ range: (e, t) => `${e} to ${t}`,
351
+ until: (e) => `until ${e}`,
352
+ dayAllDayEvents: (e) => `All-day events on ${e}`,
353
+ dayEvents: (e) => `Events on ${e}`,
354
+ noEvents: "No events",
355
+ previousWeek: "Previous week",
356
+ nextWeek: "Next week",
357
+ previousDay: "Previous day",
358
+ nextDay: "Next day",
359
+ view: "View",
360
+ monthView: "Month",
361
+ weekView: "Week",
362
+ dayView: "Day",
363
+ slot: (e, t) => `${e}, ${t}`,
364
+ editHint: "Press M to move, R to change the end",
365
+ editHintWithStart: "Press M to move, R to change the end, Shift+R to change the start",
366
+ moveStart: (e) => `Moving ${e}. Arrow keys move it, Enter drops it, Escape cancels.`,
367
+ resizeStart: (e) => `Changing the end of ${e}. Arrow keys move the end, Enter keeps it, Escape cancels.`,
368
+ resizeFromStart: (e) => `Changing the start of ${e}. Arrow keys move the start, Enter keeps it, Escape cancels.`,
369
+ movePreview: (e) => e,
370
+ moved: (e, t) => `${e} moved to ${t}`,
371
+ resized: (e, t) => `${e} now ${t}`,
372
+ changeRefused: (e) => `${e} cannot go there`,
373
+ changeCancelled: (e) => `${e} not changed`
374
+ },
90
375
  stepper: { completed: "Completed" },
91
376
  tooltip: { moreInformation: "More information" },
92
377
  colorScheme: { sample: "Label" },
@@ -177,158 +462,25 @@ var ne = {
177
462
  cropTooSmall: (e, t) => `The crop area is too small. It needs to be at least ${e} × ${t} pixels.`
178
463
  }
179
464
  };
180
- function re(e, t) {
465
+ function Ae(e, t) {
181
466
  if (!t) return e;
182
467
  let n = { ...e };
183
468
  for (let r of Object.keys(t)) {
184
469
  let i = t[r];
185
- i !== void 0 && (n[r] = i && typeof i == "object" && !Array.isArray(i) && e[r] && typeof e[r] == "object" ? re(e[r], i) : i);
470
+ i !== void 0 && (n[r] = i && typeof i == "object" && !Array.isArray(i) && e[r] && typeof e[r] == "object" ? Ae(e[r], i) : i);
186
471
  }
187
472
  return n;
188
473
  }
189
- var f = c(ne), ie = ({ labels: e, children: t }) => {
190
- let n = l(f), r = u(() => re(n, e), [n, e]);
191
- return /* @__PURE__ */ d(f.Provider, {
474
+ var je = l(ke), Me = ({ labels: e, children: t }) => {
475
+ let n = u(je), r = d(() => Ae(n, e), [n, e]);
476
+ return /* @__PURE__ */ p(je.Provider, {
192
477
  value: r,
193
478
  children: t
194
479
  });
195
480
  };
196
- ie.displayName = "LabelsProvider";
197
- var p = () => l(f), m = /* @__PURE__ */ new Map();
198
- function h(e, t) {
199
- let n = `${e ?? ""}|${JSON.stringify(t)}`, r = m.get(n);
200
- if (!r) {
201
- try {
202
- r = new Intl.NumberFormat(e, t);
203
- } catch {
204
- r = new Intl.NumberFormat(void 0, {
205
- ...t,
206
- ...t.currency ? {
207
- style: "decimal",
208
- currency: void 0
209
- } : {}
210
- });
211
- }
212
- m.set(n, r);
213
- }
214
- return r;
215
- }
216
- var ae = /* @__PURE__ */ new Map();
217
- function oe(e, t) {
218
- let n = `${e ?? ""}|${JSON.stringify(t)}`, r = ae.get(n);
219
- if (!r) {
220
- try {
221
- r = new Intl.DateTimeFormat(e, t);
222
- } catch {
223
- r = new Intl.DateTimeFormat(void 0, t);
224
- }
225
- ae.set(n, r);
226
- }
227
- return r;
228
- }
229
- var se = {
230
- day: "numeric",
231
- month: "short",
232
- year: "numeric"
233
- }, ce = {
234
- hour: "numeric",
235
- minute: "2-digit"
236
- }, g = (e) => e === void 0 ? {} : {
237
- minimumFractionDigits: e,
238
- maximumFractionDigits: e
239
- };
240
- function le(n = {}) {
241
- let { locale: r, currency: i } = n, a = n.dateFormat ?? "dd-mm-yyyy";
242
- return {
243
- locale: r,
244
- currency: i,
245
- dateFormat: a,
246
- number: (e, t) => h(r, g(t)).format(e),
247
- money: (e, t = 2) => h(r, i ? {
248
- style: "currency",
249
- currency: i,
250
- ...g(t)
251
- } : g(t)).format(e),
252
- percent: (e, t = 0) => h(r, {
253
- style: "percent",
254
- ...g(t)
255
- }).format(e),
256
- day: (e) => t(o(e), a),
257
- dateTime: (t) => {
258
- let n = o(t);
259
- if (!n) return "";
260
- let i = e(n.slice(0, 10), a);
261
- return n.length > 10 ? `${i} ${oe(r, ce).format(/* @__PURE__ */ new Date(`${n}:00`))}` : i;
262
- },
263
- shortDate: (e) => {
264
- let t = o(e);
265
- return t ? oe(r, se).format(/* @__PURE__ */ new Date(`${t.slice(0, 10)}T00:00:00`)) : "";
266
- }
267
- };
268
- }
269
- function ue(e, t) {
270
- return {
271
- locale: t.locale ?? e.locale,
272
- currency: t.currency ?? e.currency,
273
- dateFormat: t.dateFormat ?? e.dateFormat
274
- };
275
- }
276
- // src/core/logic/tooltip.logic.ts
277
- function de(e) {
278
- if (e == null || e === !1 || e === "") return null;
279
- let t = typeof e == "object" && !Array.isArray(e) && !("$$typeof" in e) && "content" in e ? e : { content: e };
280
- return t.disabled || t.content === null || t.content === void 0 || t.content === "" ? null : t;
281
- }
282
- function fe(e) {
283
- return e.openedBy !== "pointer" || e.anchorTo === "element" ? !1 : e.anchorTo === "pointer" || e.anchorWidth > e.tooltipWidth;
284
- }
285
- var pe = {
286
- top: "bottom",
287
- bottom: "top",
288
- left: "right",
289
- right: "left"
290
- };
291
- function me(e) {
292
- let t = e === "top" || e === "bottom" ? ["right", "left"] : ["bottom", "top"];
293
- return [
294
- e,
295
- pe[e],
296
- ...t
297
- ];
298
- }
299
- function he(e, { anchor: t, tooltip: n, viewport: r, offset: i, margin: a = 8 }) {
300
- switch (e) {
301
- case "top": return t.top - i - n.height >= a;
302
- case "bottom": return t.top + t.height + i + n.height <= r.height - a;
303
- case "left": return t.left - i - n.width >= a;
304
- case "right": return t.left + t.width + i + n.width <= r.width - a;
305
- default: return !1;
306
- }
307
- }
308
- var ge = (e, t, n) => Math.min(Math.max(e, t), n);
309
- function _e(e) {
310
- let { anchor: t, tooltip: n, viewport: r, offset: i, margin: a = 8 } = e, o = me(e.placement).find((t) => he(t, e)) || e.placement, s, c;
311
- switch (o) {
312
- case "bottom":
313
- s = t.top + t.height + i, c = t.left + t.width / 2 - n.width / 2;
314
- break;
315
- case "left":
316
- s = t.top + t.height / 2 - n.height / 2, c = t.left - i - n.width;
317
- break;
318
- case "right":
319
- s = t.top + t.height / 2 - n.height / 2, c = t.left + t.width + i;
320
- break;
321
- default: s = t.top - i - n.height, c = t.left + t.width / 2 - n.width / 2;
322
- }
323
- return {
324
- placement: o,
325
- left: ge(c, a, Math.max(a, r.width - n.width - a)),
326
- top: ge(s, a, Math.max(a, r.height - n.height - a))
327
- };
328
- }
329
- // src/components/UIProvider/UIPortalContext.ts
330
- var ve = c(null), ye = () => l(ve) || (typeof document > "u" ? null : document.body), _ = c({}), be = ({ children: e, locale: t, currency: n, dateFormat: r }) => {
331
- let i = l(_), a = u(() => ue(i, {
481
+ Me.displayName = "LabelsProvider";
482
+ var Ne = () => u(je), Pe = l(null), Fe = () => u(Pe) || (typeof document > "u" ? null : document.body), Ie = l({}), Le = ({ children: e, locale: t, currency: n, dateFormat: r }) => {
483
+ let i = u(Ie), a = d(() => xe(i, {
332
484
  locale: t,
333
485
  currency: n,
334
486
  dateFormat: r
@@ -338,28 +490,28 @@ var ve = c(null), ye = () => l(ve) || (typeof document > "u" ? null : document.b
338
490
  n,
339
491
  r
340
492
  ]);
341
- return /* @__PURE__ */ d(_.Provider, {
493
+ return /* @__PURE__ */ p(Ie.Provider, {
342
494
  value: a,
343
495
  children: e
344
496
  });
345
497
  };
346
- be.displayName = "FormatProvider";
347
- function xe() {
348
- let e = l(_);
349
- return u(() => le(e), [e]);
498
+ Le.displayName = "FormatProvider";
499
+ function Re() {
500
+ let e = u(Ie);
501
+ return d(() => be(e), [e]);
350
502
  }
351
503
  // src/components/DataTable/types.ts
352
- var Se = {
504
+ var ze = {
353
505
  title: 1,
354
506
  subtitle: 1,
355
507
  badge: 1,
356
508
  details: 4,
357
509
  more: 40
358
- }, Ce = {
510
+ }, Be = {
359
511
  title: 1,
360
512
  subtitle: 2,
361
513
  badge: 1
362
- }, we = ["top", "bottom"], v = {
514
+ }, Ve = ["top", "bottom"], _ = {
363
515
  value: ["number", "numberTrend"],
364
516
  ratio: [
365
517
  "bar",
@@ -384,18 +536,18 @@ var Se = {
384
536
  "calendar"
385
537
  ],
386
538
  funnel: ["funnel", "bars"]
387
- }, Te = [
539
+ }, He = [
388
540
  "auto",
389
541
  "quarter",
390
542
  "half",
391
543
  "full"
392
- ], Ee = [
544
+ ], Ue = [
393
545
  "top5",
394
546
  "top10",
395
547
  "least5",
396
548
  "least10",
397
549
  "all"
398
- ], De = {
550
+ ], We = {
399
551
  month: [
400
552
  3,
401
553
  6,
@@ -409,7 +561,7 @@ var Se = {
409
561
  182,
410
562
  365
411
563
  ]
412
- }, Oe = {
564
+ }, Ge = {
413
565
  month: {
414
566
  min: 1,
415
567
  max: 60
@@ -418,13 +570,23 @@ var Se = {
418
570
  min: 7,
419
571
  max: 400
420
572
  }
421
- }, ke = 6, Ae = 24;
422
- function y(e) {
573
+ }, Ke = 6, qe = 24;
574
+ function v(e) {
423
575
  return "logic" in e && "conditions" in e;
424
576
  }
425
577
  // src/components/DataTable/grouping/groupModel.ts
426
- var je = 3, Me = (e) => JSON.stringify(e.map((e) => [e.key, e.value]));
427
- function Ne(e, t) {
578
+ var Je = 3, Ye = /* @__PURE__ */ new WeakMap();
579
+ function Xe(e) {
580
+ let t = Ye.get(e);
581
+ return t || (t = {
582
+ kind: "row",
583
+ key: `r:${e.id}`,
584
+ row: e,
585
+ depth: 0
586
+ }, Ye.set(e, t)), t;
587
+ }
588
+ var Ze = (e) => JSON.stringify(e.map((e) => [e.key, e.value]));
589
+ function Qe(e, t) {
428
590
  let n = e.grouping, r = typeof n == "object" && n ? n : {};
429
591
  return {
430
592
  enabled: n !== !1 && t.allowed && (!t.serverMode || t.hasGroupsSource),
@@ -432,32 +594,32 @@ function Ne(e, t) {
432
594
  defaultLevels: r.defaultGroupBy ?? []
433
595
  };
434
596
  }
435
- function Pe(e, t) {
436
- return e.filter((e) => e.authorized !== !1 && b(e, t));
597
+ function $e(e, t) {
598
+ return e.filter((e) => e.authorized !== !1 && !e.dataOnly && et(e, t));
437
599
  }
438
- function b(e, t) {
600
+ function et(e, t) {
439
601
  return e.groupable ?? (!t && (e.type === "select" || e.type === "boolean"));
440
602
  }
441
- function Fe(e, t, n) {
603
+ function tt(e, t, n) {
442
604
  let r = [];
443
605
  for (let n of e ?? []) t.includes(n) && !r.includes(n) && r.push(n);
444
606
  return r.slice(0, n);
445
607
  }
446
- function x(e, t) {
447
- let a = r(e, t);
608
+ function y(e, t) {
609
+ let r = i(e, t);
448
610
  if (e.groupValue) {
449
- let n = e.groupValue(a, t);
611
+ let n = e.groupValue(r, t);
450
612
  return n === void 0 || n === "" ? null : n;
451
613
  }
452
- let o = a;
614
+ let o = r;
453
615
  if (e.filterAccessor && (o = e.filterAccessor(o)), o == null || o === "") return null;
454
616
  if (Array.isArray(o)) {
455
617
  let e = o.filter((e) => e != null && e !== "").map(String).sort();
456
618
  return e.length ? e.join("|") : null;
457
619
  }
458
- return e.type === "date" || o instanceof Date ? n(i(e, a, t)) : typeof o == "boolean" || typeof o == "number" ? o : String(o);
620
+ return e.type === "date" || o instanceof Date ? n(a(e, r, t)) : typeof o == "boolean" || typeof o == "number" ? o : String(o);
459
621
  }
460
- function S(e, n, r, i) {
622
+ function b(e, n, r, i) {
461
623
  if (n == null) return i || r.groupEmpty;
462
624
  if (i) return i;
463
625
  if (typeof n == "boolean") return n ? r.yes : r.no;
@@ -466,55 +628,55 @@ function S(e, n, r, i) {
466
628
  let a = (t) => e?.filterOptions?.find((e) => String(e.value) === t)?.label ?? t;
467
629
  return e?.type === "array" && typeof n == "string" ? n.split("|").map(a).join(", ") : a(String(n));
468
630
  }
469
- var Ie = typeof Intl < "u" ? new Intl.Collator(void 0, {
631
+ var nt = typeof Intl < "u" ? new Intl.Collator(void 0, {
470
632
  numeric: !0,
471
633
  sensitivity: "base"
472
- }) : null, Le = (e, t) => Ie ? Ie.compare(e, t) : e.localeCompare(t);
473
- function Re(e, t) {
634
+ }) : null, rt = (e, t) => nt ? nt.compare(e, t) : e.localeCompare(t);
635
+ function it(e, t) {
474
636
  return [...e].sort((e, n) => {
475
637
  if (e.value === null && n.value !== null) return 1;
476
638
  if (n.value === null && e.value !== null) return -1;
477
- let r = typeof e.value == "number" && typeof n.value == "number" ? e.value - n.value : Le(e.label, n.label);
639
+ let r = typeof e.value == "number" && typeof n.value == "number" ? e.value - n.value : rt(e.label, n.label);
478
640
  return t ? -r : r;
479
641
  });
480
642
  }
481
- function ze(e, t, n, r) {
643
+ function at(e, t, n, r) {
482
644
  if (!t.length) return [];
483
645
  let [i, ...a] = t, o = r.parent ?? [], s = /* @__PURE__ */ new Map();
484
646
  for (let t of e) {
485
- let e = x(i, n(t)), r = JSON.stringify(e), a = s.get(r);
647
+ let e = y(i, n(t)), r = JSON.stringify(e), a = s.get(r);
486
648
  a || s.set(r, a = {
487
649
  value: e,
488
650
  rows: []
489
651
  }), a.rows.push(t);
490
652
  }
491
- return Re(Array.from(s.values()).map((e) => {
653
+ return it(Array.from(s.values()).map((e) => {
492
654
  let t = [...o, {
493
655
  key: i.key,
494
656
  field: i.field || i.key,
495
657
  value: e.value
496
658
  }];
497
659
  return {
498
- key: Me(t),
660
+ key: Ze(t),
499
661
  path: t,
500
662
  depth: o.length,
501
663
  columnKey: i.key,
502
664
  value: e.value,
503
- label: S(i, e.value, r.labels),
665
+ label: b(i, e.value, r.labels),
504
666
  count: e.rows.length,
505
667
  rows: e.rows,
506
- children: a.length ? ze(e.rows, a, n, {
668
+ children: a.length ? at(e.rows, a, n, {
507
669
  ...r,
508
670
  parent: t
509
671
  }) : void 0
510
672
  };
511
673
  }), r.sortedDesc?.(i.key) === !0);
512
674
  }
513
- function Be(e, t = []) {
514
- for (let n of e ?? []) t.push(n.key), Be(n.children, t);
675
+ function ot(e, t = []) {
676
+ for (let n of e ?? []) t.push(n.key), ot(n.children, t);
515
677
  return t;
516
678
  }
517
- function Ve(e, t) {
679
+ function st(e, t) {
518
680
  let n = [], r = (e) => {
519
681
  for (let i of e) {
520
682
  let e = t.expanded.has(i.key);
@@ -573,8 +735,8 @@ function Ve(e, t) {
573
735
  };
574
736
  return r(e), n;
575
737
  }
576
- var He = (e) => e.kind === "group" ? e.node.depth : e.kind === "row" ? e.depth : e.node.depth + 1;
577
- function Ue(e, t, n) {
738
+ var ct = (e) => e.kind === "group" ? e.node.depth : e.kind === "row" ? e.depth : e.node.depth + 1;
739
+ function lt(e, t, n) {
578
740
  let r = t * n, i = e.slice(r, r + n), a = i[0];
579
741
  if (!a || r === 0) return i;
580
742
  let o = [];
@@ -582,14 +744,14 @@ function Ue(e, t, n) {
582
744
  let n = e[t];
583
745
  n.kind === "group" && (o.length = n.node.depth, o.push(n));
584
746
  }
585
- let s = He(a);
747
+ let s = ct(a);
586
748
  return [...o.slice(0, s).map((e) => ({
587
749
  ...e,
588
750
  key: `${e.key}:cont`,
589
751
  continued: !0
590
752
  })), ...i];
591
753
  }
592
- function We(e, t, n, r) {
754
+ function ut(e, t, n, r) {
593
755
  return r === null ? {
594
756
  id: e,
595
757
  column: t,
@@ -622,14 +784,14 @@ function We(e, t, n, r) {
622
784
  enabled: !0
623
785
  };
624
786
  }
625
- function Ge(e) {
787
+ function dt(e) {
626
788
  return [...e.type === "boolean" ? ["is_true", "is_false"] : e.type === "array" ? ["includes"] : e.type === "select" ? ["is"] : ["equals"], "is_empty"];
627
789
  }
628
- function Ke(e, t) {
629
- return e.map((e, n) => We(`group:${n}:${e.key}`, e.key, t.find((t) => t.key === e.key), e.value));
790
+ function ft(e, t) {
791
+ return e.map((e, n) => ut(`group:${n}:${e.key}`, e.key, t.find((t) => t.key === e.key), e.value));
630
792
  }
631
- function qe(e, t, n) {
632
- let r = Ke(t, n);
793
+ function pt(e, t, n) {
794
+ let r = ft(t, n);
633
795
  return r.length ? e.logic === "AND" && !e.negated ? {
634
796
  ...e,
635
797
  conditions: [...e.conditions, ...r]
@@ -640,29 +802,33 @@ function qe(e, t, n) {
640
802
  } : e;
641
803
  }
642
804
  // src/components/DataTable/summary/summaryModel.ts
643
- var Je = "summary:", C = (e) => `${Je}${e}`, Ye = (e) => e.kind === "breakdown" || e.kind === "trend" || e.kind === "funnel";
644
- function Xe(e) {
645
- return e.kind === "value" ? e.trend ? v.value : ["number"] : e.kind === "trend" ? [
805
+ var mt = "summary:", x = (e) => `${mt}${e}`, ht = "summary-where:", gt = (e) => `${ht}${e}`, _t = (e) => e.kind === "breakdown" || e.kind === "trend" || e.kind === "funnel";
806
+ function vt(e) {
807
+ return e.kind === "value" ? e.trend ? _.value : ["number"] : e.kind === "trend" ? [
646
808
  ...e.period === "day" ? ["calendar"] : [],
647
809
  "columns",
648
810
  "line",
649
811
  "area",
650
812
  ...e.split ? ["grouped", "stacked"] : []
651
- ] : v[e.kind];
813
+ ] : _[e.kind];
652
814
  }
653
- function w(e) {
654
- let t = Xe(e), n = "chart" in e ? e.chart : void 0;
815
+ function S(e) {
816
+ let t = vt(e), n = "chart" in e ? e.chart : void 0;
655
817
  return n && t.includes(n) ? n : t[0];
656
818
  }
657
- function Ze(e) {
658
- return e.kind === "value" ? [e.value, ...e.sub ? [e.sub.value] : []] : e.kind === "ratio" ? [
819
+ function yt(e) {
820
+ return e.kind === "value" ? [
821
+ e.value,
822
+ ...(e.figures ?? []).map((e) => e.value),
823
+ ...e.sub ? [e.sub.value] : []
824
+ ] : e.kind === "ratio" ? [
659
825
  e.value,
660
826
  e.total,
661
827
  ...e.sub ? [e.sub.value] : []
662
828
  ] : [];
663
829
  }
664
- var Qe = 9;
665
- function $e(e) {
830
+ var bt = 9;
831
+ function xt(e) {
666
832
  if (e === "all") return { from: "all" };
667
833
  let t = /^(top|least)(\d+)$/.exec(e);
668
834
  return {
@@ -670,15 +836,15 @@ function $e(e) {
670
836
  count: Number(t[2])
671
837
  };
672
838
  }
673
- function T(e, t = 9) {
674
- return e.show ? $e(e.show) : w(e) === "bars" ? { from: "all" } : {
839
+ function C(e, t = 9) {
840
+ return e.show ? xt(e.show) : S(e) === "bars" ? { from: "all" } : {
675
841
  from: "top",
676
842
  count: t
677
843
  };
678
844
  }
679
- var et = (e) => e.label ?? (e.value === null ? "" : String(e.value));
680
- function tt(e, t) {
681
- let n = [...e].sort((e, t) => t.count - e.count || et(e).localeCompare(et(t)));
845
+ var St = (e) => e.label ?? (e.value === null ? "" : String(e.value));
846
+ function Ct(e, t) {
847
+ let n = [...e].sort((e, t) => t.count - e.count || St(e).localeCompare(St(t)));
682
848
  return t.from === "all" || t.count >= n.length ? {
683
849
  buckets: t.from === "least" ? n.reverse() : n,
684
850
  others: 0,
@@ -689,97 +855,127 @@ function tt(e, t) {
689
855
  values: e.length
690
856
  };
691
857
  }
692
- var nt = (e) => !!e.within && w(e) === "treemap", E = (e) => !!e.split && (w(e) === "grouped" || w(e) === "stacked"), rt = (e) => !!e.trend && w(e) === "numberTrend";
693
- function it(e, t) {
858
+ var wt = (e) => !!e.within && S(e) === "treemap", w = (e) => !!e.split && (S(e) === "grouped" || S(e) === "stacked"), Tt = (e) => !!e.trend && S(e) === "numberTrend", Et = (e) => `${e.sum ? `.+${e.sum.id}` : ""}${e.where ? `.?${e.where.id}` : ""}`, T = (e) => {
859
+ let t = e.range;
860
+ return t && typeof t == "object" && t.from && t.to ? {
861
+ from: t.from,
862
+ to: t.to
863
+ } : null;
864
+ };
865
+ function Dt(e, t) {
694
866
  switch (e.kind) {
695
- case "trend": return `${e.id}.${e.period === "day" ? "d" : "m"}${e.count}${E(e) ? `.s${e.split}` : ""}`;
696
- case "funnel": return `${e.id}.f`;
867
+ case "trend": {
868
+ let t = T(e);
869
+ return `${e.id}.${e.period === "day" ? "d" : "m"}${e.count}${w(e) ? `.s${e.split}` : ""}${t ? `.r${t.from}_${t.to}` : ""}${Et(e)}`;
870
+ }
871
+ case "funnel": return `${e.id}.f${e.steps.some((e) => e.showWhen) ? `.${e.steps.map((e) => e.value.id).join("+")}` : ""}`;
697
872
  case "value": return `${e.id}.t${e.trend?.period === "day" ? "d" : "m"}${e.trend?.count ?? 0}`;
698
873
  case "breakdown": {
699
- let n = T(e, t);
700
- return `${e.id}.${n.from === "all" ? "all" : `${n.from}${n.count}`}${nt(e) ? `.w${e.within}` : ""}`;
874
+ let n = C(e, t);
875
+ return `${e.id}.${n.from === "all" ? "all" : `${n.from}${n.count}`}${wt(e) ? `.w${e.within}` : ""}${Et(e)}`;
701
876
  }
702
877
  }
703
878
  }
704
- function at(e, t) {
705
- let n = Array.from(new Set(e.flatMap((e) => Ze(e).map((e) => e.id)))), r = (e) => t.find((t) => t.key === e)?.field || e, i = /* @__PURE__ */ new Map();
706
- for (let t of e) {
707
- if (t.kind === "ratio" || t.kind === "value" && !rt(t)) continue;
708
- let e = it(t);
709
- if (!i.has(e)) switch (t.kind) {
879
+ function Ot(e, t, n) {
880
+ let r = e.map((e) => Kt(e, n)), i = Array.from(new Set(r.flatMap((e) => yt(e).map((e) => e.id)))), a = (e) => t.find((t) => t.key === e)?.field || e, o = (e) => ({
881
+ ...e.sum ? { sum: a(e.sum.id) } : {},
882
+ ...e.where ? { where: e.where.id } : {}
883
+ }), s = /* @__PURE__ */ new Map();
884
+ for (let e of r) {
885
+ if (e.kind === "ratio" || e.kind === "value" && !Tt(e)) continue;
886
+ let t = Dt(e);
887
+ if (!s.has(t)) switch (e.kind) {
710
888
  case "value":
711
- i.set(e, {
712
- key: e,
713
- id: t.id,
889
+ s.set(t, {
890
+ key: t,
891
+ id: e.id,
714
892
  kind: "series",
715
- value: t.value.id,
716
- field: r(t.trend.column),
717
- period: t.trend.period,
718
- count: t.trend.count
893
+ value: e.value.id,
894
+ field: a(e.trend.column),
895
+ period: e.trend.period,
896
+ count: e.trend.count
719
897
  });
720
898
  break;
721
899
  case "breakdown":
722
- i.set(e, {
723
- key: e,
724
- id: t.id,
900
+ s.set(t, {
901
+ key: t,
902
+ id: e.id,
725
903
  kind: "breakdown",
726
- field: r(t.column),
727
- part: T(t),
728
- ...nt(t) ? { within: r(t.within) } : {}
904
+ field: a(e.column),
905
+ part: C(e),
906
+ ...wt(e) ? { within: a(e.within) } : {},
907
+ ...o(e)
729
908
  });
730
909
  break;
731
910
  case "trend":
732
- i.set(e, {
733
- key: e,
734
- id: t.id,
911
+ s.set(t, {
912
+ key: t,
913
+ id: e.id,
735
914
  kind: "trend",
736
- field: r(t.column),
737
- period: t.period,
738
- count: t.count,
739
- ...E(t) ? { split: r(t.split) } : {}
915
+ field: a(e.column),
916
+ period: e.period,
917
+ count: e.count,
918
+ ...w(e) ? { split: a(e.split) } : {},
919
+ ...o(e),
920
+ ...T(e)
740
921
  });
741
922
  break;
742
- case "funnel": i.set(e, {
743
- key: e,
744
- id: t.id,
923
+ case "funnel": e.steps.length && s.set(t, {
924
+ key: t,
925
+ id: e.id,
745
926
  kind: "funnel",
746
- steps: t.steps.map((e) => e.value.id)
927
+ steps: e.steps.map((e) => e.value.id)
747
928
  });
748
929
  }
749
930
  }
750
931
  return {
751
- values: n,
752
- cards: Array.from(i.values())
932
+ values: i,
933
+ cards: Array.from(s.values())
753
934
  };
754
935
  }
755
- function ot(e, t) {
936
+ function kt(e, t) {
756
937
  if (e.logic !== "AND" || e.negated) return;
757
- let n = C(t);
758
- return e.conditions.find((e) => !y(e) && e.id === n && e.enabled);
938
+ let n = x(t);
939
+ return e.conditions.find((e) => !v(e) && e.id === n && e.enabled);
759
940
  }
760
- function st(e, t) {
761
- let n = ot(e, t);
941
+ function At(e, t) {
942
+ let n = kt(e, t), r = gt(t);
762
943
  return n ? {
763
944
  ...e,
764
- conditions: e.conditions.filter((e) => e !== n)
945
+ conditions: e.conditions.filter((e) => e !== n && (v(e) || e.id !== r))
765
946
  } : e;
766
947
  }
767
- function ct(e, t, n) {
768
- let r = C(t), i = e.logic === "AND" && !e.negated ? e : {
769
- id: a(),
948
+ function jt(e, t, n, r) {
949
+ let i = x(t), a = gt(t), s = e.logic === "AND" && !e.negated ? e : {
950
+ id: o(),
770
951
  logic: "AND",
771
952
  conditions: e.conditions.length ? [e] : []
772
- }, o = i.conditions.filter((e) => y(e) || e.id !== r);
953
+ }, c = s.conditions.filter((e) => v(e) || e.id !== i && e.id !== a);
773
954
  return {
774
- ...i,
775
- conditions: n ? [...o, n] : o
955
+ ...s,
956
+ conditions: n ? [
957
+ ...c,
958
+ n,
959
+ ...r ? [{
960
+ id: a,
961
+ ...r,
962
+ enabled: !0
963
+ }] : []
964
+ ] : c
776
965
  };
777
966
  }
778
- function lt(e, t, n) {
779
- return We(C(e.id), e.column, t, n);
967
+ function Mt(e) {
968
+ let t = new Set(e.conditions.map((e) => e.id)), n = e.conditions.filter((e) => v(e) || !e.id.startsWith(ht) || t.has(x(e.id.slice(14))));
969
+ return n.length === e.conditions.length ? e : {
970
+ ...e,
971
+ conditions: n
972
+ };
780
973
  }
781
- function ut(e, t) {
782
- let n = C(e.id);
974
+ function Nt(e, t, n) {
975
+ return ut(x(e.id), e.column, t, n);
976
+ }
977
+ function Pt(e, t) {
978
+ let n = x(e.id);
783
979
  if (t.length > 7) return {
784
980
  id: n,
785
981
  column: e.column,
@@ -790,28 +986,28 @@ function ut(e, t) {
790
986
  },
791
987
  enabled: !0
792
988
  };
793
- let [r, i] = t.split("-").map(Number), a = new Date(r, i, 0).getDate();
989
+ let r = T(e), [i, a] = t.split("-").map(Number), o = new Date(i, a, 0).getDate(), s = `${t}-01`, c = `${t}-${String(o).padStart(2, "0")}`;
794
990
  return {
795
991
  id: n,
796
992
  column: e.column,
797
993
  operator: "in_range",
798
994
  value: {
799
- from: `${t}-01`,
800
- to: `${t}-${String(a).padStart(2, "0")}`
995
+ from: r && r.from > s ? r.from : s,
996
+ to: r && r.to < c ? r.to : c
801
997
  },
802
998
  enabled: !0
803
999
  };
804
1000
  }
805
- function dt(e, t) {
1001
+ function Ft(e, t) {
806
1002
  let n = e.steps.find((e) => e.id === t);
807
1003
  return n?.condition ? {
808
- id: C(e.id),
1004
+ id: x(e.id),
809
1005
  ...n.condition,
810
1006
  enabled: !0
811
1007
  } : null;
812
1008
  }
813
- var D = (e) => e === null ? "" : String(e), ft = "\0others";
814
- function pt(e, t) {
1009
+ var E = (e) => e === null ? "" : String(e), It = "\0others";
1010
+ function Lt(e, t) {
815
1011
  if (!t) return null;
816
1012
  if (e.kind === "trend") {
817
1013
  let n = t.value?.from;
@@ -819,30 +1015,45 @@ function pt(e, t) {
819
1015
  }
820
1016
  return e.kind === "funnel" ? e.steps.find((e) => !!e.condition && e.condition.column === t.column && e.condition.operator === t.operator && JSON.stringify(e.condition.value) === JSON.stringify(t.value))?.id ?? null : t.operator === "is_empty" ? "" : t.operator === "is_true" ? "true" : t.operator === "is_false" ? "false" : String(t.value);
821
1017
  }
822
- function O(e, t) {
1018
+ function D(e, t) {
823
1019
  return e.compute ? e.compute(t) : t.length;
824
1020
  }
825
- function k(e, t) {
826
- let n = /* @__PURE__ */ new Map();
827
- for (let r of e) {
828
- let e = x(t, r), i = D(e), a = n.get(i);
829
- a ? a.count++ : n.set(i, {
1021
+ var Rt = (e, t) => {
1022
+ let n = e.where?.test;
1023
+ return n ? t.filter((e) => n(e)) : t;
1024
+ };
1025
+ function zt(e) {
1026
+ return e ? (t) => {
1027
+ let n = e.value ? e.value(t) : Number(r(t, e.id));
1028
+ return Number.isFinite(n) ? n : 0;
1029
+ } : () => 1;
1030
+ }
1031
+ var Bt = (e) => Math.round(e * 1e6) / 1e6;
1032
+ function O(e, t, n) {
1033
+ let r = /* @__PURE__ */ new Map(), i = zt(n);
1034
+ for (let n of e) {
1035
+ let e = y(t, n), a = E(e), o = r.get(a);
1036
+ o ? o.count += i(n) : r.set(a, {
830
1037
  value: e,
831
- count: 1
1038
+ count: i(n)
832
1039
  });
833
1040
  }
834
- return Array.from(n.values());
1041
+ let a = Array.from(r.values());
1042
+ return n ? a.map((e) => ({
1043
+ ...e,
1044
+ count: Bt(e.count)
1045
+ })) : a;
835
1046
  }
836
- function mt(e, t, n, r) {
1047
+ function Vt(e, t, n, r, i) {
837
1048
  return {
838
1049
  ...e,
839
1050
  buckets: e.buckets.map((e) => ({
840
1051
  ...e,
841
- children: k(t.filter((t) => D(x(n, t)) === D(e.value)), r)
1052
+ children: O(t.filter((t) => E(y(n, t)) === E(e.value)), r, i)
842
1053
  }))
843
1054
  };
844
1055
  }
845
- function ht(e, t = /* @__PURE__ */ new Date()) {
1056
+ function k(e, t = /* @__PURE__ */ new Date()) {
846
1057
  return Array.from({ length: e }, (n, r) => {
847
1058
  let i = new Date(t.getFullYear(), t.getMonth() - (e - 1 - r), 1);
848
1059
  return `${i.getFullYear()}-${String(i.getMonth() + 1).padStart(2, "0")}`;
@@ -855,41 +1066,105 @@ function A(e, t = /* @__PURE__ */ new Date()) {
855
1066
  return `${a.getFullYear()}-${n(a.getMonth() + 1)}-${n(a.getDate())}`;
856
1067
  });
857
1068
  }
858
- function gt(e, t, r, i) {
1069
+ function Ht(e, t, r, i) {
859
1070
  let a = new Map(r.map((e) => [e, []]));
860
1071
  for (let r of e) {
861
- let e = n(s(t, r)), o = e === null ? null : i === "month" ? e.slice(0, 7) : e;
1072
+ let e = n(c(t, r)), o = e === null ? null : i === "month" ? e.slice(0, 7) : e;
862
1073
  o !== null && a.get(o)?.push(r);
863
1074
  }
864
1075
  return a;
865
1076
  }
866
- function _t(e, t, n, r, i, a) {
867
- let o = n === "month" ? ht(r, i) : A(r, i), s = gt(e, t, o, n);
868
- return o.map((e) => {
869
- let t = s.get(e);
1077
+ function Ut(e, t) {
1078
+ let n = typeof e == "string" ? /^(\d{4})-(\d{2})(?:-(\d{2}))?(?:$|[T ])/.exec(e) : null;
1079
+ if (!n) return null;
1080
+ let r = Number(n[2]);
1081
+ if (r < 1 || r > 12) return null;
1082
+ let i = new Date(Number(n[1]), r, 0).getDate(), a = n[3] ? Number(n[3]) : t ? i : 1;
1083
+ return a >= 1 && a <= i ? `${n[1]}-${n[2]}-${String(a).padStart(2, "0")}` : null;
1084
+ }
1085
+ var j = (e) => {
1086
+ let [t, n, r] = e.split("-").map(Number);
1087
+ return new Date(t, n - 1, r);
1088
+ };
1089
+ function Wt(e, t, n) {
1090
+ let r = j(e), i = j(t);
1091
+ return n === "month" ? k((i.getFullYear() - r.getFullYear()) * 12 + i.getMonth() - r.getMonth() + 1, i) : A(Math.round((Date.UTC(i.getFullYear(), i.getMonth(), i.getDate()) - Date.UTC(r.getFullYear(), r.getMonth(), r.getDate())) / 864e5) + 1, i);
1092
+ }
1093
+ function Gt(e, t, n, r = /* @__PURE__ */ new Date()) {
1094
+ if (!e || !e.from && !e.to) return null;
1095
+ let i = e.to ? Ut(e.to, !0) : A(1, r)[0];
1096
+ if (!i) return null;
1097
+ let a;
1098
+ if (e.from) a = Ut(e.from, !1);
1099
+ else {
1100
+ let e = (t === "month" ? k(n, j(i)) : A(n, j(i)))[0];
1101
+ a = t === "month" ? `${e}-01` : e;
1102
+ }
1103
+ if (!a || a > i) return null;
1104
+ let o = Wt(a, i, t), s = Ge[t].max;
1105
+ if (o.length <= s) return {
1106
+ from: a,
1107
+ to: i,
1108
+ count: o.length
1109
+ };
1110
+ let c = o[o.length - s];
1111
+ return {
1112
+ from: t === "month" ? `${c}-01` : c,
1113
+ to: i,
1114
+ count: s
1115
+ };
1116
+ }
1117
+ function Kt(e, t, n) {
1118
+ if (e.kind === "trend" && e.range) {
1119
+ let r = Gt(typeof e.range == "function" ? t ? e.range(t) : null : e.range, e.period, e.count, n), { range: i, ...a } = e;
1120
+ return r ? {
1121
+ ...a,
1122
+ range: {
1123
+ from: r.from,
1124
+ to: r.to
1125
+ },
1126
+ count: r.count
1127
+ } : a;
1128
+ }
1129
+ return e.kind === "funnel" && t && e.steps.some((e) => e.showWhen) ? {
1130
+ ...e,
1131
+ steps: e.steps.filter((e) => !e.showWhen || e.showWhen(t))
1132
+ } : e;
1133
+ }
1134
+ function qt(e, t, r, i, a, o, s = {}) {
1135
+ let { sum: l, range: u } = s, d = u ? Wt(u.from, u.to, r) : r === "month" ? k(i, a) : A(i, a), f = Ht(u ? e.filter((e) => {
1136
+ let r = n(c(t, e));
1137
+ return r !== null && r >= u.from && r <= u.to;
1138
+ }) : e, t, d, r), p = zt(l);
1139
+ return d.map((e) => {
1140
+ let t = f.get(e);
870
1141
  return {
871
1142
  period: e,
872
- count: t.length,
873
- ...a ? { split: k(t, a) } : {}
1143
+ count: l ? Bt(t.reduce((e, t) => e + p(t), 0)) : t.length,
1144
+ ...o ? { split: O(t, o, l) } : {}
874
1145
  };
875
1146
  });
876
1147
  }
877
- function vt(e, t, n, r, i, a) {
878
- let o = r === "month" ? ht(2 * i, a) : A(2 * i, a), s = gt(e, n, o, r), c = o.slice(0, i).flatMap((e) => s.get(e));
1148
+ var Jt = (e, t, n, r, i) => qt(Rt(e, t), n, e.period, e.count, i, r, {
1149
+ sum: e.sum,
1150
+ range: T(e)
1151
+ });
1152
+ function Yt(e, t, n, r, i, a) {
1153
+ let o = r === "month" ? k(2 * i, a) : A(2 * i, a), s = Ht(e, n, o, r), c = o.slice(0, i).flatMap((e) => s.get(e));
879
1154
  return {
880
1155
  points: o.slice(i).map((e) => ({
881
1156
  period: e,
882
- count: O(t, s.get(e))
1157
+ count: D(t, s.get(e))
883
1158
  })),
884
- previous: O(t, c)
1159
+ previous: D(t, c)
885
1160
  };
886
1161
  }
887
- function yt(e, t, n, r, i, a) {
1162
+ function Xt(e, t, n, r, i, a) {
888
1163
  let o = n.buckets.map((e) => ({
889
1164
  ...e,
890
- key: D(e.value),
891
- label: S(t, e.value, r, e.label)
892
- })), s = T(e, i).from === "least";
1165
+ key: E(e.value),
1166
+ label: b(t, e.value, r, e.label)
1167
+ })), s = C(e, i).from === "least";
893
1168
  o.sort((e, t) => (s ? e.count - t.count : t.count - e.count) || e.label.localeCompare(t.label));
894
1169
  let c = o.map((t, n) => ({
895
1170
  key: t.key,
@@ -898,13 +1173,13 @@ function yt(e, t, n, r, i, a) {
898
1173
  count: t.count,
899
1174
  slot: e.slots?.[t.key] ?? n + 1,
900
1175
  ...t.children ? { children: [...t.children].sort((e, t) => t.count - e.count).map((e) => ({
901
- key: D(e.value),
902
- label: S(a, e.value, r, e.label),
1176
+ key: E(e.value),
1177
+ label: b(a, e.value, r, e.label),
903
1178
  count: e.count
904
1179
  })) } : {}
905
1180
  }));
906
- return n.others > 0 && c.push({
907
- key: ft,
1181
+ return n.others !== 0 && c.push({
1182
+ key: It,
908
1183
  value: null,
909
1184
  label: r.others,
910
1185
  count: n.others,
@@ -912,18 +1187,18 @@ function yt(e, t, n, r, i, a) {
912
1187
  others: !0
913
1188
  }), c;
914
1189
  }
915
- var bt = (e, t) => {
1190
+ var Zt = (e, t) => {
916
1191
  try {
917
1192
  return new Intl.DateTimeFormat(e, t);
918
1193
  } catch {
919
1194
  return new Intl.DateTimeFormat(void 0, t);
920
1195
  }
921
1196
  };
922
- function xt(e, t, n) {
923
- let r = bt(n, t === "month" ? { month: "short" } : {
1197
+ function Qt(e, t, n) {
1198
+ let r = Zt(n, t === "month" ? { month: "short" } : {
924
1199
  day: "numeric",
925
1200
  month: "short"
926
- }), i = bt(n, t === "month" ? {
1201
+ }), i = Zt(n, t === "month" ? {
927
1202
  month: "long",
928
1203
  year: "numeric"
929
1204
  } : { dateStyle: "medium" });
@@ -937,15 +1212,15 @@ function xt(e, t, n) {
937
1212
  };
938
1213
  });
939
1214
  }
940
- function St(e, t, n, r) {
1215
+ function $t(e, t, n, r) {
941
1216
  let i = /* @__PURE__ */ new Map(), a = t.map((e) => {
942
1217
  let t = {};
943
1218
  for (let a of e.split ?? []) {
944
- let e = D(a.value);
1219
+ let e = E(a.value);
945
1220
  t[e] = (t[e] ?? 0) + a.count;
946
1221
  let o = i.get(e) ?? {
947
1222
  value: a.value,
948
- label: S(n, a.value, r, a.label),
1223
+ label: b(n, a.value, r, a.label),
949
1224
  count: 0
950
1225
  };
951
1226
  o.count += a.count, i.set(e, o);
@@ -961,36 +1236,37 @@ function St(e, t, n, r) {
961
1236
  perPeriod: a
962
1237
  };
963
1238
  }
964
- var j = (e, t) => t > 0 ? e / t * 100 : 0;
965
- function M(e) {
1239
+ var en = (e) => e.kind !== "unavailable" && (e.kind !== "value" || S(e.card) !== "number") && (e.kind !== "ratio" || S(e.card) !== "bar"), tn = (e) => (e.card.kind === "value" || e.card.kind === "ratio") && e.card.height === "content" && !en(e), nn = (e, t) => (e.kind === "breakdown" || e.kind === "trend") && e.card.sum?.format || t, rn = (e, t) => e.text ? e.text(t) : t, M = (e, t) => t > 0 ? e / t * 100 : 0;
1240
+ function N(e) {
966
1241
  return e > 0 && e < 1 ? "<1%" : e > 99 && e < 100 ? ">99%" : `${Math.round(e)}%`;
967
1242
  }
968
- function Ct(e, t) {
1243
+ function an(e, t) {
969
1244
  return e.text ? e.text(t) : `${e.label}: ${t}`;
970
1245
  }
971
- function wt(e, t) {
972
- return e.flatMap((e) => e.kind === "value" && e.value !== null ? [`${e.card.title} ${t(e.value)}`] : e.kind === "ratio" && e.value !== null && e.total !== null ? [`${e.card.title} ${M(j(e.value, e.total))}`] : []).join(" · ");
1246
+ function on(e, t) {
1247
+ return e.flatMap((e) => e.kind === "value" && e.value !== null ? [`${e.card.title} ${t(e.value)}`] : e.kind === "ratio" && e.value !== null && e.total !== null ? [`${e.card.title} ${N(M(e.value, e.total))}`] : []).join(" · ");
973
1248
  }
974
- function Tt(e, t, n) {
1249
+ function sn(e, t, n) {
975
1250
  let r = {}, i = [];
976
1251
  for (let a of e) {
977
- if (a.kind === "value" && a.value !== null && (r[a.card.title] = a.value), a.kind === "ratio" && a.value !== null && a.total !== null && (r[a.card.title] = `${n(a.value)} / ${n(a.total)} (${M(j(a.value, a.total))})`), (a.kind === "value" || a.kind === "ratio") && a.sub && a.sub.value !== null && (r[a.sub.line.label] = a.sub.value), a.kind === "breakdown" && a.buckets && i.push({
1252
+ if (a.kind === "value" && a.value !== null && (r[a.card.title] = a.value), a.kind === "value") for (let e of a.figures ?? []) e.value !== null && (r[`${a.card.title} · ${e.label}`] = e.value);
1253
+ if (a.kind === "ratio" && a.value !== null && a.total !== null && (r[a.card.title] = `${n(a.value)} / ${n(a.total)} (${N(M(a.value, a.total))})`), (a.kind === "value" || a.kind === "ratio") && a.sub && a.sub.value !== null && (r[a.sub.line.label] = a.sub.value), a.kind === "breakdown" && a.buckets && i.push({
978
1254
  id: a.key,
979
1255
  title: a.card.title,
980
- header: [a.column?.header ?? a.card.column, t.summaryCount],
1256
+ header: [a.column?.header ?? a.card.column, a.card.sum?.label ?? t.summaryCount],
981
1257
  rows: a.buckets.map((e) => ({
982
1258
  label: e.label,
983
1259
  count: e.count
984
1260
  }))
985
1261
  }), a.kind === "trend" && a.periods) {
986
- let e = a.card.period === "day", n = (e ? a.periods.filter((e) => e.count > 0) : a.periods).map((e) => ({
1262
+ let e = a.card.period === "day", n = (e ? a.periods.filter((e) => e.count !== 0) : a.periods).map((e) => ({
987
1263
  label: e.fullLabel,
988
1264
  count: e.count
989
1265
  }));
990
1266
  i.push({
991
1267
  id: a.key,
992
1268
  title: a.card.title,
993
- header: [e ? t.summaryDay : t.summaryMonth, t.summaryCount],
1269
+ header: [e ? t.summaryDay : t.summaryMonth, a.card.sum?.label ?? t.summaryCount],
994
1270
  rows: n
995
1271
  });
996
1272
  }
@@ -1010,9 +1286,9 @@ function Tt(e, t, n) {
1010
1286
  };
1011
1287
  }
1012
1288
  // src/components/Charts/palette.ts
1013
- var Et = 10, N = {
1289
+ var cn = 10, P = {
1014
1290
  light: {
1015
- 1: "#2a78d6",
1291
+ 1: "#2c7cdc",
1016
1292
  2: "#eb6834",
1017
1293
  3: "#1baf7a",
1018
1294
  4: "#9257d1",
@@ -1047,7 +1323,7 @@ var Et = 10, N = {
1047
1323
  info: "#6b95ea",
1048
1324
  neutral: "#737380"
1049
1325
  }
1050
- }, Dt = {
1326
+ }, ln = {
1051
1327
  light: {
1052
1328
  lightness: [
1053
1329
  .46,
@@ -1081,7 +1357,7 @@ var Et = 10, N = {
1081
1357
  background: "#1f1f1f"
1082
1358
  }
1083
1359
  };
1084
- function Ot(e, t, n) {
1360
+ function un(e, t, n) {
1085
1361
  let r = n * Math.PI / 180, i = t * Math.cos(r), a = t * Math.sin(r), o = (e + .3963377774 * i + .2158037573 * a) ** 3, s = (e - .1055613458 * i - .0638541728 * a) ** 3, c = (e - .0894841775 * i - 1.291485548 * a) ** 3;
1086
1362
  return [
1087
1363
  4.0767416621 * o - 3.3077115913 * s + .2309699292 * c,
@@ -1089,11 +1365,11 @@ function Ot(e, t, n) {
1089
1365
  -.0041960863 * o - .7034186147 * s + 1.707614701 * c
1090
1366
  ];
1091
1367
  }
1092
- var kt = (e) => `#${e.map((e) => {
1368
+ var dn = (e) => `#${e.map((e) => {
1093
1369
  let t = Math.min(1, Math.max(0, e)), n = t <= .0031308 ? 12.92 * t : 1.055 * t ** (1 / 2.4) - .055;
1094
1370
  return Math.round(n * 255).toString(16).padStart(2, "0");
1095
- }).join("")}`, At = (e, t, n) => kt(Ot(e, t, n));
1096
- function P(e) {
1371
+ }).join("")}`, fn = (e, t, n) => dn(un(e, t, n));
1372
+ function pn(e) {
1097
1373
  let t = (t) => {
1098
1374
  let n = parseInt(e.slice(t, t + 2), 16) / 255;
1099
1375
  return n <= .04045 ? n / 12.92 : ((n + .055) / 1.055) ** 2.4;
@@ -1108,32 +1384,32 @@ function P(e) {
1108
1384
  .0259040371 * a + .7827717662 * o - .808675766 * s
1109
1385
  ];
1110
1386
  }
1111
- var F = (e, t) => Math.hypot(e[0] - t[0], e[1] - t[1], e[2] - t[2]), jt = {};
1112
- function Mt(e) {
1113
- let t = jt[e];
1387
+ var F = (e, t) => Math.hypot(e[0] - t[0], e[1] - t[1], e[2] - t[2]), mn = {};
1388
+ function hn(e) {
1389
+ let t = mn[e];
1114
1390
  if (t) return t;
1115
- let n = Dt[e], r = [];
1391
+ let n = ln[e], r = [];
1116
1392
  for (let e of n.lightness) for (let t of n.chroma) for (let i = 0; i < 360; i += n.hueStep) {
1117
- let n = Ot(e, t, i);
1393
+ let n = un(e, t, i);
1118
1394
  if (n.some((e) => e < -5e-4 || e > 1.0005)) continue;
1119
- let a = kt(n);
1395
+ let a = dn(n);
1120
1396
  r.push({
1121
1397
  hex: a,
1122
- lab: P(a)
1398
+ lab: pn(a)
1123
1399
  });
1124
1400
  }
1125
- let i = Array.from({ length: 10 }, (t, n) => N[e][n + 1]), a = [
1401
+ let i = Array.from({ length: 10 }, (t, n) => P[e][n + 1]), a = [
1126
1402
  ...i,
1127
- N[e].rest,
1403
+ P[e].rest,
1128
1404
  n.background
1129
- ].map(P), o = {
1405
+ ].map(pn), o = {
1130
1406
  colours: i,
1131
1407
  candidates: r,
1132
1408
  nearest: r.map((e) => Math.min(...a.map((t) => F(t, e.lab))))
1133
1409
  };
1134
- return jt[e] = o, o;
1410
+ return mn[e] = o, o;
1135
1411
  }
1136
- function Nt(e) {
1412
+ function gn(e) {
1137
1413
  let t = -1;
1138
1414
  for (let n = 0; n < e.candidates.length; n++) (t < 0 || e.nearest[n] > e.nearest[t]) && (t = n);
1139
1415
  if (t < 0 || e.nearest[t] <= 0) {
@@ -1145,15 +1421,15 @@ function Nt(e) {
1145
1421
  for (let t = 0; t < e.candidates.length; t++) e.nearest[t] = Math.min(e.nearest[t], F(n.lab, e.candidates[t].lab));
1146
1422
  }
1147
1423
  function I(e, t) {
1148
- let n = Mt(t);
1149
- for (; n.colours.length <= e;) Nt(n);
1424
+ let n = hn(t);
1425
+ for (; n.colours.length <= e;) gn(n);
1150
1426
  return n.colours[e];
1151
1427
  }
1152
- var Pt = (e, t) => typeof e == "number" ? I(e - 1, t) : N[t][e];
1153
- function Ft(e) {
1428
+ var _n = (e, t) => typeof e == "number" ? I(e - 1, t) : P[t][e];
1429
+ function vn(e) {
1154
1430
  return typeof e != "number" || e <= 10 ? `var(--chart-series-${e})` : `var(--chart-scheme-light, ${I(e - 1, "light")}) var(--chart-scheme-dark, ${I(e - 1, "dark")})`;
1155
1431
  }
1156
- var It = {
1432
+ var yn = {
1157
1433
  bands: [{
1158
1434
  below: 20,
1159
1435
  color: "negative"
@@ -1162,11 +1438,11 @@ var It = {
1162
1438
  color: "warning"
1163
1439
  }],
1164
1440
  above: "positive"
1165
- }, Lt = (e) => typeof e == "object" && !!e;
1166
- function Rt(e, t) {
1167
- return Lt(e) ? e.bands.find((e) => t < e.below)?.color ?? e.above : e;
1441
+ }, bn = (e) => typeof e == "object" && !!e;
1442
+ function xn(e, t) {
1443
+ return bn(e) ? e.bands.find((e) => t < e.below)?.color ?? e.above : e;
1168
1444
  }
1169
- var zt = (e) => typeof e == "string" && e.startsWith("#"), Bt = (e) => zt(e) ? e : Ft(e), L = (e, t) => zt(e) ? e : Pt(e, t), Vt = {
1445
+ var Sn = (e) => typeof e == "string" && e.startsWith("#"), Cn = (e) => Sn(e) ? e : vn(e), wn = (e) => e === "positive" ? "var(--success-text, var(--chart-series-positive))" : e === "negative" ? "var(--error-text, var(--chart-series-negative))" : "var(--chart-text-muted)", L = (e, t) => Sn(e) ? e : _n(e, t), Tn = {
1170
1446
  light: [
1171
1447
  "#e8eff9",
1172
1448
  "#bcd3f2",
@@ -1181,26 +1457,26 @@ var zt = (e) => typeof e == "string" && e.startsWith("#"), Bt = (e) => zt(e) ? e
1181
1457
  "#4f8bd6",
1182
1458
  "#82baff"
1183
1459
  ]
1184
- }, Ht = (e) => `var(--chart-heat-${Math.max(0, Math.min(Vt.light.length - 1, e))})`, R = {
1460
+ }, En = (e) => `var(--chart-heat-${Math.max(0, Math.min(Tn.light.length - 1, e))})`, R = {
1185
1461
  dark: "#0f0f0f",
1186
1462
  light: "#ffffff"
1187
1463
  };
1188
- function Ut(e) {
1464
+ function z(e) {
1189
1465
  let t = (t) => {
1190
1466
  let n = parseInt(e.slice(t, t + 2), 16) / 255;
1191
1467
  return n <= .04045 ? n / 12.92 : ((n + .055) / 1.055) ** 2.4;
1192
1468
  };
1193
1469
  return .2126 * t(1) + .7152 * t(3) + .0722 * t(5);
1194
1470
  }
1195
- function z(e) {
1196
- let t = Ut(e);
1197
- return (t + .05) / .05 > 1.05 / (t + .05) ? R.dark : R.light;
1471
+ function B(e) {
1472
+ let t = z(e) + .05;
1473
+ return t / (z(R.dark) + .05) > (z(R.light) + .05) / t ? R.dark : R.light;
1198
1474
  }
1199
- function Wt(e) {
1200
- return `var(--chart-scheme-light, ${z(L(e, "light"))}) var(--chart-scheme-dark, ${z(L(e, "dark"))})`;
1475
+ function Dn(e) {
1476
+ return `var(--chart-scheme-light, ${B(L(e, "light"))}) var(--chart-scheme-dark, ${B(L(e, "dark"))})`;
1201
1477
  }
1202
1478
  // src/components/Charts/labels.ts
1203
- var Gt = {
1479
+ var On = {
1204
1480
  legend: "Legend",
1205
1481
  total: "Total",
1206
1482
  empty: "No records",
@@ -1244,22 +1520,22 @@ var Gt = {
1244
1520
  busiest: "Busiest day",
1245
1521
  funnelOfFirst: "Of the first step",
1246
1522
  funnelDrop: "Drop from the step before"
1247
- }, B = (e, t = !1) => `chart-root ${e}${t ? " chart-compact" : ""}`;
1248
- function Kt({ title: e, children: t }) {
1249
- return e == null || e === "" ? /* @__PURE__ */ d(ee, { children: t }) : /* @__PURE__ */ te("figure", {
1250
- className: B("chart-titled"),
1251
- children: [/* @__PURE__ */ d("figcaption", {
1523
+ }, V = (e, t = !1) => `chart-root ${e}${t ? " chart-compact" : ""}`;
1524
+ function kn({ title: e, children: t }) {
1525
+ return e == null || e === "" ? /* @__PURE__ */ p(f, { children: t }) : /* @__PURE__ */ ee("figure", {
1526
+ className: V("chart-titled"),
1527
+ children: [/* @__PURE__ */ p("figcaption", {
1252
1528
  className: "chart-title",
1253
1529
  children: e
1254
1530
  }), t]
1255
1531
  });
1256
1532
  }
1257
- function V(e) {
1533
+ function H(e) {
1258
1534
  return e > 0 && e < .1 ? "<0.1%" : e < 100 && e > 99.9 ? ">99.9%" : `${e.toFixed(1)}%`;
1259
1535
  }
1260
- var qt = (e) => e === 0 ? V(0) : `${e > 0 ? "−" : "+"}${V(Math.abs(e))}`;
1261
- function Jt({ locale: e, format: t, labels: n }) {
1262
- let r = xe().locale, i = e ?? r, a = u(() => {
1536
+ var An = (e) => e === 0 ? H(0) : `${e > 0 ? "−" : "+"}${H(Math.abs(e))}`;
1537
+ function jn({ locale: e, format: t, labels: n }) {
1538
+ let r = Re().locale, i = e ?? r, a = d(() => {
1263
1539
  if (t) return t;
1264
1540
  let e;
1265
1541
  try {
@@ -1268,25 +1544,25 @@ function Jt({ locale: e, format: t, labels: n }) {
1268
1544
  e = new Intl.NumberFormat();
1269
1545
  }
1270
1546
  return (t) => e.format(t);
1271
- }, [i, t]), o = p().charts;
1547
+ }, [i, t]), o = Ne().charts;
1272
1548
  return {
1273
1549
  nf: a,
1274
- L: u(() => ({
1275
- ...Gt,
1550
+ L: d(() => ({
1551
+ ...On,
1276
1552
  ...o,
1277
1553
  ...n
1278
1554
  }), [o, n])
1279
1555
  };
1280
1556
  }
1281
- function Yt({ ariaLabel: e, text: t, compact: n }) {
1282
- return /* @__PURE__ */ d("div", {
1283
- className: B("chart-empty", n),
1557
+ function Mn({ ariaLabel: e, text: t, compact: n }) {
1558
+ return /* @__PURE__ */ p("div", {
1559
+ className: V("chart-empty", n),
1284
1560
  role: "img",
1285
1561
  "aria-label": `${e}: ${t}`,
1286
1562
  children: t
1287
1563
  });
1288
1564
  }
1289
- function Xt(e, t, n, r = {}) {
1565
+ function Nn(e, t, n, r = {}) {
1290
1566
  if (n <= 0) return null;
1291
1567
  let i = {
1292
1568
  ArrowLeft: -1,
@@ -1297,32 +1573,58 @@ function Xt(e, t, n, r = {}) {
1297
1573
  };
1298
1574
  return e === "Home" ? 0 : e === "End" ? n - 1 : !(e in i) || i[e] === 0 ? null : t === null ? i[e] > 0 ? 0 : n - 1 : Math.max(0, Math.min(n - 1, t + i[e]));
1299
1575
  }
1300
- function Zt(e, t, n, r = {}, i = () => !0) {
1301
- let a = Xt(e, t, n, r);
1576
+ function Pn(e, t, n, r = {}, i = () => !0) {
1577
+ let a = Nn(e, t, n, r);
1302
1578
  if (a === null || i(a)) return a;
1303
1579
  let o = e === "Home" ? !0 : e === "End" ? !1 : t === null ? a === 0 : a > t;
1304
1580
  for (let e = a; e >= 0 && e < n; e += o ? 1 : -1) if (i(e)) return e;
1305
1581
  return t !== null && i(t) ? t : null;
1306
1582
  }
1307
- function Qt({ text: e }) {
1308
- return /* @__PURE__ */ d("span", {
1583
+ function Fn({ text: e }) {
1584
+ return /* @__PURE__ */ p("span", {
1309
1585
  className: "chart-sr-only",
1310
1586
  "aria-live": "polite",
1311
1587
  children: e
1312
1588
  });
1313
1589
  }
1590
+ function In({ ticks: e, max: t, plot: n, nf: r }) {
1591
+ return /* @__PURE__ */ p("div", {
1592
+ className: "chart-axis-y",
1593
+ "aria-hidden": !0,
1594
+ children: [...e].reverse().map((e) => {
1595
+ let i = pe(e.value, t);
1596
+ return /* @__PURE__ */ p("span", {
1597
+ style: {
1598
+ transform: `translateY(calc(${i * 100}% - ${i * n}px))`,
1599
+ opacity: e.alpha < 1 ? e.alpha : void 0
1600
+ },
1601
+ children: r(e.value)
1602
+ }, e.value);
1603
+ })
1604
+ });
1605
+ }
1606
+ function Ln({ ticks: e, max: t }) {
1607
+ return /* @__PURE__ */ p(f, { children: e.filter((e) => e.value > 0).map((e) => /* @__PURE__ */ p("div", {
1608
+ className: "chart-gridline",
1609
+ style: {
1610
+ bottom: `${pe(e.value, t) * 100}%`,
1611
+ opacity: e.alpha < 1 ? e.alpha : void 0
1612
+ },
1613
+ "aria-hidden": !0
1614
+ }, e.value)) });
1615
+ }
1314
1616
  // src/components/Charts/chartData.ts
1315
- var H = (e) => (e?.length ?? 0) > 0;
1316
- function U(e) {
1617
+ var U = (e) => (e?.length ?? 0) > 0;
1618
+ function W(e) {
1317
1619
  switch (e.type) {
1318
- case "values": return H(e.series) ? ["bars"] : [
1620
+ case "values": return U(e.series) ? ["bars"] : [
1319
1621
  "donut",
1320
1622
  "pie",
1321
1623
  "bars",
1322
1624
  "stacked",
1323
1625
  "treemap"
1324
1626
  ];
1325
- case "time": return [...e.period === "day" ? ["calendar"] : [], ...H(e.series) ? [
1627
+ case "time": return [...e.period === "day" ? ["calendar"] : [], ...U(e.series) ? [
1326
1628
  "grouped",
1327
1629
  "stacked",
1328
1630
  "line",
@@ -1343,15 +1645,15 @@ function U(e) {
1343
1645
  case "number": return e.points?.length ? ["numberTrend", "number"] : ["number"];
1344
1646
  }
1345
1647
  }
1346
- function $t(e, t, n) {
1347
- let r = U(e).filter((e) => !n || n.includes(e)), i = r.length ? r : U(e);
1648
+ function Rn(e, t, n) {
1649
+ let r = W(e).filter((e) => !n || n.includes(e)), i = r.length ? r : W(e);
1348
1650
  return t && i.includes(t) ? t : i[0];
1349
1651
  }
1350
- var W = (e) => [{
1652
+ var G = (e) => [{
1351
1653
  key: "n",
1352
1654
  label: e,
1353
1655
  slot: 1
1354
- }], en = (e, t) => ({
1656
+ }], zn = (e, t) => ({
1355
1657
  ...e.key === void 0 ? {} : { key: e.key },
1356
1658
  label: e.label,
1357
1659
  ...e.fullLabel === void 0 ? {} : { fullLabel: e.fullLabel },
@@ -1359,16 +1661,16 @@ var W = (e) => [{
1359
1661
  ...e.selectable === !1 ? { selectable: !1 } : {},
1360
1662
  ...e.href ? { href: e.href } : {},
1361
1663
  ...e.slot === void 0 ? {} : { slot: e.slot }
1362
- }), G = (e, t) => e.slot ?? t + 1;
1363
- function tn(e, t, n, r) {
1364
- let i = $t(e, t, r);
1664
+ }), K = (e, t) => e.slot ?? t + 1;
1665
+ function Bn(e, t, n, r) {
1666
+ let i = Rn(e, t, r);
1365
1667
  switch (e.type) {
1366
1668
  case "values": {
1367
- let t = H(e.series) ? e.series : W(n.count);
1669
+ let t = U(e.series) ? e.series : G(n.count);
1368
1670
  if (i === "bars") return {
1369
1671
  kind: "bars",
1370
1672
  series: t,
1371
- data: e.values.map((t) => en(t, H(e.series)))
1673
+ data: e.values.map((t) => zn(t, U(e.series)))
1372
1674
  };
1373
1675
  if (i === "treemap") return {
1374
1676
  kind: "treemap",
@@ -1376,13 +1678,13 @@ function tn(e, t, n, r) {
1376
1678
  key: e.key ?? e.label,
1377
1679
  label: e.label,
1378
1680
  value: e.count ?? 0,
1379
- slot: G(e, t),
1681
+ slot: K(e, t),
1380
1682
  ...e.selectable === !1 ? { selectable: !1 } : {},
1381
1683
  ...e.children ? { children: e.children.map((n) => ({
1382
1684
  key: n.key ?? n.label,
1383
1685
  label: n.label,
1384
1686
  value: n.count,
1385
- slot: G(e, t)
1687
+ slot: K(e, t)
1386
1688
  })) } : {}
1387
1689
  }))
1388
1690
  };
@@ -1390,7 +1692,7 @@ function tn(e, t, n, r) {
1390
1692
  key: e.key ?? e.label,
1391
1693
  label: e.label,
1392
1694
  value: e.count ?? 0,
1393
- slot: G(e, t),
1695
+ slot: K(e, t),
1394
1696
  ...e.selectable === !1 ? { selectable: !1 } : {}
1395
1697
  }));
1396
1698
  return {
@@ -1406,7 +1708,7 @@ function tn(e, t, n, r) {
1406
1708
  count: e.count ?? Object.values(e.counts ?? {}).reduce((e, t) => e + t, 0)
1407
1709
  }))
1408
1710
  };
1409
- let t = H(e.series), r = t ? e.series : W(n.count), a = e.points.map((e) => en(e, t));
1711
+ let t = U(e.series), r = t ? e.series : G(n.count), a = e.points.map((e) => zn(e, t));
1410
1712
  if (i === "line" || i === "area") return {
1411
1713
  kind: "line",
1412
1714
  area: i === "area",
@@ -1441,7 +1743,7 @@ function tn(e, t, n, r) {
1441
1743
  key: "value",
1442
1744
  label: e.label,
1443
1745
  value: e.value,
1444
- slot: Rt(e.color ?? 1, t)
1746
+ slot: xn(e.color ?? 1, t)
1445
1747
  }, {
1446
1748
  key: "rest",
1447
1749
  label: n.rest,
@@ -1458,7 +1760,7 @@ function tn(e, t, n, r) {
1458
1760
  }
1459
1761
  case "steps": return i === "bars" ? {
1460
1762
  kind: "bars",
1461
- series: W(n.count),
1763
+ series: G(n.count),
1462
1764
  data: e.steps.map((e) => ({
1463
1765
  key: e.key,
1464
1766
  label: e.label,
@@ -1483,18 +1785,19 @@ function tn(e, t, n, r) {
1483
1785
  points: e.points,
1484
1786
  ...e.previous === void 0 ? {} : { previous: e.previous },
1485
1787
  ...e.good ? { good: e.good } : {}
1486
- } : {}
1788
+ } : {},
1789
+ ...e.figures ? { figures: e.figures } : {}
1487
1790
  };
1488
1791
  }
1489
1792
  }
1490
1793
  // src/components/Charts/geometry.ts
1491
- var nn = (e) => e.key ?? e.label, rn = (e, t) => t.reduce((t, n) => t + (e.values[n.key] ?? 0), 0), an = 2 * Math.PI * 40, on = 1.2;
1492
- function sn(e) {
1493
- let t = e.reduce((e, t) => e + t.value, 0);
1794
+ var Vn = (e) => e.key ?? e.label, Hn = (e, t) => t.reduce((t, n) => t + (e.values[n.key] ?? 0), 0), Un = 2 * Math.PI * 40, Wn = 1.2, q = (e) => e.reduce((e, t) => e + Math.max(0, t.value), 0);
1795
+ function Gn(e) {
1796
+ let t = q(e);
1494
1797
  if (!t) return [];
1495
- let n = e.filter((e) => e.value > 0).length > 1 ? on : 0, r = 0, i = [];
1798
+ let n = e.filter((e) => e.value > 0).length > 1 ? Wn : 0, r = 0, i = [];
1496
1799
  for (let a of e) {
1497
- let e = a.value / t * an;
1800
+ let e = Math.max(0, a.value) / t * Un;
1498
1801
  a.value > 0 && i.push({
1499
1802
  slice: a,
1500
1803
  start: r,
@@ -1503,14 +1806,14 @@ function sn(e) {
1503
1806
  }
1504
1807
  return i;
1505
1808
  }
1506
- var K = (e, t) => t ? e / t * 100 : 0;
1507
- function cn(e) {
1809
+ var J = (e, t) => t ? e / t * 100 : 0;
1810
+ function Kn(e) {
1508
1811
  if (e <= 5) return 5;
1509
1812
  let t = 10 ** Math.floor(Math.log10(e)), n = e / t;
1510
1813
  return (n <= 1 ? 1 : n <= 2 ? 2 : n <= 5 ? 5 : 10) * t;
1511
1814
  }
1512
- function ln(e) {
1513
- let t = cn(Math.max(1, ...e));
1815
+ function qn(e) {
1816
+ let t = Kn(Math.max(1, ...e));
1514
1817
  return {
1515
1818
  max: t,
1516
1819
  ticks: [
@@ -1520,8 +1823,8 @@ function ln(e) {
1520
1823
  ]
1521
1824
  };
1522
1825
  }
1523
- var un = (e) => Math.max(1, ...e), dn = (e, t) => t <= 12 || e % Math.ceil(t / 12) === 0, fn = (e, t, n = "stacked") => n === "grouped" ? e.flatMap((e) => t.map((t) => e.values[t.key] ?? 0)) : e.map((e) => rn(e, t));
1524
- function pn(e, t, n = 2) {
1826
+ var Jn = (e) => Math.max(1, ...e), Yn = (e, t) => t <= 12 || e % Math.ceil(t / 12) === 0, Xn = (e, t, n = "stacked") => n === "grouped" ? e.flatMap((e) => t.map((t) => e.values[t.key] ?? 0)) : e.map((e) => Hn(e, t));
1827
+ function Zn(e, t, n = 2) {
1525
1828
  if (e <= 0) return [];
1526
1829
  let r = Math.max(0, (t - n * (e - 1)) / e);
1527
1830
  return Array.from({ length: e }, (e, t) => ({
@@ -1529,35 +1832,35 @@ function pn(e, t, n = 2) {
1529
1832
  width: r
1530
1833
  }));
1531
1834
  }
1532
- var q = (e, t, n) => t <= 1 ? n / 2 : e / (t - 1) * n;
1533
- function mn(e, t, n, r) {
1835
+ var Y = (e, t, n) => t <= 1 ? n / 2 : e / (t - 1) * n;
1836
+ function Qn(e, t, n, r) {
1534
1837
  return e.map((i, a) => ({
1535
- x: q(a, e.length, t),
1838
+ x: Y(a, e.length, t),
1536
1839
  y: n - Math.max(0, i) / (r || 1) * n
1537
1840
  }));
1538
1841
  }
1539
- var J = (e) => Math.round(e * 100) / 100, hn = (e) => e.map((e, t) => `${t ? "L" : "M"}${J(e.x)} ${J(e.y)}`).join(" ");
1540
- function gn(e, t) {
1541
- return e.length ? `${hn(e)} L${J(e[e.length - 1].x)} ${J(t)} L${J(e[0].x)} ${J(t)} Z` : "";
1842
+ var X = (e) => Math.round(e * 100) / 100, $n = (e) => e.map((e, t) => `${t ? "L" : "M"}${X(e.x)} ${X(e.y)}`).join(" ");
1843
+ function er(e, t) {
1844
+ return e.length ? `${$n(e)} L${X(e[e.length - 1].x)} ${X(t)} L${X(e[0].x)} ${X(t)} Z` : "";
1542
1845
  }
1543
- function _n(e, t, n) {
1846
+ function tr(e, t, n) {
1544
1847
  return n <= 1 || t <= 0 ? 0 : Math.max(0, Math.min(n - 1, Math.round(e / t * (n - 1))));
1545
1848
  }
1546
- function vn(e, t = 6) {
1849
+ function nr(e, t = 6) {
1547
1850
  if (e <= 0) return [];
1548
1851
  if (e <= t) return Array.from({ length: e }, (e, t) => t);
1549
1852
  let n = (e - 1) / (t - 1);
1550
1853
  return Array.from(new Set(Array.from({ length: t }, (e, t) => Math.round(t * n))));
1551
1854
  }
1552
- function yn(e, t, n) {
1855
+ function rr(e, t, n) {
1553
1856
  if (!e.length) return [];
1554
1857
  let r = Math.min(...e), i = Math.max(...e);
1555
1858
  return e.map((a, o) => ({
1556
- x: q(o, e.length, t),
1859
+ x: Y(o, e.length, t),
1557
1860
  y: i === r ? n / 2 : n - (a - r) / (i - r) * n
1558
1861
  }));
1559
1862
  }
1560
- function bn(e, t) {
1863
+ function ir(e, t) {
1561
1864
  let n = e - t;
1562
1865
  return {
1563
1866
  direction: n > 0 ? "up" : n < 0 ? "down" : "same",
@@ -1565,44 +1868,44 @@ function bn(e, t) {
1565
1868
  percent: t ? n / t * 100 : n ? null : 0
1566
1869
  };
1567
1870
  }
1568
- function xn(e, t) {
1871
+ function ar(e, t) {
1569
1872
  return e === "same" || t === "none" ? "neutral" : e === t ? "positive" : "negative";
1570
1873
  }
1571
- function Y(e, t, n, r) {
1874
+ function Z(e, t, n, r) {
1572
1875
  return {
1573
1876
  x: e + n * Math.sin(r),
1574
1877
  y: t - n * Math.cos(r)
1575
1878
  };
1576
1879
  }
1577
- var X = (e) => Math.round(e * 1e4) / 1e4;
1578
- function Sn(e, t, n, r, i) {
1880
+ var Q = (e) => Math.round(e * 1e4) / 1e4;
1881
+ function or(e, t, n, r, i) {
1579
1882
  if (i - r >= 2 * Math.PI - 1e-9) {
1580
- let i = Y(e, t, n, r + Math.PI), a = Y(e, t, n, r + 2 * Math.PI - 1e-4), o = Y(e, t, n, r);
1581
- return `M${X(o.x)} ${X(o.y)} A${n} ${n} 0 0 1 ${X(i.x)} ${X(i.y)} A${n} ${n} 0 0 1 ${X(a.x)} ${X(a.y)}`;
1883
+ let i = Z(e, t, n, r + Math.PI), a = Z(e, t, n, r + 2 * Math.PI - 1e-4), o = Z(e, t, n, r);
1884
+ return `M${Q(o.x)} ${Q(o.y)} A${n} ${n} 0 0 1 ${Q(i.x)} ${Q(i.y)} A${n} ${n} 0 0 1 ${Q(a.x)} ${Q(a.y)}`;
1582
1885
  }
1583
- let a = Y(e, t, n, r), o = Y(e, t, n, i);
1584
- return `M${X(a.x)} ${X(a.y)} A${n} ${n} 0 ${+(i - r > Math.PI)} 1 ${X(o.x)} ${X(o.y)}`;
1886
+ let a = Z(e, t, n, r), o = Z(e, t, n, i);
1887
+ return `M${Q(a.x)} ${Q(a.y)} A${n} ${n} 0 ${+(i - r > Math.PI)} 1 ${Q(o.x)} ${Q(o.y)}`;
1585
1888
  }
1586
- function Cn(e, t, n, r, i) {
1587
- if (i - r >= 2 * Math.PI - 1e-9) return `M${X(e)} ${X(t - n)} A${n} ${n} 0 1 1 ${X(e)} ${X(t + n)} A${n} ${n} 0 1 1 ${X(e)} ${X(t - n)} Z`;
1588
- let a = Y(e, t, n, r), o = Y(e, t, n, i);
1589
- return `M${X(e)} ${X(t)} L${X(a.x)} ${X(a.y)} A${n} ${n} 0 ${+(i - r > Math.PI)} 1 ${X(o.x)} ${X(o.y)} Z`;
1889
+ function sr(e, t, n, r, i) {
1890
+ if (i - r >= 2 * Math.PI - 1e-9) return `M${Q(e)} ${Q(t - n)} A${n} ${n} 0 1 1 ${Q(e)} ${Q(t + n)} A${n} ${n} 0 1 1 ${Q(e)} ${Q(t - n)} Z`;
1891
+ let a = Z(e, t, n, r), o = Z(e, t, n, i);
1892
+ return `M${Q(e)} ${Q(t)} L${Q(a.x)} ${Q(a.y)} A${n} ${n} 0 ${+(i - r > Math.PI)} 1 ${Q(o.x)} ${Q(o.y)} Z`;
1590
1893
  }
1591
- var wn = 864e5;
1592
- function Z(e) {
1894
+ var cr = 864e5;
1895
+ function $(e) {
1593
1896
  let [t, n, r] = e.split("-").map(Number);
1594
1897
  return Date.UTC(t, n - 1, r);
1595
1898
  }
1596
- var Tn = (e) => new Date(e).toISOString().slice(0, 10), En = (e) => (new Date(Z(e)).getUTCDay() + 6) % 7;
1597
- function Dn(e, t) {
1598
- let n = Z(e), r = Math.min(371, Math.max(0, Math.round((Z(t) - n) / wn) + 1));
1599
- return Array.from({ length: r }, (e, t) => Tn(n + t * wn));
1899
+ var lr = (e) => new Date(e).toISOString().slice(0, 10), ur = (e) => (new Date($(e)).getUTCDay() + 6) % 7;
1900
+ function dr(e, t) {
1901
+ let n = $(e), r = Math.min(371, Math.max(0, Math.round(($(t) - n) / cr) + 1));
1902
+ return Array.from({ length: r }, (e, t) => lr(n + t * cr));
1600
1903
  }
1601
- var On = 371;
1602
- function kn(e, t) {
1904
+ var fr = 371;
1905
+ function pr(e, t) {
1603
1906
  return e <= 0 || t <= 0 ? 0 : Math.min(4, Math.max(1, Math.ceil(e / t * 4)));
1604
1907
  }
1605
- function An(e) {
1908
+ function mr(e) {
1606
1909
  if (!e.length) return {
1607
1910
  cells: [],
1608
1911
  weeks: 0,
@@ -1610,14 +1913,14 @@ function An(e) {
1610
1913
  max: 0,
1611
1914
  total: 0
1612
1915
  };
1613
- let t = [...e].sort((e, t) => e.day.localeCompare(t.day)), n = new Map(t.map((e) => [e.day, e.count])), r = Dn(t[0].day, t[t.length - 1].day), i = En(r[0]), a = Math.max(0, ...r.map((e) => n.get(e) ?? 0)), o = r.map((e, t) => {
1916
+ let t = [...e].sort((e, t) => e.day.localeCompare(t.day)), n = new Map(t.map((e) => [e.day, e.count])), r = dr(t[0].day, t[t.length - 1].day), i = ur(r[0]), a = Math.max(0, ...r.map((e) => n.get(e) ?? 0)), o = r.map((e, t) => {
1614
1917
  let r = n.get(e) ?? 0;
1615
1918
  return {
1616
1919
  day: e,
1617
1920
  count: r,
1618
1921
  week: Math.floor((t + i) / 7),
1619
1922
  weekday: (t + i) % 7,
1620
- level: kn(r, a)
1923
+ level: pr(r, a)
1621
1924
  };
1622
1925
  }), s = o.filter((e) => e.day.endsWith("-01")).map((e) => ({
1623
1926
  month: e.day.slice(0, 7),
@@ -1634,13 +1937,13 @@ function An(e) {
1634
1937
  total: o.reduce((e, t) => e + t.count, 0)
1635
1938
  };
1636
1939
  }
1637
- var Q = {
1940
+ var hr = {
1638
1941
  min: 4,
1639
1942
  max: 16,
1640
1943
  compactMax: 12
1641
- }, jn = 8;
1642
- function Mn(e, t, n = Q.max, r = 1) {
1643
- let i = Math.floor(n * r), a = jn * r;
1944
+ }, gr = 8;
1945
+ function _r(e, t, n = hr.max, r = 1) {
1946
+ let i = Math.floor(n * r), a = gr * r;
1644
1947
  if (!e || t <= 0) return {
1645
1948
  cell: i,
1646
1949
  gap: 2,
@@ -1652,7 +1955,7 @@ function Mn(e, t, n = Q.max, r = 1) {
1652
1955
  cell: r,
1653
1956
  gap: n
1654
1957
  };
1655
- }, s = o(e - Nn(r));
1958
+ }, s = o(e - vr(r));
1656
1959
  if (s.cell >= a) return {
1657
1960
  cell: Math.min(i, s.cell),
1658
1961
  gap: s.gap,
@@ -1660,21 +1963,21 @@ function Mn(e, t, n = Q.max, r = 1) {
1660
1963
  };
1661
1964
  let c = o(e);
1662
1965
  return {
1663
- cell: Math.max(Q.min, Math.min(i, c.cell)),
1966
+ cell: Math.max(hr.min, Math.min(i, c.cell)),
1664
1967
  gap: c.gap,
1665
1968
  weekdays: !1
1666
1969
  };
1667
1970
  }
1668
- var Nn = (e = 1) => Math.round(28 * e), Pn = (e = 1) => 26 * e;
1669
- function Fn(e, t, n = 1) {
1971
+ var vr = (e = 1) => Math.round(28 * e), yr = (e = 1) => 26 * e;
1972
+ function br(e, t, n = 1) {
1670
1973
  let r = [];
1671
1974
  for (let i of e) {
1672
1975
  let e = r[r.length - 1];
1673
- (!e || (i.week - e.week) * t >= Pn(n)) && r.push(i);
1976
+ (!e || (i.week - e.week) * t >= yr(n)) && r.push(i);
1674
1977
  }
1675
1978
  return r;
1676
1979
  }
1677
- function $(e, t) {
1980
+ function xr(e, t) {
1678
1981
  let n = e.map(() => ({
1679
1982
  x: t.x,
1680
1983
  y: t.y,
@@ -1732,15 +2035,15 @@ function $(e, t) {
1732
2035
  }
1733
2036
  return l.length && c(l), n;
1734
2037
  }
1735
- var In = {
2038
+ var Sr = {
1736
2039
  w: 44,
1737
2040
  h: 28
1738
2041
  };
1739
- function Ln(e, t, n, r = 1) {
2042
+ function Cr(e, t, n, r = 1) {
1740
2043
  let i = {
1741
- w: In.w * r,
1742
- h: In.h * r
1743
- }, a = 16 * r, o = (e) => e.w >= i.w && e.h >= i.h, s = [], c = $(e.map((e) => e.value), {
2044
+ w: Sr.w * r,
2045
+ h: Sr.h * r
2046
+ }, a = 16 * r, o = (e) => e.w >= i.w && e.h >= i.h, s = [], c = xr(e.map((e) => e.value), {
1744
2047
  x: 0,
1745
2048
  y: 0,
1746
2049
  w: t,
@@ -1772,7 +2075,7 @@ function Ln(e, t, n, r = 1) {
1772
2075
  w: Math.max(0, n.w - 4),
1773
2076
  h: Math.max(0, n.h - l - 4)
1774
2077
  };
1775
- $(r.map((e) => e.value), u).forEach((t, n) => {
2078
+ xr(r.map((e) => e.value), u).forEach((t, n) => {
1776
2079
  t.w > 0 && t.h > 0 && s.push({
1777
2080
  node: r[n],
1778
2081
  parent: e,
@@ -1782,20 +2085,20 @@ function Ln(e, t, n, r = 1) {
1782
2085
  });
1783
2086
  }), s;
1784
2087
  }
1785
- var Rn = (e) => Math.max(.55, 1 - e * .09);
1786
- function zn(e) {
2088
+ var wr = (e) => Math.max(.55, 1 - e * .09);
2089
+ function Tr(e) {
1787
2090
  let t = Math.max(0, ...e.map((e) => e.value)), n = e[0]?.value ?? 0;
1788
2091
  return e.map((r, i) => {
1789
2092
  let a = i > 0 ? e[i - 1].value : 0;
1790
2093
  return {
1791
2094
  step: r,
1792
2095
  width: t > 0 ? Math.max(0, r.value) / t : 0,
1793
- ofFirst: K(r.value, n),
2096
+ ofFirst: J(r.value, n),
1794
2097
  drop: i > 0 && a > 0 ? (a - r.value) / a * 100 : null
1795
2098
  };
1796
2099
  });
1797
2100
  }
1798
- var Bn = {
2101
+ var Er = {
1799
2102
  half: {
1800
2103
  width: 120,
1801
2104
  height: 68,
@@ -1815,25 +2118,25 @@ var Bn = {
1815
2118
  to: 2 * Math.PI
1816
2119
  }
1817
2120
  };
1818
- function Vn(e, t) {
1819
- let n = Bn[e], r = Math.max(0, Math.min(100, t)) / 100;
2121
+ function Dr(e, t) {
2122
+ let n = Er[e], r = Math.max(0, Math.min(100, t)) / 100;
1820
2123
  return {
1821
2124
  a0: n.from,
1822
2125
  a1: n.to,
1823
2126
  end: n.from + (n.to - n.from) * r
1824
2127
  };
1825
2128
  }
1826
- var Hn = .62, Un = 8;
1827
- function Wn(e, t = 48, n = 50) {
1828
- let r = e.reduce((e, t) => e + t.value, 0);
2129
+ var Or = .62, kr = 8;
2130
+ function Ar(e, t = 48, n = 50) {
2131
+ let r = q(e);
1829
2132
  if (!r) return [];
1830
2133
  let i = 0, a = [];
1831
2134
  for (let o of e) {
1832
2135
  if (o.value <= 0) continue;
1833
- let e = K(o.value, r), s = i + o.value / r * 2 * Math.PI, c = e < 8 ? null : e >= 100 ? {
2136
+ let e = J(o.value, r), s = i + o.value / r * 2 * Math.PI, c = e < 8 ? null : e >= 100 ? {
1834
2137
  x: n,
1835
2138
  y: n
1836
- } : Y(n, n, t * Hn, (i + s) / 2);
2139
+ } : Z(n, n, t * Or, (i + s) / 2);
1837
2140
  a.push({
1838
2141
  slice: o,
1839
2142
  a0: i,
@@ -1844,4 +2147,4 @@ function Wn(e, t = 48, n = 50) {
1844
2147
  }
1845
2148
  return a;
1846
2149
  }
1847
- export { Dt as $, ze as $t, Wn as A, le as An, dt as At, $t as B, St as Bt, sn as C, xe as Cn, T as Ct, hn as D, de as Dn, _t as Dt, pn as E, _e as En, O as Et, yn as F, M as Ft, Qt as G, C as Gt, W as H, Ct as Ht, $ as I, xt as It, V as J, ut as Jt, Kt as K, Tt as Kt, Ln as L, pt as Lt, Y as M, ie as Mn, wt as Mt, K as N, p as Nn, ot as Nt, mn as O, me as On, k as Ot, dn as P, tt as Pt, Gt as Q, Be as Qt, bn as R, ct as Rt, xn as S, be as Sn, lt as St, Vn as T, ye as Tn, w as Tt, tn as U, it as Ut, U as V, E as Vt, Yt as W, Xe as Wt, Zt as X, st as Xt, qt as Y, mt as Yt, Jt as Z, je as Zt, fn as _, De as _n, Pt as _t, Un as a, b as an, I as at, Z as b, Te as bn, Je as bt, vn as c, Ne as cn, Ht as ct, An as d, Se as dn, Lt as dt, Ve as en, Vt as et, Fn as f, Ce as fn, Rt as ft, ln as g, we as gn, Ft as gt, Rn as h, Ee as hn, At as ht, Bn as i, Fe as in, Et as it, q as j, ne as jn, Ye as jt, _n as k, fe as kn, vt as kt, un as l, Ge as ln, P as lt, Nn as m, Ae as mn, F as mt, On as n, S as nn, It as nt, Sn as o, Ue as on, Bt as ot, Pn as p, v as pn, Ut as pt, B as q, at as qt, an as r, Pe as rn, N as rt, gn as s, Me as sn, L as st, Q as t, Ke as tn, R as tt, Mn as u, qe as un, z as ut, nn as v, Oe as vn, Wt as vt, zn as w, ve as wn, yt as wt, Dn as x, y as xn, Qe as xt, rn as y, ke as yn, ft as yt, Cn as z, j as zt };
2150
+ export { An as $, se as $n, x as $t, Qn as A, We as An, Rt as At, ir as B, Me as Bn, kt as Bt, ar as C, pt as Cn, wn as Ct, Dr as D, qe as Dn, Nt as Dt, Tr as E, _ as En, bt as Et, J as F, Le as Fn, Yt as Ft, Bn as G, Ce as Gn, jt as Gt, Rn as H, Oe as Hn, N as Ht, Yn as I, Re as In, rn as It, Fn as J, fe as Jn, w as Jt, In as K, be as Kn, M as Kt, rr as L, Pe as Ln, Ft as Lt, Ar as M, Ke as Mn, D as Mt, Y as N, He as Nn, tn as Nt, Zn as O, Ue as On, C as Ot, Z as P, v as Pn, O as Pt, H as Q, oe as Qn, vt as Qt, xr as R, Fe as Rn, _t as Rt, dr as S, dt as Sn, Dn as St, q as T, Be as Tn, mt as Tt, W as U, Se as Un, Qt as Ut, sr as V, Ne as Vn, Ct as Vt, G as W, Te as Wn, Lt as Wt, kn as X, le as Xn, Kt as Xt, Ln as Y, ue as Yn, an as Yt, V as Z, de as Zn, Dt as Zt, qn as _, et as _n, z as _t, kr as a, Vt as an, R as at, Hn as b, Qe as bn, vn as bt, er as c, Je as cn, cn as ct, _r as d, st as dn, L as dt, sn as en, ae as er, Pn as et, mr as f, ft as fn, En as ft, wr as g, tt as gn, xn as gt, vr as h, $e as hn, bn as ht, Er as i, Jt as in, Tn as it, tr as j, Ge as jn, S as jt, $n as k, Ve as kn, Xt as kt, nr as l, ot as ln, I as lt, yr as m, y as mn, B as mt, fr as n, Ot as nn, ce as nr, On as nt, Sr as o, Mt as on, yn as ot, br as p, b as pn, pn as pt, Mn as q, te as qn, $t as qt, Un as r, Pt as rn, ln as rt, or as s, At as sn, P as st, hr as t, nn as tn, m as tr, jn as tt, Jn as u, at as un, Cn as ut, Xn as v, lt as vn, F as vt, Gn as w, ze as wn, It as wt, $ as x, Xe as xn, _n as xt, Vn as y, Ze as yn, fn as yt, Cr as z, ke as zn, on as zt };