@martinomagnifico/tablechart 1.0.1 → 1.0.2

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.
@@ -19,22 +19,25 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
19
19
  threshold: .5,
20
20
  replay: !1,
21
21
  langattribute: "data-i18n"
22
- }, N = (e, t) => `${e}:${t}`, P = "http://www.w3.org/2000/svg", F = (e, t = {}) => {
22
+ }, N = (e, t) => `${e}:${t}`, P = "http://www.w3.org/2000/svg", F = (e) => Math.round(e * 100) / 100, I = (e, t = {}) => {
23
23
  let n = document.createElementNS(P, e);
24
- for (let e in t) n.setAttribute(e, String(t[e]));
24
+ for (let e in t) {
25
+ let r = t[e];
26
+ n.setAttribute(e, String(typeof r == "number" ? F(r) : r));
27
+ }
25
28
  return n;
26
- }, I = (e, t) => [e, ...t.classes].join(" "), L = (e, t) => {
29
+ }, L = (e, t) => [e, ...t.classes].join(" "), R = (e, t) => {
27
30
  let n = document.createElement("span");
28
31
  return n.className = e, n.inert = !0, t.appendChild(n), n;
29
- }, R = (e, t, n, r, i) => {
32
+ }, z = (e, t, n, r, i) => {
30
33
  e.style.left = `${t / r * 100}%`, e.style.top = `${n / i * 100}%`;
31
- }, z = 0, B = (e, t, n, r) => {
34
+ }, B = 0, ee = (e, t, n, r) => {
32
35
  if (!t.length) return;
33
- let i = `tablechart-cut-${++z}`, a = F("mask", {
36
+ let i = `tablechart-cut-${++B}`, a = I("mask", {
34
37
  id: i,
35
38
  maskUnits: "userSpaceOnUse"
36
39
  });
37
- a.appendChild(F("rect", {
40
+ a.appendChild(I("rect", {
38
41
  x: -n,
39
42
  y: -r,
40
43
  width: n * 3,
@@ -43,11 +46,11 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
43
46
  }));
44
47
  for (let e of t) e.setAttribute("fill", "black"), a.appendChild(e);
45
48
  let o = e.querySelector(":scope > defs");
46
- o || (o = F("defs"), e.prepend(o)), o.appendChild(a);
47
- let s = F("g", { mask: `url(#${i})` });
49
+ o || (o = I("defs"), e.prepend(o)), o.appendChild(a);
50
+ let s = I("g", { mask: `url(#${i})` });
48
51
  for (let t of Array.from(e.childNodes)) t !== o && s.appendChild(t);
49
52
  e.appendChild(s);
50
- }, ee = 0, V = (e) => Array.from(e.querySelectorAll(`.${i}`)).map((e) => {
53
+ }, te = 0, V = (e) => Array.from(e.querySelectorAll(`.${i}`)).map((e) => {
51
54
  let t = e.tagName === "rect" ? [e] : Array.from(e.querySelectorAll("rect")), n = (e, t) => Number(e.getAttribute(t)), r = Math.min(...t.map((e) => n(e, "x"))), i = Math.min(...t.map((e) => n(e, "y"))), a = Math.max(...t.map((e) => n(e, "x") + n(e, "width"))), o = Math.max(...t.map((e) => n(e, "y") + n(e, "height")));
52
55
  return {
53
56
  row: Number(e.dataset.row),
@@ -57,7 +60,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
57
60
  height: o - i,
58
61
  sideways: e.dataset.grow === "right"
59
62
  };
60
- }), H = {
63
+ }), ne = {
61
64
  create: () => null,
62
65
  draw(e, t, n) {
63
66
  let { rows: r, y: i, svg: a, breakAt: o } = n;
@@ -84,11 +87,11 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
84
87
  [c + 2 * l, t + o],
85
88
  [c + i, t - o]
86
89
  ];
87
- }, l = (e, t = !1) => e.map(([e, t], n) => `${n === 0 ? "M" : "L"} ${e.toFixed(1)} ${t.toFixed(1)}`).join(" ") + (t ? " Z" : ""), u = `tablechart-break-${++ee}`, d = F("mask", {
90
+ }, l = (e, t = !1) => e.map(([e, t], n) => `${n === 0 ? "M" : "L"} ${e.toFixed(1)} ${t.toFixed(1)}`).join(" ") + (t ? " Z" : ""), u = `tablechart-break-${++te}`, d = I("mask", {
88
91
  id: u,
89
92
  maskUnits: "userSpaceOnUse"
90
93
  });
91
- d.appendChild(F("rect", {
94
+ d.appendChild(I("rect", {
92
95
  x: -j,
93
96
  y: -n.height,
94
97
  width: j * 3,
@@ -100,12 +103,12 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
100
103
  let t = e.sideways ? n.breakX : p;
101
104
  if (t === void 0 || !(e.sideways ? e.x < t && e.x + e.width > t : e.y < p && e.y + e.height > p)) continue;
102
105
  let [i, o] = e.sideways ? [c(e, t), c(e, t + n.breakGap)] : [c(e, p - n.breakGap), c(e, p)];
103
- d.appendChild(F("path", {
106
+ d.appendChild(I("path", {
104
107
  d: l([...i, ...o.slice().reverse()], !0),
105
108
  fill: "black"
106
109
  })), f.push(i, o);
107
110
  let s = N("--after", r[e.row - 1]?.slot ?? 0);
108
- for (let e of [i, o]) a.appendChild(F("path", {
111
+ for (let e of [i, o]) a.appendChild(I("path", {
109
112
  class: C,
110
113
  "data-part": "edge",
111
114
  "data-note": n.note,
@@ -114,20 +117,20 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
114
117
  }));
115
118
  }
116
119
  if (!f.length) return;
117
- let m = Array.from(a.querySelectorAll(`.${C}`)), h = F("g", { mask: `url(#${u})` });
120
+ let m = Array.from(a.querySelectorAll(`.${C}`)), h = I("g", { mask: `url(#${u})` });
118
121
  for (let e of Array.from(a.childNodes)) m.includes(e) || h.appendChild(e);
119
- let g = F("defs");
122
+ let g = I("defs");
120
123
  g.appendChild(d), a.prepend(g, h);
121
124
  }
122
- }, U = (e) => {
125
+ }, H = (e) => {
123
126
  let t = -Infinity;
124
127
  for (let n of e) t = Math.max(t, n);
125
128
  return t;
126
- }, W = (e) => (e.split(/[.,]/)[1] || "").length, te = (e, t) => new Intl.NumberFormat(t || document.documentElement.lang || void 0, {
129
+ }, U = (e) => (e.split(/[.,]/)[1] || "").length, W = (e, t) => new Intl.NumberFormat(t || document.documentElement.lang || void 0, {
127
130
  minimumFractionDigits: e,
128
131
  maximumFractionDigits: e
129
132
  }), G = (e, t, n) => {
130
- let r = te(t, n).formatToParts(e), i = r[0]?.type === "minusSign" ? r[0].value : "";
133
+ let r = W(t, n).formatToParts(e), i = r[0]?.type === "minusSign" ? r[0].value : "";
131
134
  return [i, r.slice(+!!i).map((e) => e.value).join("")];
132
135
  }, K = (e) => Number.parseFloat((e.match(/-?[\d.,]+/) || ["NaN"])[0].replace(",", ".")), q = (e, t) => {
133
136
  let n = document.createElement("span");
@@ -146,45 +149,45 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
146
149
  agrees: o
147
150
  };
148
151
  i.checks.push(s), o || console.warn(`[${e}] An annotation reads ${a}%, but ${r} is ${n.toFixed(1)}%. The chart shows what you wrote; this is only a check.`);
149
- }, ne = (e, t) => (t - e) / Math.abs(e) * 100, re = (e, t) => {
152
+ }, re = (e, t) => (t - e) / Math.abs(e) * 100, ie = (e, t) => {
150
153
  let n = (t, n) => {
151
154
  let r = Number.parseInt(e.getAttribute(t) ?? "", 10);
152
155
  return Number.isFinite(r) ? r - 1 : n;
153
156
  };
154
157
  return [n("data-from", 0), n("data-to", t - 1)];
155
- }, ie = {
158
+ }, ae = {
156
159
  create: q,
157
160
  draw(t, n, r) {
158
- let { rows: i, cx: a, y: o, unit: s, labelHeight: u, badgeHeight: d, height: f, svg: p, after: m } = r, [h, g] = re(t, i.length), _ = i[h], v = i[g];
161
+ let { rows: i, cx: a, y: o, unit: s, labelHeight: u, badgeHeight: d, height: f, svg: p, after: m } = r, [h, g] = ie(t, i.length), _ = i[h], v = i[g];
159
162
  if (!_ || !v) {
160
163
  console.warn(`[${e}] A bracket points at a row that is not there (row ${h + 1} to ${g + 1}, of ${i.length}).`);
161
164
  return;
162
165
  }
163
166
  let y = 7 * s, b = 4 * s, x = a(h), S = a(g), C = Math.min(o(_.value), o(v.value)) - u - b - d * .9, w = (e) => o(e) - u - b, T = `M ${x} ${w(_.value)} L ${x} ${C} L ${S} ${C} L ${S} ${w(v.value) - y}`, E = (w(_.value) - C + Math.abs(S - x) + (w(v.value) - y - C)) / s + 1;
164
- p.appendChild(F("path", {
167
+ p.appendChild(I("path", {
165
168
  class: c,
166
169
  "data-note": r.note,
167
170
  d: T,
168
171
  style: `--len:${E.toFixed(1)}; ${N("--after", m)}`
169
172
  }));
170
173
  let D = w(v.value);
171
- p.appendChild(F("polygon", {
174
+ p.appendChild(I("polygon", {
172
175
  class: l,
173
176
  "data-note": r.note,
174
177
  points: `${S},${D} ${S - y * .45},${D - y} ${S + y * .45},${D - y}`,
175
178
  style: N("--after", m)
176
- })), n && (R(n, (x + S) / 2, C, j, f), n.style.setProperty("--after", String(m))), J(n, ne(_.value, v.value), `${_.value} to ${v.value}`, r);
179
+ })), n && (z(n, (x + S) / 2, C, j, f), n.style.setProperty("--after", String(m))), J(n, re(_.value, v.value), `${_.value} to ${v.value}`, r);
177
180
  }
178
- }, ae = /* @__PURE__ */ new WeakMap(), oe = (e) => {
181
+ }, oe = /* @__PURE__ */ new WeakMap(), se = (e) => {
179
182
  let t = [...e].filter((e) => !!e), n = t.map((e) => ({
180
183
  width: e.offsetWidth,
181
184
  height: e.offsetHeight
182
185
  }));
183
- t.forEach((e, t) => ae.set(e, n[t]));
184
- }, Y = (e) => ae.get(e) ?? {
186
+ t.forEach((e, t) => oe.set(e, n[t]));
187
+ }, Y = (e) => oe.get(e) ?? {
185
188
  width: e.offsetWidth,
186
189
  height: e.offsetHeight
187
- }, se = (e, t, n) => ((t / e) ** (1 / n) - 1) * 100, ce = {
190
+ }, ce = (e, t, n) => ((t / e) ** (1 / n) - 1) * 100, le = {
188
191
  create: q,
189
192
  draw(e, t, n) {
190
193
  let { rows: r, cx: i, y: a, unit: o, labelHeight: s, height: u, svg: d, values: f, after: p } = n, m = r[0], h = r[r.length - 1];
@@ -207,7 +210,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
207
210
  }), b -= u, S -= u;
208
211
  }
209
212
  let A = x - D * v, M = S - O * v, P = Math.hypot(A - y, M - b) / o + 1;
210
- d.appendChild(F("line", {
213
+ d.appendChild(I("line", {
211
214
  class: c,
212
215
  "data-note": n.note,
213
216
  x1: y,
@@ -216,39 +219,39 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
216
219
  y2: M,
217
220
  style: `--len:${P.toFixed(1)}; ${N("--after", p)}`
218
221
  }));
219
- let I = -O, L = D, z = v * .42;
220
- d.appendChild(F("polygon", {
222
+ let F = -O, L = D, R = v * .42;
223
+ d.appendChild(I("polygon", {
221
224
  class: l,
222
225
  "data-note": n.note,
223
226
  points: [
224
227
  `${x},${S}`,
225
- `${A + I * z},${M + L * z}`,
226
- `${A - I * z},${M - L * z}`
228
+ `${A + F * R},${M + L * R}`,
229
+ `${A - F * R},${M - L * R}`
227
230
  ].join(" "),
228
231
  style: N("--after", p)
229
- })), t && (R(t, y + (x - y) * k, b + (S - b) * k, j, u), t.style.setProperty("--after", String(p)));
232
+ })), t && (z(t, y + (x - y) * k, b + (S - b) * k, j, u), t.style.setProperty("--after", String(p)));
230
233
  let B = Number.parseFloat(e.getAttribute("data-years") || "");
231
- !Number.isNaN(B) && B > 0 && J(t, se(m.value, h.value, B), `${m.value} to ${h.value} over ${B} years`, n);
234
+ !Number.isNaN(B) && B > 0 && J(t, ce(m.value, h.value, B), `${m.value} to ${h.value} over ${B} years`, n);
232
235
  }
233
- }, le = (e, t, n, r, i) => {
236
+ }, ue = (e, t, n, r, i) => {
234
237
  if (!r) return e / t * n;
235
238
  let { lo: a, hi: o, gap: s, share: c } = r, l = n * c, u = (n - l - i) / (a + (t - o)), d = l / (o - a);
236
239
  return e <= a ? e * u : e <= s ? a * u + (e - a) * d : e <= o ? a * u + (e - a) * d + i : a * u + l + i + (e - o) * u;
237
- }, ue = (e, t, n) => {
240
+ }, de = (e, t, n) => {
238
241
  let r = .15, i = Math.min(e * .7 / (t + (t - 1) * r), n), a = t * i + (t - 1) * i * r;
239
242
  return {
240
243
  size: i,
241
244
  gap: i * r,
242
245
  offset: (e) => -a / 2 + e * i * 1.15
243
246
  };
244
- }, de = (e, t, n) => {
247
+ }, fe = (e, t, n) => {
245
248
  let r = e.series[n], i = e.series.some((e) => e.focus) && !r.focus;
246
249
  return {
247
250
  "data-series": n + 1,
248
251
  ...i && { "data-muted": "" },
249
252
  style: `--n:${n}; --m:${+!!i}; --palette:var(--tablechart-color-${n + 1}); ${N("--i", t.slot)}`
250
253
  };
251
- }, fe = (e, t) => {
254
+ }, pe = (e, t) => {
252
255
  let n = 0;
253
256
  return Array.from({ length: t }, (t, r) => {
254
257
  let i = e.cells[r] ?? e.cells[0], a = n;
@@ -258,26 +261,29 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
258
261
  cell: i
259
262
  };
260
263
  });
261
- }, pe = (e, t) => fe(e, t).at(-1)?.to ?? 0, me = (e, t, n) => {
264
+ }, me = (e, t) => pe(e, t).at(-1)?.to ?? 0, he = (e, t, n) => {
262
265
  let r = t.series.some((e) => e.focus);
263
266
  e.style.setProperty("--n", String(n)), e.style.setProperty("--m", r && !t.series[n].focus ? "1" : "0"), e.style.setProperty("--palette", `var(--tablechart-color-${n + 1})`);
264
- }, he = (e, t, n, r = {}) => {
265
- let o = F("g", {
266
- class: I(i, t),
267
+ }, ge = (e, t, n, r = {}) => {
268
+ let o = I("g", {
269
+ class: L(i, t),
267
270
  "data-kind": "bar",
268
271
  "data-row": n + 1,
269
272
  ...r,
270
273
  "data-stack": "",
271
274
  style: N("--i", t.slot)
272
275
  });
273
- return e.svg.appendChild(o), (n, r) => {
274
- o.appendChild(F("rect", {
275
- ...r,
276
- class: I(a, t),
277
- ...de(e, t, n)
276
+ return e.svg.appendChild(o), (i, s) => {
277
+ let c = r["data-grow"] === void 0 ? {} : { "data-grow": r["data-grow"] };
278
+ o.appendChild(I("rect", {
279
+ ...s,
280
+ class: L(a, t),
281
+ "data-row": n + 1,
282
+ ...c,
283
+ ...fe(e, t, i)
278
284
  }));
279
285
  };
280
- }, ge = 6, _e = (e, t, n) => e.some((e) => Y(e).width * n > t - ge * n), ve = (e, t, n) => t >= Y(e).height * n * 1.6, ye = (e, t, n) => t >= Y(e).width * n * 1.5, be = (e, t, n, r, i = .7) => {
286
+ }, _e = 6, ve = (e, t, n) => e.some((e) => Y(e).width * n > t - _e * n), ye = (e, t, n) => t >= Y(e).height * n * 1.6, be = (e, t, n) => t >= Y(e).width * n * 1.5, xe = (e, t, n, r, i = .7) => {
281
287
  e.style.setProperty(r, "1");
282
288
  let a = 1;
283
289
  for (let e of t) {
@@ -286,10 +292,10 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
286
292
  }
287
293
  let o = a >= i ? a : 0;
288
294
  return e.style.setProperty(r, String(o || i)), o;
289
- }, xe = (e, t) => (e.sort((e, t) => e.y - t.y), e.forEach((n, r) => {
295
+ }, Se = (e, t) => (e.sort((e, t) => e.y - t.y), e.forEach((n, r) => {
290
296
  let i = e[r - 1];
291
297
  i && n.y < i.y + t && (n.y = i.y + t);
292
- }), e), Se = {
298
+ }), e), Ce = {
293
299
  segments: (e) => e.map((e) => ({
294
300
  ...e,
295
301
  from: 0,
@@ -309,19 +315,19 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
309
315
  categories: "beside",
310
316
  headroom: () => 0,
311
317
  draw(e) {
312
- let { segments: t, height: n, unit: r, svg: a, values: s, categories: c, config: l, barMax: u } = e, d = e.series.length > 1, f = Math.max(U(c.map((e) => Y(e).width * r)), 0), p = Math.min(f + 10 * r, j * .42), m = j - 4 * r, h = e.stacked ? Math.max(U(e.rows.map((t) => pe(t, e.series.length))), 0) || 1 : Math.max(U(e.rows.flatMap((t) => t.cells.slice(0, e.series.length).map((e) => Math.abs(e.value)))), 0) || 1, g = Math.max(h, e.squeeze?.hi ?? 0), _ = (t, n) => le(Math.abs(t), g, n, e.squeeze, e.breakGap), v = n / t.length, y = (e) => (e + .5) * v, b = Math.min(v * l.barfill, u), x = ue(v, e.series.length, u), S = s[0] ?? e.totals[0], C = S ? Y(S).height * r * .56 : 0, w = Math.max(((d && !e.stacked ? x.size : b) - C) / 2, 5 * r), T = (e) => Y(e).width * r, E = (e) => e.length ? U(e.map(T)) + w + 4 * r : 0, D = e.stacked ? E(e.totals) : d ? E(e.seriesValues.flat()) : 0;
318
+ let { segments: t, height: n, unit: r, svg: a, values: s, categories: c, config: l, barMax: u } = e, d = e.series.length > 1, f = Math.max(H(c.map((e) => Y(e).width * r)), 0), p = Math.min(f + 10 * r, j * .42), m = j - 4 * r, h = e.stacked ? Math.max(H(e.rows.map((t) => me(t, e.series.length))), 0) || 1 : Math.max(H(e.rows.flatMap((t) => t.cells.slice(0, e.series.length).map((e) => Math.abs(e.value)))), 0) || 1, g = Math.max(h, e.squeeze?.hi ?? 0), _ = (t, n) => ue(Math.abs(t), g, n, e.squeeze, e.breakGap), v = n / t.length, y = (e) => (e + .5) * v, b = Math.min(v * l.barfill, u), x = de(v, e.series.length, u), S = s[0] ?? e.totals[0], C = S ? Y(S).height * r * .56 : 0, w = Math.max(((d && !e.stacked ? x.size : b) - C) / 2, 5 * r), T = (e) => Y(e).width * r, E = (e) => e.length ? H(e.map(T)) + w + 4 * r : 0, D = e.stacked ? E(e.totals) : d ? E(e.seriesValues.flat()) : 0;
313
319
  if (!d) for (let e = 0; e < 3; e++) {
314
320
  let e = m - p - D, n = E(t.map((e, t) => ({
315
321
  seg: e,
316
322
  label: s[t]
317
- })).filter(({ seg: t, label: n }) => !ye(n, _(t.value, e), r)).map(({ label: e }) => e));
323
+ })).filter(({ seg: t, label: n }) => !be(n, _(t.value, e), r)).map(({ label: e }) => e));
318
324
  if (n <= D) break;
319
325
  D = n;
320
326
  }
321
327
  let O = m - p - D, k = (e) => p + _(e, O);
322
328
  if (e.squeeze && (e.breakX = k(e.squeeze.gap)), e.stacked) {
323
329
  e.rows.forEach((t, i) => {
324
- let a = he(e, t, i, { "data-grow": "right" }), o = y(i) - b / 2, s = fe(t, e.series.length);
330
+ let a = ge(e, t, i, { "data-grow": "right" }), o = y(i) - b / 2, s = pe(t, e.series.length);
325
331
  s.forEach(({ from: t, to: s, cell: c }, l) => {
326
332
  let u = e.seriesValues[l][i];
327
333
  if (u.dataset.place = "none", c.missing || s === t) return;
@@ -331,13 +337,13 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
331
337
  y: o,
332
338
  width: Math.max(f - d, 1),
333
339
  height: b
334
- }), u.dataset.place = "inside", u.toggleAttribute("data-left-out", !ye(u, f - d, r) || Y(u).height * r > b), me(u, e, l), R(u, (d + f) / 2, y(i), j, n);
340
+ }), u.dataset.place = "inside", u.toggleAttribute("data-left-out", !be(u, f - d, r) || Y(u).height * r > b), he(u, e, l), z(u, (d + f) / 2, y(i), j, n);
335
341
  });
336
342
  let l = e.totals[i];
337
- l && (l.dataset.place = "after", R(l, k(s.at(-1)?.to ?? 0) + w, y(i), j, n));
343
+ l && (l.dataset.place = "after", z(l, k(s.at(-1)?.to ?? 0) + w, y(i), j, n));
338
344
  let u = c[i];
339
- u && R(u, p - 8 * r, y(i), j, n);
340
- }), a.appendChild(F("line", {
345
+ u && z(u, p - 8 * r, y(i), j, n);
346
+ }), a.appendChild(I("line", {
341
347
  class: o,
342
348
  x1: p,
343
349
  x2: p,
@@ -348,7 +354,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
348
354
  }
349
355
  if (d) {
350
356
  e.plot.dataset.grouped = "";
351
- let t = e.seriesValues.flat().filter((e) => e.dataset.missing === void 0), s = be(e.plot, t, (e) => ({
357
+ let t = e.seriesValues.flat().filter((e) => e.dataset.missing === void 0), s = xe(e.plot, t, (e) => ({
352
358
  size: Y(e).height * r,
353
359
  room: x.size + x.gap * .5
354
360
  }), "--tablechart-fit");
@@ -360,8 +366,8 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
360
366
  return;
361
367
  }
362
368
  let d = k(l.value), f = y(o) + x.offset(c);
363
- a.appendChild(F("rect", {
364
- class: I(i, t),
369
+ a.appendChild(I("rect", {
370
+ class: L(i, t),
365
371
  "data-kind": "bar",
366
372
  "data-row": o + 1,
367
373
  "data-grow": "right",
@@ -369,12 +375,12 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
369
375
  y: f,
370
376
  width: Math.max(d - p, 1),
371
377
  height: x.size,
372
- ...de(e, t, c)
373
- })), u.dataset.place = "after", u.toggleAttribute("data-left-out", !s), R(u, d + w, f + x.size / 2, j, n);
378
+ ...fe(e, t, c)
379
+ })), u.dataset.place = "after", u.toggleAttribute("data-left-out", !s), z(u, d + w, f + x.size / 2, j, n);
374
380
  });
375
381
  let l = c[o];
376
- l && R(l, p - 8 * r, y(o), j, n);
377
- }), a.appendChild(F("line", {
382
+ l && z(l, p - 8 * r, y(o), j, n);
383
+ }), a.appendChild(I("line", {
378
384
  class: o,
379
385
  x1: p,
380
386
  x2: p,
@@ -383,11 +389,11 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
383
389
  }));
384
390
  return;
385
391
  }
386
- let A = t.map((e, t) => ye(s[t], k(e.value) - p, r));
392
+ let A = t.map((e, t) => be(s[t], k(e.value) - p, r));
387
393
  t.forEach((t, o) => {
388
394
  let l = k(t.value), u = y(o);
389
- a.appendChild(F("rect", {
390
- class: I(i, t),
395
+ a.appendChild(I("rect", {
396
+ class: L(i, t),
391
397
  "data-kind": t.kind,
392
398
  "data-row": o + 1,
393
399
  "data-grow": "right",
@@ -398,10 +404,10 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
398
404
  style: N("--i", t.slot)
399
405
  }));
400
406
  let d = s[o], f = Math.max(Math.min(w, l - p - T(d) - 6 * r), 6 * r);
401
- d.dataset.place = A[o] ? "inside" : "after", d.dataset.kind = t.kind, R(d, A[o] ? e.insideAlign === "center" ? (p + l) / 2 : e.insideAlign === "start" ? p + f + T(d) / 2 : l - f - T(d) / 2 : l + w, u, j, n);
407
+ d.dataset.place = A[o] ? "inside" : "after", d.dataset.kind = t.kind, z(d, A[o] ? e.insideAlign === "center" ? (p + l) / 2 : e.insideAlign === "start" ? p + f + T(d) / 2 : l - f - T(d) / 2 : l + w, u, j, n);
402
408
  let m = c[o];
403
- m && R(m, p - 8 * r, u, j, n);
404
- }), a.appendChild(F("line", {
409
+ m && z(m, p - 8 * r, u, j, n);
410
+ }), a.appendChild(I("line", {
405
411
  class: o,
406
412
  x1: p,
407
413
  x2: p,
@@ -409,7 +415,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
409
415
  y2: n
410
416
  }));
411
417
  }
412
- }, Ce = {
418
+ }, we = {
413
419
  segments: (e) => e.map((e) => ({
414
420
  ...e,
415
421
  from: 0,
@@ -426,8 +432,8 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
426
432
  let { segments: t, cx: n, y: r, barWidth: a, height: s, unit: c, svg: l, values: u, labels: d, insideAlign: f } = e, p = r(0);
427
433
  if (e.stacked) {
428
434
  e.rows.forEach((t, i) => {
429
- let o = he(e, t, i), l = n(i) - a / 2;
430
- fe(t, e.series.length).forEach(({ from: t, to: u, cell: d }, f) => {
435
+ let o = ge(e, t, i), l = n(i) - a / 2;
436
+ pe(t, e.series.length).forEach(({ from: t, to: u, cell: d }, f) => {
431
437
  let p = e.seriesValues[f][i];
432
438
  if (p.dataset.place = "none", d.missing || u === t) return;
433
439
  let m = r(u), h = r(t);
@@ -436,11 +442,11 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
436
442
  y: m,
437
443
  width: a,
438
444
  height: Math.max(h - m, 1)
439
- }), p.dataset.place = "inside", p.toggleAttribute("data-left-out", !ve(p, h - m, c) || Y(p).width * c > a - 4 * c), me(p, e, f), R(p, n(i), (m + h) / 2, j, s);
445
+ }), p.dataset.place = "inside", p.toggleAttribute("data-left-out", !ye(p, h - m, c) || Y(p).width * c > a - 4 * c), he(p, e, f), z(p, n(i), (m + h) / 2, j, s);
440
446
  });
441
- let u = e.totals[i], d = fe(t, e.series.length).at(-1)?.to ?? 0;
442
- u && (u.dataset.place = "outside", R(u, n(i), r(d) - 4 * c, j, s));
443
- }), l.appendChild(F("line", {
447
+ let u = e.totals[i], d = pe(t, e.series.length).at(-1)?.to ?? 0;
448
+ u && (u.dataset.place = "outside", z(u, n(i), r(d) - 4 * c, j, s));
449
+ }), l.appendChild(I("line", {
444
450
  class: o,
445
451
  x1: 0,
446
452
  x2: j,
@@ -450,9 +456,9 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
450
456
  return;
451
457
  }
452
458
  if (e.series.length > 1) {
453
- let t = ue(n(1) - n(0) || n(0) * 2, e.series.length, e.barMax);
459
+ let t = de(n(1) - n(0) || n(0) * 2, e.series.length, e.barMax);
454
460
  e.plot.dataset.grouped = "";
455
- let a = e.seriesValues.flat().filter((e) => e.dataset.missing === void 0), u = be(e.plot, a, (e) => ({
461
+ let a = e.seriesValues.flat().filter((e) => e.dataset.missing === void 0), u = xe(e.plot, a, (e) => ({
456
462
  size: Y(e).width * c,
457
463
  room: t.size + t.gap * .5
458
464
  }), "--tablechart-fit");
@@ -464,18 +470,18 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
464
470
  return;
465
471
  }
466
472
  let _ = r(m.value);
467
- l.appendChild(F("rect", {
468
- class: I(i, a),
473
+ l.appendChild(I("rect", {
474
+ class: L(i, a),
469
475
  "data-kind": "bar",
470
476
  "data-row": o + 1,
471
477
  x: g,
472
478
  y: _,
473
479
  width: t.size,
474
480
  height: Math.max(p - _, 1),
475
- ...de(e, a, f)
476
- })), h.dataset.place = "outside", h.toggleAttribute("data-left-out", !u), R(h, g + t.size / 2, _ - 4 * c, j, s);
481
+ ...fe(e, a, f)
482
+ })), h.dataset.place = "outside", h.toggleAttribute("data-left-out", !u), z(h, g + t.size / 2, _ - 4 * c, j, s);
477
483
  });
478
- }), l.appendChild(F("line", {
484
+ }), l.appendChild(I("line", {
479
485
  class: o,
480
486
  x1: 0,
481
487
  x2: j,
@@ -484,16 +490,16 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
484
490
  }));
485
491
  return;
486
492
  }
487
- let m = _e(u, a, c), h = t.map((e, t) => d === "inside" && !m && !e.missing && ve(u[t], p - r(e.value), c)), g = u[0] ? Y(u[0]).height * c * .56 : 0, _ = Infinity;
493
+ let m = ve(u, a, c), h = t.map((e, t) => d === "inside" && !m && !e.missing && ye(u[t], p - r(e.value), c)), g = u[0] ? Y(u[0]).height * c * .56 : 0, _ = Infinity;
488
494
  for (let [e, t] of u.entries()) h[e] && (_ = Math.min(_, (a - Y(t).width * c) / 2));
489
495
  t.forEach((e, t) => {
490
496
  let o = r(e.value);
491
497
  if (e.missing) {
492
- R(u[t], n(t), p - 4 * c, j, s), u[t].dataset.place = "outside";
498
+ z(u[t], n(t), p - 4 * c, j, s), u[t].dataset.place = "outside";
493
499
  return;
494
500
  }
495
- l.appendChild(F("rect", {
496
- class: I(i, e),
501
+ l.appendChild(I("rect", {
502
+ class: L(i, e),
497
503
  "data-kind": e.kind,
498
504
  "data-row": t + 1,
499
505
  x: n(t) - a / 2,
@@ -503,8 +509,8 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
503
509
  style: N("--i", e.slot)
504
510
  }));
505
511
  let d = Math.min(_, (p - o - g) / 2), m = f === "center" ? (o + p) / 2 : f === "start" ? p - d - g / 2 : o + d + g / 2;
506
- R(u[t], n(t), h[t] ? m : o - 4 * c, j, s), u[t].dataset.place = h[t] ? "inside" : "outside";
507
- }), l.appendChild(F("line", {
512
+ z(u[t], n(t), h[t] ? m : o - 4 * c, j, s), u[t].dataset.place = h[t] ? "inside" : "outside";
513
+ }), l.appendChild(I("line", {
508
514
  class: o,
509
515
  x1: 0,
510
516
  x2: j,
@@ -512,7 +518,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
512
518
  y2: p
513
519
  }));
514
520
  }
515
- }, we = 0, Te = (e) => e.filter((e) => !e.isTotal), Ee = {
521
+ }, Te = 0, Ee = (e) => e.filter((e) => !e.isTotal), De = {
516
522
  aspect: .66,
517
523
  centre: !0,
518
524
  headroom: () => 0,
@@ -523,7 +529,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
523
529
  kind: "bar"
524
530
  })),
525
531
  draw({ rows: e, height: t, unit: n, labelHeight: r, svg: i, values: a, config: o, centre: s }) {
526
- let c = j / 2, l = t / 2, u = Te(e).reduce((e, t) => e + Math.abs(t.value), 0);
532
+ let c = j / 2, l = t / 2, u = Ee(e).reduce((e, t) => e + Math.abs(t.value), 0);
527
533
  if (!u) return;
528
534
  let d = r * 1.2 + 10 * n, m = Math.max(Math.min(j, t) / 2 - d, 10), h = m * o.ringfill, g = m - h / 2, _ = 2 * Math.PI * g, v = [], y = 0, b = 0;
529
535
  if (e.forEach((e, o) => {
@@ -533,8 +539,8 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
533
539
  return;
534
540
  }
535
541
  let d = Math.abs(e.value) / u * _, p = y / _ * 2 * Math.PI - Math.PI / 2;
536
- v.push(p), i.appendChild(F("circle", {
537
- class: I(f, e),
542
+ v.push(p), i.appendChild(I("circle", {
543
+ class: L(f, e),
538
544
  "data-slice": b + 1,
539
545
  "data-row": o + 1,
540
546
  cx: c,
@@ -547,7 +553,7 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
547
553
  style: `--n:${b}; --palette:var(--tablechart-color-${b + 1}); --arc:${d.toFixed(1)}; --circ:${_.toFixed(1)}; ${N("--i", e.slot)}`
548
554
  }));
549
555
  let x = p + d / _ * Math.PI, C = Math.cos(x), w = Math.sin(x);
550
- i.appendChild(F("line", {
556
+ i.appendChild(I("line", {
551
557
  class: S,
552
558
  x1: c + C * (m + 2 * n),
553
559
  y1: l + w * (m + 2 * n),
@@ -557,47 +563,47 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
557
563
  style: N("--i", e.slot)
558
564
  }));
559
565
  let T = m + 9 * n, E = Y(s).width * n / 2;
560
- R(s, c + C * (T + Math.abs(C) * E), l + w * (T + Math.abs(w) * r * .7), j, t), s.dataset.place = "around", y += d, b += 1;
566
+ z(s, c + C * (T + Math.abs(C) * E), l + w * (T + Math.abs(w) * r * .7), j, t), s.dataset.place = "around", y += d, b += 1;
561
567
  }), v.length > 1) {
562
- let e = g - h / 2 - 1, n = g + h / 2 + 1, r = `tablechart-slices-${++we}`, a = F("mask", {
568
+ let e = g - h / 2 - 1, n = g + h / 2 + 1, r = `tablechart-slices-${++Te}`, a = I("mask", {
563
569
  id: r,
564
570
  maskUnits: "userSpaceOnUse"
565
571
  });
566
- a.appendChild(F("rect", {
572
+ a.appendChild(I("rect", {
567
573
  x: 0,
568
574
  y: 0,
569
575
  width: j,
570
576
  height: t,
571
577
  fill: "white"
572
578
  }));
573
- for (let t of v) a.appendChild(F("line", {
579
+ for (let t of v) a.appendChild(I("line", {
574
580
  class: p,
575
581
  x1: c + Math.cos(t) * e,
576
582
  y1: l + Math.sin(t) * e,
577
583
  x2: c + Math.cos(t) * n,
578
584
  y2: l + Math.sin(t) * n
579
585
  }));
580
- let o = F("g", { mask: `url(#${r})` });
586
+ let o = I("g", { mask: `url(#${r})` });
581
587
  for (let e of Array.from(i.querySelectorAll(`.${f}`))) o.appendChild(e);
582
- let s = F("defs");
588
+ let s = I("defs");
583
589
  s.appendChild(a), i.prepend(s, o);
584
590
  }
585
- s && R(s, c, l, j, t);
591
+ s && z(s, c, l, j, t);
586
592
  }
587
- }, De = [
593
+ }, Oe = [
588
594
  "circle",
589
595
  "square",
590
596
  "diamond"
591
- ], Oe = (e, t) => {
592
- let n = e[t]?.marker?.toLowerCase().split(/\s+/) ?? [], r = De.find((e) => n.includes(e));
597
+ ], ke = (e, t) => {
598
+ let n = e[t]?.marker?.toLowerCase().split(/\s+/) ?? [], r = Oe.find((e) => n.includes(e));
593
599
  return {
594
- shape: r ?? De[Math.floor(t / 2) % De.length],
600
+ shape: r ?? Oe[Math.floor(t / 2) % Oe.length],
595
601
  open: n.includes("open") || !n.includes("filled") && !r && t % 2 == 1
596
602
  };
597
- }, ke = (e, t, n, r, i = {}) => {
603
+ }, Ae = (e, t, n, r, i = {}) => {
598
604
  if (e === "square") {
599
605
  let e = r * .88;
600
- return F("rect", {
606
+ return I("rect", {
601
607
  x: t - e,
602
608
  y: n - e,
603
609
  width: e * 2,
@@ -607,19 +613,19 @@ var e = "tablechart", t = "tablechart-plot", n = "tablechart-categories", r = "t
607
613
  }
608
614
  if (e === "diamond") {
609
615
  let e = r * 1.2;
610
- return F("polygon", {
616
+ return I("polygon", {
611
617
  points: `${t},${n - e} ${t + e},${n} ${t},${n + e} ${t - e},${n}`,
612
618
  ...i
613
619
  });
614
620
  }
615
- return F("circle", {
621
+ return I("circle", {
616
622
  cx: t,
617
623
  cy: n,
618
624
  r,
619
625
  ...i
620
626
  });
621
627
  }, X = (e) => Number(e.toFixed(2));
622
- function Ae(e, t) {
628
+ function je(e, t) {
623
629
  let n = e.length;
624
630
  if (n < 2) return e.map(() => 0);
625
631
  let r = (n) => (t[n + 1] - t[n]) / (e[n + 1] - e[n] || 1), i = Array(n).fill(0);
@@ -636,17 +642,17 @@ function Ae(e, t) {
636
642
  };
637
643
  return i[0] = a(0, 1, i[1]), i[n - 1] = a(n - 2, n - 1, i[n - 2]), i;
638
644
  }
639
- function je(e, t, n, r) {
645
+ function Me(e, t, n, r) {
640
646
  let i = (t[0] - e[0]) / 3;
641
647
  return [[e[0] + i, e[1] + n * i], [t[0] - i, t[1] - r * i]];
642
648
  }
643
- function Me(e, t, n, r) {
644
- let [i, a] = je(e, t, n, r), o = ([e, t]) => `${X(e)},${X(t)}`;
649
+ function Ne(e, t, n, r) {
650
+ let [i, a] = Me(e, t, n, r), o = ([e, t]) => `${X(e)},${X(t)}`;
645
651
  return `C${o(i)} ${o(a)} ${o(t)}`;
646
652
  }
647
- function Ne(e, t, n) {
653
+ function Pe(e, t, n) {
648
654
  let r = Array(e).fill(0), i = [], a = () => {
649
- Ae(i.map((e) => n(e)[0]), i.map((e) => n(e)[1])).forEach((e, t) => {
655
+ je(i.map((e) => n(e)[0]), i.map((e) => n(e)[1])).forEach((e, t) => {
650
656
  r[i[t]] = e;
651
657
  }), i = [];
652
658
  };
@@ -655,13 +661,13 @@ function Ne(e, t, n) {
655
661
  }
656
662
  //#endregion
657
663
  //#region src/js/charts/line.ts
658
- var Pe = (e) => e.map((e) => ({
664
+ var Fe = (e) => e.map((e) => ({
659
665
  ...e,
660
666
  from: 0,
661
667
  to: e.value,
662
668
  kind: "bar"
663
- })), Fe = (e) => ({
664
- segments: Pe,
669
+ })), Ie = (e) => ({
670
+ segments: Fe,
665
671
  series: !0,
666
672
  stackable: !0,
667
673
  swatch: e ? "box" : void 0,
@@ -670,7 +676,7 @@ var Pe = (e) => e.map((e) => ({
670
676
  draw(t) {
671
677
  let { rows: n, series: r, seriesValues: i, names: a, cx: s, y: c, height: l, unit: u, labelHeight: d, svg: f, stacked: p } = t, _ = t.shape === "step", v = t.shape === "smooth", x = r.length > 1, S = r.some((e) => e.focus), C = n.length - 1, w = c(0), T = n.length > 1 ? s(1) - s(0) : s(0) * 2;
672
678
  f.style.setProperty("--tablechart-base", `${X(w)}px`);
673
- let E = (e) => `--rise:${X(w - e)}px; `, D = (e, t) => n[t]?.cells[e] ?? n[t]?.cells[0], O = (e, t) => !D(e, t) || !!D(e, t)?.missing, k = n.map((e) => p ? fe(e, r.length) : null), A = (e, t) => k[t]?.[e].to ?? D(e, t)?.value ?? 0, M = (e, t) => k[t]?.[e].from ?? 0, N = (e, t) => [s(t), c(A(e, t))], P = r.map((e, t) => {
679
+ let E = (e) => `--rise:${X(w - e)}px; `, D = (e, t) => n[t]?.cells[e] ?? n[t]?.cells[0], O = (e, t) => !D(e, t) || !!D(e, t)?.missing, k = n.map((e) => p ? pe(e, r.length) : null), A = (e, t) => k[t]?.[e].to ?? D(e, t)?.value ?? 0, M = (e, t) => k[t]?.[e].from ?? 0, N = (e, t) => [s(t), c(A(e, t))], P = r.map((e, t) => {
674
680
  if (!x) return {
675
681
  attrs: {},
676
682
  ink: ""
@@ -683,73 +689,73 @@ var Pe = (e) => e.map((e) => ({
683
689
  },
684
690
  ink: `--n:${t}; --m:${+!!n}; --palette:var(--tablechart-color-${t + 1}); `
685
691
  };
686
- }), I = Math.min(C, 6), L = C > 0 ? I / (_ ? n.length : C) : 1, z = (e) => e * L, ee = (e) => `--i:${X(z(e))}`, V = (e) => {
692
+ }), F = Math.min(C, 6), L = C > 0 ? F / (_ ? n.length : C) : 1, R = (e) => e * L, B = (e) => `--i:${X(R(e))}`, te = (e) => {
687
693
  let t = [], r = -1;
688
694
  return n.forEach((n, i) => {
689
695
  O(e, i) || (r < 0 && (r = i), (i === C || O(e, i + 1)) && ((_ || i > r) && t.push([r, i]), r = -1));
690
696
  }), t;
691
- }, H = (e, t) => `--i:${X(z(e) + 1)}; --d:${X(z(_ ? t + 1 : t) - z(e))}`, U = (e, t) => ({
697
+ }, V = (e, t) => `--i:${X(R(e) + 1)}; --d:${X(R(_ ? t + 1 : t) - R(e))}`, ne = (e, t) => ({
692
698
  "data-from": e + 1,
693
699
  "data-to": t + 1,
694
700
  ..._ && { "data-flat": "" }
695
- }), W = v ? r.map((e, t) => Ne(n.length, (e) => O(t, e), (e) => N(t, e))) : [], te = v && e ? r.map((e, t) => Ne(n.length, (e) => O(t, e), (e) => [s(e), c(M(t, e))])) : [], G = (e, t, n) => {
701
+ }), H = v ? r.map((e, t) => Pe(n.length, (e) => O(t, e), (e) => N(t, e))) : [], U = v && e ? r.map((e, t) => Pe(n.length, (e) => O(t, e), (e) => [s(e), c(M(t, e))])) : [], W = (e, t, n) => {
696
702
  let r = [];
697
703
  return e.forEach(([i, a], o) => {
698
- _ ? (r.push(`H${X(i + n * T / 2)}`), o < e.length - 1 && r.push(`V${X(e[o + 1][1])}`)) : o > 0 && r.push(t ? Me(e[o - 1], [i, a], t[o - 1], t[o]) : `L${X(i)},${X(a)}`);
704
+ _ ? (r.push(`H${X(i + n * T / 2)}`), o < e.length - 1 && r.push(`V${X(e[o + 1][1])}`)) : o > 0 && r.push(t ? Ne(e[o - 1], [i, a], t[o - 1], t[o]) : `L${X(i)},${X(a)}`);
699
705
  }), r;
700
- }, K = (e, t, r, i) => n.slice(t, r + 1).map((n, r) => [s(t + r), c(i(e, t + r))]), q = (e, t, n, r) => v ? e[t].slice(n, r + 1) : null, J = (e) => s(e) - (_ ? T / 2 : 0), ne = (e) => s(e) + (_ ? T / 2 : 0), re = (e) => {
701
- let t = F("g", {
706
+ }, G = (e, t, r, i) => n.slice(t, r + 1).map((n, r) => [s(t + r), c(i(e, t + r))]), K = (e, t, n, r) => v ? e[t].slice(n, r + 1) : null, q = (e) => s(e) - (_ ? T / 2 : 0), J = (e) => s(e) + (_ ? T / 2 : 0), re = (e) => {
707
+ let t = I("g", {
702
708
  class: h,
703
709
  ...P[e].attrs,
704
710
  ...p && { "data-stacked": "" },
705
711
  style: P[e].ink
706
- }), n = V(e), r = F("g", {
712
+ }), n = te(e), r = I("g", {
707
713
  class: g,
708
- style: `--rows:${X(I + 1)}; ${n.length ? H(...n[0]) : ""}`
714
+ style: `--rows:${X(F + 1)}; ${n.length ? V(...n[0]) : ""}`
709
715
  });
710
716
  t.appendChild(r);
711
717
  for (let [t, i] of n) {
712
- let n = K(e, t, i, A), a = K(e, t, i, M), o = q(te, e, t, i)?.reverse() ?? null, s = [
713
- `M${X(J(t))},${X(a[0][1])}`,
714
- `L${X(J(t))},${X(n[0][1])}`,
715
- ...G(n, q(W, e, t, i), 1),
716
- `L${X(ne(i))},${X(a[a.length - 1][1])}`,
717
- ...G(a.reverse(), o, -1),
718
+ let n = G(e, t, i, A), a = G(e, t, i, M), o = K(U, e, t, i)?.reverse() ?? null, s = [
719
+ `M${X(q(t))},${X(a[0][1])}`,
720
+ `L${X(q(t))},${X(n[0][1])}`,
721
+ ...W(n, K(H, e, t, i), 1),
722
+ `L${X(J(i))},${X(a[a.length - 1][1])}`,
723
+ ...W(a.reverse(), o, -1),
718
724
  "Z"
719
725
  ].join(" ");
720
- r.appendChild(F("path", {
726
+ r.appendChild(I("path", {
721
727
  d: s,
722
- ...U(t, i),
723
- style: H(t, i)
728
+ ...ne(t, i),
729
+ style: V(t, i)
724
730
  }));
725
731
  }
726
732
  f.appendChild(t);
727
733
  }, ie = (e) => {
728
734
  let t = r[e];
729
- for (let [n, r] of V(e)) {
730
- let i = K(e, n, r, A), a = [`M${X(J(n))},${X(i[0][1])}`, ...G(i, q(W, e, n, r), 1)].join(" ");
731
- f.appendChild(F("path", {
735
+ for (let [n, r] of te(e)) {
736
+ let i = G(e, n, r, A), a = [`M${X(q(n))},${X(i[0][1])}`, ...W(i, K(H, e, n, r), 1)].join(" ");
737
+ f.appendChild(I("path", {
732
738
  class: m,
733
739
  ...P[e].attrs,
734
740
  d: a,
735
741
  ...t.line && { "data-line": t.line },
736
- ...U(n, r),
737
- style: `${P[e].ink}${H(n, r)}`
742
+ ...ne(n, r),
743
+ style: `${P[e].ink}${V(n, r)}`
738
744
  }));
739
745
  }
740
746
  };
741
747
  e && r.forEach((e, t) => re(t)), r.forEach((e, t) => ie(t)), _ || (() => {
742
- let e = r.map((e, t) => x ? Oe(r, t) : {
748
+ let e = r.map((e, t) => x ? ke(r, t) : {
743
749
  shape: "circle",
744
750
  open: !1
745
751
  }), t = (t, n, r) => {
746
752
  let [i, a] = N(t, n);
747
- return ke(e[t].shape, i, a, 4 * u, {
753
+ return Ae(e[t].shape, i, a, 4 * u, {
748
754
  ...r,
749
- style: `${r.style ?? ""}${E(a)}${ee(n)}`
755
+ style: `${r.style ?? ""}${E(a)}${B(n)}`
750
756
  });
751
757
  }, i = (e) => n.map((e, t) => t).filter((t) => !O(e, t));
752
- B(f, r.flatMap((n, r) => e[r].open ? i(r).map((e) => t(r, e, {
758
+ ee(f, r.flatMap((n, r) => e[r].open ? i(r).map((e) => t(r, e, {
753
759
  class: b,
754
760
  "data-row": e + 1,
755
761
  ...x && { "data-series": r + 1 }
@@ -778,7 +784,7 @@ var Pe = (e) => e.map((e) => ({
778
784
  }, se = (e, t) => !p && !_ ? x && !S && r.length > 2 : Y(i[e][t]).width * u > (_ ? ae(e, t) - t + 1 : 1) * T - 4 * u ? !0 : p && c(M(e, t)) - c(A(e, t)) < d * 1.2;
779
785
  i.forEach((e, t) => {
780
786
  e.forEach((e, n) => {
781
- e.style.setProperty("--i", String(X(_ ? (z(n) + z(n + 1)) / 2 : z(n))));
787
+ e.style.setProperty("--i", String(X(_ ? (R(n) + R(n + 1)) / 2 : R(n))));
782
788
  let r = oe(t, n);
783
789
  if (e.dataset.place = r === "above" ? "outside" : r, e.toggleAttribute("data-left-out", r !== "none" && se(t, n)), _ && r !== "none" ? e.dataset.rowEnd = String(ae(t, n) + 1) : delete e.dataset.rowEnd, r === "none") return;
784
790
  let i = Y(e).width * u / 2 + 4 * u, a = s(n);
@@ -788,7 +794,7 @@ var Pe = (e) => e.map((e) => ({
788
794
  above: -7 * u,
789
795
  below: 7 * u
790
796
  };
791
- R(e, a, o + d[r], j, l);
797
+ z(e, a, o + d[r], j, l);
792
798
  });
793
799
  });
794
800
  let ce = a.map((e, t) => {
@@ -801,9 +807,9 @@ var Pe = (e) => e.map((e) => ({
801
807
  y: p ? (i + c(M(t, n))) / 2 : i
802
808
  };
803
809
  }), le = (a[0] ? Y(a[0]).height : 0) * u;
804
- for (let e of xe(ce, le)) R(e.name, e.x, e.y, j, l);
810
+ for (let e of Se(ce, le)) z(e.name, e.x, e.y, j, l);
805
811
  let ue = !e && !p && r.length === 2 && !S ? l - 2 * u : w;
806
- f.appendChild(F("line", {
812
+ f.appendChild(I("line", {
807
813
  class: o,
808
814
  x1: 0,
809
815
  x2: s(C) + s(0),
@@ -811,15 +817,15 @@ var Pe = (e) => e.map((e) => ({
811
817
  y2: ue
812
818
  }));
813
819
  }
814
- }), Ie = Fe(!1), Le = Fe(!0), Re = /* @__PURE__ */ new Set(), ze = (t, n) => {
820
+ }), Le = Ie(!1), Re = Ie(!0), ze = /* @__PURE__ */ new Set(), Be = (t, n) => {
815
821
  if (Math.abs(t - n) <= Math.abs(n) / 100) return;
816
822
  let r = `[${e}] A total reads ${t}, but the steps before it add up to ${Number(n.toFixed(6))}. The chart shows what you wrote; this is only a check.`;
817
- Re.has(r) || (Re.add(r), console.warn(r));
818
- }, Be = {
823
+ ze.has(r) || (ze.add(r), console.warn(r));
824
+ }, Ve = {
819
825
  segments: (e) => {
820
826
  let t = 0, n = !1;
821
827
  return e.map((e) => {
822
- if (e.isTotal) return n && ze(e.value, t), n = !1, t = e.value, {
828
+ if (e.isTotal) return n && Be(e.value, t), n = !1, t = e.value, {
823
829
  ...e,
824
830
  from: 0,
825
831
  to: e.value,
@@ -837,13 +843,13 @@ var Pe = (e) => e.map((e) => ({
837
843
  breakable: !0,
838
844
  headroom: ({ labelHeight: e, badgeHeight: t, hasAnnotations: n, unit: r }) => e + 6 * r + (n ? t * 1.6 : 0),
839
845
  draw({ segments: e, cx: t, y: n, barWidth: r, height: a, unit: c, svg: l, values: u, breakAt: d, closing: f, insideAlign: p }) {
840
- let m = n(0), h = _e(u, r, c), g = p ?? "center", _ = e.map((t, r) => {
846
+ let m = n(0), h = ve(u, r, c), g = p ?? "center", _ = e.map((t, r) => {
841
847
  let i = n(Math.max(t.from, t.to)), a = Math.abs(n(t.from) - n(t.to)), o = d !== null && Math.min(t.from, t.to) < d && Math.max(t.from, t.to) > d;
842
848
  return {
843
849
  top: i,
844
850
  length: a,
845
851
  down: t.kind === "down" || t.kind === "total" && r > 0 && r === e.length - 1 && f === "down",
846
- inside: !o && !h && ve(u[r], a, c)
852
+ inside: !o && !h && ye(u[r], a, c)
847
853
  };
848
854
  }), v = u[0] ? Y(u[0]).height * c * .56 : 0, y = Infinity;
849
855
  for (let [e, t] of _.entries()) t.inside && (y = Math.min(y, (r - Y(u[e]).width * c) / 2));
@@ -851,7 +857,7 @@ var Pe = (e) => e.map((e) => ({
851
857
  let o = e[a + 1];
852
858
  if (!o) return;
853
859
  let c = n(i.to), u = t(a) + r / 2, d = t(a + 1) - r / 2;
854
- l.appendChild(F("line", {
860
+ l.appendChild(I("line", {
855
861
  class: s,
856
862
  x1: u,
857
863
  x2: d,
@@ -862,8 +868,8 @@ var Pe = (e) => e.map((e) => ({
862
868
  }));
863
869
  }), e.forEach((e, n) => {
864
870
  let { top: o, length: s, down: d, inside: f } = _[n];
865
- l.appendChild(F("rect", {
866
- class: I(i, e),
871
+ l.appendChild(I("rect", {
872
+ class: L(i, e),
867
873
  "data-kind": e.kind,
868
874
  "data-row": n + 1,
869
875
  "data-grow": d ? "down" : "up",
@@ -876,8 +882,8 @@ var Pe = (e) => e.map((e) => ({
876
882
  let p = u[n], m = Math.min(y, (s - v) / 2), h = o + m + v / 2, b = o + s - m - v / 2, x = g === "center" ? o + s / 2 : g === "end" === d ? b : h;
877
883
  p.dataset.place = f ? "inside" : "outside", p.dataset.kind = e.kind;
878
884
  let S = f ? x : e.kind === "down" ? o + s + Y(p).height * c + 3 * c : o - 3 * c;
879
- R(p, t(n), S, j, a);
880
- }), l.appendChild(F("line", {
885
+ z(p, t(n), S, j, a);
886
+ }), l.appendChild(I("line", {
881
887
  class: o,
882
888
  x1: 0,
883
889
  x2: j,
@@ -895,7 +901,7 @@ var Pe = (e) => e.map((e) => ({
895
901
  let i = performance.now(), a = r(), o = performance.now() - i, s = n.querySelectorAll("tbody tr").length;
896
902
  return o > 50 ? console.warn(`[${e}] ${t} took ${o.toFixed(1)} ms for ${s} rows, more than 50 ms.`, n) : Z.log(`${t} took ${o.toFixed(1)} ms for ${s} rows.`, n), a;
897
903
  }
898
- }, Ve = (e) => {
904
+ }, He = (e) => {
899
905
  let t = (e?.textContent || "").trim(), n = t.match(/^(.*?)(-?\d+(?:[.,]\d+)?)(.*)$/);
900
906
  return {
901
907
  raw: t,
@@ -905,9 +911,9 @@ var Pe = (e) => e.map((e) => ({
905
911
  missing: !n,
906
912
  value: n ? Number.parseFloat(n[2].replace(",", ".")) : 0
907
913
  };
908
- }, He = (e, t = "data-i18n") => Array.from(e.querySelectorAll("tbody tr")).map((e, n) => {
909
- let r = e.querySelector("th"), i = Array.from(e.querySelectorAll("td")).map(Ve);
910
- return i.length || i.push(Ve(null)), {
914
+ }, Ue = (e, t = "data-i18n") => Array.from(e.querySelectorAll("tbody tr")).map((e, n) => {
915
+ let r = e.querySelector("th"), i = Array.from(e.querySelectorAll("td")).map(He);
916
+ return i.length || i.push(He(null)), {
911
917
  ...i[0],
912
918
  label: (r?.textContent || "").trim(),
913
919
  key: t && r?.getAttribute(t) || null,
@@ -916,8 +922,8 @@ var Pe = (e) => e.map((e) => ({
916
922
  isTotal: e.getAttribute("data-kind") === "total",
917
923
  slot: n
918
924
  };
919
- }), Ue = (e) => Array.from(e.querySelector("thead tr:last-child")?.children ?? []).slice(1), We = (e) => e === "dashed" || e === "dotted" ? e : null, Ge = (e, t, n = "data-i18n") => {
920
- let r = Ue(e), i = Math.max(1, U(t.map((e) => e.cells.length)));
925
+ }), We = (e) => Array.from(e.querySelector("thead tr:last-child")?.children ?? []).slice(1), Ge = (e) => e === "dashed" || e === "dotted" ? e : null, Ke = (e, t, n = "data-i18n") => {
926
+ let r = We(e), i = Math.max(1, H(t.map((e) => e.cells.length)));
921
927
  return Array.from({ length: i }, (e, t) => {
922
928
  let i = r[t];
923
929
  return {
@@ -925,10 +931,10 @@ var Pe = (e) => e.map((e) => ({
925
931
  key: n && i?.getAttribute(n) || null,
926
932
  focus: i?.getAttribute("data-kind") === "focus",
927
933
  marker: i?.getAttribute("data-marker") ?? null,
928
- line: We(i?.getAttribute("data-line"))
934
+ line: Ge(i?.getAttribute("data-line"))
929
935
  };
930
936
  });
931
- }, Ke = (t, n) => {
937
+ }, qe = (t, n) => {
932
938
  if (!n) return;
933
939
  let r = /* @__PURE__ */ new Map();
934
940
  for (let i of t) {
@@ -941,112 +947,145 @@ var Pe = (e) => e.map((e) => ({
941
947
  i.querySelectorAll("tbody th").forEach((e, r) => {
942
948
  e.getAttribute(n) || e.setAttribute(n, `${t}-row${r + 1}`);
943
949
  });
944
- let a = Ue(i);
950
+ let a = We(i);
945
951
  a.length > 1 && a.forEach((e, r) => {
946
952
  e.getAttribute(n) || e.setAttribute(n, `${t}-col${r + 1}`);
947
953
  }), Z?.log?.(`Keys for "${t}" written onto ${i.querySelectorAll("tbody th").length} rows`);
948
954
  }
949
- }, qe = [
955
+ }, Je = [
950
956
  "axis-break",
951
957
  "trend",
952
958
  "bracket"
953
- ], Je = (e) => {
954
- let t = e.hasAttribute("data-fragment"), n = Array.from(e.querySelectorAll("tbody tr")), r = Array.from(e.querySelector("thead tr:last-child")?.children ?? []).slice(1), i = Array.from(e.querySelectorAll("[data-annotation]")).filter((e) => qe.includes(e.getAttribute("data-annotation") ?? "")), a = (e) => e.hasAttribute("data-fragment");
955
- if (!t && !n.some(a) && !r.some(a) && !i.some(a)) return null;
956
- let o = [], s = /* @__PURE__ */ new Map(), c = [], l = (e) => {
957
- let t = e === null ? void 0 : s.get(e);
958
- return t === void 0 && (t = o.length, o.push(e), c.push(0), e !== null && s.set(e, t)), t;
959
- }, u = 0, d = e.getAttribute("data-chart") === "donut", f = (e) => d && e.getAttribute("data-kind") === "total", p = n.map((e) => {
960
- if (f(e)) return {
959
+ ], Ye = (e) => {
960
+ let t = e.hasAttribute("data-fragment"), n = Array.from(e.querySelectorAll("tbody tr")), r = Array.from(e.querySelector("thead tr:last-child")?.children ?? []).slice(1), i = Array.from(e.querySelectorAll("[data-annotation]")).filter((e) => Je.includes(e.getAttribute("data-annotation") ?? "")), a = (e) => e.hasAttribute("data-fragment"), o = n.map((e) => Array.from(e.querySelectorAll(":scope > td")));
961
+ if (!t && !n.some(a) && !r.some(a) && !o.flat().some(a) && !i.some(a)) return null;
962
+ let s = [], c = /* @__PURE__ */ new Map(), l = [], u = (e) => {
963
+ let t = e === null ? void 0 : c.get(e);
964
+ return t === void 0 && (t = s.length, s.push(e), l.push(0), e !== null && c.set(e, t)), t;
965
+ }, d = 0, f = e.getAttribute("data-chart") === "donut", p = (e) => f && e.getAttribute("data-kind") === "total", m = n.map((e) => {
966
+ if (p(e)) return {
961
967
  step: null,
962
968
  slot: 0
963
969
  };
964
970
  if (!t && !a(e)) return {
965
971
  step: null,
966
- slot: u++
972
+ slot: d++
967
973
  };
968
- let n = l(e.getAttribute("data-fragment-index"));
974
+ let n = u(e.getAttribute("data-fragment-index"));
969
975
  return {
970
976
  step: n,
971
- slot: c[n]++
977
+ slot: l[n]++
972
978
  };
973
- }), m = Math.max(-1, ...p.map((e) => e.step ?? -1));
974
- if (m >= 0) for (let [e, t] of n.entries()) f(t) && (p[e] = {
975
- step: m,
976
- slot: c[m]++
979
+ }), h = Math.max(-1, ...m.map((e) => e.step ?? -1));
980
+ if (h >= 0) for (let [e, t] of n.entries()) p(t) && (m[e] = {
981
+ step: h,
982
+ slot: l[h]++
977
983
  });
978
- let h = r.map((e) => ({ step: a(e) ? l(e.getAttribute("data-fragment-index")) : null }));
984
+ let g = r.map((e) => ({ step: a(e) ? u(e.getAttribute("data-fragment-index")) : null })), _ = o.map((e) => e.map(() => ({
985
+ step: null,
986
+ slot: 0
987
+ }))), v = Math.max(0, ...o.map((e) => e.length));
988
+ for (let e = 0; e < v; e++) for (let [t, n] of o.entries()) {
989
+ let r = n[e];
990
+ if (!r || !a(r)) continue;
991
+ let i = u(r.getAttribute("data-fragment-index"));
992
+ _[t][e] = {
993
+ step: i,
994
+ slot: l[i]++
995
+ };
996
+ }
979
997
  return {
980
- rows: p,
981
- series: h,
998
+ rows: m,
999
+ series: g,
1000
+ cells: _,
982
1001
  notes: i.map((e) => {
983
1002
  let t = (t, n) => {
984
1003
  let r = Number.parseInt(e.getAttribute(t) ?? "", 10);
985
1004
  return Number.isFinite(r) ? r - 1 : n;
986
- }, [n, r] = e.getAttribute("data-annotation") === "bracket" ? [t("data-from", 0), t("data-to", p.length - 1)] : [0, p.length - 1], i = null;
987
- for (let e = Math.min(n, r); e <= Math.max(n, r); e++) {
988
- let t = p[e]?.step ?? null;
989
- t !== null && (i === null || t > i) && (i = t);
990
- }
991
- let o = h[t("data-series", 0)]?.step ?? null;
992
- o !== null && (i === null || o > i) && (i = o), a(e) && (i = l(e.getAttribute("data-fragment-index")));
993
- let s = i === null ? p.length : p.filter((e) => e.step === i).length;
1005
+ }, [n, r] = e.getAttribute("data-annotation") === "bracket" ? [t("data-from", 0), t("data-to", m.length - 1)] : [0, m.length - 1], i = null;
1006
+ for (let e = Math.min(n, r); e <= Math.max(n, r); e++) for (let t of [m[e]?.step ?? null, ...(_[e] ?? []).map((e) => e.step)]) t !== null && (i === null || t > i) && (i = t);
1007
+ let o = g[t("data-series", 0)]?.step ?? null;
1008
+ o !== null && (i === null || o > i) && (i = o), a(e) && (i = u(e.getAttribute("data-fragment-index")));
1009
+ let s = i === null ? m.length : m.filter((e) => e.step === i).length;
994
1010
  return {
995
1011
  step: i,
996
1012
  after: s
997
1013
  };
998
1014
  }),
999
- count: o.length,
1000
- indexes: o
1015
+ count: s.length,
1016
+ indexes: s
1001
1017
  };
1002
- }, Ye = (e) => {
1018
+ }, Xe = (e) => {
1003
1019
  let t = e.plan;
1004
1020
  if (!t) return;
1005
1021
  let n = (t) => t === null || e.step - t >= 1;
1006
1022
  for (let r of e.figure.querySelectorAll("[data-from]")) {
1007
- let e = Number(r.dataset.from) - 1, i = Number(r.dataset.to) - 1, a = r.closest("[data-series]")?.dataset.series, o = a ? t.series[Number(a) - 1] : void 0, s = e - 1;
1008
- if (o && o.step !== null) s = n(o.step) ? i : e - 1;
1009
- else for (; s < i && n(t.rows[s + 1]?.step ?? null);) s++;
1010
- let c = r.hasAttribute("data-flat") ? (s - e + 1) / (i - e + 1) : i > e ? Math.max(0, s - e) / (i - e) : 0;
1011
- r.style.setProperty("--reveal", String(c));
1023
+ let e = Number(r.dataset.from) - 1, i = Number(r.dataset.to) - 1, a = r.closest("[data-series]")?.dataset.series, o = a ? Number(a) - 1 : 0, s = t.series[o], c = (e) => t.cells[e]?.[o]?.step ?? t.rows[e]?.step ?? null, l = e - 1;
1024
+ if (s && s.step !== null) l = n(s.step) ? i : e - 1;
1025
+ else for (; l < i && n(c(l + 1));) l++;
1026
+ let u = r.hasAttribute("data-flat") ? (l - e + 1) / (i - e + 1) : i > e ? Math.max(0, l - e) / (i - e) : 0;
1027
+ r.style.setProperty("--reveal", String(u));
1012
1028
  }
1013
- }, Xe = (e) => {
1029
+ }, Ze = (e) => {
1014
1030
  let t = e.plan;
1015
1031
  if (!t) return;
1016
- let n = t.rows.length - 1, r = (e, t, n, r) => {
1032
+ let n = t.rows.length - 1, r = (e) => t.series.map((n, r) => t.cells[e]?.[r]?.step ?? n.step ?? t.rows[e]?.step ?? null), i = (e) => {
1033
+ let t = r(e);
1034
+ return t.some((e) => e === null) ? null : Math.min(...t);
1035
+ }, a = new Set(e.totals), o = (e, t, n, r) => {
1017
1036
  e.style.setProperty(n, String(r)), e.style.removeProperty("--d"), t === null ? e.style.removeProperty("--step") : e.style.setProperty("--step", String(t));
1018
1037
  };
1019
- for (let i of e.figure.querySelectorAll("[data-row], [data-series], [data-note]")) {
1020
- if (i.closest("table, .tablechart-controls") || i.hasAttribute("data-from")) continue;
1021
- let e = Number(i.dataset.note);
1038
+ for (let s of e.figure.querySelectorAll("[data-row], [data-series], [data-note]")) {
1039
+ if (s.closest("table, .tablechart-controls") || s.hasAttribute("data-from")) continue;
1040
+ let e = Number(s.dataset.note);
1022
1041
  if (e > 0) {
1023
1042
  let n = t.notes[e - 1];
1024
- n && r(i, n.step, "--after", n.after);
1043
+ n && o(s, n.step, "--after", n.after);
1025
1044
  continue;
1026
1045
  }
1027
- let a = i.dataset.row ? Number(i.dataset.row) - 1 : n;
1028
- if (i.classList.contains("tablechart-connector")) {
1029
- let e = t.rows[a - 1], n = t.rows[a];
1046
+ let c = s.dataset.row ? Number(s.dataset.row) - 1 : n;
1047
+ if (s.classList.contains("tablechart-connector")) {
1048
+ let e = t.rows[c - 1], n = t.rows[c];
1030
1049
  if (e && n) {
1031
1050
  let t = (e.step ?? -1) > (n.step ?? -1);
1032
- r(i, t ? e.step : n.step, "--i", t ? e.slot + 1 : n.slot);
1051
+ o(s, t ? e.step : n.step, "--i", t ? e.slot + 1 : n.slot);
1033
1052
  }
1034
1053
  continue;
1035
1054
  }
1036
- let o = i.dataset.series ? t.series[Number(i.dataset.series) - 1] : void 0;
1037
- o && o.step !== null ? r(i, o.step, "--i", a) : t.rows[a] && r(i, t.rows[a].step, "--i", t.rows[a].slot);
1055
+ if (a.has(s)) {
1056
+ let e = r(c).filter((e) => e !== null);
1057
+ o(s, e.length ? Math.max(...e) : null, "--i", t.rows[c]?.slot ?? 0);
1058
+ continue;
1059
+ }
1060
+ if (s.hasAttribute("data-stack")) {
1061
+ o(s, i(c), "--i", t.rows[c]?.slot ?? 0);
1062
+ continue;
1063
+ }
1064
+ let l = s.dataset.series ? Number(s.dataset.series) - 1 : 0, u = s.dataset.series ? t.series[l] : void 0;
1065
+ if (s.classList.contains("tablechart-piece")) {
1066
+ let e = r(c)[l] ?? null, n = t.cells[c]?.[l];
1067
+ o(s, e === i(c) ? null : e, "--i", n && n.step !== null ? n.slot : c);
1068
+ continue;
1069
+ }
1070
+ if (s.dataset.place === "legend") {
1071
+ let e = Math.min(...t.cells.map((e) => e[l]?.step ?? Infinity));
1072
+ o(s, u?.step ?? (Number.isFinite(e) ? e : null), "--i", 0);
1073
+ continue;
1074
+ }
1075
+ let d = t.cells[c]?.[l];
1076
+ d && d.step !== null ? o(s, d.step, "--i", d.slot) : u && u.step !== null ? o(s, u.step, "--i", c) : t.rows[c] && o(s, t.rows[c].step, "--i", t.rows[c].slot);
1038
1077
  }
1039
- let i = e.figure.querySelector(`.${x}`);
1040
- if (i) {
1041
- let e = Math.max(-1, ...t.rows.map((e) => e.step ?? -1));
1042
- e < 0 ? r(i, null, "--i", 0) : r(i, e, "--i", t.rows.filter((t) => t.step === e).length);
1078
+ let s = e.figure.querySelector(`.${x}`);
1079
+ if (s) {
1080
+ let e = [...t.rows, ...t.cells.flat()].map((e) => e.step ?? -1), n = Math.max(-1, ...e);
1081
+ n < 0 ? o(s, null, "--i", 0) : o(s, n, "--i", e.filter((e) => e === n).length);
1043
1082
  }
1044
- Ye(e);
1083
+ Xe(e);
1045
1084
  }, Q = (e, t, n = !1) => {
1046
1085
  let r = e.plan;
1047
1086
  if (!r) return;
1048
1087
  let i = Math.min(Math.max(Math.round(t), 0), r.count), a = i !== e.step;
1049
- e.step = i, e.figure.style.setProperty("--tablechart-step", String(i)), Ye(e);
1088
+ e.step = i, e.figure.style.setProperty("--tablechart-step", String(i)), Xe(e);
1050
1089
  let [o, s] = e.controls?.querySelectorAll("button") ?? [];
1051
1090
  o && (o.disabled = i === 0), s && (s.disabled = i === r.count), a && !n && e.figure.dispatchEvent(new CustomEvent("tablechart:step", {
1052
1091
  bubbles: !0,
@@ -1055,7 +1094,7 @@ var Pe = (e) => e.map((e) => ({
1055
1094
  steps: r.count
1056
1095
  }
1057
1096
  }));
1058
- }, Ze = (e, t, n) => {
1097
+ }, Qe = (e, t, n) => {
1059
1098
  let r = document.createElement("div");
1060
1099
  r.className = A;
1061
1100
  let i = (r) => {
@@ -1063,11 +1102,11 @@ var Pe = (e) => e.map((e) => ({
1063
1102
  i.type = "button", i.className = `tablechart-${r}`, i.dataset.go = r;
1064
1103
  let a = document.createElement("span");
1065
1104
  a.className = "tablechart-control-icon", a.setAttribute("aria-hidden", "true");
1066
- let o = F("svg", {
1105
+ let o = I("svg", {
1067
1106
  viewBox: "0 0 16 16",
1068
1107
  focusable: "false"
1069
1108
  });
1070
- o.appendChild(F("path", { d: r === "next" ? "M6 3l5 5-5 5" : "M10 3L5 8l5 5" })), a.appendChild(o);
1109
+ o.appendChild(I("path", { d: r === "next" ? "M6 3l5 5-5 5" : "M10 3L5 8l5 5" })), a.appendChild(o);
1071
1110
  let s = document.createElement("span");
1072
1111
  s.className = "tablechart-control-label", s.textContent = e[r];
1073
1112
  let c = t[r];
@@ -1084,35 +1123,35 @@ var Pe = (e) => e.map((e) => ({
1084
1123
  ]), i;
1085
1124
  };
1086
1125
  return r.append(i("previous"), i("next")), r;
1087
- }, Qe = {
1088
- area: Le,
1089
- bar: Se,
1090
- column: Ce,
1091
- donut: Ee,
1092
- line: Ie,
1093
- waterfall: Be
1094
1126
  }, $e = {
1095
- "axis-break": H,
1096
- trend: ce,
1097
- bracket: ie
1098
- }, et = Object.keys($e), tt = (e) => {
1127
+ area: Re,
1128
+ bar: Ce,
1129
+ column: we,
1130
+ donut: De,
1131
+ line: Le,
1132
+ waterfall: Ve
1133
+ }, et = {
1134
+ "axis-break": ne,
1135
+ trend: le,
1136
+ bracket: ae
1137
+ }, tt = Object.keys(et), nt = (e) => {
1099
1138
  let t = "";
1100
1139
  for (let n = e.previousSibling; n && (t = (n.textContent ?? "") + t, !t.trim()); n = n.previousSibling);
1101
1140
  return t.trim();
1102
- }, nt = [
1141
+ }, rt = [
1103
1142
  "straight",
1104
1143
  "step",
1105
1144
  "smooth"
1106
- ], rt = (e, t) => {
1145
+ ], it = (e, t) => {
1107
1146
  let n = e.dataset.chartShape;
1108
- return n && nt.includes(n) ? n : nt.includes(t.shape) ? t.shape : "straight";
1109
- }, it = (e) => {
1147
+ return n && rt.includes(n) ? n : rt.includes(t.shape) ? t.shape : "straight";
1148
+ }, at = (e) => {
1110
1149
  for (let t of e.querySelectorAll("br")) {
1111
- if (t.previousElementSibling?.classList.contains("tablechart-sr") || /[.!?:;,…]$/.test(tt(t))) continue;
1150
+ if (t.previousElementSibling?.classList.contains("tablechart-sr") || /[.!?:;,…]$/.test(nt(t))) continue;
1112
1151
  let e = document.createElement("span");
1113
1152
  e.className = E, e.textContent = ". ", t.before(e);
1114
1153
  }
1115
- }, at = (e, t, n) => {
1154
+ }, ot = (e, t, n) => {
1116
1155
  let r = e.querySelector("table");
1117
1156
  if (!r) return null;
1118
1157
  let i = r.querySelector("tfoot [data-chart-total]");
@@ -1123,23 +1162,23 @@ var Pe = (e) => e.map((e) => ({
1123
1162
  s && n.langattribute && o.setAttribute(n.langattribute, `${s}-total`);
1124
1163
  let c = a.insertCell();
1125
1164
  return c.setAttribute("data-chart-total", ""), c.dataset.value = t.dataset.value ?? "0", a.prepend(o), c;
1126
- }, ot = 0, st = (e) => {
1165
+ }, st = 0, ct = (e) => {
1127
1166
  let t = e.querySelector(":scope > figcaption");
1128
1167
  if (!t) return;
1129
- it(t);
1168
+ at(t);
1130
1169
  let n = (e) => e.hasAttribute("aria-label") || e.hasAttribute("aria-labelledby"), r = (e) => {
1131
- t.id || (t.id = `tablechart-caption-${++ot}`), e.setAttribute("aria-labelledby", t.id);
1170
+ t.id || (t.id = `tablechart-caption-${++st}`), e.setAttribute("aria-labelledby", t.id);
1132
1171
  };
1133
1172
  e.tagName === "FIGURE" && !n(e) && r(e);
1134
1173
  let i = e.querySelector("table");
1135
1174
  i && !n(i) && !i.querySelector(":scope > caption") && r(i);
1136
- }, ct = (i, a, o = null) => {
1137
- let s = o ?? (i.getAttribute("data-chart") || "column"), c = Qe[s];
1138
- if (!c) return console.warn(`[${e}] Unknown chart type "${s}". Known types: ${Object.keys(Qe).join(", ")}.`), i.setAttribute("data-chart-empty", ""), null;
1139
- let l = He(i, a.langattribute);
1175
+ }, lt = (i, a, o = null) => {
1176
+ let s = o ?? (i.getAttribute("data-chart") || "column"), c = $e[s];
1177
+ if (!c) return console.warn(`[${e}] Unknown chart type "${s}". Known types: ${Object.keys($e).join(", ")}.`), i.setAttribute("data-chart-empty", ""), null;
1178
+ let l = Ue(i, a.langattribute);
1140
1179
  if (!l.length) return console.warn(`[${e}] A chart has no rows in its table, so there is nothing to draw.`), i.setAttribute("data-chart-empty", ""), null;
1141
- st(i);
1142
- let u = Ge(i, l, a.langattribute);
1180
+ ct(i);
1181
+ let u = Ke(i, l, a.langattribute);
1143
1182
  u.length > 1 && !c.series && (console.warn(`[${e}] A ${s} chart draws one series; only the first of the table's ${u.length} value columns is used.`), u = u.slice(0, 1));
1144
1183
  let d = u.length > 1;
1145
1184
  d && i.style.setProperty("--tablechart-series-count", String(u.length));
@@ -1149,36 +1188,36 @@ var Pe = (e) => e.map((e) => ({
1149
1188
  p && l.some((e) => e.cells.slice(0, u.length).some((e) => e.value < 0)) && console.warn(`[${e}] A stacked chart has a value below zero. It takes no room in the stack.`);
1150
1189
  let m = document.createElement("div");
1151
1190
  m.className = t, m.setAttribute("aria-hidden", "true");
1152
- let h = F("svg", {
1191
+ let h = I("svg", {
1153
1192
  role: "presentation",
1154
1193
  focusable: "false"
1155
1194
  });
1156
1195
  m.appendChild(h), i.appendChild(m);
1157
- let g = c.centre ? l.filter((e) => !e.isTotal) : l, y = Math.max(0, U(g.flatMap((e) => e.cells.slice(0, u.length).map((e) => W(e.number))))), b = u.map((e, t) => l.map((e, n) => {
1158
- let i = e.cells[t] ?? e.cells[0], a = L(r, m);
1196
+ let g = c.centre ? l.filter((e) => !e.isTotal) : l, y = Math.max(0, H(g.flatMap((e) => e.cells.slice(0, u.length).map((e) => U(e.number))))), b = u.map((e, t) => l.map((e, n) => {
1197
+ let i = e.cells[t] ?? e.cells[0], a = R(r, m);
1159
1198
  return a.classList.add(...e.classes), a.dataset.value = String(i.value), i.prefix && (a.dataset.prefix = i.prefix), i.suffix && (a.dataset.suffix = i.suffix), i.missing && (a.dataset.missing = i.raw), d && (a.dataset.series = String(t + 1)), a.dataset.row = String(n + 1), a.style.setProperty("--i", String(e.slot)), a;
1160
1199
  })), S = b[0], C = p && c.totals ? l.map((e, t) => {
1161
- let n = L(r, m);
1162
- n.classList.add(...e.classes), n.dataset.kind = "total", n.dataset.row = String(t + 1), n.dataset.value = String(pe(e, u.length));
1200
+ let n = R(r, m);
1201
+ n.classList.add(...e.classes), n.dataset.kind = "total", n.dataset.row = String(t + 1), n.dataset.value = String(me(e, u.length));
1163
1202
  let i = e.cells[0];
1164
1203
  return i.prefix && (n.dataset.prefix = i.prefix), i.suffix && (n.dataset.suffix = i.suffix), n.style.setProperty("--i", String(e.slot)), n;
1165
1204
  }) : [], w = l[l.length - 1], T = u.some((e) => e.focus), E = i.getAttribute("data-chart-legend"), D = d && (E === null ? a.legend || c.legend !== void 0 : E !== "false") ? document.createElement("div") : null;
1166
1205
  D && (D.className = v, D.setAttribute("aria-hidden", "true"), D.inert = !0);
1167
1206
  let O = d ? u.map((e, t) => {
1168
- let n = L(_, D ?? m);
1207
+ let n = R(_, D ?? m);
1169
1208
  D && (n.dataset.place = "legend");
1170
1209
  let r = c.legend ?? c.swatch;
1171
- if (r && (n.dataset.swatch = r), n.textContent = e.name, !r && rt(i, a) !== "step") {
1172
- let e = Oe(u, t);
1210
+ if (r && (n.dataset.swatch = r), n.textContent = e.name, !r && it(i, a) !== "step") {
1211
+ let e = ke(u, t);
1173
1212
  n.dataset.marker = e.shape, n.toggleAttribute("data-open", e.open);
1174
1213
  }
1175
1214
  return e.line && !r && (n.dataset.line = e.line), e.key && a.langattribute && n.setAttribute(a.langattribute, e.key), n.dataset.series = String(t + 1), n.style.setProperty("--n", String(t)), n.style.setProperty("--palette", `var(--tablechart-color-${t + 1})`), n.style.setProperty("--m", T && !e.focus ? "1" : "0"), n.style.setProperty("--i", String(w.slot)), n;
1176
- }) : [], k = c.centre ? L(x, m) : null;
1215
+ }) : [], k = c.centre ? R(x, m) : null;
1177
1216
  if (k) {
1178
1217
  let e = l.find((e) => e.isTotal), t = e ? e.value : l.reduce((e, t) => e + Math.abs(t.value), 0);
1179
- k.dataset.value = String(t), e && (k.dataset.decimals = String(W(e.number)));
1218
+ k.dataset.value = String(t), e && (k.dataset.decimals = String(U(e.number)));
1180
1219
  }
1181
- let A = k && !l.some((e) => e.isTotal) ? at(i, k, a) : null, j = c.categories === "beside", M = document.createElement("div");
1220
+ let A = k && !l.some((e) => e.isTotal) ? ot(i, k, a) : null, j = c.categories === "beside", M = document.createElement("div");
1182
1221
  M.className = n, M.setAttribute("aria-hidden", "true"), M.inert = !0, j ? M.dataset.place = "beside" : c.centre && (M.dataset.place = "key"), M.style.setProperty("--tablechart-columns", String(l.length));
1183
1222
  let N = 0;
1184
1223
  for (let [e, t] of l.entries()) {
@@ -1186,21 +1225,21 @@ var Pe = (e) => e.map((e) => ({
1186
1225
  n.classList.add(...t.classes), n.textContent = t.label, t.key && a.langattribute && n.setAttribute(a.langattribute, t.key), c.centre && (n.dataset.kind = t.isTotal ? "total" : "slice", t.isTotal || (n.dataset.slice = String(N + 1), n.style.setProperty("--n", String(N)), n.style.setProperty("--palette", `var(--tablechart-color-${N + 1})`), N += 1)), n.style.setProperty("--i", String(t.slot)), n.dataset.row = String(e + 1), M.appendChild(n);
1187
1226
  }
1188
1227
  (j ? m : i).appendChild(M), D && i.appendChild(D);
1189
- let P = a.animate ? Je(i) : null;
1228
+ let P = a.animate ? Ye(i) : null;
1190
1229
  P && (i.setAttribute("data-steps", ""), i.setAttribute("data-chart-animate", "across"));
1191
- let I = i.getAttribute("data-chart-keys"), R = P && a.controls ? Ze({
1230
+ let F = i.getAttribute("data-chart-keys"), L = P && a.controls ? Qe({
1192
1231
  previous: a.previouslabel,
1193
1232
  next: a.nextlabel,
1194
1233
  hint: a.stephint
1195
1234
  }, {
1196
- previous: I && `${I}-previous`,
1197
- next: I && `${I}-next`,
1198
- hint: I && `${I}-step`
1235
+ previous: F && `${F}-previous`,
1236
+ next: F && `${F}-next`,
1237
+ hint: F && `${F}-step`
1199
1238
  }, a.langattribute) : null;
1200
- R && i.appendChild(R);
1239
+ L && i.appendChild(L);
1201
1240
  let z = Array.from(i.querySelectorAll("[data-annotation]")).map((t) => {
1202
- let n = t.getAttribute("data-annotation"), r = $e[n];
1203
- if (!r) return console.warn(`[${e}] Unknown annotation "${n}". Known annotations: ${Object.keys($e).join(", ")}.`), null;
1241
+ let n = t.getAttribute("data-annotation"), r = et[n];
1242
+ if (!r) return console.warn(`[${e}] Unknown annotation "${n}". Known annotations: ${Object.keys(et).join(", ")}.`), null;
1204
1243
  let i = Number.parseInt(t.getAttribute("data-series") ?? "1", 10), a = i >= 1 && i <= u.length ? i - 1 : 0;
1205
1244
  return i !== a + 1 && console.warn(`[${e}] An annotation reads line ${i}, which the chart does not have; it reads the first.`), {
1206
1245
  spec: t,
@@ -1236,42 +1275,42 @@ var Pe = (e) => e.map((e) => ({
1236
1275
  checks: [],
1237
1276
  plan: P,
1238
1277
  step: 0,
1239
- controls: R
1278
+ controls: L
1240
1279
  };
1241
- return R?.addEventListener("click", (e) => {
1280
+ return L?.addEventListener("click", (e) => {
1242
1281
  let t = e.target.closest("button")?.dataset.go;
1243
1282
  t && Q(B, B.step + (t === "next" ? 1 : -1));
1244
- }), Q(B, 0, !0), a.hover && i.getAttribute("data-chart-hover") !== "false" && gt(B), pt(B, a), B;
1245
- }, lt = (e) => {
1283
+ }), Q(B, 0, !0), a.hover && i.getAttribute("data-chart-hover") !== "false" && _t(B), mt(B, a), B;
1284
+ }, ut = (e) => {
1246
1285
  let t = getComputedStyle(e).getPropertyValue("--tablechart-inside-align").trim();
1247
1286
  return t === "start" || t === "center" || t === "end" ? t : null;
1248
- }, ut = (e, t, n, r) => {
1287
+ }, dt = (e, t, n, r) => {
1249
1288
  let i = getComputedStyle(e), a = (i.getPropertyValue(n).trim() || r).match(/^(\d+(?:\.\d+)?)(px|%|em|rem)$/);
1250
1289
  if (!a) return null;
1251
1290
  let o = Number(a[1]);
1252
1291
  return a[2] === "%" ? o / 100 * j : o * (a[2] === "em" ? Number.parseFloat(i.fontSize) : a[2] === "rem" ? Number.parseFloat(getComputedStyle(document.documentElement).fontSize) : 1) * t;
1253
- }, dt = (e, t) => ut(e, t, "--tablechart-bar-max", "60px") ?? Infinity, ft = (t, n) => {
1292
+ }, ft = (e, t) => dt(e, t, "--tablechart-bar-max", "60px") ?? Infinity, pt = (t, n) => {
1254
1293
  let { plot: r, svg: i, rows: a, type: o, values: s, series: c, seriesValues: l, names: u, annotations: d } = t, f = r.clientWidth;
1255
1294
  if (!f) return !1;
1256
1295
  let p = j / f, m = Number.parseFloat(t.figure.dataset.chartAspect ?? ""), h = j * (m > 0 ? m : o.aspect ?? n.aspect);
1257
1296
  r.classList.add(w);
1258
1297
  for (let e of [...l.flat(), ...t.totals]) delete e.dataset.place;
1259
- r.style.removeProperty("--tablechart-fit"), oe([
1298
+ r.style.removeProperty("--tablechart-fit"), se([
1260
1299
  ...l.flat(),
1261
1300
  ...t.totals,
1262
1301
  ...u,
1263
1302
  ...t.categories,
1264
1303
  ...d.map((e) => e.badge)
1265
1304
  ]);
1266
- let g = (s[0] ? Y(s[0]).height : 0) * p, _ = d[0]?.badge ? Y(d[0].badge).height * p : 0, v = Math.max(h, ut(t.figure, p, "--tablechart-min-height", "200px") ?? 0, o.minHeight?.({
1305
+ let g = (s[0] ? Y(s[0]).height : 0) * p, _ = d[0]?.badge ? Y(d[0].badge).height * p : 0, v = Math.max(h, dt(t.figure, p, "--tablechart-min-height", "200px") ?? 0, o.minHeight?.({
1267
1306
  labelHeight: g,
1268
- nameHeight: Math.max(0, U(t.categories.map((e) => Y(e).height))) * p,
1307
+ nameHeight: Math.max(0, H(t.categories.map((e) => Y(e).height))) * p,
1269
1308
  unit: p,
1270
1309
  rows: a.length,
1271
1310
  series: c.length,
1272
1311
  stacked: t.stacked
1273
1312
  }) ?? 0), y = t.stacked ? a.map((e) => {
1274
- let t = pe(e, c.length);
1313
+ let t = me(e, c.length);
1275
1314
  return {
1276
1315
  ...e,
1277
1316
  value: t,
@@ -1296,35 +1335,35 @@ var Pe = (e) => e.map((e) => ({
1296
1335
  series: c.length,
1297
1336
  focused: c.some((e) => e.focus),
1298
1337
  stacked: t.stacked
1299
- }, C = o.headroom?.(S) ?? g, T = 2 * p + (o.footroom?.(S) ?? 0), E = C, D = t.stacked ? Math.max(U(y.map((e) => e.value)), 0) : Math.max(U(x.flatMap((e) => [
1338
+ }, C = o.headroom?.(S) ?? g, T = 2 * p + (o.footroom?.(S) ?? 0), E = C, D = t.stacked ? Math.max(H(y.map((e) => e.value)), 0) : Math.max(H(x.flatMap((e) => [
1300
1339
  e.from,
1301
1340
  e.to,
1302
1341
  e.value
1303
- ])), U(a.flatMap((e) => e.cells.slice(0, c.length).map((e) => e.value)))), O = v - E - T, k = D * 1.02, A = d.find((e) => e.spec.getAttribute("data-annotation") === "axis-break")?.spec, M = (e) => {
1342
+ ])), H(a.flatMap((e) => e.cells.slice(0, c.length).map((e) => e.value)))), O = v - E - T, k = D * 1.02, A = d.find((e) => e.spec.getAttribute("data-annotation") === "axis-break")?.spec, M = (e) => {
1304
1343
  let t = Number.parseFloat(A?.getAttribute(e) ?? "");
1305
1344
  return Number.isFinite(t) ? t : null;
1306
- }, N = M("data-from") ?? M("data-at"), P = M("data-to"), I = null;
1345
+ }, N = M("data-from") ?? M("data-at"), P = M("data-to"), L = null;
1307
1346
  if (A && (N !== null || P !== null)) {
1308
1347
  let t = N ?? 0, n = P ?? k, r = P === null ? t : N === null ? n : (t + n) / 2, i = A.getAttribute("data-size"), a = i?.match(/^\s*(\d+(?:\.\d+)?)\s*%\s*$/);
1309
1348
  i !== null && !a && console.warn(`[${e}] data-size="${i}" is not a percentage, such as 30%. Using the default.`);
1310
1349
  let s = Math.min(Math.max(a ? Number(a[1]) / 100 : P === null ? .22 : .3, .05), .8), c = x.filter((e) => (e.kind === "up" || e.kind === "down") && Math.max(e.from, e.to) > t && Math.min(e.from, e.to) < n);
1311
- o.breakable ? t < 0 || n <= t || n > k || t === 0 && n === k ? console.warn(`[${e}] A break from ${t} to ${n} does not fit a scale that runs from 0 to ${D}.`) : c.length ? console.warn(`[${e}] A break from ${t} to ${n} would cut a step that floats. Keep it below or above the steps.`) : I = {
1350
+ o.breakable ? t < 0 || n <= t || n > k || t === 0 && n === k ? console.warn(`[${e}] A break from ${t} to ${n} does not fit a scale that runs from 0 to ${D}.`) : c.length ? console.warn(`[${e}] A break from ${t} to ${n} would cut a step that floats. Keep it below or above the steps.`) : L = {
1312
1351
  lo: t,
1313
1352
  hi: n,
1314
1353
  gap: r,
1315
1354
  share: s
1316
1355
  } : console.warn(`[${e}] This kind of chart cannot break its scale.`);
1317
1356
  }
1318
- let L = I ? I.gap : null, R = (I && ut(t.figure, p, "--tablechart-break-gap", "")) ?? 13, z = v - T, ee = (e) => z - e / k * O;
1319
- if (I) {
1320
- let { lo: e, hi: t, gap: n, share: r } = I, i = O * r, a = (O - i - R) / (e + (k - t)), o = i / (t - e);
1321
- ee = (r) => r <= e ? z - r * a : r <= n ? z - e * a - (r - e) * o : r <= t ? z - e * a - (r - e) * o - R : z - e * a - i - R - (r - t) * a;
1357
+ let R = L ? L.gap : null, z = (L && dt(t.figure, p, "--tablechart-break-gap", "")) ?? 13, B = v - T, te = (e) => B - e / k * O;
1358
+ if (L) {
1359
+ let { lo: e, hi: t, gap: n, share: r } = L, i = O * r, a = (O - i - z) / (e + (k - t)), o = i / (t - e);
1360
+ te = (r) => r <= e ? B - r * a : r <= n ? B - e * a - (r - e) * o : r <= t ? B - e * a - (r - e) * o - z : B - e * a - i - z - (r - t) * a;
1322
1361
  }
1323
- let V = u.length ? U(u.map((e) => Y(e).width)) * p + 12 * p : 0, H = t.categories[0]?.parentElement;
1324
- H && (H.style.paddingRight = V ? `${V / j * 100}%` : "");
1325
- let W = (j - V) / a.length, te = (e) => (e + .5) * W, G = (e) => e >= 0 && e < a.length ? e : null;
1326
- t.rowAt = o.centre ? null : o.categories === "beside" ? (e, t) => G(Math.floor(t * p / (v / a.length))) : (e) => G(Math.floor(e * p / W));
1327
- let K = W / j * 100, q = 100 / a.length;
1362
+ let V = u.length ? H(u.map((e) => Y(e).width)) * p + 12 * p : 0, ne = t.categories[0]?.parentElement;
1363
+ ne && (ne.style.paddingRight = V ? `${V / j * 100}%` : "");
1364
+ let U = (j - V) / a.length, W = (e) => (e + .5) * U, G = (e) => e >= 0 && e < a.length ? e : null;
1365
+ t.rowAt = o.centre ? null : o.categories === "beside" ? (e, t) => G(Math.floor(t * p / (v / a.length))) : (e) => G(Math.floor(e * p / U));
1366
+ let K = U / j * 100, q = 100 / a.length;
1328
1367
  t.rowBox = o.categories === "beside" ? (e) => [
1329
1368
  0,
1330
1369
  e * q,
@@ -1335,14 +1374,14 @@ var Pe = (e) => e.map((e) => ({
1335
1374
  0,
1336
1375
  K,
1337
1376
  100
1338
- ], i.setAttribute("viewBox", `0 0 ${j} ${v}`), i.textContent = "", t.checks = [];
1377
+ ], i.setAttribute("viewBox", `0 0 ${j} ${F(v)}`), i.textContent = "", t.checks = [];
1339
1378
  let J = {
1340
1379
  rows: a,
1341
1380
  segments: x,
1342
- cx: te,
1343
- y: ee,
1344
- barWidth: Math.min(W * n.barfill, dt(t.figure, p)),
1345
- barMax: dt(t.figure, p),
1381
+ cx: W,
1382
+ y: te,
1383
+ barWidth: Math.min(U * n.barfill, ft(t.figure, p)),
1384
+ barMax: ft(t.figure, p),
1346
1385
  height: v,
1347
1386
  unit: p,
1348
1387
  labelHeight: g,
@@ -1351,12 +1390,12 @@ var Pe = (e) => e.map((e) => ({
1351
1390
  note: 0,
1352
1391
  labels: t.figure.dataset.chartLabels === "inside" || t.figure.dataset.chartLabels !== "outside" && n.labels === "inside" ? "inside" : "outside",
1353
1392
  closing: (t.figure.dataset.chartClosing ?? n.closing) === "up" ? "up" : "down",
1354
- insideAlign: lt(t.figure),
1355
- breakAt: L,
1356
- squeeze: I,
1357
- breakGap: R,
1393
+ insideAlign: ut(t.figure),
1394
+ breakAt: R,
1395
+ squeeze: L,
1396
+ breakGap: z,
1358
1397
  stacked: t.stacked,
1359
- shape: rt(t.figure, n),
1398
+ shape: it(t.figure, n),
1360
1399
  totals: t.totals,
1361
1400
  svg: i,
1362
1401
  plot: r,
@@ -1397,15 +1436,15 @@ var Pe = (e) => e.map((e) => ({
1397
1436
  note: e + 1
1398
1437
  });
1399
1438
  }
1400
- Xe(t);
1401
- let ne = t.categories[0]?.parentElement;
1402
- return ne && o.categories !== "beside" && !o.centre && be(ne, t.categories.filter((e) => e.offsetParent !== null), (e) => ({
1439
+ Ze(t);
1440
+ let re = t.categories[0]?.parentElement;
1441
+ return re && o.categories !== "beside" && !o.centre && xe(re, t.categories.filter((e) => e.offsetParent !== null), (e) => ({
1403
1442
  size: e.scrollWidth,
1404
1443
  room: e.clientWidth
1405
- }), "--tablechart-name-fit"), B(i, d.flatMap(({ badge: e }) => {
1444
+ }), "--tablechart-name-fit"), ee(i, d.flatMap(({ badge: e }) => {
1406
1445
  if (!(e instanceof HTMLElement) || !e.offsetWidth) return [];
1407
1446
  let t = e.offsetWidth * p, n = e.offsetHeight * p, r = Number.parseFloat(e.style.left) / 100 * j, i = Number.parseFloat(e.style.top) / 100 * v, a = getComputedStyle(e).borderTopLeftRadius, o = a.endsWith("%") ? Number.parseFloat(a) / 100 : null, s = (Number.parseFloat(a) || 0) * p;
1408
- return [F("rect", {
1447
+ return [I("rect", {
1409
1448
  class: b,
1410
1449
  "data-for": "badge",
1411
1450
  "data-note": e.dataset.note ?? "",
@@ -1418,7 +1457,7 @@ var Pe = (e) => e.map((e) => ({
1418
1457
  style: ["--after", "--step"].map((t) => e.style.getPropertyValue(t) && `${t}:${e.style.getPropertyValue(t)}`).filter(Boolean).join("; ")
1419
1458
  })];
1420
1459
  }), j, v), !0;
1421
- }, pt = (e, t) => {
1460
+ }, mt = (e, t) => {
1422
1461
  let n = [
1423
1462
  ...e.seriesValues.flat(),
1424
1463
  ...e.totals,
@@ -1436,11 +1475,11 @@ var Pe = (e) => e.map((e) => ({
1436
1475
  e.className = D, e.textContent = o, r.prepend(e);
1437
1476
  }
1438
1477
  }
1439
- }, mt = (e) => {
1478
+ }, ht = (e) => {
1440
1479
  e.plot.remove(), e.categories[0]?.parentElement?.remove(), e.figure.querySelector(`:scope > .${v}`)?.remove(), e.controls?.remove();
1441
- }, ht = (e, t) => {
1480
+ }, gt = (e, t) => {
1442
1481
  e.figure.classList.toggle(O, t), t || e.plot.removeAttribute("data-pointed");
1443
- }, gt = (e) => {
1482
+ }, _t = (e) => {
1444
1483
  let { plot: t } = e, n = () => [...e.seriesValues.flat(), ...e.totals], r = (e, t) => {
1445
1484
  let n = Number(e.dataset.row), r = Number(e.dataset.rowEnd ?? n);
1446
1485
  return t >= n && t <= r;
@@ -1475,25 +1514,25 @@ var Pe = (e) => e.map((e) => ({
1475
1514
  }), document.addEventListener("pointerdown", (e) => {
1476
1515
  t.contains(e.target) || a();
1477
1516
  });
1478
- }, _t = (e) => e === "id" || e === "style" || e.startsWith("data-chart"), vt = /^\s*(?:Table)?:\s+/, yt = (e) => e?.tagName === "P" && vt.test(e.textContent ?? ""), bt = (e) => {
1517
+ }, vt = (e) => e === "id" || e === "style" || e.startsWith("data-chart"), yt = /^\s*(?:Table)?:\s+/, bt = (e) => e?.tagName === "P" && yt.test(e.textContent ?? ""), xt = (e) => {
1479
1518
  let t = document.createElement("figcaption");
1480
1519
  for (let { name: n, value: r } of Array.from(e.attributes)) t.setAttribute(n, r);
1481
1520
  let n = e.firstChild;
1482
- n?.nodeType === Node.TEXT_NODE && (n.textContent = (n.textContent ?? "").replace(vt, ""), n.textContent || n.remove());
1521
+ n?.nodeType === Node.TEXT_NODE && (n.textContent = (n.textContent ?? "").replace(yt, ""), n.textContent || n.remove());
1483
1522
  let r = Array.from(e.childNodes), i = r.findIndex((e) => e.nodeName === "BR");
1484
1523
  if (t.append(...i === -1 ? r : r.slice(0, i + 1)), i !== -1 && i < r.length - 1) {
1485
1524
  let e = document.createElement("span");
1486
1525
  e.append(...r.slice(i + 1)), t.append(e);
1487
1526
  }
1488
1527
  return e.remove(), t;
1489
- }, xt = /^\s*([a-z][\w-]*)((?:\s+[\w-]+=[^\s:]+)*)\s*(:\s*|$)/, St = (e) => {
1490
- let t = kt(e);
1528
+ }, St = /^\s*([a-z][\w-]*)((?:\s+[\w-]+=[^\s:]+)*)\s*(:\s*|$)/, Ct = (e) => {
1529
+ let t = At(e);
1491
1530
  return t?.tagName === "P" ? t : e;
1492
- }, Ct = (e) => {
1493
- let t = St(e).firstChild;
1531
+ }, wt = (e) => {
1532
+ let t = Ct(e).firstChild;
1494
1533
  if (t?.nodeType !== Node.TEXT_NODE) return null;
1495
- let n = xt.exec(t.textContent ?? "");
1496
- if (!n || !et.includes(n[1]) || !n[3] && t.nextSibling) return null;
1534
+ let n = St.exec(t.textContent ?? "");
1535
+ if (!n || !tt.includes(n[1]) || !n[3] && t.nextSibling) return null;
1497
1536
  let r = n[2].trim().split(/\s+/).filter(Boolean).map((e) => e.split("="));
1498
1537
  return {
1499
1538
  name: n[1],
@@ -1501,11 +1540,11 @@ var Pe = (e) => e.map((e) => ({
1501
1540
  text: t,
1502
1541
  length: n[0].length
1503
1542
  };
1504
- }, wt = (e) => {
1543
+ }, Tt = (e) => {
1505
1544
  if (e?.tagName !== "UL" && e?.tagName !== "OL") return null;
1506
- let t = Array.from(e.children), n = t.map((e) => e.hasAttribute("data-annotation") ? null : Ct(e));
1545
+ let t = Array.from(e.children), n = t.map((e) => e.hasAttribute("data-annotation") ? null : wt(e));
1507
1546
  return !t.length || t.some((e, t) => !n[t] && !e.hasAttribute("data-annotation")) ? null : (t.forEach((e, t) => {
1508
- let r = n[t], i = St(e);
1547
+ let r = n[t], i = Ct(e);
1509
1548
  if (i !== e && i.replaceWith(...i.childNodes), r) {
1510
1549
  e.setAttribute("data-annotation", r.name);
1511
1550
  for (let [t, n] of r.options) e.setAttribute(`data-${t}`, n);
@@ -1516,18 +1555,18 @@ var Pe = (e) => e.map((e) => ({
1516
1555
  t === 0 && e instanceof HTMLElement && e.matches("em, i") ? (n.className = d, n.append(...e.childNodes), e.replaceWith(n)) : e.nodeType === Node.TEXT_NODE && (n.textContent = (e.textContent ?? "").trim(), e.replaceWith(n));
1517
1556
  });
1518
1557
  }), e.classList.add("chart-annotations"), e);
1519
- }, Tt = (e, t) => {
1520
- for (let { name: n, value: r } of Array.from(e.attributes)) (n === "class" || _t(n)) && (t.setAttribute(n, r), e.removeAttribute(n));
1521
- }, Et = (e) => e.map((e) => {
1522
- let t = e.closest("p"), n = yt(t) ? t : e;
1558
+ }, Et = (e, t) => {
1559
+ for (let { name: n, value: r } of Array.from(e.attributes)) (n === "class" || vt(n)) && (t.setAttribute(n, r), e.removeAttribute(n));
1560
+ }, Dt = (e) => e.map((e) => {
1561
+ let t = e.closest("p"), n = bt(t) ? t : e;
1523
1562
  if (n.tagName !== "TABLE" && n.tagName !== "P") return n;
1524
1563
  let r = document.createElement("div");
1525
- Tt(e, r), e.classList.length || e.removeAttribute("class");
1526
- let i = n.tagName === "TABLE" ? n : null, a = n.previousElementSibling, o = n.nextElementSibling, s = i ? yt(a) ? a : yt(o) ? o : null : n;
1564
+ Et(e, r), e.classList.length || e.removeAttribute("class");
1565
+ let i = n.tagName === "TABLE" ? n : null, a = n.previousElementSibling, o = n.nextElementSibling, s = i ? bt(a) ? a : bt(o) ? o : null : n;
1527
1566
  i && s === o && (o = o?.nextElementSibling ?? null);
1528
- let c = o?.classList.contains("chart-annotations") ? o : wt(o);
1529
- return n.replaceWith(r), s && r.append(bt(s)), i && r.append(i), c && r.append(c), Z?.log?.(`A ${i ? "table" : "caption"} with chart attributes was wrapped in a figure of its own`), r;
1530
- }), Dt = (e, t = []) => {
1567
+ let c = o?.classList.contains("chart-annotations") ? o : Tt(o);
1568
+ return n.replaceWith(r), s && r.append(xt(s)), i && r.append(i), c && r.append(c), Z?.log?.(`A ${i ? "table" : "caption"} with chart attributes was wrapped in a figure of its own`), r;
1569
+ }), Ot = (e, t = []) => {
1531
1570
  let n = document.createElement("table");
1532
1571
  if (t.length) {
1533
1572
  let e = n.createTHead().insertRow();
@@ -1546,7 +1585,7 @@ var Pe = (e) => e.map((e) => ({
1546
1585
  for (let n of t.values ?? [t.value ?? null]) e.insertCell().textContent = n === null ? "" : String(n);
1547
1586
  }
1548
1587
  return n;
1549
- }, Ot = async (t) => {
1588
+ }, kt = async (t) => {
1550
1589
  await Promise.all(t.filter((e) => e.hasAttribute("data-chart-src")).map(async (t) => {
1551
1590
  let n = t.getAttribute("data-chart-src");
1552
1591
  for (let e of t.querySelectorAll("table")) e.remove();
@@ -1555,17 +1594,17 @@ var Pe = (e) => e.map((e) => ({
1555
1594
  if (!e.ok) throw Error(`${e.status} ${e.statusText}`);
1556
1595
  let r = await e.json(), i = Array.isArray(r) ? r : r?.rows;
1557
1596
  if (!Array.isArray(i)) throw Error("no array of rows in it");
1558
- let a = Array.isArray(r?.series) ? r.series.map(String) : [], o = t.querySelector(":scope > figcaption"), s = Dt(i, a);
1597
+ let a = Array.isArray(r?.series) ? r.series.map(String) : [], o = t.querySelector(":scope > figcaption"), s = Ot(i, a);
1559
1598
  o ? o.after(s) : t.prepend(s), Z?.log?.(`Read ${i.length} rows from "${n}"`);
1560
1599
  } catch (t) {
1561
1600
  let r = window.location.protocol === "file:";
1562
1601
  console.warn(`[${e}] Could not read the chart data in "${n}": ${t.message}.` + (r ? " A page opened from the file system cannot fetch files; open the page from a server instead." : ""));
1563
1602
  }
1564
1603
  }));
1565
- }, kt = (e) => {
1604
+ }, At = (e) => {
1566
1605
  let t = Array.from(e.childNodes).filter((e) => e.nodeType === Node.ELEMENT_NODE || e.nodeType === Node.TEXT_NODE && e.textContent?.trim());
1567
1606
  return t.length === 1 && t[0] instanceof HTMLElement ? t[0] : null;
1568
- }, At = "strong, b, span.total", jt = (e) => {
1607
+ }, jt = "strong, b, span.total", Mt = (e) => {
1569
1608
  for (let t of e) {
1570
1609
  for (let e of t.querySelectorAll("tbody tr")) {
1571
1610
  let t = e.cells[0];
@@ -1573,16 +1612,16 @@ var Pe = (e) => e.map((e) => ({
1573
1612
  let n = document.createElement("th");
1574
1613
  for (let { name: e, value: r } of Array.from(t.attributes)) n.setAttribute(e, r);
1575
1614
  n.append(...t.childNodes), t.replaceWith(n);
1576
- for (let t = kt(n); t?.matches(At); t = kt(n)) e.dataset.kind = "total", t.replaceWith(...t.childNodes);
1615
+ for (let t = At(n); t?.matches(jt); t = At(n)) e.dataset.kind = "total", t.replaceWith(...t.childNodes);
1577
1616
  }
1578
1617
  let e = Array.from(t.querySelector("thead tr:last-child")?.children ?? []);
1579
- for (let t of e.slice(1)) for (let e = kt(t); e?.matches(At); e = kt(t)) t.setAttribute("data-kind", "focus"), e.replaceWith(...e.childNodes);
1618
+ for (let t of e.slice(1)) for (let e = At(t); e?.matches(jt); e = At(t)) t.setAttribute("data-kind", "focus"), e.replaceWith(...e.childNodes);
1580
1619
  }
1581
- }, Mt = "data-chart-made", Nt = () => window.matchMedia("(prefers-reduced-motion: reduce)").matches, Pt = (e) => new Promise((t) => setTimeout(t, e)), Ft = (e, t) => {
1620
+ }, Nt = "data-chart-made", Pt = () => window.matchMedia("(prefers-reduced-motion: reduce)").matches, Ft = (e) => new Promise((t) => setTimeout(t, e)), It = (e, t) => {
1582
1621
  let n = Number.parseFloat(e.dataset.chartEntrance ?? ""), r = Number.isFinite(n) ? n : t.entrance;
1583
1622
  return Math.min(Math.max(r, 0), 1);
1584
- }, It = async (e, t) => {
1585
- if (Nt()) return;
1623
+ }, Lt = async (e, t) => {
1624
+ if (Pt()) return;
1586
1625
  await new Promise(requestAnimationFrame);
1587
1626
  let n = e.getAnimations().filter((e) => e instanceof CSSAnimation);
1588
1627
  for (let t = e.parentElement; t && t !== document.body; t = t.parentElement) n.push(...t.getAnimations());
@@ -1593,11 +1632,11 @@ var Pe = (e) => e.map((e) => ({
1593
1632
  let a = Number(n.delay ?? 0) + i * t;
1594
1633
  r = Math.max(r, a - Number(e.currentTime ?? 0));
1595
1634
  }
1596
- r > 0 && await Pt(r);
1597
- }, Lt = (e) => {
1635
+ r > 0 && await Ft(r);
1636
+ }, Rt = (e) => {
1598
1637
  for (let t = e; t && t !== document.body; t = t.parentElement) if (getComputedStyle(t).opacity === "0") return t;
1599
1638
  return null;
1600
- }, Rt = (e) => new Promise((t) => {
1639
+ }, zt = (e) => new Promise((t) => {
1601
1640
  let n = ["animationstart", "transitionrun"], r = () => {
1602
1641
  for (let e of n) document.removeEventListener(e, i, !0);
1603
1642
  a.disconnect(), t();
@@ -1611,54 +1650,54 @@ var Pe = (e) => e.map((e) => ({
1611
1650
  attributes: !0,
1612
1651
  attributeFilter: ["class", "style"]
1613
1652
  });
1614
- }), zt = /* @__PURE__ */ new Set(), $ = null, Bt = (e) => {
1615
- zt.add(e), !$ && ($ = new MutationObserver(() => {
1616
- for (let e of zt) e.relabel();
1653
+ }), Bt = /* @__PURE__ */ new Set(), $ = null, Vt = (e) => {
1654
+ Bt.add(e), !$ && ($ = new MutationObserver(() => {
1655
+ for (let e of Bt) e.relabel();
1617
1656
  requestAnimationFrame(() => requestAnimationFrame(() => {
1618
- for (let e of zt) e.refresh();
1657
+ for (let e of Bt) e.refresh();
1619
1658
  }));
1620
1659
  }), $.observe(document.documentElement, {
1621
1660
  attributes: !0,
1622
1661
  attributeFilter: ["lang"]
1623
1662
  }));
1624
- }, Vt = (e) => {
1625
- zt.delete(e), !(zt.size || !$) && ($.disconnect(), $ = null);
1626
- }, Ht = ["column", "bar"], Ut = (e) => {
1663
+ }, Ht = (e) => {
1664
+ Bt.delete(e), !(Bt.size || !$) && ($.disconnect(), $ = null);
1665
+ }, Ut = ["column", "bar"], Wt = (e) => {
1627
1666
  let t = e.getAttribute("data-chart") || "column";
1628
- if (!Ht.includes(t)) return null;
1667
+ if (!Ut.includes(t)) return null;
1629
1668
  let n = getComputedStyle(e).getPropertyValue("--tablechart-type").trim();
1630
- return Ht.includes(n) ? n : t;
1631
- }, Wt = (e, t) => {
1632
- let n = e, r = Ut(n.figure), i = null, a = !1, o = !1, s = async () => {
1633
- if (!t.animate) return ht(n, !0);
1669
+ return Ut.includes(n) ? n : t;
1670
+ }, Gt = (e, t) => {
1671
+ let n = e, r = Wt(n.figure), i = null, a = !1, o = !1, s = async () => {
1672
+ if (!t.animate) return gt(n, !0);
1634
1673
  let e = n.figure.classList.contains("is-shown");
1635
1674
  if (a && i !== null && !e && !o) {
1636
1675
  o = !0;
1637
- let e = Nt() ? null : Lt(n.figure);
1638
- e && await Rt(e), await It(n.figure, Ft(n.figure, t)), o = !1, (a || !t.replay) && ht(n, !0);
1639
- } else !a && t.replay && e && ht(n, !1);
1676
+ let e = Pt() ? null : Rt(n.figure);
1677
+ e && await zt(e), await Lt(n.figure, It(n.figure, t)), o = !1, (a || !t.replay) && gt(n, !0);
1678
+ } else !a && t.replay && e && gt(n, !1);
1640
1679
  }, c = () => {
1641
- let e = Ut(n.figure);
1680
+ let e = Wt(n.figure);
1642
1681
  if (!e || e === r) return;
1643
- let a = Z.timed("Building", n.figure, () => ct(n.figure, t, e));
1644
- a && (mt(n), Q(a, n.step, !0), n = a, r = e, i = null);
1682
+ let a = Z.timed("Building", n.figure, () => lt(n.figure, t, e));
1683
+ a && (ht(n), Q(a, n.step, !0), n = a, r = e, i = null);
1645
1684
  }, l = () => {
1646
1685
  c();
1647
1686
  let e = n.plot.clientWidth;
1648
- !e || e === i || Z.timed("Layout", n.figure, () => ft(n, t)) && (i = e, s());
1687
+ !e || e === i || Z.timed("Layout", n.figure, () => pt(n, t)) && (i = e, s());
1649
1688
  }, u = !1, d = new ResizeObserver(() => {
1650
1689
  u || (u = !0, requestAnimationFrame(() => {
1651
1690
  u = !1, l();
1652
1691
  }));
1653
1692
  }), f = new IntersectionObserver((e) => {
1654
1693
  for (let t of e) a = t.isIntersecting, s();
1655
- }, { threshold: t.threshold }), p = () => ht(n, !0), m = () => {
1694
+ }, { threshold: t.threshold }), p = () => gt(n, !0), m = () => {
1656
1695
  i = null, l();
1657
1696
  }, h = {
1658
- relabel: () => pt(n, t),
1697
+ relabel: () => mt(n, t),
1659
1698
  refresh: m
1660
1699
  };
1661
- c(), l(), d.observe(n.figure), f.observe(n.figure), window.addEventListener("beforeprint", p), Bt(h);
1700
+ c(), l(), d.observe(n.figure), f.observe(n.figure), window.addEventListener("beforeprint", p), Vt(h);
1662
1701
  let g = {
1663
1702
  figure: n.figure,
1664
1703
  refresh: m,
@@ -1672,32 +1711,32 @@ var Pe = (e) => e.map((e) => ({
1672
1711
  return n.plan?.count ?? 0;
1673
1712
  },
1674
1713
  destroy() {
1675
- d.disconnect(), f.disconnect(), window.removeEventListener("beforeprint", p), Vt(h), n.figure.tablechart === g && delete n.figure.tablechart;
1714
+ d.disconnect(), f.disconnect(), window.removeEventListener("beforeprint", p), Ht(h), n.figure.tablechart === g && delete n.figure.tablechart;
1676
1715
  }
1677
1716
  };
1678
1717
  return n.figure.tablechart = g, g;
1679
- }, Gt = async (e, t) => {
1680
- let n = Et(e.filter((e) => !e.hasAttribute(Mt)));
1681
- return await Ot(n), jt(n), Ke(n, t.langattribute), n;
1682
- }, Kt = (e, t) => {
1683
- let n = Z.timed("Building", e, () => ct(e, t));
1684
- return n ? (e.setAttribute(Mt, ""), Wt(n, t)) : null;
1685
- }, qt = async (e, t = {}) => {
1718
+ }, Kt = async (e, t) => {
1719
+ let n = Dt(e.filter((e) => !e.hasAttribute(Nt)));
1720
+ return await kt(n), Mt(n), qe(n, t.langattribute), n;
1721
+ }, qt = (e, t) => {
1722
+ let n = Z.timed("Building", e, () => lt(e, t));
1723
+ return n ? (e.setAttribute(Nt, ""), Gt(n, t)) : null;
1724
+ }, Jt = async (e, t = {}) => {
1686
1725
  if (e.tablechart) return e.tablechart;
1687
1726
  let n = {
1688
1727
  ...M,
1689
1728
  ...t
1690
1729
  };
1691
1730
  n.debug && (Z.enabled = !0);
1692
- let [r] = await Gt([e], n);
1693
- return r ? Kt(r, n) : null;
1694
- }, Jt = async (e = {}, t = document) => {
1731
+ let [r] = await Kt([e], n);
1732
+ return r ? qt(r, n) : null;
1733
+ }, Yt = async (e = {}, t = document) => {
1695
1734
  let n = {
1696
1735
  ...M,
1697
1736
  ...e
1698
1737
  };
1699
1738
  n.debug && (Z.enabled = !0);
1700
- let r = (await Gt(Array.from(t.querySelectorAll(n.selector)), n)).map((e) => Kt(e, n)).filter((e) => e !== null);
1739
+ let r = (await Kt(Array.from(t.querySelectorAll(n.selector)), n)).map((e) => qt(e, n)).filter((e) => e !== null);
1701
1740
  return Z.log(`Made ${r.length} chart(s).`), {
1702
1741
  charts: r,
1703
1742
  refresh: () => {
@@ -1709,4 +1748,4 @@ var Pe = (e) => e.map((e) => ({
1709
1748
  };
1710
1749
  };
1711
1750
  //#endregion
1712
- export { k as _, Et as a, ct as c, ht as d, mt as f, t as g, w as h, Gt as i, ft as l, Ke as m, Ft as n, Ot as o, Q as p, Jt as r, jt as s, qt as t, pt as u, O as v, M as y };
1751
+ export { k as _, Dt as a, lt as c, gt as d, ht as f, t as g, w as h, Kt as i, pt as l, qe as m, It as n, kt as o, Q as p, Yt as r, Mt as s, Jt as t, mt as u, O as v, M as y };