@silurus/ooxml 0.33.1 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t, t as n } from "./autoResize-D-Yz7Izt.js";
2
- import { t as r } from "./renderer-ChX8p6Vl.js";
2
+ import { t as r } from "./renderer-DsT75h1z.js";
3
3
  //#region packages/core/src/sparkline/renderer.ts
4
4
  function i(e, t, n) {
5
5
  let { values: r } = n;
@@ -361,7 +361,7 @@ function O(e, t, n, r, i, a) {
361
361
  if (l) e.fillStyle = l;
362
362
  else {
363
363
  let t = w(o);
364
- e.fillStyle = t >= 1 ? S(s) : te(s, c, t);
364
+ e.fillStyle = t >= 1 ? S(s) : j(s, c, t);
365
365
  }
366
366
  return e.fillRect(n, r, i, a), !0;
367
367
  }
@@ -394,17 +394,17 @@ function A(e, t, n, r, i) {
394
394
  let a = Math.max(4, Math.min(8, Math.min(r, i) * .18));
395
395
  e.save(), e.fillStyle = "#D40000", e.beginPath(), e.moveTo(t + r - a, n), e.lineTo(t + r, n), e.lineTo(t + r, n + a), e.closePath(), e.fill(), e.restore();
396
396
  }
397
- function te(e, t, n) {
397
+ function j(e, t, n) {
398
398
  let r = e.replace("#", ""), i = t.replace("#", ""), a = parseInt(r.slice(0, 2), 16), o = parseInt(r.slice(2, 4), 16), s = parseInt(r.slice(4, 6), 16), c = parseInt(i.slice(0, 2), 16), l = parseInt(i.slice(2, 4), 16), u = parseInt(i.slice(4, 6), 16), d = Math.min(1, Math.max(0, n));
399
399
  return `rgb(${Math.round(a * d + c * (1 - d))},${Math.round(o * d + l * (1 - d))},${Math.round(s * d + u * (1 - d))})`;
400
400
  }
401
- function ne(e, t = 1) {
401
+ function M(e, t = 1) {
402
402
  return `${e.italic ? "italic " : ""}${e.bold ? "bold " : ""}${Math.max(1, Math.round(e.size * h * t))}px ${e.name ? `"${e.name}", ${f}` : f}`;
403
403
  }
404
- function re(e, t, n, r, i, a) {
404
+ function N(e, t, n, r, i, a) {
405
405
  e.save(), e.strokeStyle = i, e.lineWidth = .5, e.beginPath(), a ? (e.moveTo(t, r - 1), e.lineTo(n, r - 1), e.moveTo(t, r + 1), e.lineTo(n, r + 1)) : (e.moveTo(t, r), e.lineTo(n, r)), e.stroke(), e.restore();
406
406
  }
407
- function j(e, t) {
407
+ function P(e, t) {
408
408
  let n = t.font;
409
409
  return n ? {
410
410
  bold: n.bold,
@@ -418,7 +418,7 @@ function j(e, t) {
418
418
  vertAlign: n.vertAlign
419
419
  } : e;
420
420
  }
421
- function ie(e, t) {
421
+ function te(e, t) {
422
422
  let n = e.cellXfs[t] ?? e.cellXfs[0] ?? {
423
423
  fontId: 0,
424
424
  fillId: 0,
@@ -452,7 +452,7 @@ function ie(e, t) {
452
452
  xf: n
453
453
  };
454
454
  }
455
- function M(e) {
455
+ function F(e) {
456
456
  switch (e.type) {
457
457
  case "empty": return "";
458
458
  case "text": return e.text;
@@ -461,15 +461,15 @@ function M(e) {
461
461
  case "error": return e.error;
462
462
  }
463
463
  }
464
- function N(e, t, n) {
464
+ function I(e, t, n) {
465
465
  let r = t.cellXfs[e.styleIndex ?? 0]?.numFmtId ?? 0, i = t.numFmts?.find((e) => e.numFmtId === r)?.formatCode ?? null, a = n?.numFmtId ?? r, o = n?.formatCode ?? i;
466
466
  if (e.value.type !== "number") {
467
- let t = M(e.value);
468
- return o ? P(t, o) : t;
467
+ let t = F(e.value);
468
+ return o ? L(t, o) : t;
469
469
  }
470
- return oe(F(e.formula) ?? e.value.number, a, o);
470
+ return ae(R(e.formula) ?? e.value.number, a, o);
471
471
  }
472
- function P(e, t) {
472
+ function L(e, t) {
473
473
  let n = t.split(";");
474
474
  if (n.length < 4) return e;
475
475
  let r = n[3];
@@ -488,12 +488,12 @@ function P(e, t) {
488
488
  }
489
489
  return i;
490
490
  }
491
- function F(e) {
491
+ function R(e) {
492
492
  if (!e) return null;
493
493
  let t = e.trim().replace(/^=/, "").toUpperCase().replace(/\s+/g, "");
494
- return t === "TODAY()" ? nt() : t === "NOW()" ? rt() : null;
494
+ return t === "TODAY()" ? tt() : t === "NOW()" ? nt() : null;
495
495
  }
496
- var I = {
496
+ var z = {
497
497
  14: "m/d/yyyy",
498
498
  15: "d-mmm-yy",
499
499
  16: "d-mmm",
@@ -517,7 +517,7 @@ var I = {
517
517
  56: "m\"月\"d\"日\"",
518
518
  57: "[$-411]ge.m.d",
519
519
  58: "[$-411]ggge\"年\"m\"月\"d\"日\""
520
- }, L = [
520
+ }, B = [
521
521
  "January",
522
522
  "February",
523
523
  "March",
@@ -530,7 +530,7 @@ var I = {
530
530
  "October",
531
531
  "November",
532
532
  "December"
533
- ], R = [
533
+ ], V = [
534
534
  "Sunday",
535
535
  "Monday",
536
536
  "Tuesday",
@@ -538,7 +538,7 @@ var I = {
538
538
  "Thursday",
539
539
  "Friday",
540
540
  "Saturday"
541
- ], z = [
541
+ ], ne = [
542
542
  "日",
543
543
  "月",
544
544
  "火",
@@ -546,7 +546,7 @@ var I = {
546
546
  "木",
547
547
  "金",
548
548
  "土"
549
- ], B = [
549
+ ], re = [
550
550
  "日曜日",
551
551
  "月曜日",
552
552
  "火曜日",
@@ -554,7 +554,7 @@ var I = {
554
554
  "木曜日",
555
555
  "金曜日",
556
556
  "土曜日"
557
- ], V = [
557
+ ], H = [
558
558
  {
559
559
  start: new Date(Date.UTC(2019, 4, 1)),
560
560
  abbr: "R",
@@ -586,14 +586,14 @@ var I = {
586
586
  long: "明治"
587
587
  }
588
588
  ];
589
- function H(e) {
590
- for (let t of V) if (e.getTime() >= t.start.getTime()) return {
589
+ function U(e) {
590
+ for (let t of H) if (e.getTime() >= t.start.getTime()) return {
591
591
  abbr: t.abbr,
592
592
  short: t.short,
593
593
  long: t.long,
594
594
  year: e.getUTCFullYear() - t.start.getUTCFullYear() + 1
595
595
  };
596
- let t = V[V.length - 1];
596
+ let t = H[H.length - 1];
597
597
  return {
598
598
  abbr: t.abbr,
599
599
  short: t.short,
@@ -601,11 +601,11 @@ function H(e) {
601
601
  year: e.getUTCFullYear()
602
602
  };
603
603
  }
604
- function ae(e) {
604
+ function ie(e) {
605
605
  return /* @__PURE__ */ new Date((e - 25569) * 86400 * 1e3);
606
606
  }
607
- function U(e, t) {
608
- let n = ae(e), r = n.getUTCFullYear(), i = n.getUTCMonth() + 1, a = n.getUTCDate(), o = n.getUTCDay(), s = n.getUTCHours(), c = n.getUTCMinutes(), l = n.getUTCSeconds(), u = t.split(";")[0], d = /am\/pm|a\/p/i.test(u), f = null, p = () => f ??= H(n), m = "", h = 0, g = !1;
607
+ function W(e, t) {
608
+ let n = ie(e), r = n.getUTCFullYear(), i = n.getUTCMonth() + 1, a = n.getUTCDate(), o = n.getUTCDay(), s = n.getUTCHours(), c = n.getUTCMinutes(), l = n.getUTCSeconds(), u = t.split(";")[0], d = /am\/pm|a\/p/i.test(u), f = null, p = () => f ??= U(n), m = "", h = 0, g = !1;
609
609
  for (; h < u.length;) {
610
610
  let t = u[h];
611
611
  if (t === "\"") {
@@ -633,11 +633,11 @@ function U(e, t) {
633
633
  let e = 0;
634
634
  for (; h < u.length && u[h].toLowerCase() === "m";) e++, h++;
635
635
  let t = u.slice(h).replace(/\[[^\]]*\]/g, "");
636
- g || /^:s/i.test(t) ? m += e >= 2 ? String(c).padStart(2, "0") : String(c) : e === 1 ? m += String(i) : e === 2 ? m += String(i).padStart(2, "0") : e === 3 ? m += L[i - 1].slice(0, 3) : e === 4 ? m += L[i - 1] : m += L[i - 1][0], g = !1;
636
+ g || /^:s/i.test(t) ? m += e >= 2 ? String(c).padStart(2, "0") : String(c) : e === 1 ? m += String(i) : e === 2 ? m += String(i).padStart(2, "0") : e === 3 ? m += B[i - 1].slice(0, 3) : e === 4 ? m += B[i - 1] : m += B[i - 1][0], g = !1;
637
637
  } else if (t === "d" || t === "D") {
638
638
  let e = 0;
639
639
  for (; h < u.length && u[h].toLowerCase() === "d";) e++, h++;
640
- e === 1 ? m += String(a) : e === 2 ? m += String(a).padStart(2, "0") : e === 3 ? m += R[o].slice(0, 3) : m += R[o], g = !1;
640
+ e === 1 ? m += String(a) : e === 2 ? m += String(a).padStart(2, "0") : e === 3 ? m += V[o].slice(0, 3) : m += V[o], g = !1;
641
641
  } else if (t === "h" || t === "H") {
642
642
  let e = 0;
643
643
  for (; h < u.length && u[h].toLowerCase() === "h";) e++, h++;
@@ -664,48 +664,48 @@ function U(e, t) {
664
664
  m += e >= 2 ? String(t).padStart(2, "0") : String(t), g = !1;
665
665
  } else if (t === "A" || t === "a") {
666
666
  let e = u.slice(h).toUpperCase();
667
- e.startsWith("AAAA") ? (m += B[o], h += 4) : e.startsWith("AAA") ? (m += z[o], h += 3) : e.startsWith("AM/PM") ? (m += s < 12 ? "AM" : "PM", h += 5) : e.startsWith("A/P") ? (m += s < 12 ? "A" : "P", h += 3) : (m += t, h++), g = !1;
667
+ e.startsWith("AAAA") ? (m += re[o], h += 4) : e.startsWith("AAA") ? (m += ne[o], h += 3) : e.startsWith("AM/PM") ? (m += s < 12 ? "AM" : "PM", h += 5) : e.startsWith("A/P") ? (m += s < 12 ? "A" : "P", h += 3) : (m += t, h++), g = !1;
668
668
  } else m += t, h++, t !== ":" && t !== "/" && t !== "-" && t !== "." && t !== " " && (g = !1);
669
669
  }
670
670
  return m;
671
671
  }
672
- function W(e) {
672
+ function G(e) {
673
673
  if (/\[[hms]+\]/i.test(e)) return !0;
674
674
  let t = e.replace(/"[^"]*"/g, "").replace(/\[[^\]]*\]/g, "");
675
675
  return /[yd]/i.test(t) || /a{3,}/i.test(t);
676
676
  }
677
- function oe(e, t, n) {
678
- let r = I[t];
679
- if (r) return U(e, r);
680
- if (n) return W(n) ? U(e, n) : ue(e, n);
677
+ function ae(e, t, n) {
678
+ let r = z[t];
679
+ if (r) return W(e, r);
680
+ if (n) return G(n) ? W(e, n) : le(e, n);
681
681
  switch (t) {
682
682
  case 0: return String(e);
683
683
  case 1: return Math.round(e).toString();
684
684
  case 2: return e.toFixed(2);
685
- case 3: return se(e, 0);
686
- case 4: return se(e, 2);
685
+ case 3: return oe(e, 0);
686
+ case 4: return oe(e, 2);
687
687
  case 9: return Math.round(e * 100) + "%";
688
688
  case 10: return (e * 100).toFixed(2) + "%";
689
689
  case 11: return e.toExponential(2);
690
690
  case 37:
691
- case 38: return se(e, 0);
691
+ case 38: return oe(e, 0);
692
692
  case 39:
693
- case 40: return se(e, 2);
693
+ case 40: return oe(e, 2);
694
694
  case 49: return String(e);
695
695
  default: return String(e);
696
696
  }
697
697
  }
698
- function se(e, t) {
698
+ function oe(e, t) {
699
699
  return e.toLocaleString("en-US", {
700
700
  minimumFractionDigits: t,
701
701
  maximumFractionDigits: t
702
702
  });
703
703
  }
704
- function G(e) {
704
+ function K(e) {
705
705
  let t = e.match(/\.([0#]+)/);
706
706
  return t ? t[1].length : 0;
707
707
  }
708
- function ce(e) {
708
+ function se(e) {
709
709
  let t = [], n = "", r = !1, i = !1, a = (e) => {
710
710
  if (!e) return;
711
711
  let n = t[t.length - 1];
@@ -742,39 +742,39 @@ function ce(e) {
742
742
  numSpec: n
743
743
  };
744
744
  }
745
- function le(e, t) {
746
- let n = t.includes(",") && /[#0]/.test(t), r = G(t);
747
- return n ? se(e, r) : t.includes(".") ? e.toFixed(r) : /[#0?]/.test(t) ? Math.round(e).toString() : String(e);
745
+ function ce(e, t) {
746
+ let n = t.includes(",") && /[#0]/.test(t), r = K(t);
747
+ return n ? oe(e, r) : t.includes(".") ? e.toFixed(r) : /[#0?]/.test(t) ? Math.round(e).toString() : String(e);
748
748
  }
749
- function ue(e, t) {
749
+ function le(e, t) {
750
750
  let n = t.split(";"), r;
751
751
  r = e > 0 ? n[0] : e < 0 ? n.length > 1 ? n[1] : n[0] : n.length > 2 ? n[2] : n[0];
752
- let { tokens: i, numSpec: a } = ce(r), o = i.some((e) => e.kind === "percent"), s = i.find((e) => e.kind === "sci"), c = e;
752
+ let { tokens: i, numSpec: a } = se(r), o = i.some((e) => e.kind === "percent"), s = i.find((e) => e.kind === "sci"), c = e;
753
753
  o && (c *= 100);
754
754
  let l, u = "";
755
755
  if (s) {
756
- let e = G(a), [t, n] = c.toExponential(e).split("e");
756
+ let e = K(a), [t, n] = c.toExponential(e).split("e");
757
757
  l = t;
758
758
  let r = parseInt(n, 10);
759
759
  u = (r < 0 ? "-" : s.expSign ? "+" : "") + String(Math.abs(r)).padStart(2, "0");
760
- } else l = le(c, a);
760
+ } else l = ce(c, a);
761
761
  let d = "", f = !1;
762
762
  for (let e of i) e.kind === "lit" ? d += e.text : e.kind === "percent" ? d += "%" : e.kind === "num" ? (d += l, f = !0) : e.kind === "sci" && (d += "E" + u);
763
763
  return !f && (a.length > 0 || s) && (d += l), d;
764
764
  }
765
- function de(e, t, n) {
765
+ function ue(e, t, n) {
766
766
  let r = [];
767
- for (let i of t.split("\n")) r.push(...K(e, i, n));
767
+ for (let i of t.split("\n")) r.push(...q(e, i, n));
768
768
  return r;
769
769
  }
770
- function fe(e) {
770
+ function de(e) {
771
771
  return e >= 12288 && e <= 40959 || e >= 63744 && e <= 64255 || e >= 44032 && e <= 55215 || e >= 65280 && e <= 65519;
772
772
  }
773
- function K(e, t, n) {
773
+ function q(e, t, n) {
774
774
  let r = [], i = [], a = 0;
775
775
  for (; a < t.length;) {
776
776
  let e = t[a], n = e.codePointAt(0) ?? 0;
777
- if (fe(n)) i.push(e), a += n > 65535 ? 2 : 1;
777
+ if (de(n)) i.push(e), a += n > 65535 ? 2 : 1;
778
778
  else if (e === " ") {
779
779
  let e = a;
780
780
  for (; e < t.length && t[e] === " ";) e++;
@@ -783,7 +783,7 @@ function K(e, t, n) {
783
783
  let e = a;
784
784
  for (; e < t.length;) {
785
785
  let n = t[e], r = n.codePointAt(0) ?? 0;
786
- if (n === " " || fe(r)) break;
786
+ if (n === " " || de(r)) break;
787
787
  e += r > 65535 ? 2 : 1;
788
788
  }
789
789
  i.push(t.slice(a, e)), a = e;
@@ -800,7 +800,7 @@ function K(e, t, n) {
800
800
  }
801
801
  return r.push(o), r;
802
802
  }
803
- function pe(e, t, n, r, i) {
803
+ function fe(e, t, n, r, i) {
804
804
  let a = [], o = [], s = 0, c = 0, l = () => {
805
805
  o.length !== 0 && (a.push({
806
806
  segments: o,
@@ -808,7 +808,7 @@ function pe(e, t, n, r, i) {
808
808
  }), o = [], s = 0, c = 0);
809
809
  }, u = (t, n) => {
810
810
  if (!t) return;
811
- e.font = ne(n, r);
811
+ e.font = M(n, r);
812
812
  let a = e.measureText(t).width;
813
813
  o.length > 0 && s + a > i && l(), o.push({
814
814
  text: t,
@@ -817,7 +817,7 @@ function pe(e, t, n, r, i) {
817
817
  }), s += a, n.size > c && (c = n.size);
818
818
  }, d = (e) => e >= 12288 && e <= 40959 || e >= 63744 && e <= 64255 || e >= 44032 && e <= 55215 || e >= 65280 && e <= 65519;
819
819
  for (let e of t) {
820
- let t = j(n, e), r = [], i = 0;
820
+ let t = P(n, e), r = [], i = 0;
821
821
  for (; i < e.text.length;) {
822
822
  let t = e.text[i], n = t.codePointAt(0) ?? 0;
823
823
  if (n === 10) r.push("\n"), i += 1;
@@ -840,7 +840,7 @@ function pe(e, t, n, r, i) {
840
840
  }
841
841
  return l(), a;
842
842
  }
843
- function me(e) {
843
+ function pe(e) {
844
844
  let t = "";
845
845
  for (; e > 0;) {
846
846
  let n = (e - 1) % 26;
@@ -848,22 +848,22 @@ function me(e) {
848
848
  }
849
849
  return t;
850
850
  }
851
- function he(e, t, n) {
851
+ function me(e, t, n) {
852
852
  for (let r of e) if (t >= r.top && t <= r.bottom && n >= r.left && n <= r.right) return !0;
853
853
  return !1;
854
854
  }
855
- function ge(e) {
855
+ function he(e) {
856
856
  return e && e.value.type === "number" ? e.value.number : null;
857
857
  }
858
- function _e(e) {
858
+ function ge(e) {
859
859
  return e && e.value.type === "text" ? e.value.text : null;
860
860
  }
861
- function ve(e, t) {
861
+ function _e(e, t) {
862
862
  let n = [];
863
- for (let r of e.rows) for (let e of r.cells) e.value.type === "number" && he(t, e.row, e.col) && n.push(e.value.number);
863
+ for (let r of e.rows) for (let e of r.cells) e.value.type === "number" && me(t, e.row, e.col) && n.push(e.value.number);
864
864
  return n;
865
865
  }
866
- function ye(e, t) {
866
+ function ve(e, t) {
867
867
  let n = t.length ? Math.min(...t) : 0, r = t.length ? Math.max(...t) : 0, i = e.value == null ? NaN : parseFloat(e.value);
868
868
  switch (e.kind) {
869
869
  case "min": return n;
@@ -881,20 +881,20 @@ function ye(e, t) {
881
881
  default: return isNaN(i) ? 0 : i;
882
882
  }
883
883
  }
884
- function be(e) {
884
+ function ye(e) {
885
885
  let t = [], n = /* @__PURE__ */ new Map();
886
886
  for (let t of e.rows) for (let e of t.cells) n.set(`${e.row}:${e.col}`, e);
887
887
  let r = /* @__PURE__ */ new Map();
888
888
  for (let t of e.definedNames ?? []) r.set(t.name, t);
889
889
  for (let n of e.conditionalFormats ?? []) {
890
- let r = ve(e, n.sqref);
890
+ let r = _e(e, n.sqref);
891
891
  for (let e of n.rules) {
892
892
  let i = {
893
893
  rule: e,
894
894
  sqref: n.sqref
895
895
  };
896
- if (e.type === "colorScale") i.scaleStops = e.stops.map((e) => ye(e, r));
897
- else if (e.type === "dataBar") i.barMin = ye(e.min, r), i.barMax = ye(e.max, r);
896
+ if (e.type === "colorScale") i.scaleStops = e.stops.map((e) => ve(e, r));
897
+ else if (e.type === "dataBar") i.barMin = ve(e.min, r), i.barMax = ve(e.max, r);
898
898
  else if (e.type === "top10") {
899
899
  let t = [...r].sort((e, t) => e - t), n = t.length;
900
900
  if (n > 0) {
@@ -905,7 +905,7 @@ function be(e) {
905
905
  } else i.top10Threshold = e.top ? t[Math.max(0, n - r)] : t[Math.min(n - 1, r - 1)];
906
906
  i.top10IsTop = e.top;
907
907
  }
908
- } else e.type === "aboveAverage" ? r.length > 0 && (i.avgValue = r.reduce((e, t) => e + t, 0) / r.length, i.avgIsAbove = e.aboveAverage) : e.type === "iconSet" && (i.iconThresholds = e.cfvos.map((e) => ye(e, r)));
908
+ } else e.type === "aboveAverage" ? r.length > 0 && (i.avgValue = r.reduce((e, t) => e + t, 0) / r.length, i.avgIsAbove = e.aboveAverage) : e.type === "iconSet" && (i.iconThresholds = e.cfvos.map((e) => ve(e, r)));
909
909
  t.push(i);
910
910
  }
911
911
  }
@@ -916,7 +916,7 @@ function be(e) {
916
916
  definedNames: r
917
917
  };
918
918
  }
919
- function xe(e, t, n) {
919
+ function be(e, t, n) {
920
920
  switch (t) {
921
921
  case "greaterThan": return e > (n[0] ?? 0);
922
922
  case "greaterThanOrEqual": return e >= (n[0] ?? 0);
@@ -929,13 +929,13 @@ function xe(e, t, n) {
929
929
  default: return !1;
930
930
  }
931
931
  }
932
- function Se(e) {
932
+ function xe(e) {
933
933
  let t = e.trim();
934
934
  if (t.length >= 2 && t.startsWith("\"") && t.endsWith("\"")) return { text: t.slice(1, -1).replace(/""/g, "\"") };
935
935
  let n = parseFloat(t);
936
936
  return isNaN(n) ? { text: t } : { num: n };
937
937
  }
938
- function Ce(e, t, n) {
938
+ function Se(e, t, n) {
939
939
  let r = n[0] ?? "", i = n[1] ?? "", a = (e) => e.toLowerCase();
940
940
  switch (t) {
941
941
  case "equal": return a(e) === a(r);
@@ -949,21 +949,21 @@ function Ce(e, t, n) {
949
949
  default: return !1;
950
950
  }
951
951
  }
952
- function we(e, t, n) {
952
+ function Ce(e, t, n) {
953
953
  let r = e.replace("#", ""), i = t.replace("#", ""), a = parseInt(r.slice(0, 2), 16), o = parseInt(r.slice(2, 4), 16), s = parseInt(r.slice(4, 6), 16), c = parseInt(i.slice(0, 2), 16), l = parseInt(i.slice(2, 4), 16), u = parseInt(i.slice(4, 6), 16), d = Math.round(a + (c - a) * n), f = Math.round(o + (l - o) * n), p = Math.round(s + (u - s) * n);
954
954
  return `#${d.toString(16).padStart(2, "0").toUpperCase()}${f.toString(16).padStart(2, "0").toUpperCase()}${p.toString(16).padStart(2, "0").toUpperCase()}`;
955
955
  }
956
- function Te(e, t, n) {
956
+ function we(e, t, n) {
957
957
  if (!t.length) return "#FFFFFF";
958
958
  if (e <= n[0]) return t[0].color;
959
959
  if (e >= n[n.length - 1]) return t[t.length - 1].color;
960
960
  for (let r = 1; r < n.length; r++) if (e <= n[r]) {
961
961
  let i = n[r - 1], a = n[r], o = a === i ? 0 : (e - i) / (a - i);
962
- return we(t[r - 1].color, t[r].color, o);
962
+ return Ce(t[r - 1].color, t[r].color, o);
963
963
  }
964
964
  return t[t.length - 1].color;
965
965
  }
966
- function Ee(e, t) {
966
+ function Te(e, t) {
967
967
  if (t && (t.fill && !e.fill && (e.fill = t.fill), t.font?.color && e.fontColor == null && (e.fontColor = t.font.color), t.font?.bold && e.fontBold == null && (e.fontBold = !0), t.font?.italic && e.fontItalic == null && (e.fontItalic = !0), t.font?.underline && e.fontUnderline == null && (e.fontUnderline = !0), t.font?.strike && e.fontStrike == null && (e.fontStrike = !0), t.numFmt && e.numFmt == null && (e.numFmt = {
968
968
  numFmtId: t.numFmt.numFmtId,
969
969
  formatCode: t.numFmt.formatCode || null
@@ -979,16 +979,16 @@ function Ee(e, t) {
979
979
  };
980
980
  }
981
981
  }
982
- function De(e, t, n, r, i) {
982
+ function Ee(e, t, n, r, i) {
983
983
  let a = {};
984
984
  if (!r.compiled.length) return a;
985
985
  for (let o of r.compiled) {
986
- if (!he(o.sqref, t, n)) continue;
987
- let s = o.rule, c = ge(e);
986
+ if (!me(o.sqref, t, n)) continue;
987
+ let s = o.rule, c = he(e);
988
988
  if (s.type === "expression") {
989
989
  let e = o.sqref[0];
990
990
  if (!e) continue;
991
- if (ke(s.formula, {
991
+ if (Oe(s.formula, {
992
992
  row: t,
993
993
  col: n,
994
994
  anchorRow: e.top,
@@ -996,18 +996,18 @@ function De(e, t, n, r, i) {
996
996
  cellIndex: r.cellIndex,
997
997
  definedNames: r.definedNames,
998
998
  depth: 0
999
- }) && (Ee(a, s.dxfId == null ? null : i[s.dxfId]), s.stopIfTrue)) break;
999
+ }) && (Te(a, s.dxfId == null ? null : i[s.dxfId]), s.stopIfTrue)) break;
1000
1000
  continue;
1001
1001
  }
1002
1002
  if (s.type === "cellIs") {
1003
- let t = s.formulas.map(Se), n = _e(e), r = !1;
1004
- c != null && t.every((e) => e.num != null) ? r = xe(c, s.operator, t.map((e) => e.num)) : n != null && t.every((e) => e.text != null) && (r = Ce(n, s.operator, t.map((e) => e.text))), r && Ee(a, s.dxfId == null ? null : i[s.dxfId]);
1003
+ let t = s.formulas.map(xe), n = ge(e), r = !1;
1004
+ c != null && t.every((e) => e.num != null) ? r = be(c, s.operator, t.map((e) => e.num)) : n != null && t.every((e) => e.text != null) && (r = Se(n, s.operator, t.map((e) => e.text))), r && Te(a, s.dxfId == null ? null : i[s.dxfId]);
1005
1005
  } else if (s.type === "top10") {
1006
1006
  if (c == null || o.top10Threshold == null) continue;
1007
- (o.top10IsTop ? c >= o.top10Threshold : c <= o.top10Threshold) && Ee(a, s.dxfId == null ? null : i[s.dxfId]);
1007
+ (o.top10IsTop ? c >= o.top10Threshold : c <= o.top10Threshold) && Te(a, s.dxfId == null ? null : i[s.dxfId]);
1008
1008
  } else if (s.type === "aboveAverage") {
1009
1009
  if (c == null || o.avgValue == null) continue;
1010
- (o.avgIsAbove ? c > o.avgValue : c < o.avgValue) && Ee(a, s.dxfId == null ? null : i[s.dxfId]);
1010
+ (o.avgIsAbove ? c > o.avgValue : c < o.avgValue) && Te(a, s.dxfId == null ? null : i[s.dxfId]);
1011
1011
  } else if (s.type === "iconSet") {
1012
1012
  if (c == null || !o.iconThresholds?.length) continue;
1013
1013
  let e = o.iconThresholds, t = e.length, n = 0;
@@ -1024,7 +1024,7 @@ function De(e, t, n, r, i) {
1024
1024
  };
1025
1025
  } else if (s.type === "colorScale") {
1026
1026
  if (c == null || !o.scaleStops || a.fill) continue;
1027
- let e = Te(c, s.stops, o.scaleStops);
1027
+ let e = we(c, s.stops, o.scaleStops);
1028
1028
  a.fill = {
1029
1029
  patternType: "solid",
1030
1030
  fgColor: e,
@@ -1042,37 +1042,37 @@ function De(e, t, n, r, i) {
1042
1042
  }
1043
1043
  return a;
1044
1044
  }
1045
- function q(e) {
1045
+ function J(e) {
1046
1046
  return Array.isArray(e) ? e : [e];
1047
1047
  }
1048
- function J(e) {
1048
+ function Y(e) {
1049
1049
  return Array.isArray(e) ? e[0] ?? 0 : e;
1050
1050
  }
1051
- var Oe = 8;
1052
- function ke(e, t) {
1051
+ var De = 8;
1052
+ function Oe(e, t) {
1053
1053
  try {
1054
- return Ae(Ie(e, t));
1054
+ return ke(Fe(e, t));
1055
1055
  } catch {
1056
1056
  return !1;
1057
1057
  }
1058
1058
  }
1059
- function Ae(e) {
1060
- let t = J(e);
1059
+ function ke(e) {
1060
+ let t = Y(e);
1061
1061
  return typeof t == "boolean" ? t : typeof t == "number" ? t !== 0 : typeof t == "string" ? t.length > 0 && t.toUpperCase() !== "FALSE" : !1;
1062
1062
  }
1063
- function Y(e) {
1064
- let t = J(e);
1063
+ function X(e) {
1064
+ let t = Y(e);
1065
1065
  if (typeof t == "number") return t;
1066
1066
  if (typeof t == "boolean") return +!!t;
1067
1067
  if (t == null) return 0;
1068
1068
  let n = parseFloat(String(t));
1069
1069
  return isNaN(n) ? 0 : n;
1070
1070
  }
1071
- function X(e) {
1072
- let t = J(e);
1071
+ function Z(e) {
1072
+ let t = Y(e);
1073
1073
  return t == null ? "" : typeof t == "boolean" ? t ? "TRUE" : "FALSE" : String(t);
1074
1074
  }
1075
- var je = new Set([
1075
+ var Ae = new Set([
1076
1076
  "<",
1077
1077
  ">",
1078
1078
  "=",
@@ -1084,7 +1084,7 @@ var je = new Set([
1084
1084
  "^",
1085
1085
  "%"
1086
1086
  ]);
1087
- function Me(e) {
1087
+ function je(e) {
1088
1088
  let t = [], n = 0, r = e;
1089
1089
  for (; n < r.length;) {
1090
1090
  let e = r[n];
@@ -1145,7 +1145,7 @@ function Me(e) {
1145
1145
  }), n = e;
1146
1146
  continue;
1147
1147
  }
1148
- if (je.has(e)) {
1148
+ if (Ae.has(e)) {
1149
1149
  (e === "<" || e === ">") && (r[n + 1] === "=" || e === "<" && r[n + 1] === ">") ? (t.push({
1150
1150
  kind: "op",
1151
1151
  text: r.slice(n, n + 2)
@@ -1155,12 +1155,12 @@ function Me(e) {
1155
1155
  }), n++);
1156
1156
  continue;
1157
1157
  }
1158
- if (e === "$" || Ne(e)) {
1158
+ if (e === "$" || Me(e)) {
1159
1159
  let e = n;
1160
- for (; e < r.length && (r[e] === "$" || Pe(r[e]));) e++;
1160
+ for (; e < r.length && (r[e] === "$" || Ne(r[e]));) e++;
1161
1161
  let i = r.slice(n, e);
1162
1162
  n = e;
1163
- let a = Fe(i);
1163
+ let a = Pe(i);
1164
1164
  if (a) t.push({
1165
1165
  kind: "ref",
1166
1166
  text: i,
@@ -1182,13 +1182,13 @@ function Me(e) {
1182
1182
  }
1183
1183
  return t;
1184
1184
  }
1185
- function Ne(e) {
1185
+ function Me(e) {
1186
1186
  return e >= "A" && e <= "Z" || e >= "a" && e <= "z" || e === "_";
1187
1187
  }
1188
- function Pe(e) {
1189
- return Ne(e) || e >= "0" && e <= "9" || e === ".";
1188
+ function Ne(e) {
1189
+ return Me(e) || e >= "0" && e <= "9" || e === ".";
1190
1190
  }
1191
- function Fe(e) {
1191
+ function Pe(e) {
1192
1192
  let t = 0, n = !1, r = !1;
1193
1193
  e[t] === "$" && (n = !0, t++);
1194
1194
  let i = t;
@@ -1208,43 +1208,43 @@ function Fe(e) {
1208
1208
  row: s
1209
1209
  };
1210
1210
  }
1211
- function Ie(e, t) {
1212
- return Re({
1213
- toks: Me(e),
1211
+ function Fe(e, t) {
1212
+ return Le({
1213
+ toks: je(e),
1214
1214
  pos: 0
1215
1215
  }, t);
1216
1216
  }
1217
- function Le(e) {
1217
+ function Ie(e) {
1218
1218
  return e.toks[e.pos];
1219
1219
  }
1220
- function Z(e) {
1220
+ function Q(e) {
1221
1221
  return e.toks[e.pos++];
1222
1222
  }
1223
- function Re(e, t) {
1224
- return ze(e, t);
1223
+ function Le(e, t) {
1224
+ return Re(e, t);
1225
1225
  }
1226
- function ze(e, t) {
1227
- let n = Be(e, t), r = Le(e);
1226
+ function Re(e, t) {
1227
+ let n = ze(e, t), r = Ie(e);
1228
1228
  if (r && r.kind === "op" && (r.text === "<" || r.text === ">" || r.text === "<=" || r.text === ">=" || r.text === "=" || r.text === "<>")) {
1229
- Z(e);
1230
- let i = Be(e, t);
1231
- return Ve(r.text, n, i);
1229
+ Q(e);
1230
+ let i = ze(e, t);
1231
+ return Be(r.text, n, i);
1232
1232
  }
1233
1233
  return n;
1234
1234
  }
1235
- function Be(e, t) {
1236
- let n = He(e, t);
1235
+ function ze(e, t) {
1236
+ let n = Ve(e, t);
1237
1237
  for (;;) {
1238
- let r = Le(e);
1238
+ let r = Ie(e);
1239
1239
  if (!r || r.kind !== "op" || r.text !== "&") break;
1240
- Z(e);
1241
- let i = He(e, t);
1242
- n = X(n) + X(i);
1240
+ Q(e);
1241
+ let i = Ve(e, t);
1242
+ n = Z(n) + Z(i);
1243
1243
  }
1244
1244
  return n;
1245
1245
  }
1246
- function Ve(e, t, n) {
1247
- let r = typeof t == "string" && isNaN(parseFloat(t)) ? null : Y(t), i = typeof n == "string" && isNaN(parseFloat(n)) ? null : Y(n);
1246
+ function Be(e, t, n) {
1247
+ let r = typeof t == "string" && isNaN(parseFloat(t)) ? null : X(t), i = typeof n == "string" && isNaN(parseFloat(n)) ? null : X(n);
1248
1248
  if (r !== null && i !== null) switch (e) {
1249
1249
  case "<": return r < i;
1250
1250
  case ">": return r > i;
@@ -1264,67 +1264,67 @@ function Ve(e, t, n) {
1264
1264
  }
1265
1265
  return !1;
1266
1266
  }
1267
- function He(e, t) {
1268
- let n = Ue(e, t);
1267
+ function Ve(e, t) {
1268
+ let n = He(e, t);
1269
1269
  for (;;) {
1270
- let r = Le(e);
1270
+ let r = Ie(e);
1271
1271
  if (!r || r.kind !== "op" || r.text !== "+" && r.text !== "-") break;
1272
- Z(e);
1273
- let i = Ue(e, t);
1274
- n = r.text === "+" ? Y(n) + Y(i) : Y(n) - Y(i);
1272
+ Q(e);
1273
+ let i = He(e, t);
1274
+ n = r.text === "+" ? X(n) + X(i) : X(n) - X(i);
1275
1275
  }
1276
1276
  return n;
1277
1277
  }
1278
- function Ue(e, t) {
1279
- let n = We(e, t);
1278
+ function He(e, t) {
1279
+ let n = Ue(e, t);
1280
1280
  for (;;) {
1281
- let r = Le(e);
1281
+ let r = Ie(e);
1282
1282
  if (!r || r.kind !== "op" || r.text !== "*" && r.text !== "/") break;
1283
- Z(e);
1284
- let i = We(e, t);
1285
- if (r.text === "*") n = Y(n) * Y(i);
1283
+ Q(e);
1284
+ let i = Ue(e, t);
1285
+ if (r.text === "*") n = X(n) * X(i);
1286
1286
  else {
1287
- let e = Y(i);
1288
- n = e === 0 ? 0 : Y(n) / e;
1287
+ let e = X(i);
1288
+ n = e === 0 ? 0 : X(n) / e;
1289
1289
  }
1290
1290
  }
1291
1291
  return n;
1292
1292
  }
1293
- function We(e, t) {
1294
- let n = Le(e);
1295
- return n && n.kind === "op" && n.text === "-" ? (Z(e), -Y(We(e, t))) : n && n.kind === "op" && n.text === "+" ? (Z(e), Y(We(e, t))) : Ge(e, t);
1293
+ function Ue(e, t) {
1294
+ let n = Ie(e);
1295
+ return n && n.kind === "op" && n.text === "-" ? (Q(e), -X(Ue(e, t))) : n && n.kind === "op" && n.text === "+" ? (Q(e), X(Ue(e, t))) : We(e, t);
1296
1296
  }
1297
- function Ge(e, t) {
1298
- let n = Z(e);
1297
+ function We(e, t) {
1298
+ let n = Q(e);
1299
1299
  if (!n) return 0;
1300
1300
  if (n.kind === "num") return parseFloat(n.text);
1301
1301
  if (n.kind === "str") return n.text;
1302
1302
  if (n.kind === "bool") return n.text === "TRUE";
1303
1303
  if (n.kind === "lparen") {
1304
- let n = Re(e, t), r = Z(e);
1304
+ let n = Le(e, t), r = Q(e);
1305
1305
  if (!r || r.kind !== "rparen") throw Error("missing )");
1306
1306
  return n;
1307
1307
  }
1308
1308
  if (n.kind === "ref") {
1309
- if (Le(e)?.kind === "colon") {
1310
- Z(e);
1311
- let r = Z(e);
1309
+ if (Ie(e)?.kind === "colon") {
1310
+ Q(e);
1311
+ let r = Q(e);
1312
1312
  if (r?.kind !== "ref" || !r.ref) throw Error("range: expected ref after :");
1313
- return Je(n.ref, r.ref, t);
1313
+ return qe(n.ref, r.ref, t);
1314
1314
  }
1315
- return qe(n.ref, t);
1315
+ return Ke(n.ref, t);
1316
1316
  }
1317
1317
  if (n.kind === "name") {
1318
- if (Le(e)?.kind === "lparen") {
1319
- Z(e);
1318
+ if (Ie(e)?.kind === "lparen") {
1319
+ Q(e);
1320
1320
  let r = [];
1321
- if (Le(e)?.kind !== "rparen") for (r.push(Re(e, t)); Le(e)?.kind === "comma";) Z(e), r.push(Re(e, t));
1322
- let i = Z(e);
1321
+ if (Ie(e)?.kind !== "rparen") for (r.push(Le(e, t)); Ie(e)?.kind === "comma";) Q(e), r.push(Le(e, t));
1322
+ let i = Q(e);
1323
1323
  if (!i || i.kind !== "rparen") throw Error("missing )");
1324
- return Xe(n.text, r, t);
1324
+ return Ye(n.text, r, t);
1325
1325
  }
1326
1326
  let r = t.definedNames.get(n.text);
1327
- return r && t.depth < Oe ? Ie(Ke(r.formula), {
1327
+ return r && t.depth < De ? Fe(Ge(r.formula), {
1328
1328
  ...t,
1329
1329
  anchorRow: 1,
1330
1330
  anchorCol: 1,
@@ -1333,20 +1333,20 @@ function Ge(e, t) {
1333
1333
  }
1334
1334
  return 0;
1335
1335
  }
1336
- function Ke(e) {
1336
+ function Ge(e) {
1337
1337
  let t = e.match(/^(?:'[^']*'|[A-Za-z_][A-Za-z0-9_.]*)!(.*)$/);
1338
1338
  return t ? t[1] : e;
1339
1339
  }
1340
- function qe(e, t) {
1340
+ function Ke(e, t) {
1341
1341
  let n = e.colAbs ? e.col : e.col + (t.col - t.anchorCol), r = e.rowAbs ? e.row : e.row + (t.row - t.anchorRow);
1342
- return Ye(t.cellIndex.get(`${r}:${n}`));
1342
+ return Je(t.cellIndex.get(`${r}:${n}`));
1343
1343
  }
1344
- function Je(e, t, n) {
1344
+ function qe(e, t, n) {
1345
1345
  let r = e.colAbs ? e.col : e.col + (n.col - n.anchorCol), i = e.rowAbs ? e.row : e.row + (n.row - n.anchorRow), a = t.colAbs ? t.col : t.col + (n.col - n.anchorCol), o = t.rowAbs ? t.row : t.row + (n.row - n.anchorRow), s = Math.min(r, a), c = Math.max(r, a), l = Math.min(i, o), u = Math.max(i, o), d = [], f = 4096;
1346
- for (let e = l; e <= u && d.length < f; e++) for (let t = s; t <= c && d.length < f; t++) d.push(Ye(n.cellIndex.get(`${e}:${t}`)));
1346
+ for (let e = l; e <= u && d.length < f; e++) for (let t = s; t <= c && d.length < f; t++) d.push(Je(n.cellIndex.get(`${e}:${t}`)));
1347
1347
  return d;
1348
1348
  }
1349
- function Ye(e) {
1349
+ function Je(e) {
1350
1350
  if (!e) return null;
1351
1351
  switch (e.value.type) {
1352
1352
  case "number": return e.value.number;
@@ -1356,162 +1356,162 @@ function Ye(e) {
1356
1356
  default: return null;
1357
1357
  }
1358
1358
  }
1359
- function Xe(e, t, n) {
1359
+ function Ye(e, t, n) {
1360
1360
  switch (e.toUpperCase()) {
1361
- case "AND": return t.flatMap(q).every((e) => Ae(e));
1362
- case "OR": return t.flatMap(q).some((e) => Ae(e));
1363
- case "NOT": return !Ae(t[0]);
1364
- case "IF": return Ae(t[0]) ? t[1] ?? !0 : t[2] ?? !1;
1361
+ case "AND": return t.flatMap(J).every((e) => ke(e));
1362
+ case "OR": return t.flatMap(J).some((e) => ke(e));
1363
+ case "NOT": return !ke(t[0]);
1364
+ case "IF": return ke(t[0]) ? t[1] ?? !0 : t[2] ?? !1;
1365
1365
  case "IFERROR": return t[0] == null ? t[1] ?? 0 : t[0];
1366
1366
  case "IFS":
1367
- for (let e = 0; e + 1 < t.length; e += 2) if (Ae(t[e])) return t[e + 1];
1367
+ for (let e = 0; e + 1 < t.length; e += 2) if (ke(t[e])) return t[e + 1];
1368
1368
  return null;
1369
1369
  case "TRUE": return !0;
1370
1370
  case "FALSE": return !1;
1371
1371
  case "ISBLANK": {
1372
- let e = J(t[0]);
1372
+ let e = Y(t[0]);
1373
1373
  return e == null || e === "";
1374
1374
  }
1375
- case "ISNUMBER": return typeof J(t[0]) == "number";
1376
- case "ISTEXT": return typeof J(t[0]) == "string";
1377
- case "ISNONTEXT": return typeof J(t[0]) != "string";
1375
+ case "ISNUMBER": return typeof Y(t[0]) == "number";
1376
+ case "ISTEXT": return typeof Y(t[0]) == "string";
1377
+ case "ISNONTEXT": return typeof Y(t[0]) != "string";
1378
1378
  case "ISERROR":
1379
1379
  case "ISERR":
1380
- case "ISNA": return J(t[0]) == null;
1381
- case "ISLOGICAL": return typeof J(t[0]) == "boolean";
1380
+ case "ISNA": return Y(t[0]) == null;
1381
+ case "ISLOGICAL": return typeof Y(t[0]) == "boolean";
1382
1382
  case "ROUNDDOWN": {
1383
- let e = Y(t[0]), n = 10 ** Y(t[1]);
1383
+ let e = X(t[0]), n = 10 ** X(t[1]);
1384
1384
  return (e >= 0 ? Math.floor(e * n) : Math.ceil(e * n)) / n;
1385
1385
  }
1386
1386
  case "ROUNDUP": {
1387
- let e = Y(t[0]), n = 10 ** Y(t[1]);
1387
+ let e = X(t[0]), n = 10 ** X(t[1]);
1388
1388
  return (e >= 0 ? Math.ceil(e * n) : Math.floor(e * n)) / n;
1389
1389
  }
1390
1390
  case "ROUND": {
1391
- let e = Y(t[0]), n = 10 ** Y(t[1]);
1391
+ let e = X(t[0]), n = 10 ** X(t[1]);
1392
1392
  return Math.round(e * n) / n;
1393
1393
  }
1394
- case "INT": return Math.floor(Y(t[0]));
1394
+ case "INT": return Math.floor(X(t[0]));
1395
1395
  case "TRUNC": {
1396
- let e = Y(t[0]), n = 10 ** Y(t[1] ?? 0);
1396
+ let e = X(t[0]), n = 10 ** X(t[1] ?? 0);
1397
1397
  return (e >= 0 ? Math.floor(e * n) : Math.ceil(e * n)) / n;
1398
1398
  }
1399
1399
  case "CEILING": {
1400
- let e = Y(t[0]), n = Y(t[1] ?? 1);
1400
+ let e = X(t[0]), n = X(t[1] ?? 1);
1401
1401
  return n === 0 ? 0 : Math.ceil(e / n) * n;
1402
1402
  }
1403
1403
  case "FLOOR": {
1404
- let e = Y(t[0]), n = Y(t[1] ?? 1);
1404
+ let e = X(t[0]), n = X(t[1] ?? 1);
1405
1405
  return n === 0 ? 0 : Math.floor(e / n) * n;
1406
1406
  }
1407
1407
  case "MOD": {
1408
- let e = Y(t[0]), n = Y(t[1]);
1408
+ let e = X(t[0]), n = X(t[1]);
1409
1409
  return n === 0 ? null : e - Math.floor(e / n) * n;
1410
1410
  }
1411
- case "POWER": return Y(t[0]) ** +Y(t[1]);
1411
+ case "POWER": return X(t[0]) ** +X(t[1]);
1412
1412
  case "SQRT": {
1413
- let e = Y(t[0]);
1413
+ let e = X(t[0]);
1414
1414
  return e < 0 ? null : Math.sqrt(e);
1415
1415
  }
1416
- case "ABS": return Math.abs(Y(t[0]));
1416
+ case "ABS": return Math.abs(X(t[0]));
1417
1417
  case "SIGN": {
1418
- let e = Y(t[0]);
1418
+ let e = X(t[0]);
1419
1419
  return e > 0 ? 1 : e < 0 ? -1 : 0;
1420
1420
  }
1421
- case "EXP": return Math.exp(Y(t[0]));
1421
+ case "EXP": return Math.exp(X(t[0]));
1422
1422
  case "LN": {
1423
- let e = Y(t[0]);
1423
+ let e = X(t[0]);
1424
1424
  return e <= 0 ? null : Math.log(e);
1425
1425
  }
1426
1426
  case "LOG10": {
1427
- let e = Y(t[0]);
1427
+ let e = X(t[0]);
1428
1428
  return e <= 0 ? null : Math.log10(e);
1429
1429
  }
1430
1430
  case "MIN": {
1431
- let e = t.flatMap(q).filter((e) => typeof e == "number");
1431
+ let e = t.flatMap(J).filter((e) => typeof e == "number");
1432
1432
  return e.length ? Math.min(...e) : 0;
1433
1433
  }
1434
1434
  case "MAX": {
1435
- let e = t.flatMap(q).filter((e) => typeof e == "number");
1435
+ let e = t.flatMap(J).filter((e) => typeof e == "number");
1436
1436
  return e.length ? Math.max(...e) : 0;
1437
1437
  }
1438
- case "SUM": return t.flatMap(q).reduce((e, t) => e + (typeof t == "number" ? t : 0), 0);
1438
+ case "SUM": return t.flatMap(J).reduce((e, t) => e + (typeof t == "number" ? t : 0), 0);
1439
1439
  case "AVERAGE": {
1440
- let e = t.flatMap(q).filter((e) => typeof e == "number");
1440
+ let e = t.flatMap(J).filter((e) => typeof e == "number");
1441
1441
  return e.length ? e.reduce((e, t) => e + t, 0) / e.length : null;
1442
1442
  }
1443
- case "COUNT": return t.flatMap(q).filter((e) => typeof e == "number").length;
1444
- case "COUNTA": return t.flatMap(q).filter((e) => e != null && e !== "").length;
1445
- case "COUNTBLANK": return t.flatMap(q).filter((e) => e == null || e === "").length;
1446
- case "COUNTIF": return Ze(q(t[0]), t[1]);
1447
- case "SUMIF": return Qe(q(t[0]), t[1], t[2] === void 0 ? null : q(t[2]));
1443
+ case "COUNT": return t.flatMap(J).filter((e) => typeof e == "number").length;
1444
+ case "COUNTA": return t.flatMap(J).filter((e) => e != null && e !== "").length;
1445
+ case "COUNTBLANK": return t.flatMap(J).filter((e) => e == null || e === "").length;
1446
+ case "COUNTIF": return Xe(J(t[0]), t[1]);
1447
+ case "SUMIF": return Ze(J(t[0]), t[1], t[2] === void 0 ? null : J(t[2]));
1448
1448
  case "AVERAGEIF": {
1449
- let e = q(t[0]), n = Qe(e, t[1], t[2] === void 0 ? null : q(t[2])), r = Ze(e, t[1]);
1450
- return r === 0 ? null : Y(n) / r;
1449
+ let e = J(t[0]), n = Ze(e, t[1], t[2] === void 0 ? null : J(t[2])), r = Xe(e, t[1]);
1450
+ return r === 0 ? null : X(n) / r;
1451
1451
  }
1452
- case "LEN": return X(t[0]).length;
1453
- case "LEFT": return X(t[0]).slice(0, Math.max(0, Y(t[1] ?? 1)));
1452
+ case "LEN": return Z(t[0]).length;
1453
+ case "LEFT": return Z(t[0]).slice(0, Math.max(0, X(t[1] ?? 1)));
1454
1454
  case "RIGHT": {
1455
- let e = X(t[0]), n = Math.max(0, Y(t[1] ?? 1));
1455
+ let e = Z(t[0]), n = Math.max(0, X(t[1] ?? 1));
1456
1456
  return n >= e.length ? e : e.slice(e.length - n);
1457
1457
  }
1458
1458
  case "MID": {
1459
- let e = X(t[0]), n = Math.max(1, Y(t[1])) - 1, r = Math.max(0, Y(t[2]));
1459
+ let e = Z(t[0]), n = Math.max(1, X(t[1])) - 1, r = Math.max(0, X(t[2]));
1460
1460
  return e.slice(n, n + r);
1461
1461
  }
1462
- case "UPPER": return X(t[0]).toUpperCase();
1463
- case "LOWER": return X(t[0]).toLowerCase();
1464
- case "TRIM": return X(t[0]).replace(/\s+/g, " ").trim();
1465
- case "EXACT": return X(t[0]) === X(t[1]);
1462
+ case "UPPER": return Z(t[0]).toUpperCase();
1463
+ case "LOWER": return Z(t[0]).toLowerCase();
1464
+ case "TRIM": return Z(t[0]).replace(/\s+/g, " ").trim();
1465
+ case "EXACT": return Z(t[0]) === Z(t[1]);
1466
1466
  case "FIND": {
1467
- let e = X(t[0]), n = X(t[1]), r = Math.max(1, Y(t[2] ?? 1)) - 1, i = n.indexOf(e, r);
1467
+ let e = Z(t[0]), n = Z(t[1]), r = Math.max(1, X(t[2] ?? 1)) - 1, i = n.indexOf(e, r);
1468
1468
  return i < 0 ? null : i + 1;
1469
1469
  }
1470
1470
  case "SEARCH": {
1471
- let e = X(t[0]).toLowerCase(), n = X(t[1]).toLowerCase(), r = Math.max(1, Y(t[2] ?? 1)) - 1, i = n.indexOf(e, r);
1471
+ let e = Z(t[0]).toLowerCase(), n = Z(t[1]).toLowerCase(), r = Math.max(1, X(t[2] ?? 1)) - 1, i = n.indexOf(e, r);
1472
1472
  return i < 0 ? null : i + 1;
1473
1473
  }
1474
1474
  case "CONCATENATE":
1475
- case "CONCAT": return t.flatMap(q).map((e) => e == null ? "" : typeof e == "boolean" ? e ? "TRUE" : "FALSE" : String(e)).join("");
1475
+ case "CONCAT": return t.flatMap(J).map((e) => e == null ? "" : typeof e == "boolean" ? e ? "TRUE" : "FALSE" : String(e)).join("");
1476
1476
  case "T": {
1477
- let e = J(t[0]);
1477
+ let e = Y(t[0]);
1478
1478
  return typeof e == "string" ? e : "";
1479
1479
  }
1480
1480
  case "N": {
1481
- let e = J(t[0]);
1481
+ let e = Y(t[0]);
1482
1482
  return typeof e == "number" ? e : typeof e == "boolean" ? +!!e : 0;
1483
1483
  }
1484
- case "VALUE": return Y(t[0]);
1484
+ case "VALUE": return X(t[0]);
1485
1485
  case "ROW": return n.row;
1486
1486
  case "COLUMN": return n.col;
1487
- case "TODAY": return nt();
1488
- case "NOW": return rt();
1489
- case "DATE": return it(Y(t[0]), Y(t[1]), Y(t[2]));
1490
- case "YEAR": return ot(Y(t[0])).y;
1491
- case "MONTH": return ot(Y(t[0])).m;
1492
- case "DAY": return ot(Y(t[0])).d;
1487
+ case "TODAY": return tt();
1488
+ case "NOW": return nt();
1489
+ case "DATE": return rt(X(t[0]), X(t[1]), X(t[2]));
1490
+ case "YEAR": return at(X(t[0])).y;
1491
+ case "MONTH": return at(X(t[0])).m;
1492
+ case "DAY": return at(X(t[0])).d;
1493
1493
  case "WEEKDAY": {
1494
- let e = at(Y(t[0])).getUTCDay(), n = Y(t[1] ?? 1);
1494
+ let e = it(X(t[0])).getUTCDay(), n = X(t[1] ?? 1);
1495
1495
  return n === 2 ? e === 0 ? 7 : e : n === 3 ? e === 0 ? 6 : e - 1 : e + 1;
1496
1496
  }
1497
1497
  default: return 0;
1498
1498
  }
1499
1499
  }
1500
- function Ze(e, t) {
1501
- let n = $e(t), r = 0;
1500
+ function Xe(e, t) {
1501
+ let n = Qe(t), r = 0;
1502
1502
  for (let t of e) n(t) && r++;
1503
1503
  return r;
1504
1504
  }
1505
- function Qe(e, t, n) {
1506
- let r = $e(t), i = n ?? e, a = 0;
1505
+ function Ze(e, t, n) {
1506
+ let r = Qe(t), i = n ?? e, a = 0;
1507
1507
  for (let t = 0; t < e.length; t++) if (r(e[t])) {
1508
1508
  let e = i[t];
1509
1509
  typeof e == "number" && (a += e);
1510
1510
  }
1511
1511
  return a;
1512
1512
  }
1513
- function $e(e) {
1514
- let t = J(e);
1513
+ function Qe(e) {
1514
+ let t = Y(e);
1515
1515
  if (typeof t != "string") {
1516
1516
  let e = typeof t == "number" ? t : null;
1517
1517
  return (n) => e !== null && typeof n == "number" ? n === e : n === t;
@@ -1537,62 +1537,62 @@ function $e(e) {
1537
1537
  }
1538
1538
  };
1539
1539
  }
1540
- var et = 25569, tt = 864e5;
1541
- function nt() {
1540
+ var $e = 25569, et = 864e5;
1541
+ function tt() {
1542
1542
  let e = /* @__PURE__ */ new Date(), t = Date.UTC(e.getFullYear(), e.getMonth(), e.getDate());
1543
- return Math.floor(t / tt) + et;
1543
+ return Math.floor(t / et) + $e;
1544
1544
  }
1545
- function rt() {
1546
- return Date.now() / tt + et;
1545
+ function nt() {
1546
+ return Date.now() / et + $e;
1547
1547
  }
1548
- function it(e, t, n) {
1548
+ function rt(e, t, n) {
1549
1549
  let r = Date.UTC(e, t - 1, n);
1550
- return Math.floor(r / tt) + et;
1550
+ return Math.floor(r / et) + $e;
1551
1551
  }
1552
- function at(e) {
1553
- let t = (Math.floor(e) - et) * tt;
1552
+ function it(e) {
1553
+ let t = (Math.floor(e) - $e) * et;
1554
1554
  return new Date(t);
1555
1555
  }
1556
- function ot(e) {
1557
- let t = at(e);
1556
+ function at(e) {
1557
+ let t = it(e);
1558
1558
  return {
1559
1559
  y: t.getUTCFullYear(),
1560
1560
  m: t.getUTCMonth() + 1,
1561
1561
  d: t.getUTCDate()
1562
1562
  };
1563
1563
  }
1564
- var st = [
1564
+ var ot = [
1565
1565
  "#FF0000",
1566
1566
  "#FFFF00",
1567
1567
  "#00B050"
1568
- ], ct = [
1568
+ ], st = [
1569
1569
  "#FF0000",
1570
1570
  "#FF6600",
1571
1571
  "#FFFF00",
1572
1572
  "#00B050"
1573
- ], lt = [
1573
+ ], ct = [
1574
1574
  "#FF0000",
1575
1575
  "#FF6600",
1576
1576
  "#FFFF00",
1577
1577
  "#92D050",
1578
1578
  "#00B050"
1579
1579
  ];
1580
- function ut(e, t, n, r, i, a) {
1580
+ function lt(e, t, n, r, i, a) {
1581
1581
  if (t === "NoIcons") return;
1582
- let o = t || "3TrafficLights1", s = parseInt(o[0]) || 3, c = s === 5 ? lt : s === 4 ? ct : st, l = c[Math.max(0, Math.min(n, c.length - 1))];
1582
+ let o = t || "3TrafficLights1", s = parseInt(o[0]) || 3, c = s === 5 ? ct : s === 4 ? st : ot, l = c[Math.max(0, Math.min(n, c.length - 1))];
1583
1583
  if (e.save(), e.fillStyle = l, o.includes("Arrow")) {
1584
1584
  let t = a / 2;
1585
1585
  e.beginPath(), n === s - 1 ? (e.moveTo(r + t, i), e.lineTo(r + a, i + a), e.lineTo(r, i + a)) : n === 0 ? (e.moveTo(r, i), e.lineTo(r + a, i), e.lineTo(r + t, i + a)) : (e.moveTo(r, i + a * .3), e.lineTo(r + a, i + t), e.lineTo(r, i + a * .7)), e.closePath(), e.fill();
1586
1586
  } else o.includes("Flag") ? (e.beginPath(), e.moveTo(r, i), e.lineTo(r + a, i), e.lineTo(r, i + a), e.closePath(), e.fill()) : (e.beginPath(), e.arc(r + a / 2, i + a / 2, a / 2, 0, Math.PI * 2), e.fill());
1587
1587
  e.restore();
1588
1588
  }
1589
- function dt(e, t, n, r, i) {
1589
+ function ut(e, t, n, r, i) {
1590
1590
  let a = Math.max(6, Math.round(Math.min(r, i) * .45)), o = t + r - a - 1, s = n + i - a - 1;
1591
1591
  e.save(), e.fillStyle = "#D0D0D0", e.fillRect(o, s, a, a), e.fillStyle = "#444444";
1592
1592
  let c = a * .55, l = o + (a - c) / 2, u = s + (a - c * .5) / 2;
1593
1593
  e.beginPath(), e.moveTo(l, u), e.lineTo(l + c, u), e.lineTo(l + c / 2, u + c * .5), e.closePath(), e.fill(), e.restore();
1594
1594
  }
1595
- function ft(e) {
1595
+ function dt(e) {
1596
1596
  let t = /* @__PURE__ */ new Map();
1597
1597
  for (let n of e.tables ?? []) {
1598
1598
  if (!n.styleName) continue;
@@ -1615,7 +1615,7 @@ function ft(e) {
1615
1615
  }
1616
1616
  return t;
1617
1617
  }
1618
- function pt(e) {
1618
+ function ft(e) {
1619
1619
  let t = /* @__PURE__ */ new Map();
1620
1620
  for (let n of e.sparklineGroups ?? []) {
1621
1621
  let e = Infinity, r = -Infinity;
@@ -1652,20 +1652,20 @@ function pt(e) {
1652
1652
  }
1653
1653
  return t;
1654
1654
  }
1655
- function mt(e) {
1655
+ function pt(e) {
1656
1656
  let t = e.replace("#", "");
1657
1657
  if (t.length < 6) return "#F2F2F2";
1658
1658
  let n = parseInt(t.slice(0, 2), 16), r = parseInt(t.slice(2, 4), 16), i = parseInt(t.slice(4, 6), 16), a = (e) => Math.round(e * .2 + 255 * .8), o = (e) => e.toString(16).padStart(2, "0").toUpperCase();
1659
1659
  return `#${o(a(n))}${o(a(r))}${o(a(i))}`;
1660
1660
  }
1661
- function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1661
+ function mt(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1662
1662
  if (p <= 0 || m <= 0) return;
1663
- let { styles: g, cellMap: _, mergeAnchorMap: v, mergeSkipSet: y, cfContext: w, cs: T, dpr: E } = t, D = a.length, k = o.length, ee = [], te = -s;
1664
- for (let e = 0; e < D; e++) ee.push(te), te += a[e];
1665
- let M = [], P = -c;
1666
- for (let e = 0; e < k; e++) M.push(P), P += o[e];
1663
+ let { styles: g, cellMap: _, mergeAnchorMap: v, mergeSkipSet: y, cfContext: w, cs: T, dpr: E } = t, D = a.length, k = o.length, ee = [], j = -s;
1664
+ for (let e = 0; e < D; e++) ee.push(j), j += a[e];
1665
+ let F = [], L = -c;
1666
+ for (let e = 0; e < k; e++) F.push(L), L += o[e];
1667
1667
  e.save(), e.beginPath(), e.rect(d, f, p, m), e.clip();
1668
- let F = [];
1668
+ let R = [];
1669
1669
  for (let i of t.worksheet.mergeCells ?? []) {
1670
1670
  let a = i.top, o = i.left;
1671
1671
  if (a >= n && a < n + k && o >= r && o < r + D || i.bottom < n || i.top >= n + k || i.right < r || i.left >= r + D) continue;
@@ -1679,46 +1679,46 @@ function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1679
1679
  f = l - s - e;
1680
1680
  }
1681
1681
  let p;
1682
- if (a >= n) p = u + M[a - n];
1682
+ if (a >= n) p = u + F[a - n];
1683
1683
  else {
1684
1684
  let e = 0;
1685
1685
  for (let r = a; r < n; r++) e += Math.round(x(t.worksheet.rowHeights[r] ?? t.worksheet.defaultRowHeight) * T);
1686
1686
  p = u - c - e;
1687
1687
  }
1688
- let m = d.totalW, _ = d.totalH, v = `${a}:${o}`, y = t.cellMap.get(v), { font: E, fill: A, border: te, xf: re } = ie(g, y?.styleIndex ?? 0), j = De(y, a, o, w, g.dxfs ?? []);
1689
- if (O(e, j.fill ?? A, f, p, m, _), j.dataBar && j.dataBar.ratio > 0) {
1690
- let t = Math.max(0, (m - 4) * j.dataBar.ratio);
1691
- C(e, j.dataBar.color, f + 2, p + 2, t, _ - 4, j.dataBar.gradient);
1688
+ let m = d.totalW, _ = d.totalH, v = `${a}:${o}`, y = t.cellMap.get(v), { font: E, fill: A, border: j, xf: N } = te(g, y?.styleIndex ?? 0), P = Ee(y, a, o, w, g.dxfs ?? []);
1689
+ if (O(e, P.fill ?? A, f, p, m, _), P.dataBar && P.dataBar.ratio > 0) {
1690
+ let t = Math.max(0, (m - 4) * P.dataBar.ratio);
1691
+ C(e, P.dataBar.color, f + 2, p + 2, t, _ - 4, P.dataBar.gradient);
1692
1692
  }
1693
- if (Et(e, Tt(wt(te, a, o, d.right, d.bottom, t.cellMap, g), j.border), f, p, m, _), !y) continue;
1694
- let P = N(y, g, j.numFmt);
1695
- if (!P || P === "0" && t.worksheet.showZeros === !1) continue;
1696
- let F = E.bold || !!j.fontBold, I = E.italic || !!j.fontItalic, L = E.underline || !!j.fontUnderline, R = E.strike || !!j.fontStrike;
1697
- e.font = ne(F !== E.bold || I !== E.italic || L !== E.underline || R !== E.strike ? {
1693
+ if (Et(e, Tt(wt(j, a, o, d.right, d.bottom, t.cellMap, g), P.border), f, p, m, _), !y) continue;
1694
+ let L = I(y, g, P.numFmt);
1695
+ if (!L || L === "0" && t.worksheet.showZeros === !1) continue;
1696
+ let R = E.bold || !!P.fontBold, z = E.italic || !!P.fontItalic, B = E.underline || !!P.fontUnderline, V = E.strike || !!P.fontStrike;
1697
+ e.font = M(R !== E.bold || z !== E.italic || B !== E.underline || V !== E.strike ? {
1698
1698
  ...E,
1699
- bold: F,
1700
- italic: I,
1701
- underline: L,
1702
- strike: R
1699
+ bold: R,
1700
+ italic: z,
1701
+ underline: B,
1702
+ strike: V
1703
1703
  } : E, T);
1704
- let z = t.hyperlinkMap.get(v) ? "#0563C1" : j.fontColor ?? E.color;
1705
- e.fillStyle = z ? S(z) : "#000000";
1706
- let B = y.value.type === "number", V = re.alignH ?? (B ? "right" : "left"), H = re.alignV ?? "bottom", ae = re.indent ? Math.round(re.indent * E.size * h * .5) : 0, U = 3 + (V === "left" || !re.alignH ? ae : 0);
1704
+ let ne = t.hyperlinkMap.get(v) ? "#0563C1" : P.fontColor ?? E.color;
1705
+ e.fillStyle = ne ? S(ne) : "#000000";
1706
+ let re = y.value.type === "number", H = N.alignH ?? (re ? "right" : "left"), U = N.alignV ?? "bottom", ie = N.indent ? Math.round(N.indent * E.size * h * .5) : 0, W = 3 + (H === "left" || !N.alignH ? ie : 0);
1707
1707
  e.save(), e.beginPath(), e.rect(f, p, m, _), e.clip();
1708
- let W;
1709
- V === "right" ? (W = f + m - 3, e.textAlign = "right") : V === "center" ? (W = f + m / 2, e.textAlign = "center") : (W = f + U, e.textAlign = "left");
1710
- let oe;
1711
- H === "top" ? (e.textBaseline = "top", oe = p + 2) : H === "center" ? (e.textBaseline = "middle", oe = p + _ / 2) : (e.textBaseline = "bottom", oe = p + _ - 2), e.fillText(P, W, oe), e.restore();
1708
+ let G;
1709
+ H === "right" ? (G = f + m - 3, e.textAlign = "right") : H === "center" ? (G = f + m / 2, e.textAlign = "center") : (G = f + W, e.textAlign = "left");
1710
+ let ae;
1711
+ U === "top" ? (e.textBaseline = "top", ae = p + 2) : U === "center" ? (e.textBaseline = "middle", ae = p + _ / 2) : (e.textBaseline = "bottom", ae = p + _ - 2), e.fillText(L, G, ae), e.restore();
1712
1712
  }
1713
1713
  for (let s = 0; s < k; s++) {
1714
- let c = n + s, b = u + M[s], x = o[s];
1714
+ let c = n + s, b = u + F[s], x = o[s];
1715
1715
  if (b + x <= f || b >= f + m) continue;
1716
- let k = /* @__PURE__ */ new Set(), te = /* @__PURE__ */ new Set(), P = -1, I = (e) => {
1717
- if (P >= 0 && e - P >= 2) {
1718
- for (let t = P; t < e - 1; t++) k.add(t);
1719
- for (let t = P + 1; t < e; t++) te.add(t);
1716
+ let k = /* @__PURE__ */ new Set(), j = /* @__PURE__ */ new Set(), L = -1, z = (e) => {
1717
+ if (L >= 0 && e - L >= 2) {
1718
+ for (let t = L; t < e - 1; t++) k.add(t);
1719
+ for (let t = L + 1; t < e; t++) j.add(t);
1720
1720
  }
1721
- P = -1;
1721
+ L = -1;
1722
1722
  };
1723
1723
  for (let e = 0; e <= D; e++) {
1724
1724
  let t = !1, n = !1;
@@ -1726,58 +1726,58 @@ function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1726
1726
  let i = `${c}:${r + e}`;
1727
1727
  if (!y.has(i) && !v.has(i)) {
1728
1728
  let e = _.get(i);
1729
- t = ie(g, e?.styleIndex ?? 0).xf.alignH === "centerContinuous", n = !!(e && e.value && e.value.type !== "empty");
1729
+ t = te(g, e?.styleIndex ?? 0).xf.alignH === "centerContinuous", n = !!(e && e.value && e.value.type !== "empty");
1730
1730
  }
1731
1731
  }
1732
- t ? n && P >= 0 && e > P ? (I(e), P = e) : P < 0 && (P = e) : I(e);
1732
+ t ? n && L >= 0 && e > L ? (z(e), L = e) : L < 0 && (L = e) : z(e);
1733
1733
  }
1734
1734
  for (let n = 0; n < D; n++) {
1735
1735
  let o = r + n, u = l + ee[n], f = a[n];
1736
1736
  if (u + f <= d || u >= d + p) continue;
1737
1737
  let m = `${c}:${o}`;
1738
1738
  if (y.has(m)) continue;
1739
- let M = v.get(m), P = M ? M.totalW : f, I = M ? M.totalH : x, L = _.get(m), { font: R, fill: z, border: B, xf: V } = ie(g, L?.styleIndex ?? 0), H = De(L, c, o, w, g.dxfs ?? []), ae = H.fill ?? z, U = t.tableStyleMap.get(m), W = U?.wholeTableDxf == null ? void 0 : (g.dxfs ?? [])[U.wholeTableDxf], oe = U?.headerRowDxf == null ? void 0 : (g.dxfs ?? [])[U.headerRowDxf];
1740
- if (O(e, ae, u, b, P, I) || (U && U.isHeader && oe?.fill?.fgColor ? (e.fillStyle = S(oe.fill.fgColor), e.fillRect(u, b, P, I)) : U && !U.isHeader && !U.isTotals && W?.fill?.fgColor ? (e.fillStyle = S(W.fill.fgColor), e.fillRect(u, b, P, I)) : U && U.isBanded && (e.fillStyle = mt(U.accent), e.fillRect(u, b, P, I))), t.commentCells.has(m) && A(e, u, b, P, I), H.dataBar && H.dataBar.ratio > 0) {
1741
- let t = Math.max(0, (P - 4) * H.dataBar.ratio);
1742
- C(e, H.dataBar.color, u + 2, b + 2, t, I - 4, H.dataBar.gradient);
1739
+ let F = v.get(m), L = F ? F.totalW : f, z = F ? F.totalH : x, B = _.get(m), { font: V, fill: ne, border: re, xf: H } = te(g, B?.styleIndex ?? 0), U = Ee(B, c, o, w, g.dxfs ?? []), ie = U.fill ?? ne, W = t.tableStyleMap.get(m), G = W?.wholeTableDxf == null ? void 0 : (g.dxfs ?? [])[W.wholeTableDxf], ae = W?.headerRowDxf == null ? void 0 : (g.dxfs ?? [])[W.headerRowDxf];
1740
+ if (O(e, ie, u, b, L, z) || (W && W.isHeader && ae?.fill?.fgColor ? (e.fillStyle = S(ae.fill.fgColor), e.fillRect(u, b, L, z)) : W && !W.isHeader && !W.isTotals && G?.fill?.fgColor ? (e.fillStyle = S(G.fill.fgColor), e.fillRect(u, b, L, z)) : W && W.isBanded && (e.fillStyle = pt(W.accent), e.fillRect(u, b, L, z))), t.commentCells.has(m) && A(e, u, b, L, z), U.dataBar && U.dataBar.ratio > 0) {
1741
+ let t = Math.max(0, (L - 4) * U.dataBar.ratio);
1742
+ C(e, U.dataBar.color, u + 2, b + 2, t, z - 4, U.dataBar.gradient);
1743
1743
  }
1744
- let se = t.sparklineMap.get(m);
1745
- if (se && i(e, {
1744
+ let oe = t.sparklineMap.get(m);
1745
+ if (oe && i(e, {
1746
1746
  x: u,
1747
1747
  y: b,
1748
- w: P,
1749
- h: I
1750
- }, se), t.worksheet.showGridlines !== !1) {
1748
+ w: L,
1749
+ h: z
1750
+ }, oe), t.worksheet.showGridlines !== !1) {
1751
1751
  let t = .5 / E;
1752
- e.strokeStyle = "#d0d0d0", e.lineWidth = .5, e.beginPath(), k.has(n) || (e.moveTo(u + P + t, b), e.lineTo(u + P + t, b + I)), e.moveTo(u, b + I + t), e.lineTo(u + P, b + I + t), s === 0 && (e.moveTo(u, b + t), e.lineTo(u + P, b + t)), n === 0 && (e.moveTo(u + t, b), e.lineTo(u + t, b + I)), e.stroke();
1752
+ e.strokeStyle = "#d0d0d0", e.lineWidth = .5, e.beginPath(), k.has(n) || (e.moveTo(u + L + t, b), e.lineTo(u + L + t, b + z)), e.moveTo(u, b + z + t), e.lineTo(u + L, b + z + t), s === 0 && (e.moveTo(u, b + t), e.lineTo(u + L, b + t)), n === 0 && (e.moveTo(u + t, b), e.lineTo(u + t, b + z)), e.stroke();
1753
1753
  }
1754
- let G = Tt(M ? wt(B, c, o, M.right, M.bottom, _, g) : B, H.border);
1755
- (k.has(n) || te.has(n)) && (G = {
1756
- ...G,
1757
- left: te.has(n) ? null : G.left,
1758
- right: k.has(n) ? null : G.right
1754
+ let K = Tt(F ? wt(re, c, o, F.right, F.bottom, _, g) : re, U.border);
1755
+ (k.has(n) || j.has(n)) && (K = {
1756
+ ...K,
1757
+ left: j.has(n) ? null : K.left,
1758
+ right: k.has(n) ? null : K.right
1759
1759
  });
1760
- let ce = _.get(`${c - 1}:${o}`), le = ce ? ie(g, ce.styleIndex).border.bottom : null, ue = !1;
1761
- if (le?.style) {
1762
- let e = G.top, t = At(e, le);
1763
- G = {
1764
- ...G,
1760
+ let se = _.get(`${c - 1}:${o}`), ce = se ? te(g, se.styleIndex).border.bottom : null, le = !1;
1761
+ if (ce?.style) {
1762
+ let e = K.top, t = At(e, ce);
1763
+ K = {
1764
+ ...K,
1765
1765
  top: t
1766
- }, ue = t === le && e !== le;
1766
+ }, le = t === ce && e !== ce;
1767
1767
  }
1768
- let fe = !1;
1769
- if (!te.has(n)) {
1770
- let e = _.get(`${c}:${o - 1}`), t = e ? ie(g, e.styleIndex).border.right : null;
1768
+ let de = !1;
1769
+ if (!j.has(n)) {
1770
+ let e = _.get(`${c}:${o - 1}`), t = e ? te(g, e.styleIndex).border.right : null;
1771
1771
  if (t?.style) {
1772
- let e = G.left, n = At(e, t);
1773
- G = {
1774
- ...G,
1772
+ let e = K.left, n = At(e, t);
1773
+ K = {
1774
+ ...K,
1775
1775
  left: n
1776
- }, fe = n === t && e !== t;
1776
+ }, de = n === t && e !== t;
1777
1777
  }
1778
1778
  }
1779
- if (Et(e, G, u, b, P, I, ue, fe), U) {
1780
- let t = W?.border?.horizontal, n = W?.border?.vertical, r = W?.border?.top, i = W?.border?.bottom, a = W?.border?.left, s = W?.border?.right, c = oe?.border?.bottom, l = oe?.border?.top;
1779
+ if (Et(e, K, u, b, L, z, le, de), W) {
1780
+ let t = G?.border?.horizontal, n = G?.border?.vertical, r = G?.border?.top, i = G?.border?.bottom, a = G?.border?.left, s = G?.border?.right, c = ae?.border?.bottom, l = ae?.border?.top;
1781
1781
  if (t || n || r || i || a || s || c || l) {
1782
1782
  let n = {
1783
1783
  left: null,
@@ -1785,46 +1785,46 @@ function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1785
1785
  top: null,
1786
1786
  bottom: null
1787
1787
  };
1788
- U.isTopEdge ? n.top = r ?? null : t && (n.top = t), U.isHeader && c ? n.bottom = c : U.isBottomEdge ? n.bottom = i ?? null : t && (n.bottom = t), (U.isFirstCol || o === 0) && (n.left = a ?? null), U.isLastCol && (n.right = s ?? null), Et(e, n, u, b, P, I);
1788
+ W.isTopEdge ? n.top = r ?? null : t && (n.top = t), W.isHeader && c ? n.bottom = c : W.isBottomEdge ? n.bottom = i ?? null : t && (n.bottom = t), (W.isFirstCol || o === 0) && (n.left = a ?? null), W.isLastCol && (n.right = s ?? null), Et(e, n, u, b, L, z);
1789
1789
  } else {
1790
1790
  let t = .5 / E;
1791
- e.strokeStyle = U.accent, e.lineWidth = U.isHeader ? 1.5 : 1, e.beginPath(), e.moveTo(u, b + I - t), e.lineTo(u + P, b + I - t), U.isTopEdge && (e.moveTo(u, b + t), e.lineTo(u + P, b + t)), e.stroke();
1791
+ e.strokeStyle = W.accent, e.lineWidth = W.isHeader ? 1.5 : 1, e.beginPath(), e.moveTo(u, b + z - t), e.lineTo(u + L, b + z - t), W.isTopEdge && (e.moveTo(u, b + t), e.lineTo(u + L, b + t)), e.stroke();
1792
1792
  }
1793
1793
  }
1794
- if (t.autoFilterCells.has(m) && dt(e, u, b, f, I), !L) continue;
1795
- let K = N(L, g, H.numFmt);
1796
- !K || K === "0" && t.worksheet.showZeros === !1 || F.push(() => {
1797
- let i = !!(U && (U.isHeader || U.isTotals)), s = R.bold || !!H.fontBold || i, l = R.italic || !!H.fontItalic, d = R.underline || !!H.fontUnderline, f = R.strike || !!H.fontStrike, p = s !== R.bold || l !== R.italic || d !== R.underline || f !== R.strike ? {
1798
- ...R,
1794
+ if (t.autoFilterCells.has(m) && ut(e, u, b, f, z), !B) continue;
1795
+ let q = I(B, g, U.numFmt);
1796
+ !q || q === "0" && t.worksheet.showZeros === !1 || R.push(() => {
1797
+ let i = !!(W && (W.isHeader || W.isTotals)), s = V.bold || !!U.fontBold || i, l = V.italic || !!U.fontItalic, d = V.underline || !!U.fontUnderline, f = V.strike || !!U.fontStrike, p = s !== V.bold || l !== V.italic || d !== V.underline || f !== V.strike ? {
1798
+ ...V,
1799
1799
  bold: s,
1800
1800
  italic: l,
1801
1801
  underline: d,
1802
1802
  strike: f
1803
- } : R;
1804
- e.font = ne(p, T);
1805
- let x = t.hyperlinkMap.get(m), C = U?.isHeader && oe?.font?.color ? oe.font.color : U && !U.isHeader && !U.isTotals && W?.font?.color ? W.font.color : null, w = x ? "#0563C1" : H.fontColor ?? C ?? R.color;
1803
+ } : V;
1804
+ e.font = M(p, T);
1805
+ let x = t.hyperlinkMap.get(m), C = W?.isHeader && ae?.font?.color ? ae.font.color : W && !W.isHeader && !W.isTotals && G?.font?.color ? G.font.color : null, w = x ? "#0563C1" : U.fontColor ?? C ?? V.color;
1806
1806
  e.fillStyle = w ? S(w) : "#000000";
1807
- let E = L.value.type === "number", O = V.alignH ?? (E ? "right" : "left"), k = V.alignV ?? "bottom", ee = V.indent ? Math.round(V.indent * R.size * h * .5) : 0, A = H.iconSet ? Math.max(8, Math.round(Math.min(P, I) * .55)) : 0, te = A > 0 ? A + 4 : 0, N = 3 + (O === "left" || !V.alignH ? ee : 0) + te, F = P, z = u, B = n;
1808
- if (O === "centerContinuous" && !M) for (let e = n + 1; e < D; e++) {
1807
+ let E = B.value.type === "number", O = H.alignH ?? (E ? "right" : "left"), k = H.alignV ?? "bottom", ee = H.indent ? Math.round(H.indent * V.size * h * .5) : 0, A = U.iconSet ? Math.max(8, Math.round(Math.min(L, z) * .55)) : 0, j = A > 0 ? A + 4 : 0, I = 3 + (O === "left" || !H.alignH ? ee : 0) + j, R = L, ne = u, re = n;
1808
+ if (O === "centerContinuous" && !F) for (let e = n + 1; e < D; e++) {
1809
1809
  let t = `${c}:${r + e}`;
1810
1810
  if (y.has(t) || v.has(t)) break;
1811
1811
  let n = _.get(t);
1812
- if (n && n.value.type !== "empty" || ie(g, n?.styleIndex ?? 0).xf.alignH !== "centerContinuous") break;
1813
- F += a[e], B = e;
1812
+ if (n && n.value.type !== "empty" || te(g, n?.styleIndex ?? 0).xf.alignH !== "centerContinuous") break;
1813
+ R += a[e], re = e;
1814
1814
  }
1815
- let ae = O === "centerContinuous" ? z : u, se = O === "centerContinuous" ? F : P, G = K.includes("\n");
1816
- if (!M && !V.wrapText && !V.textRotation && !E && !G) {
1817
- let t = e.measureText(K).width, i = O === "centerContinuous", o = i ? t + 6 : t + N + 3, s = i ? F : P;
1815
+ let ie = O === "centerContinuous" ? ne : u, oe = O === "centerContinuous" ? R : L, K = q.includes("\n");
1816
+ if (!F && !H.wrapText && !H.textRotation && !E && !K) {
1817
+ let t = e.measureText(q).width, i = O === "centerContinuous", o = i ? t + 6 : t + I + 3, s = i ? R : L;
1818
1818
  if (o > s) {
1819
1819
  let e = o - s, t = 0, l = 0;
1820
1820
  if (O === "right" ? l = e : O === "center" || i ? (l = e / 2, t = e / 2) : t = e, t > 0) {
1821
- let e = t, o = i ? B + 1 : n + 1;
1821
+ let e = t, o = i ? re + 1 : n + 1;
1822
1822
  for (let t = o; t < D && e > 0; t++) {
1823
1823
  let n = `${c}:${r + t}`;
1824
1824
  if (y.has(n) || v.has(n)) break;
1825
1825
  let i = _.get(n);
1826
1826
  if (i && i.value.type !== "empty") break;
1827
- se += a[t], e -= a[t];
1827
+ oe += a[t], e -= a[t];
1828
1828
  }
1829
1829
  }
1830
1830
  if (l > 0) {
@@ -1834,69 +1834,69 @@ function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1834
1834
  if (y.has(n) || v.has(n)) break;
1835
1835
  let i = _.get(n);
1836
1836
  if (i && i.value.type !== "empty") break;
1837
- ae -= a[t], se += a[t], e -= a[t];
1837
+ ie -= a[t], oe += a[t], e -= a[t];
1838
1838
  }
1839
1839
  }
1840
1840
  }
1841
1841
  }
1842
- let ce = K, le = 0;
1843
- if (O === "fill" && !E && K.length > 0) {
1844
- let t = Math.max(1, P - 6), n = e.measureText(K).width;
1842
+ let se = q, ce = 0;
1843
+ if (O === "fill" && !E && q.length > 0) {
1844
+ let t = Math.max(1, L - 6), n = e.measureText(q).width;
1845
1845
  if (n > 0 && n < t) {
1846
1846
  let e = Math.max(1, Math.floor(t / n));
1847
- ce = K.repeat(e);
1847
+ se = q.repeat(e);
1848
1848
  }
1849
1849
  }
1850
- if (O === "distributed" || O === "justify" && !V.wrapText && !G) {
1851
- let t = Math.max(1, P - 6), n = e.measureText(ce).width, r = Math.max(1, [...ce].length - 1);
1852
- n < t && (le = Math.max(0, (t - n) / r));
1850
+ if (O === "distributed" || O === "justify" && !H.wrapText && !K) {
1851
+ let t = Math.max(1, L - 6), n = e.measureText(se).width, r = Math.max(1, [...se].length - 1);
1852
+ n < t && (ce = Math.max(0, (t - n) / r));
1853
1853
  }
1854
- let ue, fe;
1855
- O === "right" ? (ue = u + P - 3, fe = "right") : O === "center" ? (ue = u + P / 2, fe = "center") : O === "centerContinuous" ? (ue = z + F / 2, fe = "center") : O === "distributed" || O === "justify" && !V.wrapText && !G ? (ue = u + 3, fe = "left") : (ue = u + N, fe = "left");
1856
- let me = V.textRotation ?? 0, he = me === 255, ge = me > 0 && me !== 255;
1857
- if (H.iconSet && A > 0 && (e.save(), e.beginPath(), e.rect(u, b, P, I), e.clip(), ut(e, H.iconSet.name, H.iconSet.index, u + 2, b + (I - A) / 2, A), e.restore()), e.save(), e.beginPath(), e.rect(ae, b, se, I), e.clip(), he) {
1858
- let t = Math.round(R.size * h * 1.1), n = K.length * t, r = k === "top" ? b + 2 : k === "center" ? b + (I - n) / 2 : b + I - n - 2;
1854
+ let le, de;
1855
+ O === "right" ? (le = u + L - 3, de = "right") : O === "center" ? (le = u + L / 2, de = "center") : O === "centerContinuous" ? (le = ne + R / 2, de = "center") : O === "distributed" || O === "justify" && !H.wrapText && !K ? (le = u + 3, de = "left") : (le = u + I, de = "left");
1856
+ let pe = H.textRotation ?? 0, me = pe === 255, he = pe > 0 && pe !== 255;
1857
+ if (U.iconSet && A > 0 && (e.save(), e.beginPath(), e.rect(u, b, L, z), e.clip(), lt(e, U.iconSet.name, U.iconSet.index, u + 2, b + (z - A) / 2, A), e.restore()), e.save(), e.beginPath(), e.rect(ie, b, oe, z), e.clip(), me) {
1858
+ let t = Math.round(V.size * h * 1.1), n = q.length * t, r = k === "top" ? b + 2 : k === "center" ? b + (z - n) / 2 : b + z - n - 2;
1859
1859
  e.textAlign = "center", e.textBaseline = "top";
1860
- for (let n of K) e.fillText(n, u + P / 2, r), r += t;
1860
+ for (let n of q) e.fillText(n, u + L / 2, r), r += t;
1861
1861
  e.restore();
1862
1862
  return;
1863
1863
  }
1864
- if (ge) {
1865
- let t = me <= 90 ? -(me * Math.PI / 180) : (me - 90) * Math.PI / 180;
1866
- e.translate(u + P / 2, b + I / 2), e.rotate(t), e.textAlign = "center", e.textBaseline = "middle", e.fillText(K, 0, 0), e.restore();
1864
+ if (he) {
1865
+ let t = pe <= 90 ? -(pe * Math.PI / 180) : (pe - 90) * Math.PI / 180;
1866
+ e.translate(u + L / 2, b + z / 2), e.rotate(t), e.textAlign = "center", e.textBaseline = "middle", e.fillText(q, 0, 0), e.restore();
1867
1867
  return;
1868
1868
  }
1869
- if (V.shrinkToFit) {
1870
- let t = e.measureText(K).width, n = P - N - 3;
1869
+ if (H.shrinkToFit) {
1870
+ let t = e.measureText(q).width, n = L - I - 3;
1871
1871
  if (t > n && t > 0) {
1872
- let r = n / t, i = O === "right" ? u + P - 3 : O === "center" ? u + P / 2 : u + N;
1872
+ let r = n / t, i = O === "right" ? u + L - 3 : O === "center" ? u + L / 2 : u + I;
1873
1873
  e.transform(r, 0, 0, 1, i * (1 - r), 0);
1874
1874
  }
1875
1875
  }
1876
- if (e.textAlign = fe, le > 0) try {
1877
- e.letterSpacing = `${le}px`;
1876
+ if (e.textAlign = de, ce > 0) try {
1877
+ e.letterSpacing = `${ce}px`;
1878
1878
  } catch {}
1879
- if (V.readingOrder === 2) try {
1879
+ if (H.readingOrder === 2) try {
1880
1880
  e.direction = "rtl";
1881
1881
  } catch {}
1882
- else if (V.readingOrder === 1) try {
1882
+ else if (H.readingOrder === 1) try {
1883
1883
  e.direction = "ltr";
1884
1884
  } catch {}
1885
- let _e = L.value.type === "text" ? L.value.runs : void 0, ve = _e && _e.length > 0;
1886
- if (V.wrapText && ve) {
1887
- let t = pe(e, _e, p, T, P - N - 3), n = t.reduce((e, t) => e + Math.round(t.maxFontSize * h * 1.2), 0), r;
1888
- r = k === "top" ? b + 2 : k === "center" ? b + (I - n) / 2 : b + I - n - 2, e.textAlign = "left", e.textBaseline = "top";
1885
+ let ge = B.value.type === "text" ? B.value.runs : void 0, _e = ge && ge.length > 0;
1886
+ if (H.wrapText && _e) {
1887
+ let t = fe(e, ge, p, T, L - I - 3), n = t.reduce((e, t) => e + Math.round(t.maxFontSize * h * 1.2), 0), r;
1888
+ r = k === "top" ? b + 2 : k === "center" ? b + (z - n) / 2 : b + z - n - 2, e.textAlign = "left", e.textBaseline = "top";
1889
1889
  for (let n of t) {
1890
1890
  let t = Math.round(n.maxFontSize * h * 1.2), i = n.segments.reduce((e, t) => e + t.width, 0), a;
1891
- a = O === "right" ? u + P - 3 - i : O === "center" ? u + P / 2 - i / 2 : u + N;
1891
+ a = O === "right" ? u + L - 3 - i : O === "center" ? u + L / 2 - i / 2 : u + I;
1892
1892
  for (let t of n.segments) {
1893
- e.font = ne(t.font, T);
1894
- let n = H.fontColor ?? t.font.color;
1893
+ e.font = M(t.font, T);
1894
+ let n = U.fontColor ?? t.font.color;
1895
1895
  e.fillStyle = n ? S(n) : "#000000", e.fillText(t.text, a, r);
1896
1896
  let i = Math.round(t.font.size * h);
1897
1897
  if (t.font.underline) {
1898
1898
  let o = n ? S(n) : "#000000", s = t.font.underlineStyle === "double" || t.font.underlineStyle === "doubleAccounting";
1899
- re(e, a, a + t.width, r + i + 1, o, s);
1899
+ N(e, a, a + t.width, r + i + 1, o, s);
1900
1900
  }
1901
1901
  if (t.font.strike) {
1902
1902
  e.save(), e.strokeStyle = n ? S(n) : "#000000", e.lineWidth = .5;
@@ -1907,85 +1907,85 @@ function ht(e, t, n, r, a, o, s, c, l, u, d, f, p, m) {
1907
1907
  }
1908
1908
  r += t;
1909
1909
  }
1910
- } else if (V.wrapText) {
1911
- let t = de(e, K, P - N - 3), n = Math.round(R.size * h * 1.2), r = t.length * n, i;
1912
- k === "top" ? (i = b + 2, e.textBaseline = "top") : k === "center" ? (i = b + (I - r) / 2, e.textBaseline = "top") : (i = b + I - r - 2, e.textBaseline = "top");
1913
- for (let r = 0; r < t.length; r++) e.fillText(t[r], ue, i + r * n);
1914
- } else if (ve) {
1915
- let t = _e.map((e) => j(p, e)), n = _e.map((e) => e.font?.vertAlign), r = t.map((e, t) => n[t] === "superscript" || n[t] === "subscript" ? {
1910
+ } else if (H.wrapText) {
1911
+ let t = ue(e, q, L - I - 3), n = Math.round(V.size * h * 1.2), r = t.length * n, i;
1912
+ k === "top" ? (i = b + 2, e.textBaseline = "top") : k === "center" ? (i = b + (z - r) / 2, e.textBaseline = "top") : (i = b + z - r - 2, e.textBaseline = "top");
1913
+ for (let r = 0; r < t.length; r++) e.fillText(t[r], le, i + r * n);
1914
+ } else if (_e) {
1915
+ let t = ge.map((e) => P(p, e)), n = ge.map((e) => e.font?.vertAlign), r = t.map((e, t) => n[t] === "superscript" || n[t] === "subscript" ? {
1916
1916
  ...e,
1917
1917
  size: e.size * .65
1918
- } : e), i = _e.map((t, n) => (e.font = ne(r[n], T), e.measureText(t.text).width)), a = i.reduce((e, t) => e + t, 0), o;
1919
- o = O === "right" ? u + P - 3 - a : O === "center" ? u + P / 2 - a / 2 : u + N, e.textAlign = "left";
1918
+ } : e), i = ge.map((t, n) => (e.font = M(r[n], T), e.measureText(t.text).width)), a = i.reduce((e, t) => e + t, 0), o;
1919
+ o = O === "right" ? u + L - 3 - a : O === "center" ? u + L / 2 - a / 2 : u + I, e.textAlign = "left";
1920
1920
  let s;
1921
- k === "top" ? (e.textBaseline = "top", s = b + 2) : k === "center" ? (e.textBaseline = "middle", s = b + I / 2) : (e.textBaseline = "bottom", s = b + I - 2);
1921
+ k === "top" ? (e.textBaseline = "top", s = b + 2) : k === "center" ? (e.textBaseline = "middle", s = b + z / 2) : (e.textBaseline = "bottom", s = b + z - 2);
1922
1922
  let c = o;
1923
- for (let a = 0; a < _e.length; a++) {
1923
+ for (let a = 0; a < ge.length; a++) {
1924
1924
  let o = r[a], l = t[a];
1925
- e.font = ne(o, T);
1926
- let u = H.fontColor ?? o.color;
1925
+ e.font = M(o, T);
1926
+ let u = U.fontColor ?? o.color;
1927
1927
  e.fillStyle = u ? S(u) : "#000000";
1928
1928
  let d = Math.round(l.size * h), f = 0;
1929
- n[a] === "superscript" ? f = -Math.round(d * .35) : n[a] === "subscript" && (f = Math.round(d * .1)), e.fillText(_e[a].text, c, s + f);
1929
+ n[a] === "superscript" ? f = -Math.round(d * .35) : n[a] === "subscript" && (f = Math.round(d * .1)), e.fillText(ge[a].text, c, s + f);
1930
1930
  let p = Math.round(o.size * h);
1931
1931
  if (o.underline) {
1932
- let t = (k === "top" ? b + 2 + p + 1 : k === "center" ? b + I / 2 + Math.round(p * .55) : b + I - 2 + 1) + f, n = u ? S(u) : "#000000";
1933
- re(e, c, c + i[a], t, n, o.underlineStyle === "double" || o.underlineStyle === "doubleAccounting");
1932
+ let t = (k === "top" ? b + 2 + p + 1 : k === "center" ? b + z / 2 + Math.round(p * .55) : b + z - 2 + 1) + f, n = u ? S(u) : "#000000";
1933
+ N(e, c, c + i[a], t, n, o.underlineStyle === "double" || o.underlineStyle === "doubleAccounting");
1934
1934
  }
1935
1935
  if (o.strike) {
1936
- let t = (k === "top" ? b + 2 + Math.round(p * .5) : k === "center" ? b + I / 2 : b + I - 2 - Math.round(p * .35)) + f;
1936
+ let t = (k === "top" ? b + 2 + Math.round(p * .5) : k === "center" ? b + z / 2 : b + z - 2 - Math.round(p * .35)) + f;
1937
1937
  e.save(), e.strokeStyle = u ? S(u) : "#000000", e.lineWidth = .5, e.beginPath(), e.moveTo(c, t), e.lineTo(c + i[a], t), e.stroke(), e.restore();
1938
1938
  }
1939
1939
  c += i[a];
1940
1940
  }
1941
1941
  } else {
1942
- let t = p.vertAlign, n = Math.round(R.size * h), r = 0;
1942
+ let t = p.vertAlign, n = Math.round(V.size * h), r = 0;
1943
1943
  t === "superscript" ? r = -Math.round(n * .35) : t === "subscript" && (r = Math.round(n * .1));
1944
1944
  let i = t ? {
1945
1945
  ...p,
1946
1946
  size: p.size * .65
1947
1947
  } : p;
1948
- t && (e.font = ne(i, T));
1949
- let a = null, o = () => a ??= e.measureText(K), s = () => {
1950
- let e = Math.min(o().width, se - N - 3);
1948
+ t && (e.font = M(i, T));
1949
+ let a = null, o = () => a ??= e.measureText(q), s = () => {
1950
+ let e = Math.min(o().width, oe - I - 3);
1951
1951
  return {
1952
- x: O === "right" ? u + P - 3 - e : O === "center" ? u + P / 2 - e / 2 : u + N,
1952
+ x: O === "right" ? u + L - 3 - e : O === "center" ? u + L / 2 - e / 2 : u + I,
1953
1953
  width: e
1954
1954
  };
1955
1955
  }, c = Math.round(i.size * h);
1956
1956
  if (p.underline || x) {
1957
- let { x: t, width: n } = s(), i = (k === "top" ? b + 2 + c + 1 : k === "center" ? b + I / 2 + Math.round(c * .55) : b + I - 2 + 1) + r, a = x ? "#0563C1" : w ? S(w) : "#000000", o = p.underlineStyle === "double" || p.underlineStyle === "doubleAccounting";
1958
- re(e, t, t + n, i, a, o);
1957
+ let { x: t, width: n } = s(), i = (k === "top" ? b + 2 + c + 1 : k === "center" ? b + z / 2 + Math.round(c * .55) : b + z - 2 + 1) + r, a = x ? "#0563C1" : w ? S(w) : "#000000", o = p.underlineStyle === "double" || p.underlineStyle === "doubleAccounting";
1958
+ N(e, t, t + n, i, a, o);
1959
1959
  }
1960
1960
  if (p.strike) {
1961
- let { x: t, width: n } = s(), i = (k === "top" ? b + 2 + Math.round(c * .5) : k === "center" ? b + I / 2 : b + I - 2 - Math.round(c * .35)) + r;
1961
+ let { x: t, width: n } = s(), i = (k === "top" ? b + 2 + Math.round(c * .5) : k === "center" ? b + z / 2 : b + z - 2 - Math.round(c * .35)) + r;
1962
1962
  e.save(), e.strokeStyle = w ? S(w) : "#000000", e.lineWidth = .5, e.beginPath(), e.moveTo(t, i), e.lineTo(t + n, i), e.stroke(), e.restore();
1963
1963
  }
1964
- if (K.includes("\n")) {
1965
- let t = K.split("\n"), n = Math.round(R.size * h * 1.2), i = t.length * n, a;
1966
- k === "top" ? (a = b + 2, e.textBaseline = "top") : k === "center" ? (a = b + (I - i) / 2, e.textBaseline = "top") : (a = b + I - i - 2, e.textBaseline = "top");
1967
- for (let i = 0; i < t.length; i++) e.fillText(t[i], ue, a + i * n + r);
1964
+ if (q.includes("\n")) {
1965
+ let t = q.split("\n"), n = Math.round(V.size * h * 1.2), i = t.length * n, a;
1966
+ k === "top" ? (a = b + 2, e.textBaseline = "top") : k === "center" ? (a = b + (z - i) / 2, e.textBaseline = "top") : (a = b + z - i - 2, e.textBaseline = "top");
1967
+ for (let i = 0; i < t.length; i++) e.fillText(t[i], le, a + i * n + r);
1968
1968
  } else {
1969
1969
  let t;
1970
- k === "top" ? (e.textBaseline = "top", t = b + 2) : k === "center" ? (e.textBaseline = "middle", t = b + I / 2) : (e.textBaseline = "bottom", t = b + I - 2), e.fillText(ce, ue, t + r);
1970
+ k === "top" ? (e.textBaseline = "top", t = b + 2) : k === "center" ? (e.textBaseline = "middle", t = b + z / 2) : (e.textBaseline = "bottom", t = b + z - 2), e.fillText(se, le, t + r);
1971
1971
  }
1972
1972
  }
1973
- e.restore(), K && t.onTextRun && t.onTextRun({
1974
- text: K,
1973
+ e.restore(), q && t.onTextRun && t.onTextRun({
1974
+ text: q,
1975
1975
  x: u,
1976
1976
  y: b,
1977
- width: P,
1978
- height: I,
1977
+ width: L,
1978
+ height: z,
1979
1979
  row: c,
1980
1980
  col: o
1981
1981
  });
1982
1982
  });
1983
1983
  }
1984
1984
  }
1985
- for (let e of F) e();
1985
+ for (let e of R) e();
1986
1986
  e.restore();
1987
1987
  }
1988
- function gt(e, t, n, r, i = {}) {
1988
+ function ht(e, t, n, r, i = {}) {
1989
1989
  let a = i.dpr ?? 1, o = i.cellScale ?? 1, s = y(t), c = e.canvas.width / a, l = e.canvas.height / a;
1990
1990
  e.clearRect(0, 0, c, l), e.fillStyle = "#ffffff", e.fillRect(0, 0, c, l);
1991
1991
  let u = (e) => Math.round(e * o), d = u(50), f = u(22), { row: p, col: m, rows: h, cols: _ } = r, v = (i.scrollOffsetX ?? 0) * o, S = (i.scrollOffsetY ?? 0) * o, C = i.freezeRows ?? 0, w = i.freezeCols ?? 0, T = [];
@@ -1996,41 +1996,41 @@ function gt(e, t, n, r, i = {}) {
1996
1996
  for (let e = m; e < m + _; e++) k.push(u(b(t.colWidths[e] ?? t.defaultColWidth, s)));
1997
1997
  let A = [];
1998
1998
  for (let e = p; e < p + h; e++) A.push(u(x(t.rowHeights[e] ?? t.defaultRowHeight)));
1999
- let te = /* @__PURE__ */ new Map();
2000
- for (let e of t.rows) for (let t of e.cells) te.set(`${t.row}:${t.col}`, t);
2001
- let ne = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Set();
1999
+ let j = /* @__PURE__ */ new Map();
2000
+ for (let e of t.rows) for (let t of e.cells) j.set(`${t.row}:${t.col}`, t);
2001
+ let M = /* @__PURE__ */ new Map(), N = /* @__PURE__ */ new Set();
2002
2002
  for (let e of t.mergeCells ?? []) {
2003
2003
  let n = 0;
2004
2004
  for (let r = e.left; r <= e.right; r++) n += u(b(t.colWidths[r] ?? t.defaultColWidth, s));
2005
2005
  let r = 0;
2006
2006
  for (let n = e.top; n <= e.bottom; n++) r += u(x(t.rowHeights[n] ?? t.defaultRowHeight));
2007
- ne.set(`${e.top}:${e.left}`, {
2007
+ M.set(`${e.top}:${e.left}`, {
2008
2008
  totalW: n,
2009
2009
  totalH: r,
2010
2010
  right: e.right,
2011
2011
  bottom: e.bottom
2012
2012
  });
2013
- for (let t = e.top; t <= e.bottom; t++) for (let n = e.left; n <= e.right; n++) t === e.top && n === e.left || re.add(`${t}:${n}`);
2013
+ for (let t = e.top; t <= e.bottom; t++) for (let n = e.left; n <= e.right; n++) t === e.top && n === e.left || N.add(`${t}:${n}`);
2014
2014
  }
2015
- let j = be(t), ie = /* @__PURE__ */ new Set();
2015
+ let P = ye(t), te = /* @__PURE__ */ new Set();
2016
2016
  if (t.autoFilter) {
2017
2017
  let e = t.autoFilter;
2018
- for (let t = e.left; t <= e.right; t++) ie.add(`${e.top}:${t}`);
2018
+ for (let t = e.left; t <= e.right; t++) te.add(`${e.top}:${t}`);
2019
2019
  }
2020
- let M = /* @__PURE__ */ new Map();
2021
- for (let e of t.hyperlinks ?? []) e.url && M.set(`${e.row}:${e.col}`, e.url);
2022
- let N = /* @__PURE__ */ new Set();
2020
+ let F = /* @__PURE__ */ new Map();
2021
+ for (let e of t.hyperlinks ?? []) e.url && F.set(`${e.row}:${e.col}`, e.url);
2022
+ let I = /* @__PURE__ */ new Set();
2023
2023
  for (let e of t.commentRefs ?? []) {
2024
2024
  let t = ee(e);
2025
- t && N.add(`${t.row}:${t.col}`);
2025
+ t && I.add(`${t.row}:${t.col}`);
2026
2026
  }
2027
- let P = {
2027
+ let L = {
2028
2028
  worksheet: t,
2029
2029
  styles: n,
2030
- cellMap: te,
2031
- mergeAnchorMap: ne,
2032
- mergeSkipSet: re,
2033
- cfContext: j,
2030
+ cellMap: j,
2031
+ mergeAnchorMap: M,
2032
+ mergeSkipSet: N,
2033
+ cfContext: P,
2034
2034
  colWidths: k,
2035
2035
  rowHeights: A,
2036
2036
  frozenColWidths: T,
@@ -2041,52 +2041,52 @@ function gt(e, t, n, r, i = {}) {
2041
2041
  startCol: m,
2042
2042
  cs: o,
2043
2043
  dpr: a,
2044
- autoFilterCells: ie,
2045
- hyperlinkMap: M,
2046
- commentCells: N,
2047
- tableStyleMap: ft(t),
2048
- sparklineMap: pt(t),
2044
+ autoFilterCells: te,
2045
+ hyperlinkMap: F,
2046
+ commentCells: I,
2047
+ tableStyleMap: dt(t),
2048
+ sparklineMap: ft(t),
2049
2049
  mdw: s,
2050
2050
  onTextRun: i.onTextRun
2051
- }, F = d, I = f, L = F + D, R = I + O, z = Math.max(0, c - L), B = Math.max(0, l - R);
2052
- C > 0 && w > 0 && ht(e, P, 1, 1, T, E, 0, 0, F, I, F, I, D, O), C > 0 && ht(e, P, 1, m, k, E, v, 0, L, I, L, I, z, O), w > 0 && ht(e, P, p, 1, T, A, 0, S, F, R, F, R, D, B), ht(e, P, p, m, k, A, v, S, L, R, L, R, z, B), t.images && t.images.length > 0 && i.loadedImages && yt(e, t, i.loadedImages, o, p, m, v, S, L, R, z, B), t.shapeGroups && t.shapeGroups.length > 0 && bt(e, t, o, p, m, v, S, L, R, z, B, i.loadedImages), t.charts && t.charts.length > 0 && Nt(e, t, o, p, m, v, S, L, R, z, B), t.slicers && t.slicers.length > 0 && Kt(e, t, o, p, m, v, S, L, R, z, B), _t(e, c, l, p, m, h, _, k, A, v, S, T, E, D, O, d, f, o, a), C > 0 && (e.save(), e.strokeStyle = g, e.lineWidth = .5, e.beginPath(), e.moveTo(d, R + .5), e.lineTo(c, R + .5), e.stroke(), e.restore()), w > 0 && (e.save(), e.strokeStyle = g, e.lineWidth = .5, e.beginPath(), e.moveTo(L + .5, f), e.lineTo(L + .5, l), e.stroke(), e.restore());
2053
- }
2054
- function _t(e, t, n, r, i, a, o, s, c, l, u, d, p, m, h, g, _, v, y) {
2055
- let b = "#f8f9fa", x = "#c8ccd0", S = "#444", C = `${Math.max(1, Math.round(11 * v))}px ${f}`, w = g + m, T = _ + h, E = .5 / y;
2056
- e.fillStyle = b, e.fillRect(0, 0, g, _), e.strokeStyle = x, e.lineWidth = .5, e.beginPath(), e.moveTo(E, 0), e.lineTo(E, _), e.moveTo(0, E), e.lineTo(g, E), e.moveTo(g - E, 0), e.lineTo(g - E, _), e.moveTo(0, _ - E), e.lineTo(g, _ - E), e.stroke(), e.font = C, e.fillStyle = S;
2057
- let D = (t, n, r) => {
2058
- e.fillStyle = b, e.fillRect(n, 0, r, _), e.strokeStyle = x, e.lineWidth = .5, e.beginPath(), e.moveTo(n + r - E, 0), e.lineTo(n + r - E, _), e.moveTo(n, _ - E), e.lineTo(n + r, _ - E), e.moveTo(n, E), e.lineTo(n + r, E), e.stroke(), e.fillStyle = S, e.textAlign = "center", e.textBaseline = "middle", e.fillText(me(t), n + r / 2, _ / 2);
2059
- }, O = (t, n, r) => {
2060
- e.fillStyle = b, e.fillRect(0, n, g, r), e.strokeStyle = x, e.lineWidth = .5, e.beginPath(), e.moveTo(g - E, n), e.lineTo(g - E, n + r), e.moveTo(0, n + r - E), e.lineTo(g, n + r - E), e.moveTo(E, n), e.lineTo(E, n + r), e.stroke(), e.fillStyle = S, e.textAlign = "right", e.textBaseline = "middle", e.fillText(String(t), g - Math.max(2, Math.round(4 * v)), n + r / 2);
2051
+ }, R = d, z = f, B = R + D, V = z + O, ne = Math.max(0, c - B), re = Math.max(0, l - V);
2052
+ C > 0 && w > 0 && mt(e, L, 1, 1, T, E, 0, 0, R, z, R, z, D, O), C > 0 && mt(e, L, 1, m, k, E, v, 0, B, z, B, z, ne, O), w > 0 && mt(e, L, p, 1, T, A, 0, S, R, V, R, V, D, re), mt(e, L, p, m, k, A, v, S, B, V, B, V, ne, re), t.images && t.images.length > 0 && i.loadedImages && yt(e, t, i.loadedImages, o, p, m, v, S, B, V, ne, re), t.shapeGroups && t.shapeGroups.length > 0 && bt(e, t, o, p, m, v, S, B, V, ne, re, i.loadedImages), t.charts && t.charts.length > 0 && Nt(e, t, o, p, m, v, S, B, V, ne, re), t.slicers && t.slicers.length > 0 && Kt(e, t, o, p, m, v, S, B, V, ne, re), gt(e, c, l, p, m, h, _, k, A, v, S, T, E, D, O, d, f, o, a, i.selectedRowRange ?? null, i.selectedColRange ?? null), C > 0 && (e.save(), e.strokeStyle = g, e.lineWidth = .5, e.beginPath(), e.moveTo(d, V + .5), e.lineTo(c, V + .5), e.stroke(), e.restore()), w > 0 && (e.save(), e.strokeStyle = g, e.lineWidth = .5, e.beginPath(), e.moveTo(B + .5, f), e.lineTo(B + .5, l), e.stroke(), e.restore());
2053
+ }
2054
+ function gt(e, t, n, r, i, a, o, s, c, l, u, d, p, m, h, g, _, v, y, b, x) {
2055
+ let S = "#f8f9fa", C = "#e8eaed", w = "#caddf6", T = "#c8ccd0", E = "#5b9bd5", D = "#444", O = (e) => !x || e < x.start || e > x.end ? S : x.strong ? w : C, k = (e) => !x || e < x.start || e > x.end ? T : x.strong ? E : T, ee = (e) => !b || e < b.start || e > b.end ? S : b.strong ? w : C, A = (e) => !b || e < b.start || e > b.end ? T : b.strong ? E : T, j = `${Math.max(1, Math.round(11 * v))}px ${f}`, M = g + m, N = _ + h, P = .5 / y;
2056
+ e.fillStyle = S, e.fillRect(0, 0, g, _), e.strokeStyle = T, e.lineWidth = .5, e.beginPath(), e.moveTo(P, 0), e.lineTo(P, _), e.moveTo(0, P), e.lineTo(g, P), e.moveTo(g - P, 0), e.lineTo(g - P, _), e.moveTo(0, _ - P), e.lineTo(g, _ - P), e.stroke(), e.font = j, e.fillStyle = D;
2057
+ let te = (t, n, r) => {
2058
+ e.fillStyle = O(t), e.fillRect(n, 0, r, _), e.strokeStyle = k(t), e.lineWidth = .5, e.beginPath(), e.moveTo(n + r - P, 0), e.lineTo(n + r - P, _), e.moveTo(n, _ - P), e.lineTo(n + r, _ - P), e.moveTo(n, P), e.lineTo(n + r, P), e.stroke(), e.fillStyle = D, e.textAlign = "center", e.textBaseline = "middle", e.fillText(pe(t), n + r / 2, _ / 2);
2059
+ }, F = (t, n, r) => {
2060
+ e.fillStyle = ee(t), e.fillRect(0, n, g, r), e.strokeStyle = A(t), e.lineWidth = .5, e.beginPath(), e.moveTo(g - P, n), e.lineTo(g - P, n + r), e.moveTo(0, n + r - P), e.lineTo(g, n + r - P), e.moveTo(P, n), e.lineTo(P, n + r), e.stroke(), e.fillStyle = D, e.textAlign = "right", e.textBaseline = "middle", e.fillText(String(t), g - Math.max(2, Math.round(4 * v)), n + r / 2);
2061
2061
  };
2062
2062
  if (d.length > 0) {
2063
2063
  e.save(), e.beginPath(), e.rect(g, 0, m, _), e.clip();
2064
2064
  let t = g;
2065
- for (let e = 0; e < d.length; e++) D(e + 1, t, d[e]), t += d[e];
2065
+ for (let e = 0; e < d.length; e++) te(e + 1, t, d[e]), t += d[e];
2066
2066
  e.restore();
2067
2067
  }
2068
- e.save(), e.beginPath(), e.rect(w, 0, t - w, _), e.clip();
2069
- let k = w - l;
2068
+ e.save(), e.beginPath(), e.rect(M, 0, t - M, _), e.clip();
2069
+ let I = M - l;
2070
2070
  for (let e = 0; e < s.length; e++) {
2071
2071
  let n = s[e];
2072
- k + n > w && k < t && D(i + e, k, n), k += n;
2072
+ I + n > M && I < t && te(i + e, I, n), I += n;
2073
2073
  }
2074
2074
  if (e.restore(), p.length > 0) {
2075
2075
  e.save(), e.beginPath(), e.rect(0, _, g, h), e.clip();
2076
2076
  let t = _;
2077
- for (let e = 0; e < p.length; e++) O(e + 1, t, p[e]), t += p[e];
2077
+ for (let e = 0; e < p.length; e++) F(e + 1, t, p[e]), t += p[e];
2078
2078
  e.restore();
2079
2079
  }
2080
- e.save(), e.beginPath(), e.rect(0, T, g, n - T), e.clip();
2081
- let ee = T - u;
2080
+ e.save(), e.beginPath(), e.rect(0, N, g, n - N), e.clip();
2081
+ let L = N - u;
2082
2082
  for (let e = 0; e < c.length; e++) {
2083
2083
  let t = c[e];
2084
- ee + t > T && ee < n && O(r + e, ee, t), ee += t;
2084
+ L + t > N && L < n && F(r + e, L, t), L += t;
2085
2085
  }
2086
2086
  e.restore();
2087
2087
  }
2088
- var Q = 9525;
2089
- function $(e, t, n) {
2088
+ var $ = 9525;
2089
+ function _t(e, t, n) {
2090
2090
  let r = y(e), i = 0;
2091
2091
  for (let a = 1; a < t; a++) i += Math.round(b(e.colWidths[a] ?? e.defaultColWidth, r) * n);
2092
2092
  return i;
@@ -2098,12 +2098,12 @@ function vt(e, t, n) {
2098
2098
  }
2099
2099
  function yt(e, t, n, r, i, a, o, s, c, l, u, d) {
2100
2100
  if (u <= 0 || d <= 0) return;
2101
- let f = $(t, a, r), p = vt(t, i, r);
2101
+ let f = _t(t, a, r), p = vt(t, i, r);
2102
2102
  e.save(), e.beginPath(), e.rect(c, l, u, d), e.clip();
2103
2103
  for (let i of t.images) {
2104
2104
  let a = n.get(i.dataUrl);
2105
2105
  if (!a) continue;
2106
- let m = i.fromCol + 1, h = i.fromRow + 1, g = i.toCol + 1, _ = i.toRow + 1, v = $(t, m, r) + i.fromColOff * r / Q, y = vt(t, h, r) + i.fromRowOff * r / Q, b = $(t, g, r) + i.toColOff * r / Q, x = vt(t, _, r) + i.toRowOff * r / Q, S = b - v, C = x - y;
2106
+ let m = i.fromCol + 1, h = i.fromRow + 1, g = i.toCol + 1, _ = i.toRow + 1, v = _t(t, m, r) + i.fromColOff * r / $, y = vt(t, h, r) + i.fromRowOff * r / $, b = _t(t, g, r) + i.toColOff * r / $, x = vt(t, _, r) + i.toRowOff * r / $, S = b - v, C = x - y;
2107
2107
  if (S <= 0 || C <= 0) continue;
2108
2108
  let w = c + (v - f) - o, T = l + (y - p) - s;
2109
2109
  w + S < c || w > c + u || T + C < l || T > l + d || e.drawImage(a, w, T, S, C);
@@ -2114,10 +2114,10 @@ function bt(e, t, n, r, i, a, o, s, c, l, u, d) {
2114
2114
  if (l <= 0 || u <= 0) return;
2115
2115
  let f = t.shapeGroups;
2116
2116
  if (!f || f.length === 0) return;
2117
- let p = $(t, i, n), m = vt(t, r, n);
2117
+ let p = _t(t, i, n), m = vt(t, r, n);
2118
2118
  e.save(), e.beginPath(), e.rect(s, c, l, u), e.clip();
2119
2119
  for (let r of f) {
2120
- let i = r.fromCol + 1, f = r.fromRow + 1, h = r.toCol + 1, g = r.toRow + 1, _ = $(t, i, n) + r.fromColOff * n / Q, v = vt(t, f, n) + r.fromRowOff * n / Q, y = $(t, h, n) + r.toColOff * n / Q, b = vt(t, g, n) + r.toRowOff * n / Q, x = y - _, S = b - v;
2120
+ let i = r.fromCol + 1, f = r.fromRow + 1, h = r.toCol + 1, g = r.toRow + 1, _ = _t(t, i, n) + r.fromColOff * n / $, v = vt(t, f, n) + r.fromRowOff * n / $, y = _t(t, h, n) + r.toColOff * n / $, b = vt(t, g, n) + r.toRowOff * n / $, x = y - _, S = b - v;
2121
2121
  if (x <= 0 || S <= 0) continue;
2122
2122
  let C = s + (_ - p) - a, w = c + (v - m) - o;
2123
2123
  if (!(C + x < s || C > s + l) && !(w + S < c || w > c + u)) for (let t of r.shapes) {
@@ -2254,14 +2254,14 @@ function St(e, t, n, r) {
2254
2254
  }
2255
2255
  }
2256
2256
  function Ct(e, t) {
2257
- t.fillColor && (e.fillStyle = t.fillColor, e.fill()), t.strokeColor && t.strokeWidth > 0 && (e.strokeStyle = t.strokeColor, e.lineWidth = Math.max(.5, t.strokeWidth / Q), e.stroke());
2257
+ t.fillColor && (e.fillStyle = t.fillColor, e.fill()), t.strokeColor && t.strokeWidth > 0 && (e.strokeStyle = t.strokeColor, e.lineWidth = Math.max(.5, t.strokeWidth / $), e.stroke());
2258
2258
  }
2259
2259
  function wt(e, t, n, r, i, a, o) {
2260
2260
  if (r === n && i === t) return e;
2261
2261
  let s = (e, r) => {
2262
2262
  if (e === t && r === n) return null;
2263
2263
  let i = a.get(`${e}:${r}`);
2264
- return i ? ie(o, i.styleIndex).border : null;
2264
+ return i ? te(o, i.styleIndex).border : null;
2265
2265
  }, c = s(t, r), l = s(i, n), u = s(i, r), d = (e, ...t) => {
2266
2266
  if (e?.style) return e;
2267
2267
  for (let e of t) if (e?.style) return e;
@@ -2509,9 +2509,9 @@ function Mt(e) {
2509
2509
  }
2510
2510
  function Nt(e, t, n, i, a, o, s, c, l, u, d) {
2511
2511
  if (u <= 0 || d <= 0) return;
2512
- let f = $(t, a, n), p = vt(t, i, n);
2512
+ let f = _t(t, a, n), p = vt(t, i, n);
2513
2513
  for (let i of t.charts) {
2514
- let a = i.fromCol + 1, m = i.fromRow + 1, h = i.toCol + 1, g = i.toRow + 1, _ = $(t, a, n) + i.fromColOff * n / Q, v = vt(t, m, n) + i.fromRowOff * n / Q, y = $(t, h, n) + i.toColOff * n / Q, b = vt(t, g, n) + i.toRowOff * n / Q, x = y - _, S = b - v;
2514
+ let a = i.fromCol + 1, m = i.fromRow + 1, h = i.toCol + 1, g = i.toRow + 1, _ = _t(t, a, n) + i.fromColOff * n / $, v = vt(t, m, n) + i.fromRowOff * n / $, y = _t(t, h, n) + i.toColOff * n / $, b = vt(t, g, n) + i.toRowOff * n / $, x = y - _, S = b - v;
2515
2515
  if (x <= 0 || S <= 0) continue;
2516
2516
  let C = c + (_ - f) - o, w = l + (v - p) - s;
2517
2517
  if (C + x < c || C > c + u || w + S < l || w > l + d) continue;
@@ -2530,9 +2530,9 @@ function Kt(e, t, n, r, i, a, o, s, c, l, u) {
2530
2530
  if (l <= 0 || u <= 0) return;
2531
2531
  let d = t.slicers;
2532
2532
  if (!d) return;
2533
- let f = $(t, i, n), p = vt(t, r, n);
2533
+ let f = _t(t, i, n), p = vt(t, r, n);
2534
2534
  for (let r of d) {
2535
- let i = r.fromCol + 1, d = r.fromRow + 1, m = r.toCol + 1, h = r.toRow + 1, g = $(t, i, n) + r.fromColOff * n / Q, _ = vt(t, d, n) + r.fromRowOff * n / Q, v = $(t, m, n) + r.toColOff * n / Q, y = vt(t, h, n) + r.toRowOff * n / Q, b = v - g, x = y - _;
2535
+ let i = r.fromCol + 1, d = r.fromRow + 1, m = r.toCol + 1, h = r.toRow + 1, g = _t(t, i, n) + r.fromColOff * n / $, _ = vt(t, d, n) + r.fromRowOff * n / $, v = _t(t, m, n) + r.toColOff * n / $, y = vt(t, h, n) + r.toRowOff * n / $, b = v - g, x = y - _;
2536
2536
  if (b <= 0 || x <= 0) continue;
2537
2537
  let S = s + (g - f) - a, C = c + (_ - p) - o;
2538
2538
  S + b < s || S > s + l || C + x < c || C > c + u || (e.save(), e.beginPath(), e.rect(s, c, l, u), e.clip(), qt(e, r.caption, r.items, S, C, b, x, n), e.restore());
@@ -2636,7 +2636,7 @@ var Xt = {
2636
2636
  let s = r.dpr ?? (typeof window < "u" ? window.devicePixelRatio : 1), c = e instanceof HTMLCanvasElement ? e.clientWidth || 800 : e.width, l = e instanceof HTMLCanvasElement ? e.clientHeight || 600 : e.height, u = r.width ?? c, d = r.height ?? l;
2637
2637
  e.width = Math.round(u * s), e.height = Math.round(d * s), e instanceof HTMLCanvasElement && (e.style.width = `${u}px`, e.style.height = `${d}px`);
2638
2638
  let f = e.getContext("2d");
2639
- f.scale(s, s), gt(f, i, a, n, {
2639
+ f.scale(s, s), ht(f, i, a, n, {
2640
2640
  ...r,
2641
2641
  dpr: s,
2642
2642
  loadedImages: this.imageCache
@@ -2947,11 +2947,11 @@ var Xt = {
2947
2947
  }, this.activeCell = {
2948
2948
  row: 1,
2949
2949
  col: a.col
2950
- }, i && (this.isSelecting = !0, this.scrollHost.setPointerCapture(r))), this.updateSelectionOverlay(), this.opts.onSelectionChange?.(this.selection);
2950
+ }, i && (this.isSelecting = !0, this.scrollHost.setPointerCapture(r))), this.updateSelectionOverlay(), this.renderCurrentSheet(), this.opts.onSelectionChange?.(this.selection);
2951
2951
  return;
2952
2952
  }
2953
2953
  let o = this.getCellAt(e, t);
2954
- o && (n && this.anchorCell && this.selectionMode === "cells" ? this.activeCell = o : (this.selectionMode = "cells", this.anchorCell = o, this.activeCell = o), i && (this.isSelecting = !0, this.scrollHost.setPointerCapture(r)), this.updateSelectionOverlay(), this.opts.onSelectionChange?.(this.selection));
2954
+ o && (n && this.anchorCell && this.selectionMode === "cells" ? this.activeCell = o : (this.selectionMode = "cells", this.anchorCell = o, this.activeCell = o), i && (this.isSelecting = !0, this.scrollHost.setPointerCapture(r)), this.updateSelectionOverlay(), this.renderCurrentSheet(), this.opts.onSelectionChange?.(this.selection));
2955
2955
  }
2956
2956
  setupSelectionEvents() {
2957
2957
  this.scrollHost.addEventListener("pointerdown", (e) => {
@@ -2992,7 +2992,7 @@ var Xt = {
2992
2992
  if (!t || t.row === this.activeCell?.row && t.col === this.activeCell?.col) return;
2993
2993
  this.activeCell = t;
2994
2994
  }
2995
- this.updateSelectionOverlay(), this.opts.onSelectionChange?.(this.selection);
2995
+ this.updateSelectionOverlay(), this.renderCurrentSheet(), this.opts.onSelectionChange?.(this.selection);
2996
2996
  }
2997
2997
  }), this.scrollHost.addEventListener("pointerup", (e) => {
2998
2998
  if (this.pendingTap && this.pendingTap.pointerId === e.pointerId) {
@@ -3080,7 +3080,7 @@ var Xt = {
3080
3080
  col: d,
3081
3081
  rows: C,
3082
3082
  cols: S
3083
- };
3083
+ }, { selectedRowRange: T, selectedColRange: E } = this.computeHeaderHighlight();
3084
3084
  await this.wb.renderViewport(this.canvas, this.currentSheet, w, {
3085
3085
  width: t,
3086
3086
  height: n,
@@ -3089,9 +3089,68 @@ var Xt = {
3089
3089
  scrollOffsetX: p,
3090
3090
  scrollOffsetY: g,
3091
3091
  freezeRows: a,
3092
- freezeCols: o
3092
+ freezeCols: o,
3093
+ selectedRowRange: T,
3094
+ selectedColRange: E
3093
3095
  });
3094
3096
  }
3097
+ computeHeaderHighlight() {
3098
+ if (!this.anchorCell || !this.activeCell) return {
3099
+ selectedRowRange: null,
3100
+ selectedColRange: null
3101
+ };
3102
+ let e = 2 ** 53 - 1, t = Math.min(this.anchorCell.row, this.activeCell.row), n = Math.max(this.anchorCell.row, this.activeCell.row), r = Math.min(this.anchorCell.col, this.activeCell.col), i = Math.max(this.anchorCell.col, this.activeCell.col);
3103
+ switch (this.selectionMode) {
3104
+ case "cells": return {
3105
+ selectedRowRange: {
3106
+ start: t,
3107
+ end: n,
3108
+ strong: !1
3109
+ },
3110
+ selectedColRange: {
3111
+ start: r,
3112
+ end: i,
3113
+ strong: !1
3114
+ }
3115
+ };
3116
+ case "rows": return {
3117
+ selectedRowRange: {
3118
+ start: t,
3119
+ end: n,
3120
+ strong: !0
3121
+ },
3122
+ selectedColRange: {
3123
+ start: 1,
3124
+ end: e,
3125
+ strong: !1
3126
+ }
3127
+ };
3128
+ case "cols": return {
3129
+ selectedRowRange: {
3130
+ start: 1,
3131
+ end: e,
3132
+ strong: !1
3133
+ },
3134
+ selectedColRange: {
3135
+ start: r,
3136
+ end: i,
3137
+ strong: !0
3138
+ }
3139
+ };
3140
+ case "all": return {
3141
+ selectedRowRange: {
3142
+ start: 1,
3143
+ end: e,
3144
+ strong: !0
3145
+ },
3146
+ selectedColRange: {
3147
+ start: 1,
3148
+ end: e,
3149
+ strong: !0
3150
+ }
3151
+ };
3152
+ }
3153
+ }
3095
3154
  get sheetNames() {
3096
3155
  return this.wb.sheetNames;
3097
3156
  }