ooxml-excel-editor 1.16.1 → 1.16.3

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.
@@ -20,7 +20,7 @@ var bs = (o, e) => {
20
20
  return t;
21
21
  };
22
22
  var C = (o, e, t) => zn(o, typeof e != "symbol" ? e + "" : e, t);
23
- var te = Uint8Array, be = Uint16Array, Jo = Int32Array, In = new te([
23
+ var te = Uint8Array, be = Uint16Array, Jo = Int32Array, Mn = new te([
24
24
  0,
25
25
  0,
26
26
  0,
@@ -55,7 +55,7 @@ var te = Uint8Array, be = Uint16Array, Jo = Int32Array, In = new te([
55
55
  0,
56
56
  /* impossible */
57
57
  0
58
- ]), Mn = new te([
58
+ ]), In = new te([
59
59
  0,
60
60
  0,
61
61
  0,
@@ -96,14 +96,14 @@ var te = Uint8Array, be = Uint16Array, Jo = Int32Array, In = new te([
96
96
  for (var i = t[n]; i < t[n + 1]; ++i)
97
97
  s[i] = i - t[n] << 5 | n;
98
98
  return { b: t, r: s };
99
- }, Br = zr(In, 2), Wr = Br.b, Po = Br.r;
99
+ }, Br = zr(Mn, 2), Wr = Br.b, Po = Br.r;
100
100
  Wr[28] = 258, Po[258] = 28;
101
- var Ur = zr(Mn, 0), da = Ur.b, ys = Ur.r, Oo = new be(32768);
101
+ var Ur = zr(In, 0), da = Ur.b, ys = Ur.r, Oo = new be(32768);
102
102
  for (var J = 0; J < 32768; ++J) {
103
103
  var De = (J & 43690) >> 1 | (J & 21845) << 1;
104
104
  De = (De & 52428) >> 2 | (De & 13107) << 2, De = (De & 61680) >> 4 | (De & 3855) << 4, Oo[J] = ((De & 65280) >> 8 | (De & 255) << 8) >> 1;
105
105
  }
106
- var Ie = (function(o, e, t) {
106
+ var Me = (function(o, e, t) {
107
107
  for (var n = o.length, s = 0, i = new be(e); s < n; ++s)
108
108
  o[s] && ++i[o[s] - 1];
109
109
  var r = new be(e);
@@ -133,7 +133,7 @@ for (var J = 280; J < 288; ++J)
133
133
  var Nt = new te(32);
134
134
  for (var J = 0; J < 32; ++J)
135
135
  Nt[J] = 5;
136
- var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /* @__PURE__ */ Ie(Nt, 5, 0), pa = /* @__PURE__ */ Ie(Nt, 5, 1), Bn = function(o) {
136
+ var ha = /* @__PURE__ */ Me(Ve, 9, 0), fa = /* @__PURE__ */ Me(Ve, 9, 1), ua = /* @__PURE__ */ Me(Nt, 5, 0), pa = /* @__PURE__ */ Me(Nt, 5, 1), Bn = function(o) {
137
137
  for (var e = o[0], t = 1; t < o.length; ++t)
138
138
  o[t] > e && (e = o[t]);
139
139
  return e;
@@ -190,12 +190,12 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
190
190
  if (y == 1)
191
191
  u = fa, p = pa, g = 9, b = 5;
192
192
  else if (y == 2) {
193
- var S = we(o, h, 31) + 257, k = we(o, h + 10, 15) + 4, I = S + we(o, h + 5, 31) + 1;
193
+ var S = we(o, h, 31) + 257, k = we(o, h + 10, 15) + 4, M = S + we(o, h + 5, 31) + 1;
194
194
  h += 14;
195
- for (var E = new te(I), $ = new te(19), T = 0; T < k; ++T)
195
+ for (var E = new te(M), $ = new te(19), T = 0; T < k; ++T)
196
196
  $[No[T]] = we(o, h + T * 3, 7);
197
197
  h += k * 3;
198
- for (var M = Bn($), A = (1 << M) - 1, L = Ie($, M, 1), T = 0; T < I; ) {
198
+ for (var I = Bn($), A = (1 << I) - 1, L = Me($, I, 1), T = 0; T < M; ) {
199
199
  var N = L[we(o, h, A)];
200
200
  h += N & 15;
201
201
  var w = N >> 4;
@@ -208,7 +208,7 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
208
208
  }
209
209
  }
210
210
  var D = E.subarray(0, S), B = E.subarray(S);
211
- g = Bn(D), b = Bn(B), u = Ie(D, g, 1), p = Ie(B, b, 1);
211
+ g = Bn(D), b = Bn(B), u = Me(D, g, 1), p = Me(B, b, 1);
212
212
  } else
213
213
  ce(1);
214
214
  else {
@@ -240,14 +240,14 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
240
240
  } else {
241
241
  var Q = U - 254;
242
242
  if (U > 264) {
243
- var T = U - 257, V = In[T];
243
+ var T = U - 257, V = Mn[T];
244
244
  Q = we(o, h, (1 << V) - 1) + Wr[T], h += V;
245
245
  }
246
- var ue = p[Wn(o, h) & j], Me = ue >> 4;
246
+ var ue = p[Wn(o, h) & j], Ie = ue >> 4;
247
247
  ue || ce(3), h += ue & 15;
248
- var B = da[Me];
249
- if (Me > 3) {
250
- var V = Mn[Me];
248
+ var B = da[Ie];
249
+ if (Ie > 3) {
250
+ var V = In[Ie];
251
251
  B += Wn(o, h) & (1 << V) - 1, h += V;
252
252
  }
253
253
  if (h > m) {
@@ -354,37 +354,37 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
354
354
  return (s + 4 + n) * 8;
355
355
  }, ws = function(o, e, t, n, s, i, r, l, a, c, d) {
356
356
  Re(e, d++, t), ++s[256];
357
- for (var h = Un(s, 15), f = h.t, u = h.l, p = Un(i, 15), g = p.t, b = p.l, m = xs(f), y = m.c, w = m.n, v = xs(g), x = v.c, S = v.n, k = new be(19), I = 0; I < y.length; ++I)
358
- ++k[y[I] & 31];
359
- for (var I = 0; I < x.length; ++I)
360
- ++k[x[I] & 31];
361
- for (var E = Un(k, 7), $ = E.t, T = E.l, M = 19; M > 4 && !$[No[M - 1]]; --M)
357
+ for (var h = Un(s, 15), f = h.t, u = h.l, p = Un(i, 15), g = p.t, b = p.l, m = xs(f), y = m.c, w = m.n, v = xs(g), x = v.c, S = v.n, k = new be(19), M = 0; M < y.length; ++M)
358
+ ++k[y[M] & 31];
359
+ for (var M = 0; M < x.length; ++M)
360
+ ++k[x[M] & 31];
361
+ for (var E = Un(k, 7), $ = E.t, T = E.l, I = 19; I > 4 && !$[No[I - 1]]; --I)
362
362
  ;
363
- var A = c + 5 << 3, L = bt(s, Ve) + bt(i, Nt) + r, N = bt(s, f) + bt(i, g) + r + 14 + 3 * M + bt(k, $) + 2 * k[16] + 3 * k[17] + 7 * k[18];
363
+ var A = c + 5 << 3, L = bt(s, Ve) + bt(i, Nt) + r, N = bt(s, f) + bt(i, g) + r + 14 + 3 * I + bt(k, $) + 2 * k[16] + 3 * k[17] + 7 * k[18];
364
364
  if (a >= 0 && A <= L && A <= N)
365
365
  return qr(e, d, o.subarray(a, a + c));
366
366
  var F, H, D, B;
367
367
  if (Re(e, d, 1 + (N < L)), d += 2, N < L) {
368
- F = Ie(f, u, 0), H = f, D = Ie(g, b, 0), B = g;
369
- var X = Ie($, T, 0);
370
- Re(e, d, w - 257), Re(e, d + 5, S - 1), Re(e, d + 10, M - 4), d += 14;
371
- for (var I = 0; I < M; ++I)
372
- Re(e, d + 3 * I, $[No[I]]);
373
- d += 3 * M;
368
+ F = Me(f, u, 0), H = f, D = Me(g, b, 0), B = g;
369
+ var X = Me($, T, 0);
370
+ Re(e, d, w - 257), Re(e, d + 5, S - 1), Re(e, d + 10, I - 4), d += 14;
371
+ for (var M = 0; M < I; ++M)
372
+ Re(e, d + 3 * M, $[No[M]]);
373
+ d += 3 * I;
374
374
  for (var j = [y, x], ne = 0; ne < 2; ++ne)
375
- for (var U = j[ne], I = 0; I < U.length; ++I) {
376
- var Q = U[I] & 31;
377
- Re(e, d, X[Q]), d += $[Q], Q > 15 && (Re(e, d, U[I] >> 5 & 127), d += U[I] >> 12);
375
+ for (var U = j[ne], M = 0; M < U.length; ++M) {
376
+ var Q = U[M] & 31;
377
+ Re(e, d, X[Q]), d += $[Q], Q > 15 && (Re(e, d, U[M] >> 5 & 127), d += U[M] >> 12);
378
378
  }
379
379
  } else
380
380
  F = ha, H = Ve, D = ua, B = Nt;
381
- for (var I = 0; I < l; ++I) {
382
- var V = n[I];
381
+ for (var M = 0; M < l; ++M) {
382
+ var V = n[M];
383
383
  if (V > 255) {
384
384
  var Q = V >> 18 & 31;
385
- mt(e, d, F[Q + 257]), d += H[Q + 257], Q > 7 && (Re(e, d, V >> 23 & 31), d += In[Q]);
385
+ mt(e, d, F[Q + 257]), d += H[Q + 257], Q > 7 && (Re(e, d, V >> 23 & 31), d += Mn[Q]);
386
386
  var ue = V & 31;
387
- mt(e, d, D[ue]), d += B[ue], ue > 3 && (mt(e, d, V >> 5 & 8191), d += Mn[ue]);
387
+ mt(e, d, D[ue]), d += B[ue], ue > 3 && (mt(e, d, V >> 5 & 8191), d += In[ue]);
388
388
  } else
389
389
  mt(e, d, F[V]), d += H[V];
390
390
  }
@@ -395,12 +395,12 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
395
395
  d && (a[0] = i.r >> 3);
396
396
  for (var h = ba[e - 1], f = h >> 13, u = h & 8191, p = (1 << t) - 1, g = i.p || new be(32768), b = i.h || new be(p + 1), m = Math.ceil(t / 3), y = 2 * m, w = function(Dn) {
397
397
  return (o[Dn] ^ o[Dn + 1] << m ^ o[Dn + 2] << y) & p;
398
- }, v = new Jo(25e3), x = new be(288), S = new be(32), k = 0, I = 0, E = i.i || 0, $ = 0, T = i.w || 0, M = 0; E + 2 < r; ++E) {
398
+ }, v = new Jo(25e3), x = new be(288), S = new be(32), k = 0, M = 0, E = i.i || 0, $ = 0, T = i.w || 0, I = 0; E + 2 < r; ++E) {
399
399
  var A = w(E), L = E & 32767, N = b[A];
400
400
  if (g[L] = N, b[A] = L, T <= E) {
401
401
  var F = r - E;
402
402
  if ((k > 7e3 || $ > 24576) && (F > 423 || !c)) {
403
- d = ws(o, a, 0, v, x, S, I, $, M, E - M, d), $ = k = I = 0, M = E;
403
+ d = ws(o, a, 0, v, x, S, M, $, I, E - I, d), $ = k = M = 0, I = E;
404
404
  for (var H = 0; H < 286; ++H)
405
405
  x[H] = 0;
406
406
  for (var H = 0; H < 30; ++H)
@@ -415,9 +415,9 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
415
415
  if (V > D) {
416
416
  if (D = V, B = j, V > ne)
417
417
  break;
418
- for (var ue = Math.min(j, V - 2), Me = 0, H = 0; H < ue; ++H) {
418
+ for (var ue = Math.min(j, V - 2), Ie = 0, H = 0; H < ue; ++H) {
419
419
  var q = E - j + H & 32767, K = g[q], pe = q - K & 32767;
420
- pe > Me && (Me = pe, N = q);
420
+ pe > Ie && (Ie = pe, N = q);
421
421
  }
422
422
  }
423
423
  }
@@ -426,14 +426,14 @@ var ha = /* @__PURE__ */ Ie(Ve, 9, 0), fa = /* @__PURE__ */ Ie(Ve, 9, 1), ua = /
426
426
  if (B) {
427
427
  v[$++] = 268435456 | Po[D] << 18 | ys[B];
428
428
  var Ae = Po[D] & 31, gt = ys[B] & 31;
429
- I += In[Ae] + Mn[gt], ++x[257 + Ae], ++S[gt], T = E + D, ++k;
429
+ M += Mn[Ae] + In[gt], ++x[257 + Ae], ++S[gt], T = E + D, ++k;
430
430
  } else
431
431
  v[$++] = o[E], ++x[o[E]];
432
432
  }
433
433
  }
434
434
  for (E = Math.max(E, T); E < r; ++E)
435
435
  v[$++] = o[E], ++x[o[E]];
436
- d = ws(o, a, c, v, x, S, I, $, M, E - M, d), c || (i.r = d & 7 | a[d / 8 | 0] << 3, d -= 7, i.h = b, i.p = g, i.i = E, i.w = T);
436
+ d = ws(o, a, c, v, x, S, M, $, I, E - I, d), c || (i.r = d & 7 | a[d / 8 | 0] << 3, d -= 7, i.h = b, i.p = g, i.i = E, i.w = T);
437
437
  } else {
438
438
  for (var E = i.w || 0; E < r + c; E += 65535) {
439
439
  var Ze = E + 65535;
@@ -567,9 +567,9 @@ function Z(o, e) {
567
567
  var Ta = function(o, e) {
568
568
  return e + 30 + Te(o, e + 26) + Te(o, e + 28);
569
569
  }, $a = function(o, e, t) {
570
- var n = Te(o, e + 28), s = Te(o, e + 30), i = Z(o.subarray(e + 46, e + 46 + n), !(Te(o, e + 8) & 2048)), r = e + 46 + n, l = Ia(o, r, s, t, xe(o, e + 20), xe(o, e + 24), xe(o, e + 42)), a = l[0], c = l[1], d = l[2];
570
+ var n = Te(o, e + 28), s = Te(o, e + 30), i = Z(o.subarray(e + 46, e + 46 + n), !(Te(o, e + 8) & 2048)), r = e + 46 + n, l = Ma(o, r, s, t, xe(o, e + 20), xe(o, e + 24), xe(o, e + 42)), a = l[0], c = l[1], d = l[2];
571
571
  return [Te(o, e + 10), a, c, i, r + s + Te(o, e + 32), d];
572
- }, Ia = function(o, e, t, n, s, i, r) {
572
+ }, Ma = function(o, e, t, n, s, i, r) {
573
573
  var l = s == 4294967295, a = i == 4294967295, c = r == 4294967295, d = e + t, h = l + a + c;
574
574
  if (n && h) {
575
575
  for (; e + 4 < d; e += 4 + Te(o, e + 2))
@@ -601,7 +601,7 @@ var Ta = function(o, e) {
601
601
  oe(o, e, +p), oe(o, e + 2, b), o.set(g, e + 4), e += 4 + b;
602
602
  }
603
603
  return d && (o.set(l, e), e += d), e;
604
- }, Ma = function(o, e, t, n, s) {
604
+ }, Ia = function(o, e, t, n, s) {
605
605
  oe(o, e, 101010256), oe(o, e + 8, t), oe(o, e + 10, t), oe(o, e + 12, n), oe(o, e + 16, s);
606
606
  };
607
607
  function zt(o, e) {
@@ -627,10 +627,10 @@ function zt(o, e) {
627
627
  for (var v = new te(i + 22), x = s, S = i - s, k = 0; k < n.length; ++k) {
628
628
  var h = n[k];
629
629
  ks(v, h.o, h, h.f, h.u, h.c.length);
630
- var I = 30 + h.f.length + zo(h.extra);
631
- v.set(h.c, h.o + I), ks(v, s, h, h.f, h.u, h.c.length, h.o, h.m), s += 16 + I + (h.m ? h.m.length : 0);
630
+ var M = 30 + h.f.length + zo(h.extra);
631
+ v.set(h.c, h.o + M), ks(v, s, h, h.f, h.u, h.c.length, h.o, h.m), s += 16 + M + (h.m ? h.m.length : 0);
632
632
  }
633
- return Ma(v, s, n.length, S, x), v;
633
+ return Ia(v, s, n.length, S, x), v;
634
634
  }
635
635
  function Ye(o, e) {
636
636
  for (var t = {}, n = o.length - 22; xe(o, n) != 101010256; --n)
@@ -719,41 +719,41 @@ function Gr() {
719
719
  S = s(m, S);
720
720
  continue;
721
721
  } else {
722
- let I = !1;
723
- m[S] === "/" && (I = !0, S++);
722
+ let M = !1;
723
+ m[S] === "/" && (M = !0, S++);
724
724
  let E = "";
725
725
  for (; S < m.length && m[S] !== ">" && m[S] !== " " && m[S] !== " " && m[S] !== `
726
726
  ` && m[S] !== "\r"; S++)
727
727
  E += m[S];
728
728
  if (E = E.trim(), E[E.length - 1] === "/" && (E = E.substring(0, E.length - 1), S--), !p(E)) {
729
- let M;
730
- return E.trim().length === 0 ? M = "Invalid space after '<'." : M = "Tag '" + E + "' is an invalid name.", f("InvalidTag", M, g(m, S));
729
+ let I;
730
+ return E.trim().length === 0 ? I = "Invalid space after '<'." : I = "Tag '" + E + "' is an invalid name.", f("InvalidTag", I, g(m, S));
731
731
  }
732
732
  const $ = l(m, S);
733
733
  if ($ === !1)
734
734
  return f("InvalidAttr", "Attributes for '" + E + "' have open quote.", g(m, S));
735
735
  let T = $.value;
736
736
  if (S = $.index, T[T.length - 1] === "/") {
737
- const M = S - T.length;
737
+ const I = S - T.length;
738
738
  T = T.substring(0, T.length - 1);
739
739
  const A = c(T, y);
740
740
  if (A === !0)
741
741
  v = !0;
742
742
  else
743
- return f(A.err.code, A.err.msg, g(m, M + A.err.line));
744
- } else if (I)
743
+ return f(A.err.code, A.err.msg, g(m, I + A.err.line));
744
+ } else if (M)
745
745
  if ($.tagClosed) {
746
746
  if (T.trim().length > 0)
747
747
  return f("InvalidTag", "Closing tag '" + E + "' can't have attributes or invalid starting.", g(m, k));
748
748
  if (w.length === 0)
749
749
  return f("InvalidTag", "Closing tag '" + E + "' has not been opened.", g(m, k));
750
750
  {
751
- const M = w.pop();
752
- if (E !== M.tagName) {
753
- let A = g(m, M.tagStartPos);
751
+ const I = w.pop();
752
+ if (E !== I.tagName) {
753
+ let A = g(m, I.tagStartPos);
754
754
  return f(
755
755
  "InvalidTag",
756
- "Expected closing tag '" + M.tagName + "' (opened in line " + A.line + ", col " + A.col + ") instead of closing tag '" + E + "'.",
756
+ "Expected closing tag '" + I.tagName + "' (opened in line " + A.line + ", col " + A.col + ") instead of closing tag '" + E + "'.",
757
757
  g(m, k)
758
758
  );
759
759
  }
@@ -761,9 +761,9 @@ function Gr() {
761
761
  }
762
762
  } else return f("InvalidTag", "Closing tag '" + E + "' doesn't have proper closing.", g(m, S));
763
763
  else {
764
- const M = c(T, y);
765
- if (M !== !0)
766
- return f(M.err.code, M.err.msg, g(m, S - T.length + M.err.line));
764
+ const I = c(T, y);
765
+ if (I !== !0)
766
+ return f(I.err.code, I.err.msg, g(m, S - T.length + I.err.line));
767
767
  if (x === !0)
768
768
  return f("InvalidXml", "Multiple possible root nodes found.", g(m, S));
769
769
  y.unpairedTags.indexOf(E) !== -1 || w.push({ tagName: E, tagStartPos: k }), v = !0;
@@ -778,10 +778,10 @@ function Gr() {
778
778
  } else
779
779
  break;
780
780
  else if (m[S] === "&") {
781
- const M = h(m, S);
782
- if (M == -1)
781
+ const I = h(m, S);
782
+ if (I == -1)
783
783
  return f("InvalidChar", "char '&' is not expected.", g(m, S));
784
- S = M;
784
+ S = I;
785
785
  } else if (x === !0 && !t(m[S]))
786
786
  return f("InvalidXml", "Extra text at the end", g(m, S));
787
787
  m[S] === "<" && S--;
@@ -1242,10 +1242,10 @@ function Fa() {
1242
1242
  }
1243
1243
  return Yn = e, Yn;
1244
1244
  }
1245
- var Xn, Is;
1245
+ var Xn, Ms;
1246
1246
  function La() {
1247
- if (Is) return Xn;
1248
- Is = 1;
1247
+ if (Ms) return Xn;
1248
+ Ms = 1;
1249
1249
  const o = /^[-+]?0x[a-fA-F0-9]+$/, e = /^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/, t = {
1250
1250
  hex: !0,
1251
1251
  // oct: false,
@@ -1297,10 +1297,10 @@ function La() {
1297
1297
  }
1298
1298
  return Xn = n, Xn;
1299
1299
  }
1300
- var Gn, Ms;
1300
+ var Gn, Is;
1301
1301
  function Kr() {
1302
- if (Ms) return Gn;
1303
- Ms = 1;
1302
+ if (Is) return Gn;
1303
+ Is = 1;
1304
1304
  function o(e) {
1305
1305
  return typeof e == "function" ? e : Array.isArray(e) ? (t) => {
1306
1306
  for (const n of e)
@@ -1316,8 +1316,8 @@ function Na() {
1316
1316
  As = 1;
1317
1317
  const o = An(), e = Ra(), t = Fa(), n = La(), s = Kr();
1318
1318
  class i {
1319
- constructor(I) {
1320
- if (this.options = I, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {
1319
+ constructor(M) {
1320
+ if (this.options = M, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {
1321
1321
  apos: { regex: /&(apos|#39|#x27);/g, val: "'" },
1322
1322
  gt: { regex: /&(gt|#62|#x3E);/g, val: ">" },
1323
1323
  lt: { regex: /&(lt|#60|#x3C);/g, val: "<" },
@@ -1348,67 +1348,67 @@ function Na() {
1348
1348
  }
1349
1349
  }
1350
1350
  function r(k) {
1351
- const I = Object.keys(k);
1352
- for (let E = 0; E < I.length; E++) {
1353
- const $ = I[E], T = $.replace(/[.\-+*:]/g, "\\.");
1351
+ const M = Object.keys(k);
1352
+ for (let E = 0; E < M.length; E++) {
1353
+ const $ = M[E], T = $.replace(/[.\-+*:]/g, "\\.");
1354
1354
  this.lastEntities[$] = {
1355
1355
  regex: new RegExp("&" + T + ";", "g"),
1356
1356
  val: k[$]
1357
1357
  };
1358
1358
  }
1359
1359
  }
1360
- function l(k, I, E, $, T, M, A) {
1360
+ function l(k, M, E, $, T, I, A) {
1361
1361
  if (k !== void 0 && (this.options.trimValues && !$ && (k = k.trim()), k.length > 0)) {
1362
- A || (k = this.replaceEntitiesValue(k, I, E));
1363
- const L = this.options.tagValueProcessor(I, k, E, T, M);
1362
+ A || (k = this.replaceEntitiesValue(k, M, E));
1363
+ const L = this.options.tagValueProcessor(M, k, E, T, I);
1364
1364
  return L == null ? k : typeof L != typeof k || L !== k ? L : this.options.trimValues ? v(k, this.options.parseTagValue, this.options.numberParseOptions) : k.trim() === k ? v(k, this.options.parseTagValue, this.options.numberParseOptions) : k;
1365
1365
  }
1366
1366
  }
1367
1367
  function a(k) {
1368
1368
  if (this.options.removeNSPrefix) {
1369
- const I = k.split(":"), E = k.charAt(0) === "/" ? "/" : "";
1370
- if (I[0] === "xmlns")
1369
+ const M = k.split(":"), E = k.charAt(0) === "/" ? "/" : "";
1370
+ if (M[0] === "xmlns")
1371
1371
  return "";
1372
- I.length === 2 && (k = E + I[1]);
1372
+ M.length === 2 && (k = E + M[1]);
1373
1373
  }
1374
1374
  return k;
1375
1375
  }
1376
1376
  const c = new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`, "gm");
1377
- function d(k, I, E) {
1377
+ function d(k, M, E) {
1378
1378
  if (this.options.ignoreAttributes !== !0 && typeof k == "string") {
1379
- const $ = o.getAllMatches(k, c), T = $.length, M = {};
1379
+ const $ = o.getAllMatches(k, c), T = $.length, I = {};
1380
1380
  for (let A = 0; A < T; A++) {
1381
1381
  const L = this.resolveNameSpace($[A][1]);
1382
- if (this.ignoreAttributesFn(L, I))
1382
+ if (this.ignoreAttributesFn(L, M))
1383
1383
  continue;
1384
1384
  let N = $[A][4], F = this.options.attributeNamePrefix + L;
1385
1385
  if (L.length)
1386
1386
  if (this.options.transformAttributeName && (F = this.options.transformAttributeName(F)), F = S(F, this.options), N !== void 0) {
1387
- this.options.trimValues && (N = N.trim()), N = this.replaceEntitiesValue(N, E, I);
1388
- const H = this.options.attributeValueProcessor(L, N, I);
1389
- H == null ? M[F] = N : typeof H != typeof N || H !== N ? M[F] = H : M[F] = v(
1387
+ this.options.trimValues && (N = N.trim()), N = this.replaceEntitiesValue(N, E, M);
1388
+ const H = this.options.attributeValueProcessor(L, N, M);
1389
+ H == null ? I[F] = N : typeof H != typeof N || H !== N ? I[F] = H : I[F] = v(
1390
1390
  N,
1391
1391
  this.options.parseAttributeValue,
1392
1392
  this.options.numberParseOptions
1393
1393
  );
1394
- } else this.options.allowBooleanAttributes && (M[F] = !0);
1394
+ } else this.options.allowBooleanAttributes && (I[F] = !0);
1395
1395
  }
1396
- if (!Object.keys(M).length)
1396
+ if (!Object.keys(I).length)
1397
1397
  return;
1398
1398
  if (this.options.attributesGroupName) {
1399
1399
  const A = {};
1400
- return A[this.options.attributesGroupName] = M, A;
1400
+ return A[this.options.attributesGroupName] = I, A;
1401
1401
  }
1402
- return M;
1402
+ return I;
1403
1403
  }
1404
1404
  }
1405
1405
  const h = function(k) {
1406
1406
  k = k.replace(/\r\n?/g, `
1407
1407
  `);
1408
- const I = new e("!xml");
1409
- let E = I, $ = "", T = "";
1408
+ const M = new e("!xml");
1409
+ let E = M, $ = "", T = "";
1410
1410
  this.entityExpansionCount = 0, this.currentExpandedLength = 0;
1411
- const M = new t(this.options.processEntities);
1411
+ const I = new t(this.options.processEntities);
1412
1412
  for (let A = 0; A < k.length; A++)
1413
1413
  if (k[A] === "<")
1414
1414
  if (k[A + 1] === "/") {
@@ -1440,7 +1440,7 @@ function Na() {
1440
1440
  }
1441
1441
  A = N;
1442
1442
  } else if (k.substr(A + 1, 2) === "!D") {
1443
- const N = M.readDocType(k, A);
1443
+ const N = I.readDocType(k, A);
1444
1444
  this.docTypeEntities = N.entities, A = N.i;
1445
1445
  } else if (k.substr(A + 1, 2) === "![") {
1446
1446
  const N = m(k, "]]>", A, "CDATA is not closed.") - 2, F = k.substring(A + 9, N);
@@ -1459,7 +1459,7 @@ function Na() {
1459
1459
  throw new Error(`Invalid tag name: ${F}`);
1460
1460
  E && $ && E.tagname !== "!xml" && ($ = this.saveTextToParentTag($, E, T, !1));
1461
1461
  const j = E;
1462
- j && this.options.unpairedTags.indexOf(j.tagname) !== -1 && (E = this.tagsNodeStack.pop(), T = T.substring(0, T.lastIndexOf("."))), F !== I.tagname && (T += T ? "." + F : F);
1462
+ j && this.options.unpairedTags.indexOf(j.tagname) !== -1 && (E = this.tagsNodeStack.pop(), T = T.substring(0, T.lastIndexOf("."))), F !== M.tagname && (T += T ? "." + F : F);
1463
1463
  const ne = A;
1464
1464
  if (this.isItStopNode(this.stopNodesExact, this.stopNodesWildcard, T, F)) {
1465
1465
  let U = "";
@@ -1497,28 +1497,28 @@ function Na() {
1497
1497
  }
1498
1498
  else
1499
1499
  $ += k[A];
1500
- return I.child;
1500
+ return M.child;
1501
1501
  };
1502
- function f(k, I, E, $) {
1502
+ function f(k, M, E, $) {
1503
1503
  this.options.captureMetaData || ($ = void 0);
1504
- const T = this.options.updateTag(I.tagname, E, I[":@"]);
1505
- T === !1 || (typeof T == "string" && (I.tagname = T), k.addChild(I, $));
1504
+ const T = this.options.updateTag(M.tagname, E, M[":@"]);
1505
+ T === !1 || (typeof T == "string" && (M.tagname = T), k.addChild(M, $));
1506
1506
  }
1507
- const u = function(k, I, E) {
1507
+ const u = function(k, M, E) {
1508
1508
  if (k.indexOf("&") === -1)
1509
1509
  return k;
1510
1510
  const $ = this.options.processEntities;
1511
- if (!$.enabled || $.allowedTags && !$.allowedTags.includes(I) || $.tagFilter && !$.tagFilter(I, E))
1511
+ if (!$.enabled || $.allowedTags && !$.allowedTags.includes(M) || $.tagFilter && !$.tagFilter(M, E))
1512
1512
  return k;
1513
1513
  for (let T in this.docTypeEntities) {
1514
- const M = this.docTypeEntities[T], A = k.match(M.regx);
1514
+ const I = this.docTypeEntities[T], A = k.match(I.regx);
1515
1515
  if (A) {
1516
1516
  if (this.entityExpansionCount += A.length, $.maxTotalExpansions && this.entityExpansionCount > $.maxTotalExpansions)
1517
1517
  throw new Error(
1518
1518
  `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${$.maxTotalExpansions}`
1519
1519
  );
1520
1520
  const L = k.length;
1521
- if (k = k.replace(M.regx, M.val), $.maxExpandedLength && (this.currentExpandedLength += k.length - L, this.currentExpandedLength > $.maxExpandedLength))
1521
+ if (k = k.replace(I.regx, I.val), $.maxExpandedLength && (this.currentExpandedLength += k.length - L, this.currentExpandedLength > $.maxExpandedLength))
1522
1522
  throw new Error(
1523
1523
  `Total expanded content size exceeded: ${this.currentExpandedLength} > ${$.maxExpandedLength}`
1524
1524
  );
@@ -1526,75 +1526,75 @@ function Na() {
1526
1526
  }
1527
1527
  if (k.indexOf("&") === -1) return k;
1528
1528
  for (const T of Object.keys(this.lastEntities)) {
1529
- const M = this.lastEntities[T], A = k.match(M.regex);
1529
+ const I = this.lastEntities[T], A = k.match(I.regex);
1530
1530
  if (A && (this.entityExpansionCount += A.length, $.maxTotalExpansions && this.entityExpansionCount > $.maxTotalExpansions))
1531
1531
  throw new Error(
1532
1532
  `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${$.maxTotalExpansions}`
1533
1533
  );
1534
- k = k.replace(M.regex, M.val);
1534
+ k = k.replace(I.regex, I.val);
1535
1535
  }
1536
1536
  if (k.indexOf("&") === -1) return k;
1537
1537
  if (this.options.htmlEntities)
1538
1538
  for (const T of Object.keys(this.htmlEntities)) {
1539
- const M = this.htmlEntities[T], A = k.match(M.regex);
1539
+ const I = this.htmlEntities[T], A = k.match(I.regex);
1540
1540
  if (A && (this.entityExpansionCount += A.length, $.maxTotalExpansions && this.entityExpansionCount > $.maxTotalExpansions))
1541
1541
  throw new Error(
1542
1542
  `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${$.maxTotalExpansions}`
1543
1543
  );
1544
- k = k.replace(M.regex, M.val);
1544
+ k = k.replace(I.regex, I.val);
1545
1545
  }
1546
1546
  return k = k.replace(this.ampEntity.regex, this.ampEntity.val), k;
1547
1547
  };
1548
- function p(k, I, E, $) {
1549
- return k && ($ === void 0 && ($ = I.child.length === 0), k = this.parseTextData(
1548
+ function p(k, M, E, $) {
1549
+ return k && ($ === void 0 && ($ = M.child.length === 0), k = this.parseTextData(
1550
1550
  k,
1551
- I.tagname,
1551
+ M.tagname,
1552
1552
  E,
1553
1553
  !1,
1554
- I[":@"] ? Object.keys(I[":@"]).length !== 0 : !1,
1554
+ M[":@"] ? Object.keys(M[":@"]).length !== 0 : !1,
1555
1555
  $
1556
- ), k !== void 0 && k !== "" && I.add(this.options.textNodeName, k), k = ""), k;
1556
+ ), k !== void 0 && k !== "" && M.add(this.options.textNodeName, k), k = ""), k;
1557
1557
  }
1558
- function g(k, I, E, $) {
1559
- return !!(I && I.has($) || k && k.has(E));
1558
+ function g(k, M, E, $) {
1559
+ return !!(M && M.has($) || k && k.has(E));
1560
1560
  }
1561
- function b(k, I, E = ">") {
1561
+ function b(k, M, E = ">") {
1562
1562
  let $, T = "";
1563
- for (let M = I; M < k.length; M++) {
1564
- let A = k[M];
1563
+ for (let I = M; I < k.length; I++) {
1564
+ let A = k[I];
1565
1565
  if ($)
1566
1566
  A === $ && ($ = "");
1567
1567
  else if (A === '"' || A === "'")
1568
1568
  $ = A;
1569
1569
  else if (A === E[0])
1570
1570
  if (E[1]) {
1571
- if (k[M + 1] === E[1])
1571
+ if (k[I + 1] === E[1])
1572
1572
  return {
1573
1573
  data: T,
1574
- index: M
1574
+ index: I
1575
1575
  };
1576
1576
  } else
1577
1577
  return {
1578
1578
  data: T,
1579
- index: M
1579
+ index: I
1580
1580
  };
1581
1581
  else A === " " && (A = " ");
1582
1582
  T += A;
1583
1583
  }
1584
1584
  }
1585
- function m(k, I, E, $) {
1586
- const T = k.indexOf(I, E);
1585
+ function m(k, M, E, $) {
1586
+ const T = k.indexOf(M, E);
1587
1587
  if (T === -1)
1588
1588
  throw new Error($);
1589
- return T + I.length - 1;
1589
+ return T + M.length - 1;
1590
1590
  }
1591
- function y(k, I, E, $ = ">") {
1592
- const T = b(k, I + 1, $);
1591
+ function y(k, M, E, $ = ">") {
1592
+ const T = b(k, M + 1, $);
1593
1593
  if (!T) return;
1594
- let M = T.data;
1595
- const A = T.index, L = M.search(/\s/);
1596
- let N = M, F = !0;
1597
- L !== -1 && (N = M.substring(0, L), M = M.substring(L + 1).trimStart());
1594
+ let I = T.data;
1595
+ const A = T.index, L = I.search(/\s/);
1596
+ let N = I, F = !0;
1597
+ L !== -1 && (N = I.substring(0, L), I = I.substring(L + 1).trimStart());
1598
1598
  const H = N;
1599
1599
  if (E) {
1600
1600
  const D = N.indexOf(":");
@@ -1602,25 +1602,25 @@ function Na() {
1602
1602
  }
1603
1603
  return {
1604
1604
  tagName: N,
1605
- tagExp: M,
1605
+ tagExp: I,
1606
1606
  closeIndex: A,
1607
1607
  attrExpPresent: F,
1608
1608
  rawTagName: H
1609
1609
  };
1610
1610
  }
1611
- function w(k, I, E) {
1611
+ function w(k, M, E) {
1612
1612
  const $ = E;
1613
1613
  let T = 1;
1614
1614
  for (; E < k.length; E++)
1615
1615
  if (k[E] === "<")
1616
1616
  if (k[E + 1] === "/") {
1617
- const M = m(k, ">", E, `${I} is not closed`);
1618
- if (k.substring(E + 2, M).trim() === I && (T--, T === 0))
1617
+ const I = m(k, ">", E, `${M} is not closed`);
1618
+ if (k.substring(E + 2, I).trim() === M && (T--, T === 0))
1619
1619
  return {
1620
1620
  tagContent: k.substring($, E),
1621
- i: M
1621
+ i: I
1622
1622
  };
1623
- E = M;
1623
+ E = I;
1624
1624
  } else if (k[E + 1] === "?")
1625
1625
  E = m(k, "?>", E + 1, "StopNode is not closed.");
1626
1626
  else if (k.substr(E + 1, 3) === "!--")
@@ -1628,25 +1628,25 @@ function Na() {
1628
1628
  else if (k.substr(E + 1, 2) === "![")
1629
1629
  E = m(k, "]]>", E, "StopNode is not closed.") - 2;
1630
1630
  else {
1631
- const M = y(k, E, ">");
1632
- M && ((M && M.tagName) === I && M.tagExp[M.tagExp.length - 1] !== "/" && T++, E = M.closeIndex);
1631
+ const I = y(k, E, ">");
1632
+ I && ((I && I.tagName) === M && I.tagExp[I.tagExp.length - 1] !== "/" && T++, E = I.closeIndex);
1633
1633
  }
1634
1634
  }
1635
- function v(k, I, E) {
1636
- if (I && typeof k == "string") {
1635
+ function v(k, M, E) {
1636
+ if (M && typeof k == "string") {
1637
1637
  const $ = k.trim();
1638
1638
  return $ === "true" ? !0 : $ === "false" ? !1 : n(k, E);
1639
1639
  } else
1640
1640
  return o.isExist(k) ? k : "";
1641
1641
  }
1642
- function x(k, I, E) {
1643
- const $ = Number.parseInt(k, I);
1642
+ function x(k, M, E) {
1643
+ const $ = Number.parseInt(k, M);
1644
1644
  return $ >= 0 && $ <= 1114111 ? String.fromCodePoint($) : E + k + ";";
1645
1645
  }
1646
- function S(k, I) {
1646
+ function S(k, M) {
1647
1647
  if (o.criticalProperties.includes(k))
1648
1648
  throw new Error(`[SECURITY] Invalid name: "${k}" is a reserved JavaScript keyword that could cause prototype pollution`);
1649
- return o.DANGEROUS_PROPERTY_NAMES.includes(k) ? I.onDangerousProperty(k) : k;
1649
+ return o.DANGEROUS_PROPERTY_NAMES.includes(k) ? M.onDangerousProperty(k) : k;
1650
1650
  }
1651
1651
  return Kn = i, Kn;
1652
1652
  }
@@ -2313,7 +2313,7 @@ function Qa(o, e, t) {
2313
2313
  }), t == null || t({ stage: "build", ratio: 1 }), r;
2314
2314
  }
2315
2315
  function ec(o, e, t, n) {
2316
- var M, A, L, N;
2316
+ var I, A, L, N;
2317
2317
  const s = [Qo()], i = /* @__PURE__ */ new Map([[JSON.stringify(s[0]), 0]]), r = /* @__PURE__ */ new Map(), l = (F) => {
2318
2318
  const H = JSON.stringify(F), D = i.get(H);
2319
2319
  if (D !== void 0) return D;
@@ -2330,7 +2330,7 @@ function ec(o, e, t, n) {
2330
2330
  const d = pc(o);
2331
2331
  for (const F of d)
2332
2332
  a = Math.max(a, F.bottom), c = Math.max(c, F.right);
2333
- const h = /* @__PURE__ */ new Map(), f = o.properties || {}, u = Ds((M = f.defaultColWidth) != null ? M : Zr), p = zs((A = f.defaultRowHeight) != null ? A : Qr);
2333
+ const h = /* @__PURE__ */ new Map(), f = o.properties || {}, u = Ds((I = f.defaultColWidth) != null ? I : Zr), p = zs((A = f.defaultRowHeight) != null ? A : Qr);
2334
2334
  for (let F = 1; F <= o.columnCount; F++) {
2335
2335
  const H = o.getColumn(F);
2336
2336
  H && (H.width != null || H.hidden) && h.set(F - 1, {
@@ -2348,7 +2348,7 @@ function ec(o, e, t, n) {
2348
2348
  const b = o.views && o.views[0], m = {
2349
2349
  frozenRows: (b == null ? void 0 : b.state) === "frozen" && (L = b.ySplit) != null ? L : 0,
2350
2350
  frozenCols: (b == null ? void 0 : b.state) === "frozen" && (N = b.xSplit) != null ? N : 0
2351
- }, y = (b == null ? void 0 : b.showGridLines) !== !1, w = gc(o, t), v = mc(o), { ranges: x, lists: S, rules: k } = ac(o), I = sc(o), E = tc(o), $ = nc(o), T = o.state === "hidden" ? "hidden" : o.state === "veryHidden" ? "veryHidden" : "visible";
2351
+ }, y = (b == null ? void 0 : b.showGridLines) !== !1, w = gc(o, t), v = mc(o), { ranges: x, lists: S, rules: k } = ac(o), M = sc(o), E = tc(o), $ = nc(o), T = o.state === "hidden" ? "hidden" : o.state === "veryHidden" ? "veryHidden" : "visible";
2352
2352
  return z(R(R({
2353
2353
  name: o.name,
2354
2354
  index: e,
@@ -2372,7 +2372,7 @@ function ec(o, e, t, n) {
2372
2372
  shapes: [],
2373
2373
  sparklines: [],
2374
2374
  pivotTables: [],
2375
- pageSetup: I
2375
+ pageSetup: M
2376
2376
  }, E ? { sheetProtection: E } : {}), $.length ? { protectedRanges: $ } : {}), {
2377
2377
  showGridLines: y
2378
2378
  });
@@ -2773,8 +2773,8 @@ function wc(o, e) {
2773
2773
  if ((b = (g = i.tx) == null ? void 0 : g.strRef) != null && b.strCache ? l = qs(i.tx.strRef.strCache)[0] : typeof a == "string" && (l = a), r === 0) {
2774
2774
  const k = i.cat;
2775
2775
  if (k) {
2776
- const I = (m = k.strRef) != null && m.strCache ? qs(k.strRef.strCache) : null, E = (y = k.numRef) != null && y.numCache ? io(k.numRef.numCache) : null;
2777
- s = I != null ? I : (E != null ? E : []).map(($) => $ != null ? $ : "");
2776
+ const M = (m = k.strRef) != null && m.strCache ? qs(k.strRef.strCache) : null, E = (y = k.numRef) != null && y.numCache ? io(k.numRef.numCache) : null;
2777
+ s = M != null ? M : (E != null ? E : []).map(($) => $ != null ? $ : "");
2778
2778
  }
2779
2779
  }
2780
2780
  let c = [];
@@ -2862,33 +2862,33 @@ function Sc(o, e, t) {
2862
2862
  if (k) {
2863
2863
  const E = (p = (u = k.graphic) == null ? void 0 : u.graphicData) == null ? void 0 : p.chart, $ = E == null ? void 0 : E["@_id"], T = $ ? i[$] : void 0;
2864
2864
  if (T) {
2865
- const M = yc(o, T);
2866
- if (M && M.type !== "unsupported") {
2867
- const A = z(R({}, M), { anchor: x });
2865
+ const I = yc(o, T);
2866
+ if (I && I.type !== "unsupported") {
2867
+ const A = z(R({}, I), { anchor: x });
2868
2868
  t.charts.push(A);
2869
2869
  }
2870
2870
  }
2871
2871
  continue;
2872
2872
  }
2873
- const I = g.sp;
2874
- I && t.shapes.push(Ec(I, x));
2873
+ const M = g.sp;
2874
+ M && t.shapes.push(Ec(M, x));
2875
2875
  }
2876
2876
  }
2877
2877
  function Ec(o, e) {
2878
- var u, p, g, b, m, y, w, v, x, S, k, I, E, $, T, M;
2878
+ var u, p, g, b, m, y, w, v, x, S, k, M, E, $, T, I;
2879
2879
  const t = o.spPr || {}, n = String((p = (u = t.prstGeom) == null ? void 0 : u["@_prst"]) != null ? p : "rect"), s = n === "roundRect" ? "roundRect" : n === "ellipse" || n === "circle" ? "ellipse" : n === "rect" ? "rect" : "other", i = ro((b = (g = t.solidFill) == null ? void 0 : g.srgbClr) == null ? void 0 : b["@_val"]), r = ro((w = (y = (m = t.ln) == null ? void 0 : m.solidFill) == null ? void 0 : y.srgbClr) == null ? void 0 : w["@_val"]);
2880
2880
  let l = "", a, c = !1;
2881
2881
  const d = G((v = o.txBody) == null ? void 0 : v.p);
2882
2882
  for (const A of d) {
2883
2883
  for (const L of G(A.r)) {
2884
2884
  const N = L.t;
2885
- l += N == null ? "" : typeof N == "object" ? (x = N["#text"]) != null ? x : "" : String(N), a || (a = ro((I = (k = (S = L.rPr) == null ? void 0 : S.solidFill) == null ? void 0 : k.srgbClr) == null ? void 0 : I["@_val"])), (((E = L.rPr) == null ? void 0 : E["@_b"]) === 1 || (($ = L.rPr) == null ? void 0 : $["@_b"]) === "1") && (c = !0);
2885
+ l += N == null ? "" : typeof N == "object" ? (x = N["#text"]) != null ? x : "" : String(N), a || (a = ro((M = (k = (S = L.rPr) == null ? void 0 : S.solidFill) == null ? void 0 : k.srgbClr) == null ? void 0 : M["@_val"])), (((E = L.rPr) == null ? void 0 : E["@_b"]) === 1 || (($ = L.rPr) == null ? void 0 : $["@_b"]) === "1") && (c = !0);
2886
2886
  }
2887
2887
  l += `
2888
2888
  `;
2889
2889
  }
2890
2890
  l = l.trim();
2891
- const h = (M = (T = d[0]) == null ? void 0 : T.pPr) == null ? void 0 : M["@_algn"];
2891
+ const h = (I = (T = d[0]) == null ? void 0 : T.pPr) == null ? void 0 : I["@_algn"];
2892
2892
  return { anchor: e, geom: s, text: l || void 0, fillColor: i, lineColor: r, textColor: a, bold: c, align: h === "ctr" ? "center" : h === "r" ? "right" : "left" };
2893
2893
  }
2894
2894
  function ro(o) {
@@ -2926,8 +2926,8 @@ const $c = {
2926
2926
  svg: "image/svg+xml",
2927
2927
  webp: "image/webp"
2928
2928
  };
2929
- function Ic(o, e) {
2930
- const t = Mc(o);
2929
+ function Mc(o, e) {
2930
+ const t = Ic(o);
2931
2931
  let n = !1;
2932
2932
  for (const s of e)
2933
2933
  for (const i of s.cells.values()) {
@@ -2938,7 +2938,7 @@ function Ic(o, e) {
2938
2938
  if (!(!t && !n))
2939
2939
  return t != null ? t : /* @__PURE__ */ new Map();
2940
2940
  }
2941
- function Mc(o) {
2941
+ function Ic(o) {
2942
2942
  var i, r, l, a, c, d, h;
2943
2943
  const e = o.parse("xl/cellimages.xml"), t = e == null ? void 0 : e.cellImages;
2944
2944
  if (!t) return;
@@ -3126,17 +3126,17 @@ function Uc(o, e) {
3126
3126
  return Se(o, "xl/workbook.xml")[i];
3127
3127
  }
3128
3128
  function qc(o, e, t, n) {
3129
- var g, b, m, y, w, v, x, S, k, I;
3130
- const s = [], i = /* @__PURE__ */ new Set(), r = (E, $, T, M) => {
3129
+ var g, b, m, y, w, v, x, S, k, M;
3130
+ const s = [], i = /* @__PURE__ */ new Set(), r = (E, $, T, I) => {
3131
3131
  if (E < 0 || $ < 0 || E < e.top || E > e.bottom || $ < e.left || $ > e.right) return;
3132
- const A = `${E}:${$}:${T}:${M}`;
3133
- i.has(A) || (i.add(A), s.push({ row: E, col: $, label: T, kind: M }));
3132
+ const A = `${E}:${$}:${T}:${I}`;
3133
+ i.has(A) || (i.add(A), s.push({ row: E, col: $, label: T, kind: I }));
3134
3134
  };
3135
3135
  lo((g = o.pageFields) == null ? void 0 : g.pageField, t, "@_fld").forEach((E, $) => r(e.top + $, e.left, E, "page"));
3136
3136
  const a = lo((b = o.colFields) == null ? void 0 : b.field, t, "@_x"), c = lo((m = o.rowFields) == null ? void 0 : m.field, t, "@_x"), d = G((y = o.dataFields) == null ? void 0 : y.dataField).map((E, $) => {
3137
- var T, M;
3138
- return String((M = (T = E == null ? void 0 : E["@_name"]) != null ? T : t[Number(E == null ? void 0 : E["@_fld"])]) != null ? M : `值${$ + 1}`);
3139
- }), h = jt(e.top + Number((v = (w = o.location) == null ? void 0 : w["@_firstHeaderRow"]) != null ? v : 0), e.top, e.bottom), f = jt(e.left + Number((S = (x = o.location) == null ? void 0 : x["@_firstDataCol"]) != null ? S : c.length), e.left, e.right), u = jt(e.top + Number((I = (k = o.location) == null ? void 0 : k["@_firstDataRow"]) != null ? I : a.length + 1), e.top, e.bottom), p = jt(u - 1, e.top, e.bottom);
3137
+ var T, I;
3138
+ return String((I = (T = E == null ? void 0 : E["@_name"]) != null ? T : t[Number(E == null ? void 0 : E["@_fld"])]) != null ? I : `值${$ + 1}`);
3139
+ }), h = jt(e.top + Number((v = (w = o.location) == null ? void 0 : w["@_firstHeaderRow"]) != null ? v : 0), e.top, e.bottom), f = jt(e.left + Number((S = (x = o.location) == null ? void 0 : x["@_firstDataCol"]) != null ? S : c.length), e.left, e.right), u = jt(e.top + Number((M = (k = o.location) == null ? void 0 : k["@_firstDataRow"]) != null ? M : a.length + 1), e.top, e.bottom), p = jt(u - 1, e.top, e.bottom);
3140
3140
  if (a.forEach((E, $) => r(h + $, f, E, "col")), c.forEach((E, $) => r(p, e.left + $, E, "row")), d.forEach((E, $) => r(p, Math.min(e.right, f + $), E, "data")), !s.length)
3141
3141
  for (let E = e.left; E <= e.right; E++) {
3142
3142
  const $ = _c(n, e.top, E);
@@ -3172,7 +3172,7 @@ async function jc(o, e) {
3172
3172
  }
3173
3173
  let a;
3174
3174
  try {
3175
- a = Ic(n, l);
3175
+ a = Mc(n, l);
3176
3176
  } catch (h) {
3177
3177
  console.warn("[ooxml-preview] WPS 单元格内嵌图(DISPIMG)解析失败,跳过:", h);
3178
3178
  }
@@ -3344,8 +3344,8 @@ function Xs(o, e, t = {}) {
3344
3344
  for (let w = 0; w < e.length; w++) {
3345
3345
  const v = e[w], x = Array.isArray(v) ? v : Jc(v, h);
3346
3346
  for (let S = 0; S < x.length; S++) {
3347
- const k = f + w - (d && ((y = t.headerRow) == null || y), 0), I = s + S, E = Kc(x[S], i);
3348
- E.type !== "empty" && (o.cells.set(O(k, I), { row: k, col: I, type: E.type, raw: E.raw, styleId: 0 }), r = Math.max(r, k), l = Math.max(l, I), a = !0);
3347
+ const k = f + w - (d && ((y = t.headerRow) == null || y), 0), M = s + S, E = Kc(x[S], i);
3348
+ E.type !== "empty" && (o.cells.set(O(k, M), { row: k, col: M, type: E.type, raw: E.raw, styleId: 0 }), r = Math.max(r, k), l = Math.max(l, M), a = !0);
3349
3349
  }
3350
3350
  }
3351
3351
  return { lastRow: r, lastCol: l, wrote: a };
@@ -3957,19 +3957,19 @@ function $d(o, e = {}) {
3957
3957
  }
3958
3958
  return a;
3959
3959
  }
3960
- function Id(o, e = {}) {
3960
+ function Md(o, e = {}) {
3961
3961
  const t = {};
3962
3962
  for (const n of o.sheets)
3963
3963
  n.state === "visible" && (t[n.name] = $d(n, z(R({}, e), { date1904: o.date1904 })));
3964
3964
  return t;
3965
3965
  }
3966
- const Md = 56, Ad = 200, et = (o) => o ? o.length * 2 : 0;
3966
+ const Id = 56, Ad = 200, et = (o) => o ? o.length * 2 : 0;
3967
3967
  function lb(o) {
3968
3968
  var t, n, s, i, r;
3969
3969
  let e = 0;
3970
3970
  for (const l of o.sheets) {
3971
3971
  for (const a of l.cells.values()) {
3972
- e += Md;
3972
+ e += Id;
3973
3973
  const c = a.raw;
3974
3974
  if (typeof c == "string" ? e += et(c) : typeof c == "number" ? e += 8 : typeof c == "boolean" ? e += 4 : c instanceof Date && (e += 8), a.formula && (e += et(a.formula)), a.hyperlink && (e += et(a.hyperlink)), a.comment && (e += et(a.comment)), a.dispImgId && (e += et(a.dispImgId)), a.rich) for (const d of a.rich) e += et(d.text) + 40;
3975
3975
  }
@@ -5010,13 +5010,13 @@ class il {
5010
5010
  * 不在此绘制 —— 由调用方拿到 result.metrics/scale/origin 后合成到底图上。
5011
5011
  */
5012
5012
  exportToCanvas(e = {}) {
5013
- var x, S, k, I, E;
5013
+ var x, S, k, M, E;
5014
5014
  const t = this.sheet.dimension, n = (x = e.range) != null ? x : {
5015
5015
  top: 0,
5016
5016
  left: 0,
5017
5017
  bottom: Math.max(0, t.rows - 1),
5018
5018
  right: Math.max(0, t.cols - 1)
5019
- }, s = (S = e.includeHeaders) != null ? S : !1, i = (k = e.background) != null ? k : "#FFFFFF", r = new qe(this.sheet, 1), l = r.rowHeaderWidth, a = r.colHeaderHeight, c = r.colLeft(n.left), d = r.rowTop(n.top), h = r.colLeft(n.right + 1) - c, f = r.rowTop(n.bottom + 1) - d, u = l + h, p = a + f, g = (I = e.maxPixels) != null ? I : 16384;
5019
+ }, s = (S = e.includeHeaders) != null ? S : !1, i = (k = e.background) != null ? k : "#FFFFFF", r = new qe(this.sheet, 1), l = r.rowHeaderWidth, a = r.colHeaderHeight, c = r.colLeft(n.left), d = r.rowTop(n.top), h = r.colLeft(n.right + 1) - c, f = r.rowTop(n.bottom + 1) - d, u = l + h, p = a + f, g = (M = e.maxPixels) != null ? M : 16384;
5020
5020
  let b = (E = e.scale) != null ? E : 2;
5021
5021
  b = Math.min(b, g / Math.max(1, u), g / Math.max(1, p)), b > 0 || (b = 1);
5022
5022
  const m = document.createElement("canvas"), y = {
@@ -5264,21 +5264,21 @@ class il {
5264
5264
  }
5265
5265
  }
5266
5266
  h.save(), h.beginPath(), h.rect(x, r, S, a), h.clip();
5267
- let k, I = m;
5267
+ let k, M = m;
5268
5268
  if (t.wrapText)
5269
5269
  k = vn(h, g, m, v);
5270
5270
  else if (t.shrinkToFit) {
5271
5271
  const F = jd(h, g, m, v);
5272
- F < 1 && (I = ve(z(R({}, t.font), { size: t.font.size * F }), c)), k = [g];
5272
+ F < 1 && (M = ve(z(R({}, t.font), { size: t.font.size * F }), c)), k = [g];
5273
5273
  } else
5274
5274
  k = [g];
5275
- h.font = I;
5276
- const E = t.font.size * c * (96 / 72) * dt, $ = E * k.length, T = a - 2 * f, M = $ > T;
5275
+ h.font = M;
5276
+ const E = t.font.size * c * (96 / 72) * dt, $ = E * k.length, T = a - 2 * f, I = $ > T;
5277
5277
  let A;
5278
- t.vAlign === "top" || M ? A = r + f + E * 0.78 : t.vAlign === "middle" ? A = r + (a - $) / 2 + E * 0.78 : A = r + a - f - $ + E * 0.78, h.textAlign = "left", h.textBaseline = "alphabetic";
5278
+ t.vAlign === "top" || I ? A = r + f + E * 0.78 : t.vAlign === "middle" ? A = r + (a - $) / 2 + E * 0.78 : A = r + a - f - $ + E * 0.78, h.textAlign = "left", h.textBaseline = "alphabetic";
5279
5279
  const L = t.indent * 8 * c;
5280
5280
  for (let F = 0; F < k.length; F++) {
5281
- const H = k[F], D = wn(h, H, I);
5281
+ const H = k[F], D = wn(h, H, M);
5282
5282
  let B = i + f + L;
5283
5283
  y === "center" ? B = i + (l - D) / 2 : y === "right" && (B = i + l - f - D);
5284
5284
  const X = A + F * E;
@@ -5321,7 +5321,7 @@ class il {
5321
5321
  return { x: n - a, w: s + a + c };
5322
5322
  }
5323
5323
  drawRichText(e, t, n, s, i, r, l) {
5324
- var T, M;
5324
+ var T, I;
5325
5325
  const a = this.ctx, c = Fe * l, d = e.rich || [], h = t.font, f = go(t.hAlign, !1), u = (t.indent || 0) * 8 * l, p = i - 2 * c - (f === "left" ? u : 0);
5326
5326
  let g = 1;
5327
5327
  if (t.shrinkToFit && !t.wrapText && p > 0) {
@@ -5333,7 +5333,7 @@ class il {
5333
5333
  const b = [], m = [], y = [], w = [], v = [];
5334
5334
  for (let A = 0; A < d.length; A++) {
5335
5335
  const L = R(R({}, h), d[A].font), N = ((T = L.size) != null ? T : h.size) * g;
5336
- b[A] = ve(z(R({}, L), { size: N }), l), m[A] = ((M = d[A].font) == null ? void 0 : M.color) || h.color, y[A] = !!L.underline, w[A] = !!L.strike, v[A] = N * l * (96 / 72);
5336
+ b[A] = ve(z(R({}, L), { size: N }), l), m[A] = ((I = d[A].font) == null ? void 0 : I.color) || h.color, y[A] = !!L.underline, w[A] = !!L.strike, v[A] = N * l * (96 / 72);
5337
5337
  }
5338
5338
  const x = (A, L) => ({ text: A, fontCss: b[L], color: m[L], ul: y[L], st: w[L], szPx: v[L] }), S = [];
5339
5339
  if (t.wrapText && p > 0) {
@@ -5358,9 +5358,9 @@ class il {
5358
5358
  N();
5359
5359
  } else
5360
5360
  S.push(d.map((A, L) => R({}, x(d[L].text, L))));
5361
- const k = h.size * g * l * (96 / 72) * dt, I = k * S.length, E = I > r - 2 * c;
5361
+ const k = h.size * g * l * (96 / 72) * dt, M = k * S.length, E = M > r - 2 * c;
5362
5362
  let $;
5363
- t.vAlign === "top" || E ? $ = s + c + k * 0.78 : t.vAlign === "middle" ? $ = s + (r - I) / 2 + k * 0.78 : $ = s + r - c - I + k * 0.78, a.save(), a.beginPath(), a.rect(n, s, i, r), a.clip(), a.textBaseline = "alphabetic", a.textAlign = "left";
5363
+ t.vAlign === "top" || E ? $ = s + c + k * 0.78 : t.vAlign === "middle" ? $ = s + (r - M) / 2 + k * 0.78 : $ = s + r - c - M + k * 0.78, a.save(), a.beginPath(), a.rect(n, s, i, r), a.clip(), a.textBaseline = "alphabetic", a.textAlign = "left";
5364
5364
  for (let A = 0; A < S.length; A++) {
5365
5365
  const L = S[A];
5366
5366
  let N = 0;
@@ -5509,10 +5509,10 @@ function nh(o, e, t, n, s, i) {
5509
5509
  } else if (e.type === "column") {
5510
5510
  const y = Math.max(p, 0), w = Math.min(u, 0), v = y - w || 1, x = a + d * (y / v), S = c / m;
5511
5511
  for (let k = 0; k < m; k++) {
5512
- const I = h[k];
5513
- if (I == null) continue;
5514
- o.fillStyle = I < 0 ? b : g;
5515
- const E = a + d * ((y - I) / v);
5512
+ const M = h[k];
5513
+ if (M == null) continue;
5514
+ o.fillStyle = M < 0 ? b : g;
5515
+ const E = a + d * ((y - M) / v);
5516
5516
  o.fillRect(l + k * S + S * 0.15, Math.min(E, x), S * 0.7, Math.max(1, Math.abs(E - x)));
5517
5517
  }
5518
5518
  } else {
@@ -5852,12 +5852,12 @@ function gh(o, e, t, n = {}) {
5852
5852
  for (let S = 0; S < i; S++) {
5853
5853
  const k = o.cells.get(O(v, t.left + S));
5854
5854
  if (!k) continue;
5855
- const I = (m = (b = o.styles[k.styleId]) != null ? b : o.styles[0]) != null ? m : Qo(), E = {
5855
+ const M = (m = (b = o.styles[k.styleId]) != null ? b : o.styles[0]) != null ? m : Qo(), E = {
5856
5856
  r: x,
5857
5857
  c: S,
5858
5858
  type: k.type,
5859
5859
  raw: k.raw instanceof Date ? { __d: k.raw.getTime() } : k.raw,
5860
- style: I
5860
+ style: M
5861
5861
  };
5862
5862
  k.formula && (E.formula = k.formula), k.hyperlink && (E.hyperlink = k.hyperlink), k.comment && (E.comment = k.comment), k.rich && (E.rich = k.rich), k.dispImgId && (E.dispImgId = k.dispImgId, d.add(k.dispImgId)), c.push(E);
5863
5863
  }
@@ -6082,7 +6082,7 @@ function xt(o, e) {
6082
6082
  }
6083
6083
  return { inverse: { kind: "restore-cells", cells: n }, affected: t };
6084
6084
  }
6085
- const Ih = Number.NaN;
6085
+ const Mh = Number.NaN;
6086
6086
  function hl(o) {
6087
6087
  let e = 0;
6088
6088
  const t = o.toUpperCase();
@@ -6090,7 +6090,7 @@ function hl(o) {
6090
6090
  return e - 1;
6091
6091
  }
6092
6092
  function xi(o, e) {
6093
- return e.mode === "insert" ? o >= e.at ? o + e.count : o : o >= e.at + e.count ? o - e.count : o >= e.at ? Ih : o;
6093
+ return e.mode === "insert" ? o >= e.at ? o + e.count : o : o >= e.at + e.count ? o - e.count : o >= e.at ? Mh : o;
6094
6094
  }
6095
6095
  function wt(o, e, t) {
6096
6096
  let n = hl(o.col), s = parseInt(o.row, 10) - 1;
@@ -6110,7 +6110,7 @@ function wt(o, e, t) {
6110
6110
  return s < 0 || n < 0 ? null : { colAbs: o.colAbs, col: Xe(n), rowAbs: o.rowAbs, row: String(s + 1) };
6111
6111
  }
6112
6112
  const mo = (o) => `${o.colAbs}${o.col}${o.rowAbs}${o.row}`, wi = "(\\$?)([A-Za-z]{1,3})(\\$?)(\\d+)", fl = new RegExp(`(?:('[^']+'|[A-Za-z_\\u4e00-\\u9fff][\\w.\\u4e00-\\u9fff]*)!)?${wi}(?::${wi})?`, "g");
6113
- function Mh(o) {
6113
+ function Ih(o) {
6114
6114
  return o.startsWith("'") ? o.slice(1, -1).replace(/''/g, "'") : o;
6115
6115
  }
6116
6116
  function Ah(o, e) {
@@ -6121,11 +6121,11 @@ function Ah(o, e) {
6121
6121
  const b = s[g + i.length];
6122
6122
  if (!f && b === "(") return i;
6123
6123
  const m = s[g - 1];
6124
- if (!r && m && /[A-Za-z0-9_$.]/.test(m) || (r ? Mh(r) : e.formulaSheet).toLowerCase() !== e.targetSheet.toLowerCase()) return i;
6124
+ if (!r && m && /[A-Za-z0-9_$.]/.test(m) || (r ? Ih(r) : e.formulaSheet).toLowerCase() !== e.targetSheet.toLowerCase()) return i;
6125
6125
  const w = r ? r + "!" : "";
6126
6126
  if (!f) {
6127
- const I = wt({ colAbs: l, col: a, rowAbs: c, row: d }, e, !1);
6128
- return I ? w + mo(I) : "#REF!";
6127
+ const M = wt({ colAbs: l, col: a, rowAbs: c, row: d }, e, !1);
6128
+ return M ? w + mo(M) : "#REF!";
6129
6129
  }
6130
6130
  const v = wt({ colAbs: l, col: a, rowAbs: c, row: d }, e, !0), x = wt({ colAbs: h, col: f, rowAbs: u, row: p }, e, !0), S = !wt({ colAbs: l, col: a, rowAbs: c, row: d }, e, !1), k = !wt({ colAbs: h, col: f, rowAbs: u, row: p }, e, !1);
6131
6131
  return S && k ? w + "#REF!" : w + mo(v) + ":" + mo(x);
@@ -6413,8 +6413,8 @@ class Hh {
6413
6413
  };
6414
6414
  for (let x = 0; x < r.length; x++)
6415
6415
  for (let S = 0; S < r[x].length; S++) {
6416
- const k = e.row + x, I = e.col + S;
6417
- this.host.isEditable(k, I) && g(k, I);
6416
+ const k = e.row + x, M = e.col + S;
6417
+ this.host.isEditable(k, M) && g(k, M);
6418
6418
  }
6419
6419
  for (const x of l) {
6420
6420
  const S = e.row + x.row, k = e.col + x.col;
@@ -6424,18 +6424,18 @@ class Hh {
6424
6424
  d.targetMerges === "clear" && (s.merges = s.merges.filter((x) => !this._mergeOverlaps(x, e.row, e.col, m, y)));
6425
6425
  for (let x = 0; x < r.length; x++)
6426
6426
  for (let S = 0; S < r[x].length; S++) {
6427
- const k = e.row + x, I = e.col + S;
6428
- this.host.isEditable(k, I) ? _e(s, k, I, r[x][S]) : r[x][S] != null && w.push({ row: k, col: I });
6427
+ const k = e.row + x, M = e.col + S;
6428
+ this.host.isEditable(k, M) ? _e(s, k, M, r[x][S]) : r[x][S] != null && w.push({ row: k, col: M });
6429
6429
  }
6430
6430
  if (d.cellStyle !== "skip" || d.fill !== "skip") {
6431
6431
  const x = s.styles[0];
6432
6432
  for (const S of l) {
6433
- const k = e.row + S.row, I = e.col + S.col;
6434
- if (!this.host.isEditable(k, I)) continue;
6435
- const E = s.cells.get(O(k, I)), $ = (v = E ? s.styles[E.styleId] : x) != null ? v : x, T = bi($, x, S.patch, d.cellStyle, d.fill);
6433
+ const k = e.row + S.row, M = e.col + S.col;
6434
+ if (!this.host.isEditable(k, M)) continue;
6435
+ const E = s.cells.get(O(k, M)), $ = (v = E ? s.styles[E.styleId] : x) != null ? v : x, T = bi($, x, S.patch, d.cellStyle, d.fill);
6436
6436
  if (!T) continue;
6437
- const M = Uo(s, T);
6438
- E ? E.styleId = M : ni(s, { row: k, col: I, type: "empty", raw: null, styleId: M });
6437
+ const I = Uo(s, T);
6438
+ E ? E.styleId = I : ni(s, { row: k, col: M, type: "empty", raw: null, styleId: I });
6439
6439
  }
6440
6440
  }
6441
6441
  if (d.sourceMerges === "apply")
@@ -6456,9 +6456,9 @@ class Hh {
6456
6456
  w.push({ row: S, col: k });
6457
6457
  continue;
6458
6458
  }
6459
- const I = Oh(x.dataUrl);
6460
- if (!I) continue;
6461
- const E = Wo(s, { src: x.dataUrl, bytes: I.bytes, mime: I.mime, from: { col: k, row: S, colOffEmu: 0, rowOffEmu: 0 }, extWidthEmu: Pe(96), extHeightEmu: Pe(96) });
6459
+ const M = Oh(x.dataUrl);
6460
+ if (!M) continue;
6461
+ const E = Wo(s, { src: x.dataUrl, bytes: M.bytes, mime: M.mime, from: { col: k, row: S, colOffEmu: 0, rowOffEmu: 0 }, extWidthEmu: Pe(96), extHeightEmu: Pe(96) });
6462
6462
  ho(i, s, E, S, k);
6463
6463
  }
6464
6464
  return d.rowHeight === "source" && t.rowHeights.forEach((x, S) => {
@@ -6493,8 +6493,8 @@ class Hh {
6493
6493
  const l = this.host.getDate1904(), a = ee(i), c = [];
6494
6494
  for (let x = 0; x < t.rows; x++)
6495
6495
  for (let S = 0; S < t.cols; S++) {
6496
- const k = e.row + x, I = e.col + S;
6497
- this.host.isEditable(k, I) && c.push({ row: k, col: I });
6496
+ const k = e.row + x, M = e.col + S;
6497
+ this.host.isEditable(k, M) && c.push({ row: k, col: M });
6498
6498
  }
6499
6499
  const d = c.map((x) => he(s, x.row, x.col, l)), h = [], f = /* @__PURE__ */ new Map();
6500
6500
  for (const x of c) {
@@ -6514,7 +6514,7 @@ class Hh {
6514
6514
  h.push({ row: S, col: k });
6515
6515
  continue;
6516
6516
  }
6517
- const I = f.get(O(S, k)), E = bi((m = I == null ? void 0 : I.style) != null ? m : p, p, x.style, r.cellStyle, r.fill), $ = E ? Uo(s, E) : (y = I == null ? void 0 : I.id) != null ? y : 0, T = { row: S, col: k, type: x.type, raw: mh(x.raw), styleId: $ };
6517
+ const M = f.get(O(S, k)), E = bi((m = M == null ? void 0 : M.style) != null ? m : p, p, x.style, r.cellStyle, r.fill), $ = E ? Uo(s, E) : (y = M == null ? void 0 : M.id) != null ? y : 0, T = { row: S, col: k, type: x.type, raw: mh(x.raw), styleId: $ };
6518
6518
  x.formula && (T.formula = x.formula), x.hyperlink && (T.hyperlink = x.hyperlink), x.comment && (T.comment = x.comment), x.rich && (T.rich = x.rich), x.dispImgId && r.images === "apply" && (T.dispImgId = x.dispImgId), ni(s, T);
6519
6519
  }
6520
6520
  const g = { top: e.row, left: e.col, bottom: e.row + t.rows - 1, right: e.col + t.cols - 1 };
@@ -7519,7 +7519,7 @@ const qh = (o) => {
7519
7519
  if (P(n)) return n;
7520
7520
  const s = t.toLowerCase().indexOf(e.toLowerCase(), n - 1);
7521
7521
  return s < 0 ? _.value() : s + 1;
7522
- }, If = (o) => W(o[0]), Mf = (o) => {
7522
+ }, Mf = (o) => W(o[0]), If = (o) => {
7523
7523
  const e = ie(o[0]);
7524
7524
  return P(e), e;
7525
7525
  }, Af = (o) => typeof Y(o[0]) == "number", Rf = (o) => typeof Y(o[0]) == "string", Ff = (o) => Y(o[0]) === null, Lf = (o) => typeof Y(o[0]) == "boolean", Nf = (o) => P(Y(o[0])), Pf = (o) => {
@@ -7726,8 +7726,8 @@ const Kf = () => vl(), Jf = () => {
7726
7726
  SUBSTITUTE: Ef,
7727
7727
  FIND: Tf,
7728
7728
  SEARCH: $f,
7729
- VALUE: If,
7730
- TEXT: Mf,
7729
+ VALUE: Mf,
7730
+ TEXT: If,
7731
7731
  ISNUMBER: Af,
7732
7732
  ISTEXT: Rf,
7733
7733
  ISBLANK: Ff,
@@ -8243,7 +8243,7 @@ function $i(o, e) {
8243
8243
  }
8244
8244
  return { parts: t };
8245
8245
  }
8246
- function Ii(o, e) {
8246
+ function Mi(o, e) {
8247
8247
  let t = "";
8248
8248
  for (const n of o.parts) {
8249
8249
  if (n.kind === "lit") {
@@ -8269,7 +8269,7 @@ function Ii(o, e) {
8269
8269
  }
8270
8270
  function Su(o, e) {
8271
8271
  if (!e.length) return null;
8272
- const t = (r) => e.every((l) => Ii(r, o[l.row]) === l.output);
8272
+ const t = (r) => e.every((l) => Mi(r, o[l.row]) === l.output);
8273
8273
  let n = null;
8274
8274
  for (const r of e) {
8275
8275
  const l = $i(o[r.row], r.output);
@@ -8282,7 +8282,7 @@ function Su(o, e) {
8282
8282
  const s = new Set(e.map((r) => r.row)), i = [];
8283
8283
  for (let r = 0; r < o.length; r++) {
8284
8284
  if (s.has(r) || o[r].every((a) => !a || !a.trim())) continue;
8285
- const l = Ii(n, o[r]);
8285
+ const l = Mi(n, o[r]);
8286
8286
  l != null && l !== "" && i.push({ row: r, value: l });
8287
8287
  }
8288
8288
  return i.length ? { program: n, outputs: i } : null;
@@ -8325,7 +8325,7 @@ function Tu(o) {
8325
8325
  }
8326
8326
  return null;
8327
8327
  }
8328
- function Mi(o, e) {
8328
+ function Ii(o, e) {
8329
8329
  try {
8330
8330
  const t = (e || "").toLowerCase();
8331
8331
  if (t.includes("png")) return Eu(o);
@@ -8351,16 +8351,16 @@ function $u(o) {
8351
8351
  t.onload = () => e(t), t.onerror = () => e(null), t.src = o;
8352
8352
  });
8353
8353
  }
8354
- function Iu(o) {
8354
+ function Mu(o) {
8355
8355
  return new Promise((e, t) => {
8356
8356
  const n = new FileReader();
8357
8357
  n.onload = () => e(String(n.result)), n.onerror = () => t(n.error), n.readAsDataURL(o);
8358
8358
  });
8359
8359
  }
8360
- async function Mu(o, e = 1600, t = 0.82) {
8360
+ async function Iu(o, e = 1600, t = 0.82) {
8361
8361
  try {
8362
8362
  if (typeof document == "undefined") return o;
8363
- const n = await Iu(o), s = await $u(n);
8363
+ const n = await Mu(o), s = await $u(n);
8364
8364
  if (!s || !s.naturalWidth) return o;
8365
8365
  const i = Math.min(1, e / Math.max(s.naturalWidth, s.naturalHeight)), r = Math.max(1, Math.round(s.naturalWidth * i)), l = Math.max(1, Math.round(s.naturalHeight * i)), a = document.createElement("canvas");
8366
8366
  a.width = r, a.height = l;
@@ -9315,7 +9315,7 @@ function Hi(o) {
9315
9315
  while (t >= 0);
9316
9316
  return e;
9317
9317
  }
9318
- const Il = (o) => `${Hi(o.left)}${o.top + 1}:${Hi(o.right)}${o.bottom + 1}`, Di = (o) => (o || []).map(Il).join(", ") || "—";
9318
+ const Ml = (o) => `${Hi(o.left)}${o.top + 1}:${Hi(o.right)}${o.bottom + 1}`, Di = (o) => (o || []).map(Ml).join(", ") || "—";
9319
9319
  function ip(o) {
9320
9320
  var e, t, n, s;
9321
9321
  switch (o.type) {
@@ -9338,7 +9338,7 @@ function ip(o) {
9338
9338
  return "";
9339
9339
  }
9340
9340
  }
9341
- const Ml = "height:30px;padding:0 14px;border-radius:5px;cursor:pointer;font:inherit", zi = `${Ml};border:1px solid #1b7f4d;background:#21a366;color:#fff`, ye = `${Ml};border:1px solid #d0d5dd;background:#fff;color:#1f2329`;
9341
+ const Il = "height:30px;padding:0 14px;border-radius:5px;cursor:pointer;font:inherit", zi = `${Il};border:1px solid #1b7f4d;background:#21a366;color:#fff`, ye = `${Il};border:1px solid #d0d5dd;background:#fff;color:#1f2329`;
9342
9342
  class rp {
9343
9343
  constructor() {
9344
9344
  C(this, "el", null);
@@ -9379,7 +9379,7 @@ class rp {
9379
9379
  '<div style="display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #eef0f2;font-weight:600;position:sticky;top:0;background:#fff">',
9380
9380
  '<span>条件格式</span><button data-close style="border:0;background:none;font-size:20px;line-height:1;color:#8a8f98;cursor:pointer">×</button></div>',
9381
9381
  '<div style="padding:10px 16px">',
9382
- `<div style="color:#98a2b3;font-size:12px;margin-bottom:6px">当前选区:${le(this.selection ? Il(this.selection) : "无(新建规则将套到全表 A1)")}</div>`,
9382
+ `<div style="color:#98a2b3;font-size:12px;margin-bottom:6px">当前选区:${le(this.selection ? Ml(this.selection) : "无(新建规则将套到全表 A1)")}</div>`,
9383
9383
  this.rules.length ? t : '<div style="color:#98a2b3;padding:16px 0;text-align:center">暂无条件格式规则</div>',
9384
9384
  '<div style="margin-top:12px"><button data-add style="' + ye + '">+ 新建规则</button></div>',
9385
9385
  "</div>",
@@ -9981,7 +9981,7 @@ function Tp(o, e, t) {
9981
9981
  function $p(o) {
9982
9982
  return o.trim().replace(/^"|"$/g, "").replace(/\\([0-9a-fA-F]{4})/g, (e, t) => String.fromCharCode(parseInt(t, 16))).replace(/\\(.)/g, "$1");
9983
9983
  }
9984
- function Ip(o) {
9984
+ function Mp(o) {
9985
9985
  const e = /mso-number-format:\s*("(?:\\.|[^"\\])*"|[^;]+)/gi;
9986
9986
  let t, n;
9987
9987
  for (; n = e.exec(o); ) t = n[1];
@@ -9989,7 +9989,7 @@ function Ip(o) {
9989
9989
  const s = $p(t);
9990
9990
  return s && !/^general$/i.test(s) ? s : void 0;
9991
9991
  }
9992
- function Mp(o) {
9992
+ function Ip(o) {
9993
9993
  var e, t;
9994
9994
  for (const n of Array.from(o.childNodes)) {
9995
9995
  if (n.nodeType !== 8) continue;
@@ -10067,21 +10067,21 @@ function Fp(o) {
10067
10067
  const f = Array.from(t.querySelectorAll("tr"));
10068
10068
  let u = 0;
10069
10069
  for (const w of f) {
10070
- const v = Array.from(w.children).filter((I) => I.tagName === "TD" || I.tagName === "TH");
10070
+ const v = Array.from(w.children).filter((M) => M.tagName === "TD" || M.tagName === "TH");
10071
10071
  if (!v.length) continue;
10072
10072
  const x = parseInt(w.getAttribute("height") || v[0].getAttribute("height") || "", 10);
10073
10073
  Number.isFinite(x) && x > 0 && (d[u] = x);
10074
10074
  const S = (g = i[u]) != null ? g : i[u] = [];
10075
10075
  let k = 0;
10076
- for (const I of v) {
10076
+ for (const M of v) {
10077
10077
  for (; h.has(`${u}:${k}`); )
10078
10078
  S[k] = (b = S[k]) != null ? b : null, k++;
10079
- S[k] = Rp(I);
10080
- const E = Tp(I, n, s), $ = (m = Ap(I)) != null ? m : {}, T = Ip(E);
10079
+ S[k] = Rp(M);
10080
+ const E = Tp(M, n, s), $ = (m = Ap(M)) != null ? m : {}, T = Mp(E);
10081
10081
  T && ($.numFmt = T), Object.keys($).length && r.push({ row: u, col: k, patch: $ });
10082
- const M = (y = I.querySelector("img")) == null ? void 0 : y.getAttribute("src"), A = M && M.startsWith("data:") ? M : Mp(I);
10082
+ const I = (y = M.querySelector("img")) == null ? void 0 : y.getAttribute("src"), A = I && I.startsWith("data:") ? I : Ip(M);
10083
10083
  A && a.push({ row: u, col: k, dataUrl: A });
10084
- const L = Math.max(1, parseInt(I.getAttribute("rowspan") || "1", 10) || 1), N = Math.max(1, parseInt(I.getAttribute("colspan") || "1", 10) || 1);
10084
+ const L = Math.max(1, parseInt(M.getAttribute("rowspan") || "1", 10) || 1), N = Math.max(1, parseInt(M.getAttribute("colspan") || "1", 10) || 1);
10085
10085
  if (L > 1 || N > 1) {
10086
10086
  l.push({ top: u, left: k, bottom: u + L - 1, right: k + N - 1 });
10087
10087
  for (let F = 0; F < L; F++)
@@ -10483,7 +10483,7 @@ class jp {
10483
10483
  }
10484
10484
  render(e) {
10485
10485
  var r, l, a, c, d, h, f, u, p, g, b, m, y, w;
10486
- const t = (v, x) => `<div style="display:flex;align-items:center;gap:10px;margin-bottom:10px"><span style="flex:0 0 72px;color:#475467">${v}</span><div style="flex:1">${x}</div></div>`, n = (v, x, S) => `<select ${S} style="${Ge};width:100%">${x.map(([k, I]) => `<option value="${k}"${k === v ? " selected" : ""}>${I}</option>`).join("")}</select>`;
10486
+ const t = (v, x) => `<div style="display:flex;align-items:center;gap:10px;margin-bottom:10px"><span style="flex:0 0 72px;color:#475467">${v}</span><div style="flex:1">${x}</div></div>`, n = (v, x, S) => `<select ${S} style="${Ge};width:100%">${x.map(([k, M]) => `<option value="${k}"${k === v ? " selected" : ""}>${M}</option>`).join("")}</select>`;
10487
10487
  let s = "";
10488
10488
  this.type === "list" ? s = t("来源", `<input data-list value="${ot(this.listSrc)}" placeholder="逗号分隔:苹果,香蕉,橙子" style="${Ge};width:100%">`) : this.type === "custom" ? s = t("公式", `<input data-custom value="${ot(this.custom)}" placeholder="=A1>0" style="${Ge};width:100%">`) : s = t("数据", n(this.op, _p, "data-op")) + (or(this.op) ? t("最小值", `<input data-f1 value="${ot(this.f1)}" style="${Ge};width:100%">`) + t("最大值", `<input data-f2 value="${ot(this.f2)}" style="${Ge};width:100%">`) : t("值", `<input data-f1 value="${ot(this.f1)}" style="${Ge};width:100%">`)), e.innerHTML = '<div style="display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eef0f2"><strong style="font-size:14px">数据有效性</strong><button data-close style="border:none;background:none;font-size:16px;cursor:pointer;color:#98a2b3">✕</button></div><div style="padding:14px 16px">' + t("允许", n(this.type, qp, "data-type")) + s + `<label style="display:flex;align-items:center;gap:6px;margin:4px 0 12px;cursor:pointer"><input type="checkbox" data-blank${this.allowBlank ? " checked" : ""}> 允许空值</label><div style="border-top:1px solid #eef0f2;padding-top:10px"><label style="display:flex;align-items:center;gap:6px;margin-bottom:8px;cursor:pointer"><input type="checkbox" data-showerr${this.showErr ? " checked" : ""}> 输入无效数据时显示出错警告</label>` + t("样式", n(this.errStyle, [["stop", "停止"], ["warning", "警告"], ["information", "信息"]], "data-errstyle")) + t("错误信息", `<input data-errmsg value="${ot(this.errMsg)}" placeholder="(可选)" style="${Ge};width:100%">`) + `</div></div><div style="display:flex;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid #eef0f2"><button data-clear style="${nr}">全部清除</button><div style="display:flex;gap:10px"><button data-cancel style="${nr}">取消</button><button data-ok style="${Up}">确定</button></div></div>`;
10489
10489
  const i = (v) => e.querySelector(v);
@@ -10715,7 +10715,7 @@ class ng {
10715
10715
  }
10716
10716
  }
10717
10717
  const Bl = "height:30px;padding:0 14px;border-radius:5px;cursor:pointer;font:inherit", og = `${Bl};border:none;background:#217346;color:#fff`, dr = `${Bl};border:1px solid #d0d5dd;background:#fff;color:#1f2329`, $o = "height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;box-sizing:border-box";
10718
- function Io(o) {
10718
+ function Mo(o) {
10719
10719
  return o.replace(/[&<>"]/g, (e) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;" })[e]);
10720
10720
  }
10721
10721
  class sg {
@@ -10734,9 +10734,9 @@ class sg {
10734
10734
  const t = document.createElement("div");
10735
10735
  t.style.cssText = "position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.32);display:flex;align-items:center;justify-content:center;";
10736
10736
  const n = document.createElement("div");
10737
- n.style.cssText = "width:440px;max-width:94vw;max-height:88vh;overflow:auto;background:#fff;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.25);font:13px/1.6 -apple-system,'Segoe UI','Microsoft YaHei',sans-serif;color:#1f2329", n.innerHTML = `<div style="display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eef0f2"><strong style="font-size:14px">允许用户编辑区域</strong><button data-close style="border:none;background:none;font-size:16px;cursor:pointer;color:#98a2b3">✕</button></div><div style="padding:12px 16px"><div style="color:#475467;margin-bottom:6px">工作表受保护时,可编辑的区域:</div><div data-list style="border:1px solid #eef0f2;border-radius:6px;min-height:80px;max-height:220px;overflow:auto"></div><div style="display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap"><input data-name style="${$o};flex:1;min-width:80px" placeholder="标题"><input data-ref style="${$o};width:110px" placeholder="引用 A1:C3" value="${Io(e.defaultRef)}"><input data-pwd type="password" style="${$o};width:90px" placeholder="密码(可选)"><button data-add style="${dr};height:26px">添加</button></div></div><div style="display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #eef0f2"><button data-cancel style="${dr}">取消</button><button data-ok style="${og}">确定</button></div>`, t.appendChild(n), document.body.appendChild(t), this.el = t;
10737
+ n.style.cssText = "width:440px;max-width:94vw;max-height:88vh;overflow:auto;background:#fff;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.25);font:13px/1.6 -apple-system,'Segoe UI','Microsoft YaHei',sans-serif;color:#1f2329", n.innerHTML = `<div style="display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eef0f2"><strong style="font-size:14px">允许用户编辑区域</strong><button data-close style="border:none;background:none;font-size:16px;cursor:pointer;color:#98a2b3">✕</button></div><div style="padding:12px 16px"><div style="color:#475467;margin-bottom:6px">工作表受保护时,可编辑的区域:</div><div data-list style="border:1px solid #eef0f2;border-radius:6px;min-height:80px;max-height:220px;overflow:auto"></div><div style="display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap"><input data-name style="${$o};flex:1;min-width:80px" placeholder="标题"><input data-ref style="${$o};width:110px" placeholder="引用 A1:C3" value="${Mo(e.defaultRef)}"><input data-pwd type="password" style="${$o};width:90px" placeholder="密码(可选)"><button data-add style="${dr};height:26px">添加</button></div></div><div style="display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #eef0f2"><button data-cancel style="${dr}">取消</button><button data-ok style="${og}">确定</button></div>`, t.appendChild(n), document.body.appendChild(t), this.el = t;
10738
10738
  const s = n.querySelector("[data-list]"), i = () => {
10739
- s.innerHTML = this.rows.length ? this.rows.map((h, f) => `<div style="display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid #f2f4f7"><span style="flex:1;font-weight:500">${Io(h.name || "区域")}</span><span style="color:#475467">${Io(h.ref)}</span>${h.password ? '<span title="有密码" style="color:#98a2b3">🔒</span>' : ""}<button data-del="${f}" style="border:none;background:none;color:#d92d20;cursor:pointer">删除</button></div>`).join("") : '<div style="padding:16px;text-align:center;color:#98a2b3">暂无区域</div>', s.querySelectorAll("[data-del]").forEach((h) => h.addEventListener("click", () => {
10739
+ s.innerHTML = this.rows.length ? this.rows.map((h, f) => `<div style="display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid #f2f4f7"><span style="flex:1;font-weight:500">${Mo(h.name || "区域")}</span><span style="color:#475467">${Mo(h.ref)}</span>${h.password ? '<span title="有密码" style="color:#98a2b3">🔒</span>' : ""}<button data-del="${f}" style="border:none;background:none;color:#d92d20;cursor:pointer">删除</button></div>`).join("") : '<div style="padding:16px;text-align:center;color:#98a2b3">暂无区域</div>', s.querySelectorAll("[data-del]").forEach((h) => h.addEventListener("click", () => {
10740
10740
  this.rows.splice(Number(h.dataset.del), 1), i();
10741
10741
  }));
10742
10742
  };
@@ -10925,7 +10925,7 @@ const on = "height:27px;padding:0 12px;border:1px solid #d0d3d6;border-radius:5p
10925
10925
  function it(o) {
10926
10926
  return o.replace(/[&<>"]/g, (e) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;" })[e]);
10927
10927
  }
10928
- function Mo(o, e) {
10928
+ function Io(o, e) {
10929
10929
  return Object.entries(o).map(([t, n]) => `<option value="${t}"${t === e ? " selected" : ""}>${n}</option>`).join("");
10930
10930
  }
10931
10931
  function pr(o) {
@@ -10979,25 +10979,25 @@ class pg {
10979
10979
  }
10980
10980
  // ---- 按内容(值复选)----
10981
10981
  renderValues(e) {
10982
- var l, a, c;
10983
- const t = this.search.trim().toLowerCase(), n = t.length > 0, s = n ? this.o.values.filter((d) => d.toLowerCase().includes(t)) : this.o.values, i = s.length > 0 && s.every((d) => this.checked.has(d));
10984
- e.innerHTML = `<input data-search style="${Ue};width:100%;margin-bottom:6px" placeholder="搜索…" value="${it(this.search)}"><label style="display:flex;align-items:center;gap:6px;font-weight:600;padding:2px"><input type="checkbox" data-all ${i ? "checked" : ""}> ${n ? "(全选搜索结果)" : "(全选)"}</label><div data-list style="max-height:220px;overflow:auto;border:1px solid #eceef0;border-radius:4px;padding:2px;margin:4px 0">` + s.map((d) => `<label style="display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;cursor:pointer;min-width:max-content;white-space:nowrap"><input type="checkbox" data-v="${it(d)}" ${this.checked.has(d) ? "checked" : ""}><span>${it(d)}</span></label>`).join("") + (s.length ? "" : '<div style="color:#aaa;text-align:center;padding:10px">无匹配值</div>') + `</div><div style="display:flex;justify-content:flex-end;gap:8px"><button data-cancel style="${on}">取消</button><button data-ok style="${ur}">确定</button></div>`;
10985
- const r = e.querySelector("[data-search]");
10986
- r.addEventListener("input", () => {
10987
- this.search = r.value;
10988
- const d = r.selectionStart;
10989
- this.renderValues(e);
10990
- const h = e.querySelector("[data-search]");
10991
- h.focus(), d != null && h.setSelectionRange(d, d);
10992
- }), (l = e.querySelector("[data-all]")) == null || l.addEventListener("change", (d) => {
10982
+ var a, c;
10983
+ e.innerHTML = `<input data-search style="${Ue};width:100%;margin-bottom:6px" placeholder="搜索…" value="${it(this.search)}"><label style="display:flex;align-items:center;gap:6px;font-weight:600;padding:2px"><input type="checkbox" data-all> <span data-all-label>(全选)</span></label><div data-list style="max-height:220px;overflow:auto;border:1px solid #eceef0;border-radius:4px;padding:2px;margin:4px 0"></div><div style="display:flex;justify-content:flex-end;gap:8px"><button data-cancel style="${on}">取消</button><button data-ok style="${ur}">确定</button></div>`;
10984
+ const t = e.querySelector("[data-search]"), n = e.querySelector("[data-all]"), s = e.querySelector("[data-all-label]"), i = e.querySelector("[data-list]");
10985
+ let r = [];
10986
+ const l = () => {
10987
+ const d = this.search.trim().toLowerCase(), h = d.length > 0;
10988
+ r = h ? this.o.values.filter((f) => f.toLowerCase().includes(d)) : this.o.values, n.checked = r.length > 0 && r.every((f) => this.checked.has(f)), s.textContent = h ? "(全选搜索结果)" : "(全选)", i.innerHTML = r.length ? r.map((f) => `<label style="display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;cursor:pointer;min-width:max-content;white-space:nowrap"><input type="checkbox" data-v="${it(f)}" ${this.checked.has(f) ? "checked" : ""}><span>${it(f)}</span></label>`).join("") : '<div style="color:#aaa;text-align:center;padding:10px">无匹配值</div>', i.querySelectorAll("[data-v]").forEach((f) => f.addEventListener("change", (u) => {
10989
+ const p = f.dataset.v;
10990
+ u.target.checked ? this.checked.add(p) : this.checked.delete(p), n.checked = r.length > 0 && r.every((g) => this.checked.has(g));
10991
+ }));
10992
+ };
10993
+ t.addEventListener("input", () => {
10994
+ this.search = t.value, l();
10995
+ }), n.addEventListener("change", (d) => {
10993
10996
  const h = d.target.checked;
10994
- for (const f of s) h ? this.checked.add(f) : this.checked.delete(f);
10995
- this.renderValues(e);
10996
- }), e.querySelectorAll("[data-v]").forEach((d) => d.addEventListener("change", (h) => {
10997
- const f = d.dataset.v;
10998
- h.target.checked ? this.checked.add(f) : this.checked.delete(f);
10999
- })), (a = e.querySelector("[data-cancel]")) == null || a.addEventListener("click", () => this.emitClose()), (c = e.querySelector("[data-ok]")) == null || c.addEventListener("click", () => {
11000
- const d = s.filter((h) => this.checked.has(h));
10997
+ for (const f of r) h ? this.checked.add(f) : this.checked.delete(f);
10998
+ l();
10999
+ }), l(), (a = e.querySelector("[data-cancel]")) == null || a.addEventListener("click", () => this.emitClose()), (c = e.querySelector("[data-ok]")) == null || c.addEventListener("click", () => {
11000
+ const d = r.filter((h) => this.checked.has(h));
11001
11001
  this.o.onApplyValues(d), this.close();
11002
11002
  });
11003
11003
  }
@@ -11007,17 +11007,17 @@ class pg {
11007
11007
  const t = this.o.currentCond, n = `<div style="display:flex;justify-content:flex-end;gap:8px;margin-top:10px"><button data-cancel style="${on}">取消</button><button data-ok style="${ur}">确定</button></div>`;
11008
11008
  if (this.o.colType === "text") {
11009
11009
  const r = (t == null ? void 0 : t.type) === "text" ? t.op : "contains", l = (t == null ? void 0 : t.type) === "text" ? t.s : "";
11010
- e.innerHTML = `<div style="display:flex;gap:8px;align-items:center"><select data-op style="${st};flex:0 0 110px">${Mo(lg, r)}</select><input data-s style="${Ue};flex:1" value="${it(l)}" placeholder="值"></div>` + n;
11010
+ e.innerHTML = `<div style="display:flex;gap:8px;align-items:center"><select data-op style="${st};flex:0 0 110px">${Io(lg, r)}</select><input data-s style="${Ue};flex:1" value="${it(l)}" placeholder="值"></div>` + n;
11011
11011
  } else if (this.o.colType === "date") {
11012
11012
  const r = (t == null ? void 0 : t.type) === "date" ? t.op : "before", l = (t == null ? void 0 : t.type) === "date" ? pr(t.a) : "", a = (t == null ? void 0 : t.type) === "date" && t.b !== void 0 ? pr(t.b) : "";
11013
- e.innerHTML = `<div style="display:flex;gap:8px;align-items:center;margin-bottom:8px"><select data-op style="${st};flex:0 0 90px">${Mo(ag, r)}</select><input type="date" data-a style="${Ue};flex:1" value="${l}"></div><div data-brow style="display:${r === "between" ? "flex" : "none"};gap:8px;align-items:center"><span style="flex:0 0 90px;text-align:center;color:#667085">到</span><input type="date" data-b style="${Ue};flex:1" value="${a}"></div>` + n;
11013
+ e.innerHTML = `<div style="display:flex;gap:8px;align-items:center;margin-bottom:8px"><select data-op style="${st};flex:0 0 90px">${Io(ag, r)}</select><input type="date" data-a style="${Ue};flex:1" value="${l}"></div><div data-brow style="display:${r === "between" ? "flex" : "none"};gap:8px;align-items:center"><span style="flex:0 0 90px;text-align:center;color:#667085">到</span><input type="date" data-b style="${Ue};flex:1" value="${a}"></div>` + n;
11014
11014
  const c = e.querySelector("[data-op]");
11015
11015
  c.addEventListener("change", () => {
11016
11016
  e.querySelector("[data-brow]").style.display = c.value === "between" ? "flex" : "none";
11017
11017
  });
11018
11018
  } else {
11019
11019
  const r = (t == null ? void 0 : t.type) === "top10" ? "top10" : (t == null ? void 0 : t.type) === "aboveAvg" ? "aboveAvg" : (t == null ? void 0 : t.type) === "belowAvg" ? "belowAvg" : "op", l = (t == null ? void 0 : t.type) === "number" ? t.op : "gt", a = (t == null ? void 0 : t.type) === "number" ? String(t.a) : "", c = (t == null ? void 0 : t.type) === "number" && t.b !== void 0 ? String(t.b) : "", d = (t == null ? void 0 : t.type) === "top10" ? t : { bottom: !1, percent: !1, n: 10 };
11020
- e.innerHTML = `<select data-mode style="${st};width:100%;margin-bottom:8px"><option value="op"${r === "op" ? " selected" : ""}>按运算符</option><option value="top10"${r === "top10" ? " selected" : ""}>前十项</option><option value="aboveAvg"${r === "aboveAvg" ? " selected" : ""}>高于平均值</option><option value="belowAvg"${r === "belowAvg" ? " selected" : ""}>低于平均值</option></select><div data-op-form style="display:${r === "op" ? "block" : "none"}"><div style="display:flex;gap:8px;align-items:center"><select data-op style="${st};flex:0 0 110px">${Mo(rg, l)}</select><input data-a type="number" style="${Ue};flex:1" value="${it(a)}"></div><div data-brow style="display:${l === "between" || l === "notBetween" ? "flex" : "none"};gap:8px;align-items:center;margin-top:8px"><span style="flex:0 0 110px;text-align:center;color:#667085">与</span><input data-b type="number" style="${Ue};flex:1" value="${it(c)}"></div></div><div data-top-form style="display:${r === "top10" ? "flex" : "none"};gap:8px;align-items:center"><select data-bottom style="${st};flex:0 0 70px"><option value="0"${d.bottom ? "" : " selected"}>最大</option><option value="1"${d.bottom ? " selected" : ""}>最小</option></select><input data-n type="number" min="1" style="${Ue};flex:1" value="${d.n}"><select data-percent style="${st};flex:0 0 76px"><option value="0"${d.percent ? "" : " selected"}>项</option><option value="1"${d.percent ? " selected" : ""}>百分比</option></select></div>` + n;
11020
+ e.innerHTML = `<select data-mode style="${st};width:100%;margin-bottom:8px"><option value="op"${r === "op" ? " selected" : ""}>按运算符</option><option value="top10"${r === "top10" ? " selected" : ""}>前十项</option><option value="aboveAvg"${r === "aboveAvg" ? " selected" : ""}>高于平均值</option><option value="belowAvg"${r === "belowAvg" ? " selected" : ""}>低于平均值</option></select><div data-op-form style="display:${r === "op" ? "block" : "none"}"><div style="display:flex;gap:8px;align-items:center"><select data-op style="${st};flex:0 0 110px">${Io(rg, l)}</select><input data-a type="number" style="${Ue};flex:1" value="${it(a)}"></div><div data-brow style="display:${l === "between" || l === "notBetween" ? "flex" : "none"};gap:8px;align-items:center;margin-top:8px"><span style="flex:0 0 110px;text-align:center;color:#667085">与</span><input data-b type="number" style="${Ue};flex:1" value="${it(c)}"></div></div><div data-top-form style="display:${r === "top10" ? "flex" : "none"};gap:8px;align-items:center"><select data-bottom style="${st};flex:0 0 70px"><option value="0"${d.bottom ? "" : " selected"}>最大</option><option value="1"${d.bottom ? " selected" : ""}>最小</option></select><input data-n type="number" min="1" style="${Ue};flex:1" value="${d.n}"><select data-percent style="${st};flex:0 0 76px"><option value="0"${d.percent ? "" : " selected"}>项</option><option value="1"${d.percent ? " selected" : ""}>百分比</option></select></div>` + n;
11021
11021
  const h = e.querySelector("[data-mode]");
11022
11022
  h.addEventListener("change", () => {
11023
11023
  e.querySelector("[data-op-form]").style.display = h.value === "op" ? "block" : "none", e.querySelector("[data-top-form]").style.display = h.value === "top10" ? "flex" : "none";
@@ -11366,8 +11366,8 @@ const Sg = (o) => {
11366
11366
  function h(v) {
11367
11367
  const x = Cg();
11368
11368
  if (!x || v <= 0) return 0;
11369
- const S = e != null && e.font ? ve(e.font, 1) : `${i.toFixed(1)}px sans-serif`, k = Math.max(10, v - 2 * Fe - 4), I = vn(x, s.value || " ", S, k), E = i * dt;
11370
- return Math.ceil(I.length * E + 4 + 2);
11369
+ const S = e != null && e.font ? ve(e.font, 1) : `${i.toFixed(1)}px sans-serif`, k = Math.max(10, v - 2 * Fe - 4), M = vn(x, s.value || " ", S, k), E = i * dt;
11370
+ return Math.ceil(M.length * E + 4 + 2);
11371
11371
  }
11372
11372
  return setTimeout(() => {
11373
11373
  var v;
@@ -11644,7 +11644,7 @@ function Tt(o, e, t, n, s, i) {
11644
11644
  const r = t === "main" || t === "frow" ? e.left - n - i.scrollX : e.left, l = t === "main" || t === "fcol" ? e.top - s - i.scrollY : e.top;
11645
11645
  o.style.left = r + "px", o.style.top = l + "px", o.style.width = e.width + "px", o.style.height = e.height + "px";
11646
11646
  }
11647
- function Ig(o, e) {
11647
+ function Mg(o, e) {
11648
11648
  var i, r, l, a, c, d;
11649
11649
  if (!e || !((i = e.images) != null && i.length) && !((r = e.charts) != null && r.length) && !((l = e.shapes) != null && l.length)) return;
11650
11650
  const t = o.canvas.getContext("2d");
@@ -11671,10 +11671,10 @@ function Ig(o, e) {
11671
11671
  }
11672
11672
  }
11673
11673
  for (const h of (d = e.shapes) != null ? d : [])
11674
- Mg(t, h, s(re(o.metrics, h.anchor)), n);
11674
+ Ig(t, h, s(re(o.metrics, h.anchor)), n);
11675
11675
  t.restore();
11676
11676
  }
11677
- function Mg(o, e, t, n) {
11677
+ function Ig(o, e, t, n) {
11678
11678
  const { x: s, y: i, w: r, h: l } = t;
11679
11679
  if (o.save(), o.beginPath(), e.geom === "ellipse" ? o.ellipse(s + r / 2, i + l / 2, r / 2, l / 2, 0, 0, Math.PI * 2) : e.geom === "roundRect" ? Ag(o, s, i, r, l, 8 * n) : o.rect(s, i, r, l), e.fillColor && (o.fillStyle = e.fillColor, o.fill()), e.lineColor && (o.strokeStyle = e.lineColor, o.lineWidth = Math.max(1, n), o.stroke()), e.text) {
11680
11680
  o.clip(), o.fillStyle = e.textColor || "#000000";
@@ -11713,14 +11713,14 @@ function us(o, e, t, n) {
11713
11713
  u = r;
11714
11714
  const p = Oe * u, g = h * p, b = f * p, m = Math.max(1, n.contentWmm - g), y = Math.max(1, n.contentHmm - b), w = l * u, v = a * u;
11715
11715
  if (w < 0.01 || v < 0.01) return [];
11716
- const x = n.fitToWidth ? s : Math.max(1, m / w * s), S = Math.max(1, y / v * i), k = xr(s, x), I = xr(i, S), E = [];
11716
+ const x = n.fitToWidth ? s : Math.max(1, m / w * s), S = Math.max(1, y / v * i), k = xr(s, x), M = xr(i, S), E = [];
11717
11717
  for (const $ of k)
11718
- for (const T of I) {
11719
- const M = document.createElement("canvas");
11720
- M.width = c + $.len, M.height = d + T.len;
11721
- const A = M.getContext("2d");
11718
+ for (const T of M) {
11719
+ const I = document.createElement("canvas");
11720
+ I.width = c + $.len, I.height = d + T.len;
11721
+ const A = I.getContext("2d");
11722
11722
  A && (n.corner && c && d && A.drawImage(n.corner.canvas, 0, 0, c, d, 0, 0, c, d), n.repeatTop && d && A.drawImage(n.repeatTop.canvas, $.s, 0, $.len, d, c, 0, $.len, d), n.repeatLeft && c && A.drawImage(n.repeatLeft.canvas, 0, T.s, c, T.len, 0, d, c, T.len), A.drawImage(o, $.s, T.s, $.len, T.len, c, d, $.len, T.len), E.push({
11723
- canvas: M,
11723
+ canvas: I,
11724
11724
  widthMm: g + $.len / s * w,
11725
11725
  heightMm: b + T.len / i * v
11726
11726
  }));
@@ -11732,7 +11732,7 @@ async function Rg() {
11732
11732
  try {
11733
11733
  const e = await import(
11734
11734
  /* @vite-ignore */
11735
- "./jspdf.es.min-DJ2NWx1E.js"
11735
+ "./jspdf.es.min-P_bGBJFk.js"
11736
11736
  ).then((t) => t.j);
11737
11737
  return e.jsPDF || ((o = e.default) == null ? void 0 : o.jsPDF) || e.default || e;
11738
11738
  } catch (e) {
@@ -11788,7 +11788,7 @@ async function Lg() {
11788
11788
  try {
11789
11789
  const e = await import(
11790
11790
  /* @vite-ignore */
11791
- "./jspdf.es.min-DJ2NWx1E.js"
11791
+ "./jspdf.es.min-P_bGBJFk.js"
11792
11792
  ).then((t) => t.j);
11793
11793
  return e.jsPDF || ((o = e.default) == null ? void 0 : o.jsPDF) || e.default || e;
11794
11794
  } catch (e) {
@@ -11860,27 +11860,27 @@ function zg(o, e) {
11860
11860
  function Bg(o, e, t, n, s, i, r) {
11861
11861
  var x, S;
11862
11862
  const l = e.metrics, { mmPerCss: a, titleColCols: c, titleRowRows: d, titleColWmm: h, titleRowHmm: f } = t, u = s.left + h, p = s.top + f, g = (k) => {
11863
- var I;
11864
- return u + (l.colLeft(k) - l.colLeft((I = n.cols[0]) != null ? I : e.bodyLeft)) * a;
11863
+ var M;
11864
+ return u + (l.colLeft(k) - l.colLeft((M = n.cols[0]) != null ? M : e.bodyLeft)) * a;
11865
11865
  }, b = (k) => {
11866
- var I;
11867
- return p + (l.rowTop(k) - l.rowTop((I = n.rows[0]) != null ? I : e.bodyTop)) * a;
11866
+ var M;
11867
+ return p + (l.rowTop(k) - l.rowTop((M = n.rows[0]) != null ? M : e.bodyTop)) * a;
11868
11868
  }, m = (k) => {
11869
- var I;
11870
- return s.left + (l.colLeft(k) - l.colLeft((I = c[0]) != null ? I : 0)) * a;
11869
+ var M;
11870
+ return s.left + (l.colLeft(k) - l.colLeft((M = c[0]) != null ? M : 0)) * a;
11871
11871
  }, y = (k) => {
11872
- var I;
11873
- return s.top + (l.rowTop(k) - l.rowTop((I = d[0]) != null ? I : 0)) * a;
11872
+ var M;
11873
+ return s.top + (l.rowTop(k) - l.rowTop((M = d[0]) != null ? M : 0)) * a;
11874
11874
  }, w = { doc: o, vs: e, baseFont: i, customFont: r, mmPerCss: a };
11875
11875
  an(w, n.rows, n.cols, g, b), d.length && an(w, d, n.cols, g, y), c.length && an(w, n.rows, c, m, b), d.length && c.length && an(w, d, c, m, y);
11876
11876
  const v = new Set(n.rows);
11877
11877
  for (const k of e.images) {
11878
- const I = k.anchor.from.row, E = k.anchor.from.col;
11879
- if (!v.has(I) || E < ((x = n.cols[0]) != null ? x : 0) || E > ((S = n.cols[n.cols.length - 1]) != null ? S : -1)) continue;
11880
- const $ = re(l, k.anchor), T = u + ($.left - l.colLeft(n.cols[0])) * a, M = p + ($.top - l.rowTop(n.rows[0])) * a;
11878
+ const M = k.anchor.from.row, E = k.anchor.from.col;
11879
+ if (!v.has(M) || E < ((x = n.cols[0]) != null ? x : 0) || E > ((S = n.cols[n.cols.length - 1]) != null ? S : -1)) continue;
11880
+ const $ = re(l, k.anchor), T = u + ($.left - l.colLeft(n.cols[0])) * a, I = p + ($.top - l.rowTop(n.rows[0])) * a;
11881
11881
  try {
11882
11882
  const A = jg(k.source);
11883
- A && o.addImage(A, "PNG", T, M, $.width * a, $.height * a, void 0, "FAST");
11883
+ A && o.addImage(A, "PNG", T, I, $.width * a, $.height * a, void 0, "FAST");
11884
11884
  } catch (A) {
11885
11885
  }
11886
11886
  }
@@ -11897,8 +11897,8 @@ function an(o, e, t, n, s) {
11897
11897
  for (let b = 0; b < t.length; b++) {
11898
11898
  const m = t[b], y = p + ":" + m;
11899
11899
  if (h.has(y) && !f.has(y)) continue;
11900
- const w = f.get(y), v = w ? Math.min(w.right, u) : m, x = w ? w.bottom : p, S = n(m), k = (d.colLeft(v + 1) - d.colLeft(m)) * c, I = (d.rowTop(x + 1) - d.rowTop(p)) * c, E = r.getCell(p, m);
11901
- if (E && (E.complex || !a && Pg(E.text) ? _g(i, r, p, m, v, x, S, g, k, I) : Wg(i, E, S, g, k, I, c, l, a)), w && w.right > m)
11900
+ const w = f.get(y), v = w ? Math.min(w.right, u) : m, x = w ? w.bottom : p, S = n(m), k = (d.colLeft(v + 1) - d.colLeft(m)) * c, M = (d.rowTop(x + 1) - d.rowTop(p)) * c, E = r.getCell(p, m);
11901
+ if (E && (E.complex || !a && Pg(E.text) ? _g(i, r, p, m, v, x, S, g, k, M) : Wg(i, E, S, g, k, M, c, l, a)), w && w.right > m)
11902
11902
  for (; b < t.length - 1 && t[b + 1] <= w.right; ) b++;
11903
11903
  }
11904
11904
  }
@@ -11922,8 +11922,8 @@ function Wg(o, e, t, n, s, i, r, l, a) {
11922
11922
  if (d != null && d.dataBar) {
11923
11923
  const E = Math.max(0, (s - 2 * r) * d.dataBar.ratio);
11924
11924
  if (E > 0) {
11925
- const [$, T, M] = Rt(d.dataBar.color);
11926
- o.setFillColor($, T, M), o.rect(t + r, n + r, E, i - 2 * r, "F");
11925
+ const [$, T, I] = Rt(d.dataBar.color);
11926
+ o.setFillColor($, T, I), o.rect(t + r, n + r, E, i - 2 * r, "F");
11927
11927
  }
11928
11928
  }
11929
11929
  rt(o, c.borders.top, t, n, t + s, n), rt(o, c.borders.bottom, t, n + i, t + s, n + i), rt(o, c.borders.left, t, n, t, n + i), rt(o, c.borders.right, t + s, n, t + s, n + i), c.borders.diagonal && (c.borders.diagonalDown || c.borders.diagonalUp) && (c.borders.diagonalDown && rt(o, c.borders.diagonal, t, n, t + s, n + i), c.borders.diagonalUp && rt(o, c.borders.diagonal, t, n + i, t + s, n));
@@ -11952,10 +11952,10 @@ function Wg(o, e, t, n, s, i, r, l, a) {
11952
11952
  }
11953
11953
  }
11954
11954
  c.vAlign === "top" || k ? (x = n + u, S = "top") : c.vAlign === "middle" ? (x = n + i / 2, S = "middle") : (x = n + i - u, S = "bottom");
11955
- const I = { align: v, baseline: S };
11956
- c.wrapText && (I.maxWidth = Math.max(1, s - 2 * u));
11955
+ const M = { align: v, baseline: S };
11956
+ c.wrapText && (M.maxWidth = Math.max(1, s - 2 * u));
11957
11957
  try {
11958
- o.text(f, w, x, I);
11958
+ o.text(f, w, x, M);
11959
11959
  } catch (E) {
11960
11960
  }
11961
11961
  }
@@ -12088,7 +12088,7 @@ function Jg(o, e = {}) {
12088
12088
  `);
12089
12089
  }
12090
12090
  function Zg(o, e = {}) {
12091
- return JSON.stringify(Id(o, R({ format: !1, date1904: o.date1904 }, e)), null, 2);
12091
+ return JSON.stringify(Md(o, R({ format: !1, date1904: o.date1904 }, e)), null, 2);
12092
12092
  }
12093
12093
  const Qg = "application/vnd.wps-officedocument.cellimage+xml", em = "http://www.wps.cn/officeDocument/2020/cellImage", tm = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
12094
12094
  function nm(o, e) {
@@ -12408,12 +12408,12 @@ function vm(o, e, t) {
12408
12408
  if ((v == null ? void 0 : v.mode) === "non-empty" && b.hasBlank && (k = !0, S.add(x)), (v == null ? void 0 : v.mode) === "include" && v.values) {
12409
12409
  k = !0;
12410
12410
  const $ = new Set(v.values);
12411
- b.items.forEach((T, M) => {
12412
- $.has(T) || S.add(M);
12411
+ b.items.forEach((T, I) => {
12412
+ $.has(T) || S.add(I);
12413
12413
  }), b.hasBlank && S.add(x);
12414
12414
  }
12415
- const I = Array.from({ length: w }, ($, T) => S.has(T) ? `<item x="${T}" h="1"/>` : `<item x="${T}"/>`).join("") + '<item t="default"/>';
12416
- return `<pivotField axis="${y}"${k ? ' multipleItemSelectionAllowed="1"' : ""} showAll="0"><items count="${w + 1}">${I}</items></pivotField>`;
12415
+ const M = Array.from({ length: w }, ($, T) => S.has(T) ? `<item x="${T}" h="1"/>` : `<item x="${T}"/>`).join("") + '<item t="default"/>';
12416
+ return `<pivotField axis="${y}"${k ? ' multipleItemSelectionAllowed="1"' : ""} showAll="0"><items count="${w + 1}">${M}</items></pivotField>`;
12417
12417
  }
12418
12418
  return a.has(m) ? '<pivotField dataField="1" showAll="0"/>' : '<pivotField showAll="0"/>';
12419
12419
  }).join(""), h = i.rows.length ? `<rowFields count="${i.rows.length}">${i.rows.map((b) => `<field x="${r(b)}"/>`).join("")}</rowFields>` : "", f = i.columns.length ? `<colFields count="${i.columns.length}">${i.columns.map((b) => `<field x="${r(b)}"/>`).join("")}</colFields>` : "", u = i.filters.length ? `<pageFields count="${i.filters.length}">${i.filters.map((b) => {
@@ -12543,7 +12543,7 @@ function Sm(o, e) {
12543
12543
  if (!x.length) continue;
12544
12544
  const S = Ql(l, m);
12545
12545
  if (!S) continue;
12546
- const k = S.slice(0, S.lastIndexOf("/")), I = S.slice(S.lastIndexOf("/") + 1), E = `${k}/_rels/${I}.rels`;
12546
+ const k = S.slice(0, S.lastIndexOf("/")), M = S.slice(S.lastIndexOf("/") + 1), E = `${k}/_rels/${M}.rels`;
12547
12547
  let $ = l[E] ? Z(l[E]) : pn;
12548
12548
  for (const T of x)
12549
12549
  $.includes(`Target="${T}"`) || ($ = Tn($, jl, T).rels);
@@ -12646,7 +12646,7 @@ function $m(o) {
12646
12646
  }
12647
12647
  return Object.keys(e).length ? e : void 0;
12648
12648
  }
12649
- function Im(o) {
12649
+ function Mm(o) {
12650
12650
  const e = o.priority || 1, t = $m(o.style);
12651
12651
  switch (o.type) {
12652
12652
  case "cellIs":
@@ -12682,7 +12682,7 @@ function na(o, e) {
12682
12682
  if (n.type === "unsupported") continue;
12683
12683
  const s = Tm(n.ranges);
12684
12684
  if (!s) continue;
12685
- const r = n.origin !== "user" && !n.dirty && n.raw ? n.raw : Im(n);
12685
+ const r = n.origin !== "user" && !n.dirty && n.raw ? n.raw : Mm(n);
12686
12686
  if (r)
12687
12687
  try {
12688
12688
  o.addConditionalFormatting({ ref: s, rules: [r] });
@@ -12715,7 +12715,7 @@ function oa(o) {
12715
12715
  function Cr(o) {
12716
12716
  return o != null && o.includes("jpeg") || o != null && o.includes("jpg") ? "jpeg" : o != null && o.includes("gif") ? "gif" : "png";
12717
12717
  }
12718
- function Mm(o, e, t, n) {
12718
+ function Im(o, e, t, n) {
12719
12719
  var d;
12720
12720
  let s;
12721
12721
  if (t.bytes) s = { buffer: t.bytes, extension: Cr(t.mime) };
@@ -12791,7 +12791,7 @@ function Am(o, e, t) {
12791
12791
  const n = new qe(e, 1);
12792
12792
  for (const s of e.images)
12793
12793
  try {
12794
- Mm(t, o, s, n);
12794
+ Im(t, o, s, n);
12795
12795
  } catch (i) {
12796
12796
  }
12797
12797
  }
@@ -12981,10 +12981,10 @@ class Pm {
12981
12981
  * withTitles(PDF/打印): 应用 pageSetup 打印标题行(抽出标题条 + 正文剔除标题行)与缩放。
12982
12982
  */
12983
12983
  async buildSheetImage(e, t, n = !1) {
12984
- var k, I;
12984
+ var k, M;
12985
12985
  const s = this.host.getWorkbook(), i = s == null ? void 0 : s.sheets[e];
12986
12986
  if (!s || !i) return null;
12987
- const r = this.rendererFor(e, i, s), l = i.pageSetup, a = i.dimension, c = { top: 0, left: 0, bottom: Math.max(0, a.rows - 1), right: Math.max(0, a.cols - 1) }, d = (I = (k = t.range) != null ? k : l == null ? void 0 : l.printArea) != null ? I : c;
12987
+ const r = this.rendererFor(e, i, s), l = i.pageSetup, a = i.dimension, c = { top: 0, left: 0, bottom: Math.max(0, a.rows - 1), right: Math.max(0, a.cols - 1) }, d = (M = (k = t.range) != null ? k : l == null ? void 0 : l.printArea) != null ? M : c;
12988
12988
  let h = null, f = null, u = d.top, p = d.left;
12989
12989
  if (n && (l != null && l.printTitleRows)) {
12990
12990
  const [E, $] = l.printTitleRows;
@@ -13001,7 +13001,7 @@ class Pm {
13001
13001
  gridlines: t.gridlines,
13002
13002
  background: t.background
13003
13003
  }), b = g({ top: u, left: p, bottom: d.bottom, right: d.right }), m = await this.collectDecorations(i, b.metrics);
13004
- Ig(b, m);
13004
+ Mg(b, m);
13005
13005
  const y = b.scale;
13006
13006
  let w, v, x;
13007
13007
  if (h) {
@@ -13027,7 +13027,7 @@ class Pm {
13027
13027
  }
13028
13028
  /** 为一个工作表生成矢量导出输入(逐格信息 + 兜底底图 + 图片图表 + 标题行) */
13029
13029
  async buildVectorSheet(e, t) {
13030
- var x, S, k, I, E;
13030
+ var x, S, k, M, E;
13031
13031
  const n = this.host.getWorkbook(), s = n == null ? void 0 : n.sheets[e];
13032
13032
  if (!n || !s) return null;
13033
13033
  const i = this.rendererFor(e, s, n), r = new qe(s, 1), l = s.pageSetup, a = s.dimension, c = { top: 0, left: 0, bottom: Math.max(0, a.rows - 1), right: Math.max(0, a.cols - 1) }, d = (S = (x = t.range) != null ? x : l == null ? void 0 : l.printArea) != null ? S : c;
@@ -13046,7 +13046,7 @@ class Pm {
13046
13046
  includeHeaders: !1,
13047
13047
  gridlines: t.gridlines,
13048
13048
  background: t.background
13049
- }), y = await this.collectDecorations(s, m.metrics), w = [...(k = y.images) != null ? k : [], ...(I = y.charts) != null ? I : []], v = t.fitToWidth === !1 && (l != null && l.scale) ? l.scale / 100 : void 0;
13049
+ }), y = await this.collectDecorations(s, m.metrics), w = [...(k = y.images) != null ? k : [], ...(M = y.charts) != null ? M : []], v = t.fitToWidth === !1 && (l != null && l.scale) ? l.scale / 100 : void 0;
13050
13050
  return {
13051
13051
  sheetName: s.name,
13052
13052
  metrics: r,
@@ -13214,11 +13214,11 @@ const Tr = "(空白)", $r = {
13214
13214
  teal: "#0e7c86",
13215
13215
  gray: "#6b7280"
13216
13216
  };
13217
- function It(o, e) {
13217
+ function Mt(o, e) {
13218
13218
  const t = o.replace("#", ""), n = (i) => parseInt(t.slice(i, i + 2), 16), s = (i) => Math.round(i + (255 - i) * e).toString(16).padStart(2, "0");
13219
13219
  return "#" + s(n(0)) + s(n(2)) + s(n(4));
13220
13220
  }
13221
- function Ir(o, e) {
13221
+ function Mr(o, e) {
13222
13222
  const t = o.replace("#", ""), n = (i) => parseInt(t.slice(i, i + 2), 16), s = (i) => Math.round(i * (1 - e)).toString(16).padStart(2, "0");
13223
13223
  return "#" + s(n(0)) + s(n(2)) + s(n(4));
13224
13224
  }
@@ -13228,7 +13228,7 @@ function Om(o) {
13228
13228
  n.onload = () => e(String(n.result)), n.onerror = () => t(n.error), n.readAsDataURL(o);
13229
13229
  });
13230
13230
  }
13231
- function Mr(o) {
13231
+ function Ir(o) {
13232
13232
  return new Promise((e) => {
13233
13233
  if (typeof Image == "undefined") {
13234
13234
  e({ width: 120, height: 90 });
@@ -13242,7 +13242,7 @@ function Hm(o) {
13242
13242
  var s;
13243
13243
  if (o === "plain") return { h: "#6b7280", ht: "#ffffff", b: "#f3f4f6", border: "#c8ccd0" };
13244
13244
  const [e, t = "medium"] = o.split("-"), n = (s = $r[e]) != null ? s : $r.green;
13245
- return t === "light" ? { h: It(n, 0.82), ht: Ir(n, 0.15), b: It(n, 0.93), border: It(n, 0.55) } : t === "dark" ? { h: Ir(n, 0.25), ht: "#ffffff", b: It(n, 0.78), border: n } : { h: n, ht: "#ffffff", b: It(n, 0.88), border: "#c8ccd0" };
13245
+ return t === "light" ? { h: Mt(n, 0.82), ht: Mr(n, 0.15), b: Mt(n, 0.93), border: Mt(n, 0.55) } : t === "dark" ? { h: Mr(n, 0.25), ht: "#ffffff", b: Mt(n, 0.78), border: n } : { h: n, ht: "#ffffff", b: Mt(n, 0.88), border: "#c8ccd0" };
13246
13246
  }
13247
13247
  class gb {
13248
13248
  constructor(e, t) {
@@ -13379,6 +13379,35 @@ class gb {
13379
13379
  C(this, "editorResolver");
13380
13380
  /** paste 事件处理器(绑在 scroller 上;Ctrl+V 走它拿**原始**剪贴板 HTML,避开 clipboard.read() 的净化) */
13381
13381
  C(this, "onPasteHandler", (e) => this.onPaste(e));
13382
+ // ---- 触屏手势(1.16.2:手机端只读高保真查看)----
13383
+ // 单指平移交给原生 scroller(touch-action: pan-x pan-y),双指走 pinch 缩放,双击切缩放。
13384
+ // 坐标/缩放全走既有 setZoom(保持视口中心),不碰 DPR/命中数学,零回归。
13385
+ C(this, "pinching", !1);
13386
+ C(this, "pinchStartDist", 0);
13387
+ C(this, "pinchStartZoom", 1);
13388
+ C(this, "lastTapTime", 0);
13389
+ C(this, "lastTapX", 0);
13390
+ C(this, "lastTapY", 0);
13391
+ C(this, "onTouchStartHandler", (e) => {
13392
+ e.touches.length === 2 && (this.pinching = !0, this.pinchStartDist = this.touchDist(e), this.pinchStartZoom = this.view.zoom, e.preventDefault());
13393
+ });
13394
+ C(this, "onTouchMoveHandler", (e) => {
13395
+ if (this.pinching && e.touches.length === 2) {
13396
+ e.preventDefault();
13397
+ const t = this.touchDist(e);
13398
+ this.pinchStartDist > 0 && this.requestZoom(this.pinchStartZoom * (t / this.pinchStartDist));
13399
+ }
13400
+ });
13401
+ C(this, "onTouchEndHandler", (e) => {
13402
+ if (this.pinching) {
13403
+ e.touches.length < 2 && (this.pinching = !1);
13404
+ return;
13405
+ }
13406
+ if (e.touches.length === 0 && e.changedTouches.length === 1) {
13407
+ const t = e.changedTouches[0], n = typeof performance != "undefined" ? performance.now() : 0;
13408
+ n - this.lastTapTime < 300 && Math.abs(t.clientX - this.lastTapX) < 30 && Math.abs(t.clientY - this.lastTapY) < 30 ? (this.requestZoom(this.view.zoom < 1.5 ? 2 : 1), this.lastTapTime = 0, e.preventDefault()) : (this.lastTapTime = n, this.lastTapX = t.clientX, this.lastTapY = t.clientY);
13409
+ }
13410
+ });
13382
13411
  // ===== WPS「插入 → 图片」(浮动式 / 嵌入到单元格)=====
13383
13412
  /** 图片插入模式(WPS 图片下拉顶部单选):'float' 浮动式 / 'cell' 嵌入到单元格。默认 float。 */
13384
13413
  C(this, "imageInsertMode", "float");
@@ -13420,12 +13449,21 @@ class gb {
13420
13449
  },
13421
13450
  emit: (i, r) => this.emitEditEvent(i, r)
13422
13451
  };
13423
- this.edit = new Hh(s), this.editorHost = new Bu(e.editorSlot, (i, r) => this.rectOf(i, r)), e.scroller.addEventListener("paste", this.onPasteHandler);
13452
+ this.edit = new Hh(s), this.editorHost = new Bu(e.editorSlot, (i, r) => this.rectOf(i, r)), e.scroller.addEventListener("paste", this.onPasteHandler), e.scroller.addEventListener("touchstart", this.onTouchStartHandler, { passive: !1 }), e.scroller.addEventListener("touchmove", this.onTouchMoveHandler, { passive: !1 }), e.scroller.addEventListener("touchend", this.onTouchEndHandler, { passive: !1 });
13424
13453
  }
13425
13454
  /** 壳在加载后注入原始字节(供 exportXlsx({fidelity:'overlay'}) 重载原件叠加编辑) */
13426
13455
  setSourceBuffer(e) {
13427
13456
  this.sourceBuffer = e;
13428
13457
  }
13458
+ touchDist(e) {
13459
+ const t = e.touches[0], n = e.touches[1];
13460
+ return Math.hypot(t.clientX - n.clientX, t.clientY - n.clientY);
13461
+ }
13462
+ /** 手势请求缩放:立即 setZoom(即时顺滑重绘)+ 通知壳同步显示。clamp 0.3–3(比下拉 0.5–2 宽,方便手机看清)。 */
13463
+ requestZoom(e) {
13464
+ var t, n;
13465
+ e = Math.min(3, Math.max(0.3, e)), this.setZoom(e), (n = (t = this.hooks).onZoomChange) == null || n.call(t, e);
13466
+ }
13429
13467
  /** 切表/换簿/主题变化: 清状态,重建渲染器,重置滚动,量尺寸,建叠加层,绘制,按需重跑查找 */
13430
13468
  rebuild(e, t, n, s) {
13431
13469
  this.selAnchor = null, this.selActive = null, this.selMode = "range", this.selectImage(-1), this.hooks.onSelectionChange(), this.findHits = [], this.findIndex = -1, this.hooks.onTooltip(null), this.sortCol = -1, this.sortDir = null, this.editorHost.unmount(), this.edit.reset();
@@ -13457,6 +13495,10 @@ class gb {
13457
13495
  setScroll(e, t) {
13458
13496
  this.view.scrollX = e, this.view.scrollY = t, this.recomputeVirtualExtent(), this.scheduleRender();
13459
13497
  }
13498
+ /** 当前缩放(壳 watch 用它去重,避免 pinch 已改 core 后 watch 再回调一次 setZoom 双重渲染)。 */
13499
+ getZoom() {
13500
+ return this.view.zoom;
13501
+ }
13460
13502
  /** 缩放: 保持视口中心相对内容的比例,避免跳到左上角 */
13461
13503
  setZoom(e) {
13462
13504
  const t = this.renderer, n = this.els.scroller;
@@ -13584,7 +13626,7 @@ class gb {
13584
13626
  return { x: n.x, y: n.y, w: s.x + s.w - n.x, h: s.y + s.h - n.y };
13585
13627
  }
13586
13628
  dispose() {
13587
- this.rafId && cancelAnimationFrame(this.rafId), this.rafId = 0, this.els.scroller.removeEventListener("paste", this.onPasteHandler), this.overlays.dispose(), this.editorHost.dispose(), this.menuHost.dispose(), this.lightbox.dispose(), this.printPreview.dispose(), this.insertFnDialog.dispose(), this.dvDialog.dispose(), this.removeDupDialog.dispose(), this.t2cDialog.dispose(), this.protectSheetDialog.dispose(), this.protectWbDialog.dispose(), this.allowRangesDialog.dispose(), this.taskPane.dispose(), this.filterPopupHost.dispose(), this.findDialog.dispose(), this.pivotDialog.dispose(), this.pivotPanel.dispose(), this.pasteConfigDialog.dispose(), this.readonlyPrompt.dispose(), this.validationPrompt.dispose(), this.cfDialog.dispose(), this.numFmtDialog.dispose(), this.commentDialog.dispose(), this.pageSetupDialog.dispose(), this.backgroundDialog.dispose(), this.seriesDialog.dispose(), this.sortDialog.dispose(), this.imageOversizeDialog.dispose(), this.edit.disposeEngine();
13629
+ this.rafId && cancelAnimationFrame(this.rafId), this.rafId = 0, this.els.scroller.removeEventListener("paste", this.onPasteHandler), this.els.scroller.removeEventListener("touchstart", this.onTouchStartHandler), this.els.scroller.removeEventListener("touchmove", this.onTouchMoveHandler), this.els.scroller.removeEventListener("touchend", this.onTouchEndHandler), this.overlays.dispose(), this.editorHost.dispose(), this.menuHost.dispose(), this.lightbox.dispose(), this.printPreview.dispose(), this.insertFnDialog.dispose(), this.dvDialog.dispose(), this.removeDupDialog.dispose(), this.t2cDialog.dispose(), this.protectSheetDialog.dispose(), this.protectWbDialog.dispose(), this.allowRangesDialog.dispose(), this.taskPane.dispose(), this.filterPopupHost.dispose(), this.findDialog.dispose(), this.pivotDialog.dispose(), this.pivotPanel.dispose(), this.pasteConfigDialog.dispose(), this.readonlyPrompt.dispose(), this.validationPrompt.dispose(), this.cfDialog.dispose(), this.numFmtDialog.dispose(), this.commentDialog.dispose(), this.pageSetupDialog.dispose(), this.backgroundDialog.dispose(), this.seriesDialog.dispose(), this.sortDialog.dispose(), this.imageOversizeDialog.dispose(), this.edit.disposeEngine();
13588
13630
  }
13589
13631
  /** 内容总尺寸变化 → 量 + 直接撑 spacer(滚动范围由它决定) */
13590
13632
  refreshContentSize() {
@@ -14384,43 +14426,43 @@ class gb {
14384
14426
  }
14385
14427
  // ====================== 复制 ======================
14386
14428
  async copySelection() {
14387
- var k, I, E, $, T;
14429
+ var k, M, E, $, T;
14388
14430
  if (this.selRanges.length > 0) return this.copyMultiSelection();
14389
14431
  const e = this.renderer, t = this.getSelection(), n = this.sheet, s = this.workbook;
14390
14432
  if (!e || !t || !n || !s) return;
14391
- const i = Math.min(t.bottom, t.top + 4999), r = Math.min(t.right, t.left + 255), l = { top: t.top, left: t.left, bottom: i, right: r }, a = this.hasFilters(), c = (M) => {
14433
+ const i = Math.min(t.bottom, t.top + 4999), r = Math.min(t.right, t.left + 255), l = { top: t.top, left: t.left, bottom: i, right: r }, a = this.hasFilters(), c = (I) => {
14392
14434
  var A;
14393
- return !(a && ((A = n.rows.get(M)) != null && A.hidden));
14435
+ return !(a && ((A = n.rows.get(I)) != null && A.hidden));
14394
14436
  }, d = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Map();
14395
- for (const M of n.merges)
14396
- if (!(M.top < l.top || M.left < l.left || M.bottom > l.bottom || M.right > l.right)) {
14397
- h.set(O(M.top, M.left), { rs: M.bottom - M.top + 1, cs: M.right - M.left + 1 });
14398
- for (let A = M.top; A <= M.bottom; A++) for (let L = M.left; L <= M.right; L++) (A !== M.top || L !== M.left) && d.add(O(A, L));
14437
+ for (const I of n.merges)
14438
+ if (!(I.top < l.top || I.left < l.left || I.bottom > l.bottom || I.right > l.right)) {
14439
+ h.set(O(I.top, I.left), { rs: I.bottom - I.top + 1, cs: I.right - I.left + 1 });
14440
+ for (let A = I.top; A <= I.bottom; A++) for (let L = I.left; L <= I.right; L++) (A !== I.top || L !== I.left) && d.add(O(A, L));
14399
14441
  }
14400
14442
  let f = 0;
14401
- for (let M = l.top; M <= l.bottom; M++)
14402
- if (c(M))
14443
+ for (let I = l.top; I <= l.bottom; I++)
14444
+ if (c(I))
14403
14445
  for (let A = l.left; A <= l.right; A++) {
14404
- const L = (k = n.cells.get(O(M, A))) == null ? void 0 : k.dispImgId, N = L ? (I = s.cellImages) == null ? void 0 : I.get(L) : void 0;
14446
+ const L = (k = n.cells.get(O(I, A))) == null ? void 0 : k.dispImgId, N = L ? (M = s.cellImages) == null ? void 0 : M.get(L) : void 0;
14405
14447
  N != null && N.bytes && (f += N.bytes.length);
14406
14448
  }
14407
- for (const M of n.images)
14408
- M.from.row >= l.top && M.from.row <= l.bottom && c(M.from.row) && M.from.col >= l.left && M.from.col <= l.right && M.bytes && (f += M.bytes.length);
14449
+ for (const I of n.images)
14450
+ I.from.row >= l.top && I.from.row <= l.bottom && c(I.from.row) && I.from.col >= l.left && I.from.col <= l.right && I.bytes && (f += I.bytes.length);
14409
14451
  const u = f > ph;
14410
14452
  u && this.hooks.onEditEvent("permission-denied", {
14411
14453
  reason: "copy",
14412
14454
  cells: [],
14413
14455
  message: `复制内容含图过多(约 ${Math.round(f / 1024 / 1024)} MB),已按无图复制以避免剪贴板超限`
14414
14456
  });
14415
- const p = (M) => {
14457
+ const p = (I) => {
14416
14458
  var A, L;
14417
- return Math.round((L = (A = n.columns.get(M)) == null ? void 0 : A.width) != null ? L : n.defaultColWidth);
14418
- }, g = (M) => {
14459
+ return Math.round((L = (A = n.columns.get(I)) == null ? void 0 : A.width) != null ? L : n.defaultColWidth);
14460
+ }, g = (I) => {
14419
14461
  var A, L;
14420
- return Math.round((L = (A = n.rows.get(M)) == null ? void 0 : A.height) != null ? L : n.defaultRowHeight);
14462
+ return Math.round((L = (A = n.rows.get(I)) == null ? void 0 : A.height) != null ? L : n.defaultRowHeight);
14421
14463
  }, b = /* @__PURE__ */ new Map();
14422
14464
  if (!u) {
14423
- const M = (L, N, F, H, D) => {
14465
+ const I = (L, N, F, H, D) => {
14424
14466
  var X;
14425
14467
  const B = (X = b.get(L)) != null ? X : [];
14426
14468
  B.push({ key: N, url: F, w: H, h: D }), b.set(L, B);
@@ -14429,23 +14471,23 @@ class gb {
14429
14471
  if (c(L))
14430
14472
  for (let N = l.left; N <= l.right; N++) {
14431
14473
  const F = (E = n.cells.get(O(L, N))) == null ? void 0 : E.dispImgId, H = F ? ($ = s.cellImages) == null ? void 0 : $.get(F) : void 0;
14432
- F && (H != null && H.bytes) && H.mime && M(O(L, N), `c:${F}`, `data:${H.mime};base64,${ut(H.bytes)}`, p(N), g(L));
14474
+ F && (H != null && H.bytes) && H.mime && I(O(L, N), `c:${F}`, `data:${H.mime};base64,${ut(H.bytes)}`, p(N), g(L));
14433
14475
  }
14434
14476
  let A = 0;
14435
14477
  for (const L of n.images) {
14436
14478
  if (L.from.row < l.top || L.from.row > l.bottom || !c(L.from.row) || L.from.col < l.left || L.from.col > l.right || !L.bytes || !L.mime) continue;
14437
14479
  const N = L.extWidthEmu ? Math.round(Ot(L.extWidthEmu)) : p(L.from.col), F = L.extHeightEmu ? Math.round(Ot(L.extHeightEmu)) : g(L.from.row);
14438
- M(O(L.from.row, L.from.col), `f:${A}`, `data:${L.mime};base64,${ut(L.bytes)}`, N, F), A++;
14480
+ I(O(L.from.row, L.from.col), `f:${A}`, `data:${L.mime};base64,${ut(L.bytes)}`, N, F), A++;
14439
14481
  }
14440
14482
  }
14441
14483
  const m = [], y = [];
14442
- for (let M = l.top; M <= l.bottom; M++) {
14443
- if (!c(M)) continue;
14484
+ for (let I = l.top; I <= l.bottom; I++) {
14485
+ if (!c(I)) continue;
14444
14486
  const A = [], L = [];
14445
14487
  for (let N = l.left; N <= l.right; N++) {
14446
- const F = e.cellText(M, N);
14447
- if (A.push(F), d.has(O(M, N))) continue;
14448
- const H = e.cellInlineStyle(M, N), D = h.get(O(M, N)), B = D ? `${D.rs > 1 ? ` rowspan="${D.rs}"` : ""}${D.cs > 1 ? ` colspan="${D.cs}"` : ""}` : "", X = ((T = b.get(O(M, N))) != null ? T : []).map((j) => `<img data-clip-img="${j.key}" width="${j.w}" height="${j.h}" src="${j.url}" style="width:${j.w}px;height:${j.h}px" />`).join("");
14488
+ const F = e.cellText(I, N);
14489
+ if (A.push(F), d.has(O(I, N))) continue;
14490
+ const H = e.cellInlineStyle(I, N), D = h.get(O(I, N)), B = D ? `${D.rs > 1 ? ` rowspan="${D.rs}"` : ""}${D.cs > 1 ? ` colspan="${D.cs}"` : ""}` : "", X = ((T = b.get(O(I, N))) != null ? T : []).map((j) => `<img data-clip-img="${j.key}" width="${j.w}" height="${j.h}" src="${j.url}" style="width:${j.w}px;height:${j.h}px" />`).join("");
14449
14491
  L.push(`<td${B}${H ? ` style="${H}"` : ""}>${Lr(F)}${X}</td>`);
14450
14492
  }
14451
14493
  m.push(A.join(" ")), y.push(`<tr>${L.join("")}</tr>`);
@@ -14591,7 +14633,7 @@ class gb {
14591
14633
  var f;
14592
14634
  if (!this.editCfg.editable || !this.sheet) return !1;
14593
14635
  if (t === "cell") return this.pasteImageBlob(e, n);
14594
- const s = this.getSelection(), i = (f = n != null ? n : this.selActive) != null ? f : s ? { row: s.top, col: s.left } : { row: 0, col: 0 }, r = new Uint8Array(await e.arrayBuffer()), l = e.type || "image/png", a = await Om(e), c = await Mr(a), d = Ai(c, Mi(r, l));
14636
+ const s = this.getSelection(), i = (f = n != null ? n : this.selActive) != null ? f : s ? { row: s.top, col: s.left } : { row: 0, col: 0 }, r = new Uint8Array(await e.arrayBuffer()), l = e.type || "image/png", a = await Om(e), c = await Ir(a), d = Ai(c, Ii(r, l));
14595
14637
  return this.addImage({ src: a, bytes: r, mime: l, from: { col: i.col, row: i.row, colOffEmu: 0, rowOffEmu: 0 }, extWidthEmu: Pe(d.width), extHeightEmu: Pe(d.height) }) < 0 ? !1 : (this.renderer && this.overlays.build(this.sheet, this.renderer, this.view), this.render(), this.selectCell(i.row, i.col), !0);
14596
14638
  }
14597
14639
  /**
@@ -14616,7 +14658,7 @@ class gb {
14616
14658
  c = d;
14617
14659
  }
14618
14660
  for (let d = 0; d < s.length; d++) {
14619
- const h = c && s[d].size > Ri ? await Mu(s[d]) : s[d];
14661
+ const h = c && s[d].size > Ri ? await Iu(s[d]) : s[d];
14620
14662
  await this.insertImageBlob(h, e, { row: i.row + d, col: i.col });
14621
14663
  }
14622
14664
  n.remove();
@@ -15094,7 +15136,7 @@ class gb {
15094
15136
  }
15095
15137
  /** 通过 API 直接创建静态透视表,不依赖页面选区或对话框。需 `pivotTable` + `editable` 配置。 */
15096
15138
  createPivotTable(e) {
15097
- var x, S, k, I, E, $, T, M, A, L, N, F, H, D, B, X, j, ne, U, Q, V, ue, Me;
15139
+ var x, S, k, M, E, $, T, I, A, L, N, F, H, D, B, X, j, ne, U, Q, V, ue, Ie;
15098
15140
  const t = this.renderer, n = this.workbook;
15099
15141
  if (!this.editCfg.pivotTable) return this.failPivot("透视表创建失败:未开启透视表功能(pivotTable 配置,默认关闭)。");
15100
15142
  if (!t || !n) return this.failPivot("透视表创建失败:工作簿尚未加载完成。");
@@ -15105,11 +15147,11 @@ class gb {
15105
15147
  if (!r || r.bottom <= r.top || r.right <= r.left) return this.failPivot("透视表创建失败:请先选择包含表头且至少两列两行的数据区域。");
15106
15148
  const l = [];
15107
15149
  for (let q = r.left; q <= r.right; q++) l.push(this.pivotCellText(i, r.top, q) || `字段${q - r.left + 1}`);
15108
- const a = this.pivotFieldOptionsForSheet(i, r), c = !!((I = (k = e.layout) == null ? void 0 : k.rows) != null && I.length || ($ = (E = e.layout) == null ? void 0 : E.values) != null && $.length);
15150
+ const a = this.pivotFieldOptionsForSheet(i, r), c = !!((M = (k = e.layout) == null ? void 0 : k.rows) != null && M.length || ($ = (E = e.layout) == null ? void 0 : E.values) != null && $.length);
15109
15151
  let d;
15110
15152
  if (c) {
15111
15153
  const q = l.length;
15112
- let K = ((A = (M = (T = e.layout) == null ? void 0 : T.rows) == null ? void 0 : M[0]) != null ? A : -1) - r.left, pe = ((H = (F = (N = (L = e.layout) == null ? void 0 : L.values) == null ? void 0 : N[0]) == null ? void 0 : F.field) != null ? H : -1) - r.left;
15154
+ let K = ((A = (I = (T = e.layout) == null ? void 0 : T.rows) == null ? void 0 : I[0]) != null ? A : -1) - r.left, pe = ((H = (F = (N = (L = e.layout) == null ? void 0 : L.values) == null ? void 0 : N[0]) == null ? void 0 : F.field) != null ? H : -1) - r.left;
15113
15155
  if (pe < 0 && (pe = ((B = (D = a.find((Ae) => Ae.numeric)) == null ? void 0 : D.index) != null ? B : -1) - r.left), K < 0 && (K = ((j = (X = a.find((Ae) => Ae.index !== r.left + pe)) == null ? void 0 : X.index) != null ? j : -1) - r.left), pe < 0 || pe >= q) return this.failPivot("透视表创建失败:请选择有效的值字段。");
15114
15156
  if ((K < 0 || K === pe) && (K = pe === 0 ? 1 : 0), K < 0 || K >= q) return this.failPivot("透视表创建失败:请选择有效的行字段。");
15115
15157
  d = Bm(e.layout, r.left + K, r.left + pe);
@@ -15148,7 +15190,7 @@ class gb {
15148
15190
  { row: p, col: g + 1, label: h.valueLabel, kind: "data" }
15149
15191
  ]
15150
15192
  };
15151
- return w.pivotTables.push(v), this.edit.pushUndoExternal({ kind: "restore-wb", snapshot: y }), this.edit.markDirtyExternal(), f.kind === "new-sheet" ? (n.activeSheet = n.sheets.indexOf(w), (Me = (ue = this.hooks).onActiveSheetChange) == null || Me.call(ue, n.activeSheet), this.rebuild(w, n, this.view.zoom, this.rendererOpts)) : (t.rebuildMetrics(), this.refreshContentSize(), this.overlays.build(i, t, this.view)), this.selectCell(p, g), e.showPanel && this.showPivotPanel({ sourceSheet: i, outSheet: w, sourceRange: R({}, r), outRange: m, fields: a, layout: d }), !0;
15193
+ return w.pivotTables.push(v), this.edit.pushUndoExternal({ kind: "restore-wb", snapshot: y }), this.edit.markDirtyExternal(), f.kind === "new-sheet" ? (n.activeSheet = n.sheets.indexOf(w), (Ie = (ue = this.hooks).onActiveSheetChange) == null || Ie.call(ue, n.activeSheet), this.rebuild(w, n, this.view.zoom, this.rendererOpts)) : (t.rebuildMetrics(), this.refreshContentSize(), this.overlays.build(i, t, this.view)), this.selectCell(p, g), e.showPanel && this.showPivotPanel({ sourceSheet: i, outSheet: w, sourceRange: R({}, r), outRange: m, fields: a, layout: d }), !0;
15152
15194
  }
15153
15195
  showPivotPanel(e) {
15154
15196
  this.pivotPanel.show({
@@ -15231,63 +15273,63 @@ class gb {
15231
15273
  if (!r.length && !l.length)
15232
15274
  return { rows: [["数据透视表"]], rowLabel: "数据透视表", valueLabel: "", groups: [] };
15233
15275
  const a = l.length ? s.columns : [], c = new Set(i), d = l.map((T) => {
15234
- var M, A;
15235
- return (A = (M = n.find((L) => L.index === T.field)) == null ? void 0 : M.numeric) != null ? A : !1;
15276
+ var I, A;
15277
+ return (A = (I = n.find((L) => L.index === T.field)) == null ? void 0 : I.numeric) != null ? A : !1;
15236
15278
  }), h = (T) => {
15237
- var M, A;
15238
- return (A = (M = n.find((L) => L.index === T)) == null ? void 0 : M.label) != null ? A : `字段${T + 1}`;
15279
+ var I, A;
15280
+ return (A = (I = n.find((L) => L.index === T)) == null ? void 0 : I.label) != null ? A : `字段${T + 1}`;
15239
15281
  }, f = [];
15240
15282
  for (let T = t.top + 1; T <= t.bottom; T++)
15241
15283
  Wm(e, T, s.filters) && f.push(T);
15242
- const u = gn(f.map((T) => Mt(e, T, a))), p = u.length ? u : [""], g = l.map((T) => `${Xm(T.summary)}: ${h(T.field)}`), b = [r.length ? r.map(h).join("/") || "行标签" : "总计"];
15284
+ const u = gn(f.map((T) => It(e, T, a))), p = u.length ? u : [""], g = l.map((T) => `${Xm(T.summary)}: ${h(T.field)}`), b = [r.length ? r.map(h).join("/") || "行标签" : "总计"];
15243
15285
  for (const T of p)
15244
- for (const M of g) b.push(T ? `${T} ${M}` : M);
15245
- const m = (T, M, A) => {
15286
+ for (const I of g) b.push(T ? `${T} ${I}` : I);
15287
+ const m = (T, I, A) => {
15246
15288
  var N;
15247
- let L = T.get(M);
15248
- L || T.set(M, L = l.map(() => Pr()));
15289
+ let L = T.get(I);
15290
+ L || T.set(I, L = l.map(() => Pr()));
15249
15291
  for (let F = 0; F < l.length; F++) {
15250
15292
  const H = (N = e.cells.get(O(A, l[F].field))) == null ? void 0 : N.raw, D = Rr(H);
15251
15293
  Vm(L[F], d[F] && D != null ? D : null, H);
15252
15294
  }
15253
- }, y = (T, M) => {
15295
+ }, y = (T, I) => {
15254
15296
  const A = [T];
15255
15297
  return p.forEach((L) => {
15256
- const N = M.get(L);
15298
+ const N = I.get(L);
15257
15299
  for (let F = 0; F < l.length; F++) A.push(N ? Or(N[F], l[F].summary) : 0);
15258
15300
  }), A;
15259
15301
  };
15260
15302
  if (!r.length) {
15261
15303
  const T = /* @__PURE__ */ new Map();
15262
- for (const M of f) m(T, a.length ? Mt(e, M, a) : "", M);
15304
+ for (const I of f) m(T, a.length ? It(e, I, a) : "", I);
15263
15305
  return { rows: [b, y("总计", T)], rowLabel: b[0], valueLabel: g.join("/"), groups: [] };
15264
15306
  }
15265
15307
  const w = r[0], v = r.slice(1), x = v.length > 0, S = /* @__PURE__ */ new Map();
15266
15308
  for (const T of f) {
15267
- const M = Mt(e, T, [w]), A = a.length ? Mt(e, T, a) : "";
15268
- let L = S.get(M);
15269
- if (L || S.set(M, L = { subtotal: /* @__PURE__ */ new Map(), inner: /* @__PURE__ */ new Map() }), m(L.subtotal, A, T), x) {
15270
- const N = Mt(e, T, v);
15309
+ const I = It(e, T, [w]), A = a.length ? It(e, T, a) : "";
15310
+ let L = S.get(I);
15311
+ if (L || S.set(I, L = { subtotal: /* @__PURE__ */ new Map(), inner: /* @__PURE__ */ new Map() }), m(L.subtotal, A, T), x) {
15312
+ const N = It(e, T, v);
15271
15313
  let F = L.inner.get(N);
15272
15314
  F || L.inner.set(N, F = /* @__PURE__ */ new Map()), m(F, A, T);
15273
15315
  }
15274
15316
  }
15275
15317
  if (!S.size) return null;
15276
- const k = p.map(() => l.map(() => Pr())), I = [b], E = [];
15318
+ const k = p.map(() => l.map(() => Pr())), M = [b], E = [];
15277
15319
  for (const T of gn([...S.keys()])) {
15278
- const M = S.get(T);
15320
+ const I = S.get(T);
15279
15321
  if (p.forEach((A, L) => {
15280
- const N = M.subtotal.get(A);
15322
+ const N = I.subtotal.get(A);
15281
15323
  if (N) for (let F = 0; F < l.length; F++) Ym(k[L][F], N[F]);
15282
15324
  }), x) {
15283
- if (E.push({ rowOffset: I.length, key: T }), I.push(y(` ${T}`, M.subtotal)), !c.has(T))
15284
- for (const A of gn([...M.inner.keys()])) I.push(y(`  ${A}`, M.inner.get(A)));
15325
+ if (E.push({ rowOffset: M.length, key: T }), M.push(y(` ${T}`, I.subtotal)), !c.has(T))
15326
+ for (const A of gn([...I.inner.keys()])) M.push(y(`  ${A}`, I.inner.get(A)));
15285
15327
  } else
15286
- I.push(y(T, M.subtotal));
15328
+ M.push(y(T, I.subtotal));
15287
15329
  }
15288
15330
  const $ = ["总计"];
15289
- for (let T = 0; T < p.length; T++) for (let M = 0; M < l.length; M++) $.push(Or(k[T][M], l[M].summary));
15290
- return I.push($), { rows: I, rowLabel: b[0], valueLabel: g.join("/"), groups: E };
15331
+ for (let T = 0; T < p.length; T++) for (let I = 0; I < l.length; I++) $.push(Or(k[T][I], l[I].summary));
15332
+ return M.push($), { rows: M, rowLabel: b[0], valueLabel: g.join("/"), groups: E };
15291
15333
  }
15292
15334
  failPivot(e) {
15293
15335
  return console.warn(`[ooxml-preview] ${e}`), typeof window != "undefined" && window.alert(e), !1;
@@ -16374,7 +16416,7 @@ class gb {
16374
16416
  var i, r;
16375
16417
  const t = (i = this.sheet) == null ? void 0 : i.images[e];
16376
16418
  if (!this.editCfg.editable || !(t != null && t.src)) return !1;
16377
- const n = await Mr(t.src), s = Ai(n, t.bytes ? Mi(t.bytes, (r = t.mime) != null ? r : "") : null);
16419
+ const n = await Ir(t.src), s = Ai(n, t.bytes ? Ii(t.bytes, (r = t.mime) != null ? r : "") : null);
16378
16420
  return this.resizeImage(e, s.width, s.height);
16379
16421
  }
16380
16422
  /** 浮动图右键菜单项(WPS 式:嵌入到单元格 / 预览 / 重置原图大小 / 删除)。 */
@@ -16692,7 +16734,7 @@ function Rr(o) {
16692
16734
  }
16693
16735
  return null;
16694
16736
  }
16695
- function Mt(o, e, t) {
16737
+ function It(o, e, t) {
16696
16738
  return t.length ? t.map((n) => {
16697
16739
  var i;
16698
16740
  const s = (i = o.cells.get(O(e, n))) == null ? void 0 : i.raw;
@@ -17018,7 +17060,7 @@ export {
17018
17060
  ob as a,
17019
17061
  is as a0,
17020
17062
  Ed as a1,
17021
- Id as a2,
17063
+ Md as a2,
17022
17064
  Su as a3,
17023
17065
  ih as a4,
17024
17066
  sh as a5,
@@ -17073,7 +17115,7 @@ export {
17073
17115
  $d as s,
17074
17116
  al as t,
17075
17117
  Wo as u,
17076
- Ii as v,
17118
+ Mi as v,
17077
17119
  xn as w,
17078
17120
  he as x,
17079
17121
  ru as y,