@plutonhq/core-frontend 0.1.31 → 0.1.33

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 (143) hide show
  1. package/dist-lib/@types/plans.d.ts +4 -0
  2. package/dist-lib/@types/plans.d.ts.map +1 -1
  3. package/dist-lib/components/Plan/AddPlan/AddPlan.d.ts.map +1 -1
  4. package/dist-lib/components/Plan/AddPlan/AddPlan.js +29 -24
  5. package/dist-lib/components/Plan/AddPlan/AddPlan.js.map +1 -1
  6. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js +33 -33
  7. package/dist-lib/components/Plan/BackupEvents/BackupEvents.js.map +1 -1
  8. package/dist-lib/components/Plan/BackupEvents/BackupEvents.module.scss.js +36 -36
  9. package/dist-lib/components/Plan/BackupProgress/BackupProgress.d.ts.map +1 -1
  10. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js +63 -53
  11. package/dist-lib/components/Plan/BackupProgress/BackupProgress.js.map +1 -1
  12. package/dist-lib/components/Plan/BackupProgress/BackupProgress.module.scss.js +32 -32
  13. package/dist-lib/components/Plan/Backups/Backups.d.ts.map +1 -1
  14. package/dist-lib/components/Plan/Backups/Backups.js +148 -144
  15. package/dist-lib/components/Plan/Backups/Backups.js.map +1 -1
  16. package/dist-lib/components/Plan/Backups/Backups.module.scss.js +34 -32
  17. package/dist-lib/components/Plan/Backups/Backups.module.scss.js.map +1 -1
  18. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts +9 -0
  19. package/dist-lib/components/Plan/FilterPlans/FilterPlans.d.ts.map +1 -0
  20. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js +117 -0
  21. package/dist-lib/components/Plan/FilterPlans/FilterPlans.js.map +1 -0
  22. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js +20 -0
  23. package/dist-lib/components/Plan/FilterPlans/FilterPlans.module.scss.js.map +1 -0
  24. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts +4 -2
  25. package/dist-lib/components/Plan/PlanForm/PlanForm.d.ts.map +1 -1
  26. package/dist-lib/components/Plan/PlanForm/PlanForm.js +33 -29
  27. package/dist-lib/components/Plan/PlanForm/PlanForm.js.map +1 -1
  28. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts +2 -1
  29. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.d.ts.map +1 -1
  30. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js +85 -57
  31. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.js.map +1 -1
  32. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js +11 -9
  33. package/dist-lib/components/Plan/PlanIntegrity/PlanIntegrity.module.scss.js.map +1 -1
  34. package/dist-lib/components/Plan/PlanItems/PlanItem.js +1 -1
  35. package/dist-lib/components/Plan/PlanItems/PlanItem.js.map +1 -1
  36. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts +9 -0
  37. package/dist-lib/components/Plan/PlanRepair/PlanRepair.d.ts.map +1 -0
  38. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js +262 -0
  39. package/dist-lib/components/Plan/PlanRepair/PlanRepair.js.map +1 -0
  40. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js +14 -0
  41. package/dist-lib/components/Plan/PlanRepair/PlanRepair.module.scss.js.map +1 -0
  42. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts +4 -2
  43. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.d.ts.map +1 -1
  44. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js +24 -22
  45. package/dist-lib/components/Plan/PlanSettings/PlanAdvancedSettings.js.map +1 -1
  46. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts +4 -2
  47. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.d.ts.map +1 -1
  48. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js +39 -28
  49. package/dist-lib/components/Plan/PlanSettings/PlanGeneralSettings.js.map +1 -1
  50. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js +66 -64
  51. package/dist-lib/components/Plan/PlanSettings/PlanSettings.module.scss.js.map +1 -1
  52. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts +7 -0
  53. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.d.ts.map +1 -0
  54. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js +116 -0
  55. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.js.map +1 -0
  56. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js +20 -0
  57. package/dist-lib/components/Plan/PlanSizeChart/PlanSizeChart.module.scss.js.map +1 -0
  58. package/dist-lib/components/Plan/PlanStats/PlanStats.d.ts.map +1 -1
  59. package/dist-lib/components/Plan/PlanStats/PlanStats.js +29 -30
  60. package/dist-lib/components/Plan/PlanStats/PlanStats.js.map +1 -1
  61. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js +16 -14
  62. package/dist-lib/components/Plan/PlanStats/PlanStats.module.scss.js.map +1 -1
  63. package/dist-lib/components/common/Icon/Icon.d.ts.map +1 -1
  64. package/dist-lib/components/common/Icon/Icon.js +395 -378
  65. package/dist-lib/components/common/Icon/Icon.js.map +1 -1
  66. package/dist-lib/components/common/SortItems/SortItems.d.ts +2 -1
  67. package/dist-lib/components/common/SortItems/SortItems.d.ts.map +1 -1
  68. package/dist-lib/components/common/SortItems/SortItems.js +14 -14
  69. package/dist-lib/components/common/SortItems/SortItems.js.map +1 -1
  70. package/dist-lib/components/common/SortItems/SortItems.module.scss.js +1 -1
  71. package/dist-lib/components/common/form/MultiSelect/MultiSelect.module.scss.js +16 -16
  72. package/dist-lib/components/index.d.ts +2 -0
  73. package/dist-lib/components/index.d.ts.map +1 -1
  74. package/dist-lib/components.js +199 -195
  75. package/dist-lib/components.js.map +1 -1
  76. package/dist-lib/hooks/usePlanSingleActions.d.ts.map +1 -1
  77. package/dist-lib/hooks/usePlanSingleActions.js +22 -19
  78. package/dist-lib/hooks/usePlanSingleActions.js.map +1 -1
  79. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js +449 -0
  80. package/dist-lib/node_modules/.pnpm/@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js.map +1 -0
  81. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js +5219 -0
  82. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js.map +1 -0
  83. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js +1691 -0
  84. package/dist-lib/node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js.map +1 -0
  85. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js +93 -0
  86. package/dist-lib/node_modules/.pnpm/react-chartjs-2@5.3.1_chart.js@4.5.1_react@18.3.1/node_modules/react-chartjs-2/dist/index.js.map +1 -0
  87. package/dist-lib/routes/Login/Login.d.ts.map +1 -1
  88. package/dist-lib/routes/Login/Login.js +45 -36
  89. package/dist-lib/routes/Login/Login.js.map +1 -1
  90. package/dist-lib/routes/PlanSingle/PlanSingle.d.ts.map +1 -1
  91. package/dist-lib/routes/PlanSingle/PlanSingle.js +131 -118
  92. package/dist-lib/routes/PlanSingle/PlanSingle.js.map +1 -1
  93. package/dist-lib/routes/Plans/Plans.d.ts.map +1 -1
  94. package/dist-lib/routes/Plans/Plans.js +77 -51
  95. package/dist-lib/routes/Plans/Plans.js.map +1 -1
  96. package/dist-lib/services/plans.d.ts +33 -5
  97. package/dist-lib/services/plans.d.ts.map +1 -1
  98. package/dist-lib/services/plans.js +92 -67
  99. package/dist-lib/services/plans.js.map +1 -1
  100. package/dist-lib/services.js +93 -91
  101. package/dist-lib/styles/core-frontend.css +1 -1
  102. package/dist-lib/styles/global.scss +4 -0
  103. package/dist-lib/utils/helpers.d.ts +2 -0
  104. package/dist-lib/utils/helpers.d.ts.map +1 -1
  105. package/dist-lib/utils/helpers.js +68 -42
  106. package/dist-lib/utils/helpers.js.map +1 -1
  107. package/dist-lib/utils.js +36 -34
  108. package/package.json +3 -1
  109. package/src/@types/plans.ts +5 -0
  110. package/src/components/Plan/AddPlan/AddPlan.tsx +22 -16
  111. package/src/components/Plan/BackupEvents/BackupEvents.module.scss +2 -0
  112. package/src/components/Plan/BackupEvents/BackupEvents.tsx +2 -2
  113. package/src/components/Plan/BackupProgress/BackupProgress.module.scss +1 -0
  114. package/src/components/Plan/BackupProgress/BackupProgress.tsx +7 -2
  115. package/src/components/Plan/Backups/Backups.module.scss +16 -0
  116. package/src/components/Plan/Backups/Backups.tsx +13 -2
  117. package/src/components/Plan/FilterPlans/FilterPlans.module.scss +65 -0
  118. package/src/components/Plan/FilterPlans/FilterPlans.tsx +126 -0
  119. package/src/components/Plan/PlanForm/PlanForm.tsx +7 -1
  120. package/src/components/Plan/PlanIntegrity/PlanIntegrity.module.scss +19 -0
  121. package/src/components/Plan/PlanIntegrity/PlanIntegrity.tsx +40 -3
  122. package/src/components/Plan/PlanItems/PlanItem.tsx +1 -1
  123. package/src/components/Plan/PlanRepair/PlanRepair.module.scss +53 -0
  124. package/src/components/Plan/PlanRepair/PlanRepair.tsx +243 -0
  125. package/src/components/Plan/PlanSettings/PlanAdvancedSettings.tsx +6 -2
  126. package/src/components/Plan/PlanSettings/PlanGeneralSettings.tsx +14 -2
  127. package/src/components/Plan/PlanSettings/PlanSettings.module.scss +8 -0
  128. package/src/components/Plan/PlanSizeChart/PlanSizeChart.module.scss +76 -0
  129. package/src/components/Plan/PlanSizeChart/PlanSizeChart.tsx +163 -0
  130. package/src/components/Plan/PlanStats/PlanStats.module.scss +16 -2
  131. package/src/components/Plan/PlanStats/PlanStats.tsx +8 -11
  132. package/src/components/common/Icon/Icon.tsx +21 -0
  133. package/src/components/common/SortItems/SortItems.module.scss +3 -2
  134. package/src/components/common/SortItems/SortItems.tsx +6 -3
  135. package/src/components/common/form/MultiSelect/MultiSelect.module.scss +1 -0
  136. package/src/components/index.ts +2 -0
  137. package/src/hooks/usePlanSingleActions.tsx +26 -23
  138. package/src/routes/Login/Login.tsx +8 -2
  139. package/src/routes/PlanSingle/PlanSingle.tsx +17 -0
  140. package/src/routes/Plans/Plans.tsx +70 -35
  141. package/src/services/plans.ts +40 -4
  142. package/src/styles/global.scss +4 -0
  143. package/src/utils/helpers.ts +25 -0
