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.
- package/CHANGELOG.md +25 -0
- package/dist/chunks/{index-CKf3q6pu.js → index-B71UcaB7.js} +412 -370
- package/dist/chunks/{index-xD5935xY.js → index-Dbq5QUMF.js} +406 -360
- package/dist/chunks/{index.es-BZzDc3NP.js → index.es-CsNHlrpv.js} +1 -1
- package/dist/chunks/{index.es-CaZDvCo1.js → index.es-DsFF8Zhm.js} +1 -1
- package/dist/chunks/{jspdf.es.min-BMIqrKfr.js → jspdf.es.min-BVEV1LX3.js} +2 -2
- package/dist/chunks/{jspdf.es.min-DJ2NWx1E.js → jspdf.es.min-P_bGBJFk.js} +2 -2
- package/dist/chunks/{toolbar-builtins-IAxeMFn3.js → toolbar-builtins-Dkee2f7x.js} +1 -1
- package/dist/core/viewer/controller.d.ts +16 -0
- package/dist/core.js +1 -1
- package/dist/index.js +785 -779
- package/dist/react.js +30 -28
- package/dist/style.css +1 -1
- package/dist/vue2.css +1 -1
- package/dist/vue2.js +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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
|
-
]),
|
|
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(
|
|
99
|
+
}, Br = zr(Mn, 2), Wr = Br.b, Po = Br.r;
|
|
100
100
|
Wr[28] = 258, Po[258] = 28;
|
|
101
|
-
var Ur = zr(
|
|
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
|
|
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__ */
|
|
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,
|
|
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(
|
|
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
|
|
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 =
|
|
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 =
|
|
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],
|
|
246
|
+
var ue = p[Wn(o, h) & j], Ie = ue >> 4;
|
|
247
247
|
ue || ce(3), h += ue & 15;
|
|
248
|
-
var B = da[
|
|
249
|
-
if (
|
|
250
|
-
var V =
|
|
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),
|
|
358
|
-
++k[y[
|
|
359
|
-
for (var
|
|
360
|
-
++k[x[
|
|
361
|
-
for (var E = Un(k, 7), $ = E.t, T = E.l,
|
|
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 *
|
|
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 =
|
|
369
|
-
var X =
|
|
370
|
-
Re(e, d, w - 257), Re(e, d + 5, S - 1), Re(e, d + 10,
|
|
371
|
-
for (var
|
|
372
|
-
Re(e, d + 3 *
|
|
373
|
-
d += 3 *
|
|
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],
|
|
376
|
-
var Q = U[
|
|
377
|
-
Re(e, d, X[Q]), d += $[Q], Q > 15 && (Re(e, d, U[
|
|
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
|
|
382
|
-
var V = n[
|
|
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 +=
|
|
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 +=
|
|
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,
|
|
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,
|
|
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),
|
|
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 >
|
|
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
|
-
|
|
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,
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
631
|
-
v.set(h.c, h.o +
|
|
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
|
|
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
|
|
723
|
-
m[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
|
|
730
|
-
return E.trim().length === 0 ?
|
|
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
|
|
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,
|
|
744
|
-
} else if (
|
|
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
|
|
752
|
-
if (E !==
|
|
753
|
-
let A = g(m,
|
|
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 '" +
|
|
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
|
|
765
|
-
if (
|
|
766
|
-
return f(
|
|
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
|
|
782
|
-
if (
|
|
781
|
+
const I = h(m, S);
|
|
782
|
+
if (I == -1)
|
|
783
783
|
return f("InvalidChar", "char '&' is not expected.", g(m, S));
|
|
784
|
-
S =
|
|
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,
|
|
1245
|
+
var Xn, Ms;
|
|
1246
1246
|
function La() {
|
|
1247
|
-
if (
|
|
1248
|
-
|
|
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,
|
|
1300
|
+
var Gn, Is;
|
|
1301
1301
|
function Kr() {
|
|
1302
|
-
if (
|
|
1303
|
-
|
|
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(
|
|
1320
|
-
if (this.options =
|
|
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
|
|
1352
|
-
for (let E = 0; E <
|
|
1353
|
-
const $ =
|
|
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,
|
|
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,
|
|
1363
|
-
const L = this.options.tagValueProcessor(
|
|
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
|
|
1370
|
-
if (
|
|
1369
|
+
const M = k.split(":"), E = k.charAt(0) === "/" ? "/" : "";
|
|
1370
|
+
if (M[0] === "xmlns")
|
|
1371
1371
|
return "";
|
|
1372
|
-
|
|
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,
|
|
1377
|
+
function d(k, M, E) {
|
|
1378
1378
|
if (this.options.ignoreAttributes !== !0 && typeof k == "string") {
|
|
1379
|
-
const $ = o.getAllMatches(k, c), T = $.length,
|
|
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,
|
|
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,
|
|
1388
|
-
const H = this.options.attributeValueProcessor(L, N,
|
|
1389
|
-
H == null ?
|
|
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 && (
|
|
1394
|
+
} else this.options.allowBooleanAttributes && (I[F] = !0);
|
|
1395
1395
|
}
|
|
1396
|
-
if (!Object.keys(
|
|
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] =
|
|
1400
|
+
return A[this.options.attributesGroupName] = I, A;
|
|
1401
1401
|
}
|
|
1402
|
-
return
|
|
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
|
|
1409
|
-
let E =
|
|
1408
|
+
const M = new e("!xml");
|
|
1409
|
+
let E = M, $ = "", T = "";
|
|
1410
1410
|
this.entityExpansionCount = 0, this.currentExpandedLength = 0;
|
|
1411
|
-
const
|
|
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 =
|
|
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 !==
|
|
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
|
|
1500
|
+
return M.child;
|
|
1501
1501
|
};
|
|
1502
|
-
function f(k,
|
|
1502
|
+
function f(k, M, E, $) {
|
|
1503
1503
|
this.options.captureMetaData || ($ = void 0);
|
|
1504
|
-
const T = this.options.updateTag(
|
|
1505
|
-
T === !1 || (typeof T == "string" && (
|
|
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,
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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,
|
|
1549
|
-
return k && ($ === void 0 && ($ =
|
|
1548
|
+
function p(k, M, E, $) {
|
|
1549
|
+
return k && ($ === void 0 && ($ = M.child.length === 0), k = this.parseTextData(
|
|
1550
1550
|
k,
|
|
1551
|
-
|
|
1551
|
+
M.tagname,
|
|
1552
1552
|
E,
|
|
1553
1553
|
!1,
|
|
1554
|
-
|
|
1554
|
+
M[":@"] ? Object.keys(M[":@"]).length !== 0 : !1,
|
|
1555
1555
|
$
|
|
1556
|
-
), k !== void 0 && k !== "" &&
|
|
1556
|
+
), k !== void 0 && k !== "" && M.add(this.options.textNodeName, k), k = ""), k;
|
|
1557
1557
|
}
|
|
1558
|
-
function g(k,
|
|
1559
|
-
return !!(
|
|
1558
|
+
function g(k, M, E, $) {
|
|
1559
|
+
return !!(M && M.has($) || k && k.has(E));
|
|
1560
1560
|
}
|
|
1561
|
-
function b(k,
|
|
1561
|
+
function b(k, M, E = ">") {
|
|
1562
1562
|
let $, T = "";
|
|
1563
|
-
for (let
|
|
1564
|
-
let A = k[
|
|
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[
|
|
1571
|
+
if (k[I + 1] === E[1])
|
|
1572
1572
|
return {
|
|
1573
1573
|
data: T,
|
|
1574
|
-
index:
|
|
1574
|
+
index: I
|
|
1575
1575
|
};
|
|
1576
1576
|
} else
|
|
1577
1577
|
return {
|
|
1578
1578
|
data: T,
|
|
1579
|
-
index:
|
|
1579
|
+
index: I
|
|
1580
1580
|
};
|
|
1581
1581
|
else A === " " && (A = " ");
|
|
1582
1582
|
T += A;
|
|
1583
1583
|
}
|
|
1584
1584
|
}
|
|
1585
|
-
function m(k,
|
|
1586
|
-
const T = k.indexOf(
|
|
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 +
|
|
1589
|
+
return T + M.length - 1;
|
|
1590
1590
|
}
|
|
1591
|
-
function y(k,
|
|
1592
|
-
const T = b(k,
|
|
1591
|
+
function y(k, M, E, $ = ">") {
|
|
1592
|
+
const T = b(k, M + 1, $);
|
|
1593
1593
|
if (!T) return;
|
|
1594
|
-
let
|
|
1595
|
-
const A = T.index, L =
|
|
1596
|
-
let N =
|
|
1597
|
-
L !== -1 && (N =
|
|
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:
|
|
1605
|
+
tagExp: I,
|
|
1606
1606
|
closeIndex: A,
|
|
1607
1607
|
attrExpPresent: F,
|
|
1608
1608
|
rawTagName: H
|
|
1609
1609
|
};
|
|
1610
1610
|
}
|
|
1611
|
-
function w(k,
|
|
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
|
|
1618
|
-
if (k.substring(E + 2,
|
|
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:
|
|
1621
|
+
i: I
|
|
1622
1622
|
};
|
|
1623
|
-
E =
|
|
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
|
|
1632
|
-
|
|
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,
|
|
1636
|
-
if (
|
|
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,
|
|
1643
|
-
const $ = Number.parseInt(k,
|
|
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,
|
|
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) ?
|
|
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
|
|
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((
|
|
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),
|
|
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:
|
|
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
|
|
2777
|
-
s =
|
|
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
|
|
2866
|
-
if (
|
|
2867
|
-
const A = z(R({},
|
|
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
|
|
2874
|
-
|
|
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,
|
|
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((
|
|
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 = (
|
|
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
|
|
2930
|
-
const t =
|
|
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
|
|
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,
|
|
3130
|
-
const s = [], i = /* @__PURE__ */ new Set(), r = (E, $, T,
|
|
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}:${
|
|
3133
|
-
i.has(A) || (i.add(A), s.push({ row: E, col: $, label: T, kind:
|
|
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,
|
|
3138
|
-
return String((
|
|
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((
|
|
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 =
|
|
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),
|
|
3348
|
-
E.type !== "empty" && (o.cells.set(O(k,
|
|
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
|
|
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
|
|
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 +=
|
|
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,
|
|
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 = (
|
|
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,
|
|
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 && (
|
|
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 =
|
|
5276
|
-
const E = t.font.size * c * (96 / 72) * dt, $ = E * k.length, T = a - 2 * f,
|
|
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" ||
|
|
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,
|
|
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,
|
|
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] = ((
|
|
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,
|
|
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 -
|
|
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
|
|
5513
|
-
if (
|
|
5514
|
-
o.fillStyle =
|
|
5515
|
-
const E = a + d * ((y -
|
|
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
|
|
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:
|
|
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
|
|
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 ?
|
|
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
|
|
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 ?
|
|
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
|
|
6128
|
-
return
|
|
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,
|
|
6417
|
-
this.host.isEditable(k,
|
|
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,
|
|
6428
|
-
this.host.isEditable(k,
|
|
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,
|
|
6434
|
-
if (!this.host.isEditable(k,
|
|
6435
|
-
const E = s.cells.get(O(k,
|
|
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
|
|
6438
|
-
E ? E.styleId =
|
|
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
|
|
6460
|
-
if (!
|
|
6461
|
-
const E = Wo(s, { src: x.dataUrl, bytes:
|
|
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,
|
|
6497
|
-
this.host.isEditable(k,
|
|
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
|
|
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
|
-
},
|
|
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:
|
|
7730
|
-
TEXT:
|
|
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
|
|
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) =>
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ?
|
|
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
|
|
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
|
|
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((
|
|
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
|
|
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(
|
|
10080
|
-
const E = Tp(
|
|
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
|
|
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(
|
|
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,
|
|
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
|
|
10718
|
+
function Mo(o) {
|
|
10719
10719
|
return o.replace(/[&<>"]/g, (e) => ({ "&": "&", "<": "<", ">": ">", '"': """ })[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="${
|
|
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">${
|
|
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) => ({ "&": "&", "<": "<", ">": ">", '"': """ })[e]);
|
|
10927
10927
|
}
|
|
10928
|
-
function
|
|
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
|
|
10983
|
-
|
|
10984
|
-
|
|
10985
|
-
|
|
10986
|
-
|
|
10987
|
-
this.search =
|
|
10988
|
-
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
10992
|
-
}
|
|
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
|
|
10995
|
-
|
|
10996
|
-
}), e.
|
|
10997
|
-
const
|
|
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">${
|
|
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">${
|
|
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">${
|
|
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),
|
|
11370
|
-
return Math.ceil(
|
|
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
|
|
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
|
-
|
|
11674
|
+
Ig(t, h, s(re(o.metrics, h.anchor)), n);
|
|
11675
11675
|
t.restore();
|
|
11676
11676
|
}
|
|
11677
|
-
function
|
|
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),
|
|
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
|
|
11719
|
-
const
|
|
11720
|
-
|
|
11721
|
-
const A =
|
|
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:
|
|
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-
|
|
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-
|
|
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
|
|
11864
|
-
return u + (l.colLeft(k) - l.colLeft((
|
|
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
|
|
11867
|
-
return p + (l.rowTop(k) - l.rowTop((
|
|
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
|
|
11870
|
-
return s.left + (l.colLeft(k) - l.colLeft((
|
|
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
|
|
11873
|
-
return s.top + (l.rowTop(k) - l.rowTop((
|
|
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
|
|
11879
|
-
if (!v.has(
|
|
11880
|
-
const $ = re(l, k.anchor), T = u + ($.left - l.colLeft(n.cols[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,
|
|
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,
|
|
11901
|
-
if (E && (E.complex || !a && Pg(E.text) ? _g(i, r, p, m, v, x, S, g, k,
|
|
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,
|
|
11926
|
-
o.setFillColor($, T,
|
|
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
|
|
11956
|
-
c.wrapText && (
|
|
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,
|
|
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(
|
|
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,
|
|
12412
|
-
$.has(T) || S.add(
|
|
12411
|
+
b.items.forEach((T, I) => {
|
|
12412
|
+
$.has(T) || S.add(I);
|
|
12413
12413
|
}), b.hasBlank && S.add(x);
|
|
12414
12414
|
}
|
|
12415
|
-
const
|
|
12416
|
-
return `<pivotField axis="${y}"${k ? ' multipleItemSelectionAllowed="1"' : ""} showAll="0"><items count="${w + 1}">${
|
|
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("/")),
|
|
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
|
|
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 :
|
|
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
|
|
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
|
-
|
|
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,
|
|
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 = (
|
|
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
|
-
|
|
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,
|
|
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 : [], ...(
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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,
|
|
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 = (
|
|
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(
|
|
14435
|
+
return !(a && ((A = n.rows.get(I)) != null && A.hidden));
|
|
14394
14436
|
}, d = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Map();
|
|
14395
|
-
for (const
|
|
14396
|
-
if (!(
|
|
14397
|
-
h.set(O(
|
|
14398
|
-
for (let A =
|
|
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
|
|
14402
|
-
if (c(
|
|
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(
|
|
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
|
|
14408
|
-
|
|
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 = (
|
|
14457
|
+
const p = (I) => {
|
|
14416
14458
|
var A, L;
|
|
14417
|
-
return Math.round((L = (A = n.columns.get(
|
|
14418
|
-
}, g = (
|
|
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(
|
|
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
|
|
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 &&
|
|
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
|
-
|
|
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
|
|
14443
|
-
if (!c(
|
|
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(
|
|
14447
|
-
if (A.push(F), d.has(O(
|
|
14448
|
-
const H = e.cellInlineStyle(
|
|
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
|
|
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
|
|
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,
|
|
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 = !!((
|
|
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 = (
|
|
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), (
|
|
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
|
|
15235
|
-
return (A = (
|
|
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
|
|
15238
|
-
return (A = (
|
|
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) =>
|
|
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
|
|
15245
|
-
const m = (T,
|
|
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(
|
|
15248
|
-
L || T.set(
|
|
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,
|
|
15295
|
+
}, y = (T, I) => {
|
|
15254
15296
|
const A = [T];
|
|
15255
15297
|
return p.forEach((L) => {
|
|
15256
|
-
const N =
|
|
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
|
|
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
|
|
15268
|
-
let L = S.get(
|
|
15269
|
-
if (L || S.set(
|
|
15270
|
-
const N =
|
|
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())),
|
|
15318
|
+
const k = p.map(() => l.map(() => Pr())), M = [b], E = [];
|
|
15277
15319
|
for (const T of gn([...S.keys()])) {
|
|
15278
|
-
const
|
|
15320
|
+
const I = S.get(T);
|
|
15279
15321
|
if (p.forEach((A, L) => {
|
|
15280
|
-
const N =
|
|
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:
|
|
15284
|
-
for (const A of gn([...
|
|
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
|
-
|
|
15328
|
+
M.push(y(T, I.subtotal));
|
|
15287
15329
|
}
|
|
15288
15330
|
const $ = ["总计"];
|
|
15289
|
-
for (let T = 0; T < p.length; T++) for (let
|
|
15290
|
-
return
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
17118
|
+
Mi as v,
|
|
17077
17119
|
xn as w,
|
|
17078
17120
|
he as x,
|
|
17079
17121
|
ru as y,
|