@@ -0,0 +1,1691 @@
1
+ import { Color as he } from "../../../../../@kurkle_color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js";
2
+ /*!
3
+ * Chart.js v4.5.1
4
+ * https://www.chartjs.org
5
+ * (c) 2025 Chart.js Contributors
6
+ * Released under the MIT License
7
+ */
8
+ function Jt() {
9
+ }
10
+ const Vt = /* @__PURE__ */ (() => {
11
+ let e = 0;
12
+ return () => e++;
13
+ })();
14
+ function R(e) {
15
+ return e == null;
16
+ }
17
+ function k(e) {
18
+ if (Array.isArray && Array.isArray(e))
19
+ return !0;
20
+ const t = Object.prototype.toString.call(e);
21
+ return t.slice(0, 7) === "[object" && t.slice(-6) === "Array]";
22
+ }
23
+ function _(e) {
24
+ return e !== null && Object.prototype.toString.call(e) === "[object Object]";
25
+ }
26
+ function ge(e) {
27
+ return (typeof e == "number" || e instanceof Number) && isFinite(+e);
28
+ }
29
+ function Xt(e, t) {
30
+ return ge(e) ? e : t;
31
+ }
32
+ function P(e, t) {
33
+ return typeof e > "u" ? t : e;
34
+ }
35
+ const Ae = (e, t) => typeof e == "string" && e.endsWith("%") ? parseFloat(e) / 100 * t : +e;
36
+ function Zt(e, t, n) {
37
+ if (e && typeof e.call == "function")
38
+ return e.apply(n, t);
39
+ }
40
+ function en(e, t, n, o) {
41
+ let r, i, s;
42
+ if (k(e))
43
+ for (i = e.length, r = 0; r < i; r++)
44
+ t.call(n, e[r], r);
45
+ else if (_(e))
46
+ for (s = Object.keys(e), i = s.length, r = 0; r < i; r++)
47
+ t.call(n, e[s[r]], s[r]);
48
+ }
49
+ function tn(e, t) {
50
+ let n, o, r, i;
51
+ if (!e || !t || e.length !== t.length)
52
+ return !1;
53
+ for (n = 0, o = e.length; n < o; ++n)
54
+ if (r = e[n], i = t[n], r.datasetIndex !== i.datasetIndex || r.index !== i.index)
55
+ return !1;
56
+ return !0;
57
+ }
58
+ function E(e) {
59
+ if (k(e))
60
+ return e.map(E);
61
+ if (_(e)) {
62
+ const t = /* @__PURE__ */ Object.create(null), n = Object.keys(e), o = n.length;
63
+ let r = 0;
64
+ for (; r < o; ++r)
65
+ t[n[r]] = E(e[n[r]]);
66
+ return t;
67
+ }
68
+ return e;
69
+ }
70
+ function me(e) {
71
+ return [
72
+ "__proto__",
73
+ "prototype",
74
+ "constructor"
75
+ ].indexOf(e) === -1;
76
+ }
77
+ function Be(e, t, n, o) {
78
+ if (!me(e))
79
+ return;
80
+ const r = t[e], i = n[e];
81
+ _(r) && _(i) ? F(r, i, o) : t[e] = E(i);
82
+ }
83
+ function F(e, t, n) {
84
+ const o = k(t) ? t : [
85
+ t
86
+ ], r = o.length;
87
+ if (!_(e))
88
+ return e;
89
+ n = n || {};
90
+ const i = n.merger || Be;
91
+ let s;
92
+ for (let a = 0; a < r; ++a) {
93
+ if (s = o[a], !_(s))
94
+ continue;
95
+ const c = Object.keys(s);
96
+ for (let l = 0, u = c.length; l < u; ++l)
97
+ i(c[l], e, s, n);
98
+ }
99
+ return e;
100
+ }
101
+ function De(e, t) {
102
+ return F(e, t, {
103
+ merger: je
104
+ });
105
+ }
106
+ function je(e, t, n) {
107
+ if (!me(e))
108
+ return;
109
+ const o = t[e], r = n[e];
110
+ _(o) && _(r) ? De(o, r) : Object.prototype.hasOwnProperty.call(t, e) || (t[e] = E(r));
111
+ }
112
+ const ee = {
113
+ // Chart.helpers.core resolveObjectKey should resolve empty key to root object
114
+ "": (e) => e,
115
+ // default resolvers
116
+ x: (e) => e.x,
117
+ y: (e) => e.y
118
+ };
119
+ function Le(e) {
120
+ const t = e.split("."), n = [];
121
+ let o = "";
122
+ for (const r of t)
123
+ o += r, o.endsWith("\\") ? o = o.slice(0, -1) + "." : (n.push(o), o = "");
124
+ return n;
125
+ }
126
+ function Ne(e) {
127
+ const t = Le(e);
128
+ return (n) => {
129
+ for (const o of t) {
130
+ if (o === "")
131
+ break;
132
+ n = n && n[o];
133
+ }
134
+ return n;
135
+ };
136
+ }
137
+ function We(e, t) {
138
+ return (ee[t] || (ee[t] = Ne(t)))(e);
139
+ }
140
+ function pe(e) {
141
+ return e.charAt(0).toUpperCase() + e.slice(1);
142
+ }
143
+ const nn = (e) => typeof e < "u", z = (e) => typeof e == "function", on = (e, t) => {
144
+ if (e.size !== t.size)
145
+ return !1;
146
+ for (const n of e)
147
+ if (!t.has(n))
148
+ return !1;
149
+ return !0;
150
+ };
151
+ function rn(e) {
152
+ return e.type === "mouseup" || e.type === "click" || e.type === "contextmenu";
153
+ }
154
+ const y = Math.PI, M = 2 * y, Ee = M + y, H = Number.POSITIVE_INFINITY, Fe = y / 180, S = y / 2, w = y / 4, te = y * 2 / 3, be = Math.log10, ne = Math.sign;
155
+ function ye(e, t, n) {
156
+ return Math.abs(e - t) < n;
157
+ }
158
+ function sn(e) {
159
+ const t = Math.round(e);
160
+ e = ye(e, t, e / 1e3) ? t : e;
161
+ const n = Math.pow(10, Math.floor(be(e))), o = e / n;
162
+ return (o <= 1 ? 1 : o <= 2 ? 2 : o <= 5 ? 5 : 10) * n;
163
+ }
164
+ function an(e) {
165
+ const t = [], n = Math.sqrt(e);
166
+ let o;
167
+ for (o = 1; o < n; o++)
168
+ e % o === 0 && (t.push(o), t.push(e / o));
169
+ return n === (n | 0) && t.push(n), t.sort((r, i) => r - i).pop(), t;
170
+ }
171
+ function ze(e) {
172
+ return typeof e == "symbol" || typeof e == "object" && e !== null && !(Symbol.toPrimitive in e || "toString" in e || "valueOf" in e);
173
+ }
174
+ function cn(e) {
175
+ return !ze(e) && !isNaN(parseFloat(e)) && isFinite(e);
176
+ }
177
+ function ln(e, t) {
178
+ const n = Math.round(e);
179
+ return n - t <= e && n + t >= e;
180
+ }
181
+ function un(e, t, n) {
182
+ let o, r, i;
183
+ for (o = 0, r = e.length; o < r; o++)
184
+ i = e[o][n], isNaN(i) || (t.min = Math.min(t.min, i), t.max = Math.max(t.max, i));
185
+ }
186
+ function fn(e) {
187
+ return e * (y / 180);
188
+ }
189
+ function dn(e) {
190
+ return e * (180 / y);
191
+ }
192
+ function hn(e) {
193
+ if (!ge(e))
194
+ return;
195
+ let t = 1, n = 0;
196
+ for (; Math.round(e * t) / t !== e; )
197
+ t *= 10, n++;
198
+ return n;
199
+ }
200
+ function gn(e, t) {
201
+ const n = t.x - e.x, o = t.y - e.y, r = Math.sqrt(n * n + o * o);
202
+ let i = Math.atan2(o, n);
203
+ return i < -0.5 * y && (i += M), {
204
+ angle: i,
205
+ distance: r
206
+ };
207
+ }
208
+ function oe(e, t) {
209
+ return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2));
210
+ }
211
+ function He(e, t) {
212
+ return (e - t + Ee) % M - y;
213
+ }
214
+ function x(e) {
215
+ return (e % M + M) % M;
216
+ }
217
+ function qe(e, t, n, o) {
218
+ const r = x(e), i = x(t), s = x(n), a = x(i - r), c = x(s - r), l = x(r - i), u = x(r - s);
219
+ return r === i || r === s || o && i === s || a > c && l < u;
220
+ }
221
+ function Y(e, t, n) {
222
+ return Math.max(t, Math.min(n, e));
223
+ }
224
+ function mn(e) {
225
+ return Y(e, -32768, 32767);
226
+ }
227
+ function Ke(e, t, n, o = 1e-6) {
228
+ return e >= Math.min(t, n) - o && e <= Math.max(t, n) + o;
229
+ }
230
+ function _e(e, t, n) {
231
+ n = n || ((s) => e[s] < t);
232
+ let o = e.length - 1, r = 0, i;
233
+ for (; o - r > 1; )
234
+ i = r + o >> 1, n(i) ? r = i : o = i;
235
+ return {
236
+ lo: r,
237
+ hi: o
238
+ };
239
+ }
240
+ const j = (e, t, n, o) => _e(e, n, o ? (r) => {
241
+ const i = e[r][t];
242
+ return i < n || i === n && e[r + 1][t] === n;
243
+ } : (r) => e[r][t] < n), pn = (e, t, n) => _e(e, n, (o) => e[o][t] >= n);
244
+ function bn(e, t, n) {
245
+ let o = 0, r = e.length;
246
+ for (; o < r && e[o] < t; )
247
+ o++;
248
+ for (; r > o && e[r - 1] > n; )
249
+ r--;
250
+ return o > 0 || r < e.length ? e.slice(o, r) : e;
251
+ }
252
+ const Me = [
253
+ "push",
254
+ "pop",
255
+ "shift",
256
+ "splice",
257
+ "unshift"
258
+ ];
259
+ function yn(e, t) {
260
+ if (e._chartjs) {
261
+ e._chartjs.listeners.push(t);
262
+ return;
263
+ }
264
+ Object.defineProperty(e, "_chartjs", {
265
+ configurable: !0,
266
+ enumerable: !1,
267
+ value: {
268
+ listeners: [
269
+ t
270
+ ]
271
+ }
272
+ }), Me.forEach((n) => {
273
+ const o = "_onData" + pe(n), r = e[n];
274
+ Object.defineProperty(e, n, {
275
+ configurable: !0,
276
+ enumerable: !1,
277
+ value(...i) {
278
+ const s = r.apply(this, i);
279
+ return e._chartjs.listeners.forEach((a) => {
280
+ typeof a[o] == "function" && a[o](...i);
281
+ }), s;
282
+ }
283
+ });
284
+ });
285
+ }
286
+ function _n(e, t) {
287
+ const n = e._chartjs;
288
+ if (!n)
289
+ return;
290
+ const o = n.listeners, r = o.indexOf(t);
291
+ r !== -1 && o.splice(r, 1), !(o.length > 0) && (Me.forEach((i) => {
292
+ delete e[i];
293
+ }), delete e._chartjs);
294
+ }
295
+ function Mn(e) {
296
+ const t = new Set(e);
297
+ return t.size === e.length ? e : Array.from(t);
298
+ }
299
+ const Ge = (function() {
300
+ return typeof window > "u" ? function(e) {
301
+ return e();
302
+ } : window.requestAnimationFrame;
303
+ })();
304
+ function Sn(e, t) {
305
+ let n = [], o = !1;
306
+ return function(...r) {
307
+ n = r, o || (o = !0, Ge.call(window, () => {
308
+ o = !1, e.apply(t, n);
309
+ }));
310
+ };
311
+ }
312
+ function xn(e, t) {
313
+ let n;
314
+ return function(...o) {
315
+ return t ? (clearTimeout(n), n = setTimeout(e, t, o)) : e.apply(this, o), t;
316
+ };
317
+ }
318
+ const On = (e) => e === "start" ? "left" : e === "end" ? "right" : "center", wn = (e, t, n) => e === "start" ? t : e === "end" ? n : (t + n) / 2, Pn = (e, t, n, o) => e === (o ? "left" : "right") ? n : e === "center" ? (t + n) / 2 : t;
319
+ function Tn(e, t, n) {
320
+ const o = t.length;
321
+ let r = 0, i = o;
322
+ if (e._sorted) {
323
+ const { iScale: s, vScale: a, _parsed: c } = e, l = e.dataset && e.dataset.options ? e.dataset.options.spanGaps : null, u = s.axis, { min: h, max: g, minDefined: m, maxDefined: p } = s.getUserBounds();
324
+ if (m) {
325
+ if (r = Math.min(
326
+ // @ts-expect-error Need to type _parsed
327
+ j(c, u, h).lo,
328
+ // @ts-expect-error Need to fix types on _lookupByKey
329
+ n ? o : j(t, u, s.getPixelForValue(h)).lo
330
+ ), l) {
331
+ const d = c.slice(0, r + 1).reverse().findIndex((f) => !R(f[a.axis]));
332
+ r -= Math.max(0, d);
333
+ }
334
+ r = Y(r, 0, o - 1);
335
+ }
336
+ if (p) {
337
+ let d = Math.max(
338
+ // @ts-expect-error Need to type _parsed
339
+ j(c, s.axis, g, !0).hi + 1,
340
+ // @ts-expect-error Need to fix types on _lookupByKey
341
+ n ? 0 : j(t, u, s.getPixelForValue(g), !0).hi + 1
342
+ );
343
+ if (l) {
344
+ const f = c.slice(d - 1).findIndex((b) => !R(b[a.axis]));
345
+ d += Math.max(0, f);
346
+ }
347
+ i = Y(d, r, o) - r;
348
+ } else
349
+ i = o - r;
350
+ }
351
+ return {
352
+ start: r,
353
+ count: i
354
+ };
355
+ }
356
+ function kn(e) {
357
+ const { xScale: t, yScale: n, _scaleRanges: o } = e, r = {
358
+ xmin: t.min,
359
+ xmax: t.max,
360
+ ymin: n.min,
361
+ ymax: n.max
362
+ };
363
+ if (!o)
364
+ return e._scaleRanges = r, !0;
365
+ const i = o.xmin !== t.min || o.xmax !== t.max || o.ymin !== n.min || o.ymax !== n.max;
366
+ return Object.assign(o, r), i;
367
+ }
368
+ const L = (e) => e === 0 || e === 1, re = (e, t, n) => -(Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * M / n)), ie = (e, t, n) => Math.pow(2, -10 * e) * Math.sin((e - t) * M / n) + 1, Q = {
369
+ linear: (e) => e,
370
+ easeInQuad: (e) => e * e,
371
+ easeOutQuad: (e) => -e * (e - 2),
372
+ easeInOutQuad: (e) => (e /= 0.5) < 1 ? 0.5 * e * e : -0.5 * (--e * (e - 2) - 1),
373
+ easeInCubic: (e) => e * e * e,
374
+ easeOutCubic: (e) => (e -= 1) * e * e + 1,
375
+ easeInOutCubic: (e) => (e /= 0.5) < 1 ? 0.5 * e * e * e : 0.5 * ((e -= 2) * e * e + 2),
376
+ easeInQuart: (e) => e * e * e * e,
377
+ easeOutQuart: (e) => -((e -= 1) * e * e * e - 1),
378
+ easeInOutQuart: (e) => (e /= 0.5) < 1 ? 0.5 * e * e * e * e : -0.5 * ((e -= 2) * e * e * e - 2),
379
+ easeInQuint: (e) => e * e * e * e * e,
380
+ easeOutQuint: (e) => (e -= 1) * e * e * e * e + 1,
381
+ easeInOutQuint: (e) => (e /= 0.5) < 1 ? 0.5 * e * e * e * e * e : 0.5 * ((e -= 2) * e * e * e * e + 2),
382
+ easeInSine: (e) => -Math.cos(e * S) + 1,
383
+ easeOutSine: (e) => Math.sin(e * S),
384
+ easeInOutSine: (e) => -0.5 * (Math.cos(y * e) - 1),
385
+ easeInExpo: (e) => e === 0 ? 0 : Math.pow(2, 10 * (e - 1)),
386
+ easeOutExpo: (e) => e === 1 ? 1 : -Math.pow(2, -10 * e) + 1,
387
+ easeInOutExpo: (e) => L(e) ? e : e < 0.5 ? 0.5 * Math.pow(2, 10 * (e * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (e * 2 - 1)) + 2),
388
+ easeInCirc: (e) => e >= 1 ? e : -(Math.sqrt(1 - e * e) - 1),
389
+ easeOutCirc: (e) => Math.sqrt(1 - (e -= 1) * e),
390
+ easeInOutCirc: (e) => (e /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - e * e) - 1) : 0.5 * (Math.sqrt(1 - (e -= 2) * e) + 1),
391
+ easeInElastic: (e) => L(e) ? e : re(e, 0.075, 0.3),
392
+ easeOutElastic: (e) => L(e) ? e : ie(e, 0.075, 0.3),
393
+ easeInOutElastic(e) {
394
+ return L(e) ? e : e < 0.5 ? 0.5 * re(e * 2, 0.1125, 0.45) : 0.5 + 0.5 * ie(e * 2 - 1, 0.1125, 0.45);
395
+ },
396
+ easeInBack(e) {
397
+ return e * e * ((1.70158 + 1) * e - 1.70158);
398
+ },
399
+ easeOutBack(e) {
400
+ return (e -= 1) * e * ((1.70158 + 1) * e + 1.70158) + 1;
401
+ },
402
+ easeInOutBack(e) {
403
+ let t = 1.70158;
404
+ return (e /= 0.5) < 1 ? 0.5 * (e * e * (((t *= 1.525) + 1) * e - t)) : 0.5 * ((e -= 2) * e * (((t *= 1.525) + 1) * e + t) + 2);
405
+ },
406
+ easeInBounce: (e) => 1 - Q.easeOutBounce(1 - e),
407
+ easeOutBounce(e) {
408
+ return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + 0.75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + 0.9375 : 7.5625 * (e -= 2.625 / 2.75) * e + 0.984375;
409
+ },
410
+ easeInOutBounce: (e) => e < 0.5 ? Q.easeInBounce(e * 2) * 0.5 : Q.easeOutBounce(e * 2 - 1) * 0.5 + 0.5
411
+ };
412
+ function J(e) {
413
+ if (e && typeof e == "object") {
414
+ const t = e.toString();
415
+ return t === "[object CanvasPattern]" || t === "[object CanvasGradient]";
416
+ }
417
+ return !1;
418
+ }
419
+ function Cn(e) {
420
+ return J(e) ? e : new he(e);
421
+ }
422
+ function $(e) {
423
+ return J(e) ? e : new he(e).saturate(0.5).darken(0.1).hexString();
424
+ }
425
+ const Qe = [
426
+ "x",
427
+ "y",
428
+ "borderWidth",
429
+ "radius",
430
+ "tension"
431
+ ], $e = [
432
+ "color",
433
+ "borderColor",
434
+ "backgroundColor"
435
+ ];
436
+ function Ue(e) {
437
+ e.set("animation", {
438
+ delay: void 0,
439
+ duration: 1e3,
440
+ easing: "easeOutQuart",
441
+ fn: void 0,
442
+ from: void 0,
443
+ loop: void 0,
444
+ to: void 0,
445
+ type: void 0
446
+ }), e.describe("animation", {
447
+ _fallback: !1,
448
+ _indexable: !1,
449
+ _scriptable: (t) => t !== "onProgress" && t !== "onComplete" && t !== "fn"
450
+ }), e.set("animations", {
451
+ colors: {
452
+ type: "color",
453
+ properties: $e
454
+ },
455
+ numbers: {
456
+ type: "number",
457
+ properties: Qe
458
+ }
459
+ }), e.describe("animations", {
460
+ _fallback: "animation"
461
+ }), e.set("transitions", {
462
+ active: {
463
+ animation: {
464
+ duration: 400
465
+ }
466
+ },
467
+ resize: {
468
+ animation: {
469
+ duration: 0
470
+ }
471
+ },
472
+ show: {
473
+ animations: {
474
+ colors: {
475
+ from: "transparent"
476
+ },
477
+ visible: {
478
+ type: "boolean",
479
+ duration: 0
480
+ }
481
+ }
482
+ },
483
+ hide: {
484
+ animations: {
485
+ colors: {
486
+ to: "transparent"
487
+ },
488
+ visible: {
489
+ type: "boolean",
490
+ easing: "linear",
491
+ fn: (t) => t | 0
492
+ }
493
+ }
494
+ }
495
+ });
496
+ }
497
+ function Ye(e) {
498
+ e.set("layout", {
499
+ autoPadding: !0,
500
+ padding: {
501
+ top: 0,
502
+ right: 0,
503
+ bottom: 0,
504
+ left: 0
505
+ }
506
+ });
507
+ }
508
+ const se = /* @__PURE__ */ new Map();
509
+ function Je(e, t) {
510
+ t = t || {};
511
+ const n = e + JSON.stringify(t);
512
+ let o = se.get(n);
513
+ return o || (o = new Intl.NumberFormat(e, t), se.set(n, o)), o;
514
+ }
515
+ function Ve(e, t, n) {
516
+ return Je(t, n).format(e);
517
+ }
518
+ const Xe = {
519
+ values(e) {
520
+ return k(e) ? e : "" + e;
521
+ },
522
+ numeric(e, t, n) {
523
+ if (e === 0)
524
+ return "0";
525
+ const o = this.chart.options.locale;
526
+ let r, i = e;
527
+ if (n.length > 1) {
528
+ const l = Math.max(Math.abs(n[0].value), Math.abs(n[n.length - 1].value));
529
+ (l < 1e-4 || l > 1e15) && (r = "scientific"), i = Ze(e, n);
530
+ }
531
+ const s = be(Math.abs(i)), a = isNaN(s) ? 1 : Math.max(Math.min(-1 * Math.floor(s), 20), 0), c = {
532
+ notation: r,
533
+ minimumFractionDigits: a,
534
+ maximumFractionDigits: a
535
+ };
536
+ return Object.assign(c, this.options.ticks.format), Ve(e, o, c);
537
+ }
538
+ };
539
+ function Ze(e, t) {
540
+ let n = t.length > 3 ? t[2].value - t[1].value : t[1].value - t[0].value;
541
+ return Math.abs(n) >= 1 && e !== Math.floor(e) && (n = e - Math.floor(e)), n;
542
+ }
543
+ var et = {
544
+ formatters: Xe
545
+ };
546
+ function tt(e) {
547
+ e.set("scale", {
548
+ display: !0,
549
+ offset: !1,
550
+ reverse: !1,
551
+ beginAtZero: !1,
552
+ bounds: "ticks",
553
+ clip: !0,
554
+ grace: 0,
555
+ grid: {
556
+ display: !0,
557
+ lineWidth: 1,
558
+ drawOnChartArea: !0,
559
+ drawTicks: !0,
560
+ tickLength: 8,
561
+ tickWidth: (t, n) => n.lineWidth,
562
+ tickColor: (t, n) => n.color,
563
+ offset: !1
564
+ },
565
+ border: {
566
+ display: !0,
567
+ dash: [],
568
+ dashOffset: 0,
569
+ width: 1
570
+ },
571
+ title: {
572
+ display: !1,
573
+ text: "",
574
+ padding: {
575
+ top: 4,
576
+ bottom: 4
577
+ }
578
+ },
579
+ ticks: {
580
+ minRotation: 0,
581
+ maxRotation: 50,
582
+ mirror: !1,
583
+ textStrokeWidth: 0,
584
+ textStrokeColor: "",
585
+ padding: 3,
586
+ display: !0,
587
+ autoSkip: !0,
588
+ autoSkipPadding: 3,
589
+ labelOffset: 0,
590
+ callback: et.formatters.values,
591
+ minor: {},
592
+ major: {},
593
+ align: "center",
594
+ crossAlign: "near",
595
+ showLabelBackdrop: !1,
596
+ backdropColor: "rgba(255, 255, 255, 0.75)",
597
+ backdropPadding: 2
598
+ }
599
+ }), e.route("scale.ticks", "color", "", "color"), e.route("scale.grid", "color", "", "borderColor"), e.route("scale.border", "color", "", "borderColor"), e.route("scale.title", "color", "", "color"), e.describe("scale", {
600
+ _fallback: !1,
601
+ _scriptable: (t) => !t.startsWith("before") && !t.startsWith("after") && t !== "callback" && t !== "parser",
602
+ _indexable: (t) => t !== "borderDash" && t !== "tickBorderDash" && t !== "dash"
603
+ }), e.describe("scales", {
604
+ _fallback: "scale"
605
+ }), e.describe("scale.ticks", {
606
+ _scriptable: (t) => t !== "backdropPadding" && t !== "callback",
607
+ _indexable: (t) => t !== "backdropPadding"
608
+ });
609
+ }
610
+ const nt = /* @__PURE__ */ Object.create(null), ot = /* @__PURE__ */ Object.create(null);
611
+ function D(e, t) {
612
+ if (!t)
613
+ return e;
614
+ const n = t.split(".");
615
+ for (let o = 0, r = n.length; o < r; ++o) {
616
+ const i = n[o];
617
+ e = e[i] || (e[i] = /* @__PURE__ */ Object.create(null));
618
+ }
619
+ return e;
620
+ }
621
+ function U(e, t, n) {
622
+ return typeof t == "string" ? F(D(e, t), n) : F(D(e, ""), t);
623
+ }
624
+ class rt {
625
+ constructor(t, n) {
626
+ this.animation = void 0, this.backgroundColor = "rgba(0,0,0,0.1)", this.borderColor = "rgba(0,0,0,0.1)", this.color = "#666", this.datasets = {}, this.devicePixelRatio = (o) => o.chart.platform.getDevicePixelRatio(), this.elements = {}, this.events = [
627
+ "mousemove",
628
+ "mouseout",
629
+ "click",
630
+ "touchstart",
631
+ "touchmove"
632
+ ], this.font = {
633
+ family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
634
+ size: 12,
635
+ style: "normal",
636
+ lineHeight: 1.2,
637
+ weight: null
638
+ }, this.hover = {}, this.hoverBackgroundColor = (o, r) => $(r.backgroundColor), this.hoverBorderColor = (o, r) => $(r.borderColor), this.hoverColor = (o, r) => $(r.color), this.indexAxis = "x", this.interaction = {
639
+ mode: "nearest",
640
+ intersect: !0,
641
+ includeInvisible: !1
642
+ }, this.maintainAspectRatio = !0, this.onHover = null, this.onClick = null, this.parsing = !0, this.plugins = {}, this.responsive = !0, this.scale = void 0, this.scales = {}, this.showLine = !0, this.drawActiveElementsOnTop = !0, this.describe(t), this.apply(n);
643
+ }
644
+ set(t, n) {
645
+ return U(this, t, n);
646
+ }
647
+ get(t) {
648
+ return D(this, t);
649
+ }
650
+ describe(t, n) {
651
+ return U(ot, t, n);
652
+ }
653
+ override(t, n) {
654
+ return U(nt, t, n);
655
+ }
656
+ route(t, n, o, r) {
657
+ const i = D(this, t), s = D(this, o), a = "_" + n;
658
+ Object.defineProperties(i, {
659
+ [a]: {
660
+ value: i[n],
661
+ writable: !0
662
+ },
663
+ [n]: {
664
+ enumerable: !0,
665
+ get() {
666
+ const c = this[a], l = s[r];
667
+ return _(c) ? Object.assign({}, l, c) : P(c, l);
668
+ },
669
+ set(c) {
670
+ this[a] = c;
671
+ }
672
+ }
673
+ });
674
+ }
675
+ apply(t) {
676
+ t.forEach((n) => n(this));
677
+ }
678
+ }
679
+ var it = /* @__PURE__ */ new rt({
680
+ _scriptable: (e) => !e.startsWith("on"),
681
+ _indexable: (e) => e !== "events",
682
+ hover: {
683
+ _fallback: "interaction"
684
+ },
685
+ interaction: {
686
+ _scriptable: !1,
687
+ _indexable: !1
688
+ }
689
+ }, [
690
+ Ue,
691
+ Ye,
692
+ tt
693
+ ]);
694
+ function st(e) {
695
+ return !e || R(e.size) || R(e.family) ? null : (e.style ? e.style + " " : "") + (e.weight ? e.weight + " " : "") + e.size + "px " + e.family;
696
+ }
697
+ function vn(e, t, n, o, r) {
698
+ let i = t[r];
699
+ return i || (i = t[r] = e.measureText(r).width, n.push(r)), i > o && (o = i), o;
700
+ }
701
+ function In(e, t, n) {
702
+ const o = e.currentDevicePixelRatio, r = n !== 0 ? Math.max(n / 2, 0.5) : 0;
703
+ return Math.round((t - r) * o) / o + r;
704
+ }
705
+ function Rn(e, t) {
706
+ !t && !e || (t = t || e.getContext("2d"), t.save(), t.resetTransform(), t.clearRect(0, 0, e.width, e.height), t.restore());
707
+ }
708
+ function An(e, t, n, o) {
709
+ at(e, t, n, o, null);
710
+ }
711
+ function at(e, t, n, o, r) {
712
+ let i, s, a, c, l, u, h, g;
713
+ const m = t.pointStyle, p = t.rotation, d = t.radius;
714
+ let f = (p || 0) * Fe;
715
+ if (m && typeof m == "object" && (i = m.toString(), i === "[object HTMLImageElement]" || i === "[object HTMLCanvasElement]")) {
716
+ e.save(), e.translate(n, o), e.rotate(f), e.drawImage(m, -m.width / 2, -m.height / 2, m.width, m.height), e.restore();
717
+ return;
718
+ }
719
+ if (!(isNaN(d) || d <= 0)) {
720
+ switch (e.beginPath(), m) {
721
+ // Default includes circle
722
+ default:
723
+ r ? e.ellipse(n, o, r / 2, d, 0, 0, M) : e.arc(n, o, d, 0, M), e.closePath();
724
+ break;
725
+ case "triangle":
726
+ u = r ? r / 2 : d, e.moveTo(n + Math.sin(f) * u, o - Math.cos(f) * d), f += te, e.lineTo(n + Math.sin(f) * u, o - Math.cos(f) * d), f += te, e.lineTo(n + Math.sin(f) * u, o - Math.cos(f) * d), e.closePath();
727
+ break;
728
+ case "rectRounded":
729
+ l = d * 0.516, c = d - l, s = Math.cos(f + w) * c, h = Math.cos(f + w) * (r ? r / 2 - l : c), a = Math.sin(f + w) * c, g = Math.sin(f + w) * (r ? r / 2 - l : c), e.arc(n - h, o - a, l, f - y, f - S), e.arc(n + g, o - s, l, f - S, f), e.arc(n + h, o + a, l, f, f + S), e.arc(n - g, o + s, l, f + S, f + y), e.closePath();
730
+ break;
731
+ case "rect":
732
+ if (!p) {
733
+ c = Math.SQRT1_2 * d, u = r ? r / 2 : c, e.rect(n - u, o - c, 2 * u, 2 * c);
734
+ break;
735
+ }
736
+ f += w;
737
+ /* falls through */
738
+ case "rectRot":
739
+ h = Math.cos(f) * (r ? r / 2 : d), s = Math.cos(f) * d, a = Math.sin(f) * d, g = Math.sin(f) * (r ? r / 2 : d), e.moveTo(n - h, o - a), e.lineTo(n + g, o - s), e.lineTo(n + h, o + a), e.lineTo(n - g, o + s), e.closePath();
740
+ break;
741
+ case "crossRot":
742
+ f += w;
743
+ /* falls through */
744
+ case "cross":
745
+ h = Math.cos(f) * (r ? r / 2 : d), s = Math.cos(f) * d, a = Math.sin(f) * d, g = Math.sin(f) * (r ? r / 2 : d), e.moveTo(n - h, o - a), e.lineTo(n + h, o + a), e.moveTo(n + g, o - s), e.lineTo(n - g, o + s);
746
+ break;
747
+ case "star":
748
+ h = Math.cos(f) * (r ? r / 2 : d), s = Math.cos(f) * d, a = Math.sin(f) * d, g = Math.sin(f) * (r ? r / 2 : d), e.moveTo(n - h, o - a), e.lineTo(n + h, o + a), e.moveTo(n + g, o - s), e.lineTo(n - g, o + s), f += w, h = Math.cos(f) * (r ? r / 2 : d), s = Math.cos(f) * d, a = Math.sin(f) * d, g = Math.sin(f) * (r ? r / 2 : d), e.moveTo(n - h, o - a), e.lineTo(n + h, o + a), e.moveTo(n + g, o - s), e.lineTo(n - g, o + s);
749
+ break;
750
+ case "line":
751
+ s = r ? r / 2 : Math.cos(f) * d, a = Math.sin(f) * d, e.moveTo(n - s, o - a), e.lineTo(n + s, o + a);
752
+ break;
753
+ case "dash":
754
+ e.moveTo(n, o), e.lineTo(n + Math.cos(f) * (r ? r / 2 : d), o + Math.sin(f) * d);
755
+ break;
756
+ case !1:
757
+ e.closePath();
758
+ break;
759
+ }
760
+ e.fill(), t.borderWidth > 0 && e.stroke();
761
+ }
762
+ }
763
+ function ae(e, t, n) {
764
+ return n = n || 0.5, !t || e && e.x > t.left - n && e.x < t.right + n && e.y > t.top - n && e.y < t.bottom + n;
765
+ }
766
+ function Bn(e, t) {
767
+ e.save(), e.beginPath(), e.rect(t.left, t.top, t.right - t.left, t.bottom - t.top), e.clip();
768
+ }
769
+ function Dn(e) {
770
+ e.restore();
771
+ }
772
+ function jn(e, t, n, o, r) {
773
+ if (!t)
774
+ return e.lineTo(n.x, n.y);
775
+ if (r === "middle") {
776
+ const i = (t.x + n.x) / 2;
777
+ e.lineTo(i, t.y), e.lineTo(i, n.y);
778
+ } else r === "after" != !!o ? e.lineTo(t.x, n.y) : e.lineTo(n.x, t.y);
779
+ e.lineTo(n.x, n.y);
780
+ }
781
+ function Ln(e, t, n, o) {
782
+ if (!t)
783
+ return e.lineTo(n.x, n.y);
784
+ e.bezierCurveTo(o ? t.cp1x : t.cp2x, o ? t.cp1y : t.cp2y, o ? n.cp2x : n.cp1x, o ? n.cp2y : n.cp1y, n.x, n.y);
785
+ }
786
+ function ct(e, t) {
787
+ t.translation && e.translate(t.translation[0], t.translation[1]), R(t.rotation) || e.rotate(t.rotation), t.color && (e.fillStyle = t.color), t.textAlign && (e.textAlign = t.textAlign), t.textBaseline && (e.textBaseline = t.textBaseline);
788
+ }
789
+ function lt(e, t, n, o, r) {
790
+ if (r.strikethrough || r.underline) {
791
+ const i = e.measureText(o), s = t - i.actualBoundingBoxLeft, a = t + i.actualBoundingBoxRight, c = n - i.actualBoundingBoxAscent, l = n + i.actualBoundingBoxDescent, u = r.strikethrough ? (c + l) / 2 : l;
792
+ e.strokeStyle = e.fillStyle, e.beginPath(), e.lineWidth = r.decorationWidth || 2, e.moveTo(s, u), e.lineTo(a, u), e.stroke();
793
+ }
794
+ }
795
+ function ut(e, t) {
796
+ const n = e.fillStyle;
797
+ e.fillStyle = t.color, e.fillRect(t.left, t.top, t.width, t.height), e.fillStyle = n;
798
+ }
799
+ function Nn(e, t, n, o, r, i = {}) {
800
+ const s = k(t) ? t : [
801
+ t
802
+ ], a = i.strokeWidth > 0 && i.strokeColor !== "";
803
+ let c, l;
804
+ for (e.save(), e.font = r.string, ct(e, i), c = 0; c < s.length; ++c)
805
+ l = s[c], i.backdrop && ut(e, i.backdrop), a && (i.strokeColor && (e.strokeStyle = i.strokeColor), R(i.strokeWidth) || (e.lineWidth = i.strokeWidth), e.strokeText(l, n, o, i.maxWidth)), e.fillText(l, n, o, i.maxWidth), lt(e, n, o, l, i), o += Number(r.lineHeight);
806
+ e.restore();
807
+ }
808
+ function Wn(e, t) {
809
+ const { x: n, y: o, w: r, h: i, radius: s } = t;
810
+ e.arc(n + s.topLeft, o + s.topLeft, s.topLeft, 1.5 * y, y, !0), e.lineTo(n, o + i - s.bottomLeft), e.arc(n + s.bottomLeft, o + i - s.bottomLeft, s.bottomLeft, y, S, !0), e.lineTo(n + r - s.bottomRight, o + i), e.arc(n + r - s.bottomRight, o + i - s.bottomRight, s.bottomRight, S, 0, !0), e.lineTo(n + r, o + s.topRight), e.arc(n + r - s.topRight, o + s.topRight, s.topRight, 0, -S, !0), e.lineTo(n + s.topLeft, o);
811
+ }
812
+ const ft = /^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/, dt = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;
813
+ function ht(e, t) {
814
+ const n = ("" + e).match(ft);
815
+ if (!n || n[1] === "normal")
816
+ return t * 1.2;
817
+ switch (e = +n[2], n[3]) {
818
+ case "px":
819
+ return e;
820
+ case "%":
821
+ e /= 100;
822
+ break;
823
+ }
824
+ return t * e;
825
+ }
826
+ const gt = (e) => +e || 0;
827
+ function Se(e, t) {
828
+ const n = {}, o = _(t), r = o ? Object.keys(t) : t, i = _(e) ? o ? (s) => P(e[s], e[t[s]]) : (s) => e[s] : () => e;
829
+ for (const s of r)
830
+ n[s] = gt(i(s));
831
+ return n;
832
+ }
833
+ function mt(e) {
834
+ return Se(e, {
835
+ top: "y",
836
+ right: "x",
837
+ bottom: "y",
838
+ left: "x"
839
+ });
840
+ }
841
+ function En(e) {
842
+ return Se(e, [
843
+ "topLeft",
844
+ "topRight",
845
+ "bottomLeft",
846
+ "bottomRight"
847
+ ]);
848
+ }
849
+ function Fn(e) {
850
+ const t = mt(e);
851
+ return t.width = t.left + t.right, t.height = t.top + t.bottom, t;
852
+ }
853
+ function zn(e, t) {
854
+ e = e || {}, t = t || it.font;
855
+ let n = P(e.size, t.size);
856
+ typeof n == "string" && (n = parseInt(n, 10));
857
+ let o = P(e.style, t.style);
858
+ o && !("" + o).match(dt) && (console.warn('Invalid font style specified: "' + o + '"'), o = void 0);
859
+ const r = {
860
+ family: P(e.family, t.family),
861
+ lineHeight: ht(P(e.lineHeight, t.lineHeight), n),
862
+ size: n,
863
+ style: o,
864
+ weight: P(e.weight, t.weight),
865
+ string: ""
866
+ };
867
+ return r.string = st(r), r;
868
+ }
869
+ function Hn(e, t, n, o) {
870
+ let r, i, s;
871
+ for (r = 0, i = e.length; r < i; ++r)
872
+ if (s = e[r], s !== void 0 && s !== void 0)
873
+ return s;
874
+ }
875
+ function qn(e, t, n) {
876
+ const { min: o, max: r } = e, i = Ae(t, (r - o) / 2), s = (a, c) => n && a === 0 ? 0 : a + c;
877
+ return {
878
+ min: s(o, -Math.abs(i)),
879
+ max: s(r, i)
880
+ };
881
+ }
882
+ function pt(e, t) {
883
+ return Object.assign(Object.create(e), t);
884
+ }
885
+ function xe(e, t = [
886
+ ""
887
+ ], n, o, r = () => e[0]) {
888
+ const i = n || e;
889
+ typeof o > "u" && (o = Pe("_fallback", e));
890
+ const s = {
891
+ [Symbol.toStringTag]: "Object",
892
+ _cacheable: !0,
893
+ _scopes: e,
894
+ _rootScopes: i,
895
+ _fallback: o,
896
+ _getTarget: r,
897
+ override: (a) => xe([
898
+ a,
899
+ ...e
900
+ ], t, i, o)
901
+ };
902
+ return new Proxy(s, {
903
+ /**
904
+ * A trap for the delete operator.
905
+ */
906
+ deleteProperty(a, c) {
907
+ return delete a[c], delete a._keys, delete e[0][c], !0;
908
+ },
909
+ /**
910
+ * A trap for getting property values.
911
+ */
912
+ get(a, c) {
913
+ return Oe(a, c, () => Pt(c, t, e, a));
914
+ },
915
+ /**
916
+ * A trap for Object.getOwnPropertyDescriptor.
917
+ * Also used by Object.hasOwnProperty.
918
+ */
919
+ getOwnPropertyDescriptor(a, c) {
920
+ return Reflect.getOwnPropertyDescriptor(a._scopes[0], c);
921
+ },
922
+ /**
923
+ * A trap for Object.getPrototypeOf.
924
+ */
925
+ getPrototypeOf() {
926
+ return Reflect.getPrototypeOf(e[0]);
927
+ },
928
+ /**
929
+ * A trap for the in operator.
930
+ */
931
+ has(a, c) {
932
+ return le(a).includes(c);
933
+ },
934
+ /**
935
+ * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.
936
+ */
937
+ ownKeys(a) {
938
+ return le(a);
939
+ },
940
+ /**
941
+ * A trap for setting property values.
942
+ */
943
+ set(a, c, l) {
944
+ const u = a._storage || (a._storage = r());
945
+ return a[c] = u[c] = l, delete a._keys, !0;
946
+ }
947
+ });
948
+ }
949
+ function q(e, t, n, o) {
950
+ const r = {
951
+ _cacheable: !1,
952
+ _proxy: e,
953
+ _context: t,
954
+ _subProxy: n,
955
+ _stack: /* @__PURE__ */ new Set(),
956
+ _descriptors: bt(e, o),
957
+ setContext: (i) => q(e, i, n, o),
958
+ override: (i) => q(e.override(i), t, n, o)
959
+ };
960
+ return new Proxy(r, {
961
+ /**
962
+ * A trap for the delete operator.
963
+ */
964
+ deleteProperty(i, s) {
965
+ return delete i[s], delete e[s], !0;
966
+ },
967
+ /**
968
+ * A trap for getting property values.
969
+ */
970
+ get(i, s, a) {
971
+ return Oe(i, s, () => _t(i, s, a));
972
+ },
973
+ /**
974
+ * A trap for Object.getOwnPropertyDescriptor.
975
+ * Also used by Object.hasOwnProperty.
976
+ */
977
+ getOwnPropertyDescriptor(i, s) {
978
+ return i._descriptors.allKeys ? Reflect.has(e, s) ? {
979
+ enumerable: !0,
980
+ configurable: !0
981
+ } : void 0 : Reflect.getOwnPropertyDescriptor(e, s);
982
+ },
983
+ /**
984
+ * A trap for Object.getPrototypeOf.
985
+ */
986
+ getPrototypeOf() {
987
+ return Reflect.getPrototypeOf(e);
988
+ },
989
+ /**
990
+ * A trap for the in operator.
991
+ */
992
+ has(i, s) {
993
+ return Reflect.has(e, s);
994
+ },
995
+ /**
996
+ * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.
997
+ */
998
+ ownKeys() {
999
+ return Reflect.ownKeys(e);
1000
+ },
1001
+ /**
1002
+ * A trap for setting property values.
1003
+ */
1004
+ set(i, s, a) {
1005
+ return e[s] = a, delete i[s], !0;
1006
+ }
1007
+ });
1008
+ }
1009
+ function bt(e, t = {
1010
+ scriptable: !0,
1011
+ indexable: !0
1012
+ }) {
1013
+ const { _scriptable: n = t.scriptable, _indexable: o = t.indexable, _allKeys: r = t.allKeys } = e;
1014
+ return {
1015
+ allKeys: r,
1016
+ scriptable: n,
1017
+ indexable: o,
1018
+ isScriptable: z(n) ? n : () => n,
1019
+ isIndexable: z(o) ? o : () => o
1020
+ };
1021
+ }
1022
+ const yt = (e, t) => e ? e + pe(t) : t, V = (e, t) => _(t) && e !== "adapters" && (Object.getPrototypeOf(t) === null || t.constructor === Object);
1023
+ function Oe(e, t, n) {
1024
+ if (Object.prototype.hasOwnProperty.call(e, t) || t === "constructor")
1025
+ return e[t];
1026
+ const o = n();
1027
+ return e[t] = o, o;
1028
+ }
1029
+ function _t(e, t, n) {
1030
+ const { _proxy: o, _context: r, _subProxy: i, _descriptors: s } = e;
1031
+ let a = o[t];
1032
+ return z(a) && s.isScriptable(t) && (a = Mt(t, a, e, n)), k(a) && a.length && (a = St(t, a, e, s.isIndexable)), V(t, a) && (a = q(a, r, i && i[t], s)), a;
1033
+ }
1034
+ function Mt(e, t, n, o) {
1035
+ const { _proxy: r, _context: i, _subProxy: s, _stack: a } = n;
1036
+ if (a.has(e))
1037
+ throw new Error("Recursion detected: " + Array.from(a).join("->") + "->" + e);
1038
+ a.add(e);
1039
+ let c = t(i, s || o);
1040
+ return a.delete(e), V(e, c) && (c = X(r._scopes, r, e, c)), c;
1041
+ }
1042
+ function St(e, t, n, o) {
1043
+ const { _proxy: r, _context: i, _subProxy: s, _descriptors: a } = n;
1044
+ if (typeof i.index < "u" && o(e))
1045
+ return t[i.index % t.length];
1046
+ if (_(t[0])) {
1047
+ const c = t, l = r._scopes.filter((u) => u !== c);
1048
+ t = [];
1049
+ for (const u of c) {
1050
+ const h = X(l, r, e, u);
1051
+ t.push(q(h, i, s && s[e], a));
1052
+ }
1053
+ }
1054
+ return t;
1055
+ }
1056
+ function we(e, t, n) {
1057
+ return z(e) ? e(t, n) : e;
1058
+ }
1059
+ const xt = (e, t) => e === !0 ? t : typeof e == "string" ? We(t, e) : void 0;
1060
+ function Ot(e, t, n, o, r) {
1061
+ for (const i of t) {
1062
+ const s = xt(n, i);
1063
+ if (s) {
1064
+ e.add(s);
1065
+ const a = we(s._fallback, n, r);
1066
+ if (typeof a < "u" && a !== n && a !== o)
1067
+ return a;
1068
+ } else if (s === !1 && typeof o < "u" && n !== o)
1069
+ return null;
1070
+ }
1071
+ return !1;
1072
+ }
1073
+ function X(e, t, n, o) {
1074
+ const r = t._rootScopes, i = we(t._fallback, n, o), s = [
1075
+ ...e,
1076
+ ...r
1077
+ ], a = /* @__PURE__ */ new Set();
1078
+ a.add(o);
1079
+ let c = ce(a, s, n, i || n, o);
1080
+ return c === null || typeof i < "u" && i !== n && (c = ce(a, s, i, c, o), c === null) ? !1 : xe(Array.from(a), [
1081
+ ""
1082
+ ], r, i, () => wt(t, n, o));
1083
+ }
1084
+ function ce(e, t, n, o, r) {
1085
+ for (; n; )
1086
+ n = Ot(e, t, n, o, r);
1087
+ return n;
1088
+ }
1089
+ function wt(e, t, n) {
1090
+ const o = e._getTarget();
1091
+ t in o || (o[t] = {});
1092
+ const r = o[t];
1093
+ return k(r) && _(n) ? n : r || {};
1094
+ }
1095
+ function Pt(e, t, n, o) {
1096
+ let r;
1097
+ for (const i of t)
1098
+ if (r = Pe(yt(i, e), n), typeof r < "u")
1099
+ return V(e, r) ? X(n, o, e, r) : r;
1100
+ }
1101
+ function Pe(e, t) {
1102
+ for (const n of t) {
1103
+ if (!n)
1104
+ continue;
1105
+ const o = n[e];
1106
+ if (typeof o < "u")
1107
+ return o;
1108
+ }
1109
+ }
1110
+ function le(e) {
1111
+ let t = e._keys;
1112
+ return t || (t = e._keys = Tt(e._scopes)), t;
1113
+ }
1114
+ function Tt(e) {
1115
+ const t = /* @__PURE__ */ new Set();
1116
+ for (const n of e)
1117
+ for (const o of Object.keys(n).filter((r) => !r.startsWith("_")))
1118
+ t.add(o);
1119
+ return Array.from(t);
1120
+ }
1121
+ const kt = Number.EPSILON || 1e-14, A = (e, t) => t < e.length && !e[t].skip && e[t], Te = (e) => e === "x" ? "y" : "x";
1122
+ function Ct(e, t, n, o) {
1123
+ const r = e.skip ? t : e, i = t, s = n.skip ? t : n, a = oe(i, r), c = oe(s, i);
1124
+ let l = a / (a + c), u = c / (a + c);
1125
+ l = isNaN(l) ? 0 : l, u = isNaN(u) ? 0 : u;
1126
+ const h = o * l, g = o * u;
1127
+ return {
1128
+ previous: {
1129
+ x: i.x - h * (s.x - r.x),
1130
+ y: i.y - h * (s.y - r.y)
1131
+ },
1132
+ next: {
1133
+ x: i.x + g * (s.x - r.x),
1134
+ y: i.y + g * (s.y - r.y)
1135
+ }
1136
+ };
1137
+ }
1138
+ function vt(e, t, n) {
1139
+ const o = e.length;
1140
+ let r, i, s, a, c, l = A(e, 0);
1141
+ for (let u = 0; u < o - 1; ++u)
1142
+ if (c = l, l = A(e, u + 1), !(!c || !l)) {
1143
+ if (ye(t[u], 0, kt)) {
1144
+ n[u] = n[u + 1] = 0;
1145
+ continue;
1146
+ }
1147
+ r = n[u] / t[u], i = n[u + 1] / t[u], a = Math.pow(r, 2) + Math.pow(i, 2), !(a <= 9) && (s = 3 / Math.sqrt(a), n[u] = r * s * t[u], n[u + 1] = i * s * t[u]);
1148
+ }
1149
+ }
1150
+ function It(e, t, n = "x") {
1151
+ const o = Te(n), r = e.length;
1152
+ let i, s, a, c = A(e, 0);
1153
+ for (let l = 0; l < r; ++l) {
1154
+ if (s = a, a = c, c = A(e, l + 1), !a)
1155
+ continue;
1156
+ const u = a[n], h = a[o];
1157
+ s && (i = (u - s[n]) / 3, a[`cp1${n}`] = u - i, a[`cp1${o}`] = h - i * t[l]), c && (i = (c[n] - u) / 3, a[`cp2${n}`] = u + i, a[`cp2${o}`] = h + i * t[l]);
1158
+ }
1159
+ }
1160
+ function Rt(e, t = "x") {
1161
+ const n = Te(t), o = e.length, r = Array(o).fill(0), i = Array(o);
1162
+ let s, a, c, l = A(e, 0);
1163
+ for (s = 0; s < o; ++s)
1164
+ if (a = c, c = l, l = A(e, s + 1), !!c) {
1165
+ if (l) {
1166
+ const u = l[t] - c[t];
1167
+ r[s] = u !== 0 ? (l[n] - c[n]) / u : 0;
1168
+ }
1169
+ i[s] = a ? l ? ne(r[s - 1]) !== ne(r[s]) ? 0 : (r[s - 1] + r[s]) / 2 : r[s - 1] : r[s];
1170
+ }
1171
+ vt(e, r, i), It(e, i, t);
1172
+ }
1173
+ function N(e, t, n) {
1174
+ return Math.max(Math.min(e, n), t);
1175
+ }
1176
+ function At(e, t) {
1177
+ let n, o, r, i, s, a = ae(e[0], t);
1178
+ for (n = 0, o = e.length; n < o; ++n)
1179
+ s = i, i = a, a = n < o - 1 && ae(e[n + 1], t), i && (r = e[n], s && (r.cp1x = N(r.cp1x, t.left, t.right), r.cp1y = N(r.cp1y, t.top, t.bottom)), a && (r.cp2x = N(r.cp2x, t.left, t.right), r.cp2y = N(r.cp2y, t.top, t.bottom)));
1180
+ }
1181
+ function Kn(e, t, n, o, r) {
1182
+ let i, s, a, c;
1183
+ if (t.spanGaps && (e = e.filter((l) => !l.skip)), t.cubicInterpolationMode === "monotone")
1184
+ Rt(e, r);
1185
+ else {
1186
+ let l = o ? e[e.length - 1] : e[0];
1187
+ for (i = 0, s = e.length; i < s; ++i)
1188
+ a = e[i], c = Ct(l, a, e[Math.min(i + 1, s - (o ? 0 : 1)) % s], t.tension), a.cp1x = c.previous.x, a.cp1y = c.previous.y, a.cp2x = c.next.x, a.cp2y = c.next.y, l = a;
1189
+ }
1190
+ t.capBezierPoints && At(e, n);
1191
+ }
1192
+ function Bt() {
1193
+ return typeof window < "u" && typeof document < "u";
1194
+ }
1195
+ function Dt(e) {
1196
+ let t = e.parentNode;
1197
+ return t && t.toString() === "[object ShadowRoot]" && (t = t.host), t;
1198
+ }
1199
+ function K(e, t, n) {
1200
+ let o;
1201
+ return typeof e == "string" ? (o = parseInt(e, 10), e.indexOf("%") !== -1 && (o = o / 100 * t.parentNode[n])) : o = e, o;
1202
+ }
1203
+ const G = (e) => e.ownerDocument.defaultView.getComputedStyle(e, null);
1204
+ function jt(e, t) {
1205
+ return G(e).getPropertyValue(t);
1206
+ }
1207
+ const Lt = [
1208
+ "top",
1209
+ "right",
1210
+ "bottom",
1211
+ "left"
1212
+ ];
1213
+ function T(e, t, n) {
1214
+ const o = {};
1215
+ n = n ? "-" + n : "";
1216
+ for (let r = 0; r < 4; r++) {
1217
+ const i = Lt[r];
1218
+ o[i] = parseFloat(e[t + "-" + i + n]) || 0;
1219
+ }
1220
+ return o.width = o.left + o.right, o.height = o.top + o.bottom, o;
1221
+ }
1222
+ const Nt = (e, t, n) => (e > 0 || t > 0) && (!n || !n.shadowRoot);
1223
+ function Wt(e, t) {
1224
+ const n = e.touches, o = n && n.length ? n[0] : e, { offsetX: r, offsetY: i } = o;
1225
+ let s = !1, a, c;
1226
+ if (Nt(r, i, e.target))
1227
+ a = r, c = i;
1228
+ else {
1229
+ const l = t.getBoundingClientRect();
1230
+ a = o.clientX - l.left, c = o.clientY - l.top, s = !0;
1231
+ }
1232
+ return {
1233
+ x: a,
1234
+ y: c,
1235
+ box: s
1236
+ };
1237
+ }
1238
+ function Gn(e, t) {
1239
+ if ("native" in e)
1240
+ return e;
1241
+ const { canvas: n, currentDevicePixelRatio: o } = t, r = G(n), i = r.boxSizing === "border-box", s = T(r, "padding"), a = T(r, "border", "width"), { x: c, y: l, box: u } = Wt(e, n), h = s.left + (u && a.left), g = s.top + (u && a.top);
1242
+ let { width: m, height: p } = t;
1243
+ return i && (m -= s.width + a.width, p -= s.height + a.height), {
1244
+ x: Math.round((c - h) / m * n.width / o),
1245
+ y: Math.round((l - g) / p * n.height / o)
1246
+ };
1247
+ }
1248
+ function Et(e, t, n) {
1249
+ let o, r;
1250
+ if (t === void 0 || n === void 0) {
1251
+ const i = e && Dt(e);
1252
+ if (!i)
1253
+ t = e.clientWidth, n = e.clientHeight;
1254
+ else {
1255
+ const s = i.getBoundingClientRect(), a = G(i), c = T(a, "border", "width"), l = T(a, "padding");
1256
+ t = s.width - l.width - c.width, n = s.height - l.height - c.height, o = K(a.maxWidth, i, "clientWidth"), r = K(a.maxHeight, i, "clientHeight");
1257
+ }
1258
+ }
1259
+ return {
1260
+ width: t,
1261
+ height: n,
1262
+ maxWidth: o || H,
1263
+ maxHeight: r || H
1264
+ };
1265
+ }
1266
+ const O = (e) => Math.round(e * 10) / 10;
1267
+ function Qn(e, t, n, o) {
1268
+ const r = G(e), i = T(r, "margin"), s = K(r.maxWidth, e, "clientWidth") || H, a = K(r.maxHeight, e, "clientHeight") || H, c = Et(e, t, n);
1269
+ let { width: l, height: u } = c;
1270
+ if (r.boxSizing === "content-box") {
1271
+ const g = T(r, "border", "width"), m = T(r, "padding");
1272
+ l -= m.width + g.width, u -= m.height + g.height;
1273
+ }
1274
+ return l = Math.max(0, l - i.width), u = Math.max(0, o ? l / o : u - i.height), l = O(Math.min(l, s, c.maxWidth)), u = O(Math.min(u, a, c.maxHeight)), l && !u && (u = O(l / 2)), (t !== void 0 || n !== void 0) && o && c.height && u > c.height && (u = c.height, l = O(Math.floor(u * o))), {
1275
+ width: l,
1276
+ height: u
1277
+ };
1278
+ }
1279
+ function $n(e, t, n) {
1280
+ const o = t || 1, r = O(e.height * o), i = O(e.width * o);
1281
+ e.height = O(e.height), e.width = O(e.width);
1282
+ const s = e.canvas;
1283
+ return s.style && (n || !s.style.height && !s.style.width) && (s.style.height = `${e.height}px`, s.style.width = `${e.width}px`), e.currentDevicePixelRatio !== o || s.height !== r || s.width !== i ? (e.currentDevicePixelRatio = o, s.height = r, s.width = i, e.ctx.setTransform(o, 0, 0, o, 0, 0), !0) : !1;
1284
+ }
1285
+ const Un = (function() {
1286
+ let e = !1;
1287
+ try {
1288
+ const t = {
1289
+ get passive() {
1290
+ return e = !0, !1;
1291
+ }
1292
+ };
1293
+ Bt() && (window.addEventListener("test", null, t), window.removeEventListener("test", null, t));
1294
+ } catch {
1295
+ }
1296
+ return e;
1297
+ })();
1298
+ function Yn(e, t) {
1299
+ const n = jt(e, t), o = n && n.match(/^(\d+)(\.\d+)?px$/);
1300
+ return o ? +o[1] : void 0;
1301
+ }
1302
+ function I(e, t, n, o) {
1303
+ return {
1304
+ x: e.x + n * (t.x - e.x),
1305
+ y: e.y + n * (t.y - e.y)
1306
+ };
1307
+ }
1308
+ function Jn(e, t, n, o) {
1309
+ return {
1310
+ x: e.x + n * (t.x - e.x),
1311
+ y: o === "middle" ? n < 0.5 ? e.y : t.y : o === "after" ? n < 1 ? e.y : t.y : n > 0 ? t.y : e.y
1312
+ };
1313
+ }
1314
+ function Vn(e, t, n, o) {
1315
+ const r = {
1316
+ x: e.cp2x,
1317
+ y: e.cp2y
1318
+ }, i = {
1319
+ x: t.cp1x,
1320
+ y: t.cp1y
1321
+ }, s = I(e, r, n), a = I(r, i, n), c = I(i, t, n), l = I(s, a, n), u = I(a, c, n);
1322
+ return I(l, u, n);
1323
+ }
1324
+ const Ft = function(e, t) {
1325
+ return {
1326
+ x(n) {
1327
+ return e + e + t - n;
1328
+ },
1329
+ setWidth(n) {
1330
+ t = n;
1331
+ },
1332
+ textAlign(n) {
1333
+ return n === "center" ? n : n === "right" ? "left" : "right";
1334
+ },
1335
+ xPlus(n, o) {
1336
+ return n - o;
1337
+ },
1338
+ leftForLtr(n, o) {
1339
+ return n - o;
1340
+ }
1341
+ };
1342
+ }, zt = function() {
1343
+ return {
1344
+ x(e) {
1345
+ return e;
1346
+ },
1347
+ setWidth(e) {
1348
+ },
1349
+ textAlign(e) {
1350
+ return e;
1351
+ },
1352
+ xPlus(e, t) {
1353
+ return e + t;
1354
+ },
1355
+ leftForLtr(e, t) {
1356
+ return e;
1357
+ }
1358
+ };
1359
+ };
1360
+ function Xn(e, t, n) {
1361
+ return e ? Ft(t, n) : zt();
1362
+ }
1363
+ function Zn(e, t) {
1364
+ let n, o;
1365
+ (t === "ltr" || t === "rtl") && (n = e.canvas.style, o = [
1366
+ n.getPropertyValue("direction"),
1367
+ n.getPropertyPriority("direction")
1368
+ ], n.setProperty("direction", t, "important"), e.prevTextDirection = o);
1369
+ }
1370
+ function eo(e, t) {
1371
+ t !== void 0 && (delete e.prevTextDirection, e.canvas.style.setProperty("direction", t[0], t[1]));
1372
+ }
1373
+ function ke(e) {
1374
+ return e === "angle" ? {
1375
+ between: qe,
1376
+ compare: He,
1377
+ normalize: x
1378
+ } : {
1379
+ between: Ke,
1380
+ compare: (t, n) => t - n,
1381
+ normalize: (t) => t
1382
+ };
1383
+ }
1384
+ function ue({ start: e, end: t, count: n, loop: o, style: r }) {
1385
+ return {
1386
+ start: e % n,
1387
+ end: t % n,
1388
+ loop: o && (t - e + 1) % n === 0,
1389
+ style: r
1390
+ };
1391
+ }
1392
+ function Ht(e, t, n) {
1393
+ const { property: o, start: r, end: i } = n, { between: s, normalize: a } = ke(o), c = t.length;
1394
+ let { start: l, end: u, loop: h } = e, g, m;
1395
+ if (h) {
1396
+ for (l += c, u += c, g = 0, m = c; g < m && s(a(t[l % c][o]), r, i); ++g)
1397
+ l--, u--;
1398
+ l %= c, u %= c;
1399
+ }
1400
+ return u < l && (u += c), {
1401
+ start: l,
1402
+ end: u,
1403
+ loop: h,
1404
+ style: e.style
1405
+ };
1406
+ }
1407
+ function qt(e, t, n) {
1408
+ if (!n)
1409
+ return [
1410
+ e
1411
+ ];
1412
+ const { property: o, start: r, end: i } = n, s = t.length, { compare: a, between: c, normalize: l } = ke(o), { start: u, end: h, loop: g, style: m } = Ht(e, t, n), p = [];
1413
+ let d = !1, f = null, b, C, B;
1414
+ const Ce = () => c(r, B, b) && a(r, B) !== 0, ve = () => a(i, b) === 0 || c(i, B, b), Ie = () => d || Ce(), Re = () => !d || ve();
1415
+ for (let v = u, Z = u; v <= h; ++v)
1416
+ C = t[v % s], !C.skip && (b = l(C[o]), b !== B && (d = c(b, r, i), f === null && Ie() && (f = a(b, r) === 0 ? v : Z), f !== null && Re() && (p.push(ue({
1417
+ start: f,
1418
+ end: v,
1419
+ loop: g,
1420
+ count: s,
1421
+ style: m
1422
+ })), f = null), Z = v, B = b));
1423
+ return f !== null && p.push(ue({
1424
+ start: f,
1425
+ end: h,
1426
+ loop: g,
1427
+ count: s,
1428
+ style: m
1429
+ })), p;
1430
+ }
1431
+ function to(e, t) {
1432
+ const n = [], o = e.segments;
1433
+ for (let r = 0; r < o.length; r++) {
1434
+ const i = qt(o[r], e.points, t);
1435
+ i.length && n.push(...i);
1436
+ }
1437
+ return n;
1438
+ }
1439
+ function Kt(e, t, n, o) {
1440
+ let r = 0, i = t - 1;
1441
+ if (n && !o)
1442
+ for (; r < t && !e[r].skip; )
1443
+ r++;
1444
+ for (; r < t && e[r].skip; )
1445
+ r++;
1446
+ for (r %= t, n && (i += r); i > r && e[i % t].skip; )
1447
+ i--;
1448
+ return i %= t, {
1449
+ start: r,
1450
+ end: i
1451
+ };
1452
+ }
1453
+ function Gt(e, t, n, o) {
1454
+ const r = e.length, i = [];
1455
+ let s = t, a = e[t], c;
1456
+ for (c = t + 1; c <= n; ++c) {
1457
+ const l = e[c % r];
1458
+ l.skip || l.stop ? a.skip || (o = !1, i.push({
1459
+ start: t % r,
1460
+ end: (c - 1) % r,
1461
+ loop: o
1462
+ }), t = s = l.stop ? c : null) : (s = c, a.skip && (t = c)), a = l;
1463
+ }
1464
+ return s !== null && i.push({
1465
+ start: t % r,
1466
+ end: s % r,
1467
+ loop: o
1468
+ }), i;
1469
+ }
1470
+ function no(e, t) {
1471
+ const n = e.points, o = e.options.spanGaps, r = n.length;
1472
+ if (!r)
1473
+ return [];
1474
+ const i = !!e._loop, { start: s, end: a } = Kt(n, r, i, o);
1475
+ if (o === !0)
1476
+ return fe(e, [
1477
+ {
1478
+ start: s,
1479
+ end: a,
1480
+ loop: i
1481
+ }
1482
+ ], n, t);
1483
+ const c = a < s ? a + r : a, l = !!e._fullLoop && s === 0 && a === r - 1;
1484
+ return fe(e, Gt(n, s, c, l), n, t);
1485
+ }
1486
+ function fe(e, t, n, o) {
1487
+ return !o || !o.setContext || !n ? t : Qt(e, t, n, o);
1488
+ }
1489
+ function Qt(e, t, n, o) {
1490
+ const r = e._chart.getContext(), i = de(e.options), { _datasetIndex: s, options: { spanGaps: a } } = e, c = n.length, l = [];
1491
+ let u = i, h = t[0].start, g = h;
1492
+ function m(p, d, f, b) {
1493
+ const C = a ? -1 : 1;
1494
+ if (p !== d) {
1495
+ for (p += c; n[p % c].skip; )
1496
+ p -= C;
1497
+ for (; n[d % c].skip; )
1498
+ d += C;
1499
+ p % c !== d % c && (l.push({
1500
+ start: p % c,
1501
+ end: d % c,
1502
+ loop: f,
1503
+ style: b
1504
+ }), u = b, h = d % c);
1505
+ }
1506
+ }
1507
+ for (const p of t) {
1508
+ h = a ? h : p.start;
1509
+ let d = n[h % c], f;
1510
+ for (g = h + 1; g <= p.end; g++) {
1511
+ const b = n[g % c];
1512
+ f = de(o.setContext(pt(r, {
1513
+ type: "segment",
1514
+ p0: d,
1515
+ p1: b,
1516
+ p0DataIndex: (g - 1) % c,
1517
+ p1DataIndex: g % c,
1518
+ datasetIndex: s
1519
+ }))), $t(f, u) && m(h, g - 1, p.loop, u), d = b, u = f;
1520
+ }
1521
+ h < g - 1 && m(h, g - 1, p.loop, u);
1522
+ }
1523
+ return l;
1524
+ }
1525
+ function de(e) {
1526
+ return {
1527
+ backgroundColor: e.backgroundColor,
1528
+ borderCapStyle: e.borderCapStyle,
1529
+ borderDash: e.borderDash,
1530
+ borderDashOffset: e.borderDashOffset,
1531
+ borderJoinStyle: e.borderJoinStyle,
1532
+ borderWidth: e.borderWidth,
1533
+ borderColor: e.borderColor
1534
+ };
1535
+ }
1536
+ function $t(e, t) {
1537
+ if (!t)
1538
+ return !1;
1539
+ const n = [], o = function(r, i) {
1540
+ return J(i) ? (n.includes(i) || n.push(i), n.indexOf(i)) : i;
1541
+ };
1542
+ return JSON.stringify(e, o) !== JSON.stringify(t, o);
1543
+ }
1544
+ function W(e, t, n) {
1545
+ return e.options.clip ? e[n] : t[n];
1546
+ }
1547
+ function Ut(e, t) {
1548
+ const { xScale: n, yScale: o } = e;
1549
+ return n && o ? {
1550
+ left: W(n, t, "left"),
1551
+ right: W(n, t, "right"),
1552
+ top: W(o, t, "top"),
1553
+ bottom: W(o, t, "bottom")
1554
+ } : t;
1555
+ }
1556
+ function oo(e, t) {
1557
+ const n = t._clip;
1558
+ if (n.disabled)
1559
+ return !1;
1560
+ const o = Ut(t, e.chartArea);
1561
+ return {
1562
+ left: n.left === !1 ? 0 : o.left - (n.left === !0 ? 0 : n.left),
1563
+ right: n.right === !1 ? e.width : o.right + (n.right === !0 ? 0 : n.right),
1564
+ top: n.top === !1 ? 0 : o.top - (n.top === !0 ? 0 : n.top),
1565
+ bottom: n.bottom === !1 ? e.height : o.bottom + (n.bottom === !0 ? 0 : n.bottom)
1566
+ };
1567
+ }
1568
+ export {
1569
+ Dn as $,
1570
+ pn as A,
1571
+ j as B,
1572
+ ae as C,
1573
+ gn as D,
1574
+ Fn as E,
1575
+ en as F,
1576
+ Qn as G,
1577
+ S as H,
1578
+ Dt as I,
1579
+ Yn as J,
1580
+ Un as K,
1581
+ Sn as L,
1582
+ Bt as M,
1583
+ an as N,
1584
+ Xt as O,
1585
+ y as P,
1586
+ Zt as Q,
1587
+ qn as R,
1588
+ Y as S,
1589
+ M as T,
1590
+ dn as U,
1591
+ vn as V,
1592
+ mn as W,
1593
+ In as X,
1594
+ Bn as Y,
1595
+ Nn as Z,
1596
+ Mn as _,
1597
+ Hn as a,
1598
+ jt as a$,
1599
+ zn as a0,
1600
+ On as a1,
1601
+ wn as a2,
1602
+ nt as a3,
1603
+ F as a4,
1604
+ pe as a5,
1605
+ ot as a6,
1606
+ z as a7,
1607
+ q as a8,
1608
+ xe as a9,
1609
+ Xn as aA,
1610
+ Zn as aB,
1611
+ Pn as aC,
1612
+ eo as aD,
1613
+ at as aE,
1614
+ oe as aF,
1615
+ Jt as aG,
1616
+ un as aH,
1617
+ sn as aI,
1618
+ ln as aJ,
1619
+ ye as aK,
1620
+ hn as aL,
1621
+ et as aM,
1622
+ be as aN,
1623
+ bn as aP,
1624
+ _e as aQ,
1625
+ J as aR,
1626
+ $ as aS,
1627
+ E as aT,
1628
+ Be as aU,
1629
+ je as aV,
1630
+ Le as aX,
1631
+ st as aY,
1632
+ Ct as aZ,
1633
+ Rt as a_,
1634
+ bt as aa,
1635
+ De as ab,
1636
+ Vt as ac,
1637
+ xn as ad,
1638
+ $n as ae,
1639
+ Rn as af,
1640
+ on as ag,
1641
+ oo as ah,
1642
+ tn as ai,
1643
+ rn as aj,
1644
+ Ke as ak,
1645
+ x as al,
1646
+ Se as am,
1647
+ Kn as an,
1648
+ no as ao,
1649
+ to as ap,
1650
+ Jn as aq,
1651
+ Vn as ar,
1652
+ I as as,
1653
+ jn as at,
1654
+ Ln as au,
1655
+ An as av,
1656
+ Wn as aw,
1657
+ mt as ax,
1658
+ En as ay,
1659
+ qt as az,
1660
+ k as b,
1661
+ ht as b1,
1662
+ Ee as b2,
1663
+ H as b3,
1664
+ Fe as b4,
1665
+ w as b5,
1666
+ te as b6,
1667
+ He as b7,
1668
+ Cn as c,
1669
+ it as d,
1670
+ Q as e,
1671
+ We as f,
1672
+ ge as g,
1673
+ nn as h,
1674
+ _ as i,
1675
+ pt as j,
1676
+ R as k,
1677
+ yn as l,
1678
+ Ae as n,
1679
+ Ve as o,
1680
+ qe as p,
1681
+ Tn as q,
1682
+ Ge as r,
1683
+ ne as s,
1684
+ fn as t,
1685
+ _n as u,
1686
+ P as v,
1687
+ kn as w,
1688
+ cn as x,
1689
+ Gn as z
1690
+ };
1691
+ //# sourceMappingURL=helpers.dataset.js.map