@sunertech/docx 10.0.2 → 10.0.4
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/dist/index.cjs +579 -276
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.iife.js +579 -276
- package/dist/index.mjs +579 -276
- package/dist/index.umd.cjs +579 -276
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -10487,9 +10487,34 @@ function Base64_encode(input) {
|
|
|
10487
10487
|
}
|
|
10488
10488
|
return o;
|
|
10489
10489
|
}
|
|
10490
|
+
function Base64_encode_arr(input) {
|
|
10491
|
+
var o = "";
|
|
10492
|
+
var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
|
|
10493
|
+
for (var i = 0; i < input.length; ) {
|
|
10494
|
+
c1 = input[i++];
|
|
10495
|
+
e1 = c1 >> 2;
|
|
10496
|
+
c2 = input[i++];
|
|
10497
|
+
e2 = (c1 & 3) << 4 | c2 >> 4;
|
|
10498
|
+
c3 = input[i++];
|
|
10499
|
+
e3 = (c2 & 15) << 2 | c3 >> 6;
|
|
10500
|
+
e4 = c3 & 63;
|
|
10501
|
+
if (isNaN(c2)) {
|
|
10502
|
+
e3 = e4 = 64;
|
|
10503
|
+
} else if (isNaN(c3)) {
|
|
10504
|
+
e4 = 64;
|
|
10505
|
+
}
|
|
10506
|
+
o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);
|
|
10507
|
+
}
|
|
10508
|
+
return o;
|
|
10509
|
+
}
|
|
10490
10510
|
function Base64_decode(input) {
|
|
10491
10511
|
var o = "";
|
|
10492
10512
|
var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
|
|
10513
|
+
if (input.slice(0, 5) == "data:") {
|
|
10514
|
+
var i = input.slice(0, 1024).indexOf(";base64,");
|
|
10515
|
+
if (i > -1)
|
|
10516
|
+
input = input.slice(i + 8);
|
|
10517
|
+
}
|
|
10493
10518
|
input = input.replace(/[^\w\+\/\=]/g, "");
|
|
10494
10519
|
for (var i = 0; i < input.length; ) {
|
|
10495
10520
|
e1 = Base64_map.indexOf(input.charAt(i++));
|
|
@@ -10527,6 +10552,13 @@ var Buffer_from = /* @__PURE__ */ (function() {
|
|
|
10527
10552
|
return function() {
|
|
10528
10553
|
};
|
|
10529
10554
|
})();
|
|
10555
|
+
var buf_utf16le = /* @__PURE__ */ (function() {
|
|
10556
|
+
if (typeof Buffer === "undefined") return false;
|
|
10557
|
+
var x = Buffer_from([65, 0]);
|
|
10558
|
+
if (!x) return false;
|
|
10559
|
+
var o = x.toString("utf16le");
|
|
10560
|
+
return o.length == 1;
|
|
10561
|
+
})();
|
|
10530
10562
|
function new_raw_buf(len) {
|
|
10531
10563
|
if (has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);
|
|
10532
10564
|
return typeof Uint8Array != "undefined" ? new Uint8Array(len) : new Array(len);
|
|
@@ -10572,9 +10604,8 @@ var bconcat = has_buf ? function(bufs) {
|
|
|
10572
10604
|
for (i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {
|
|
10573
10605
|
len = bufs[i].length;
|
|
10574
10606
|
if (bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);
|
|
10575
|
-
else if (typeof bufs[i] == "string")
|
|
10576
|
-
|
|
10577
|
-
} else o.set(new Uint8Array(bufs[i]), maxlen);
|
|
10607
|
+
else if (typeof bufs[i] == "string") o.set(new Uint8Array(s2a(bufs[i])), maxlen);
|
|
10608
|
+
else o.set(new Uint8Array(bufs[i]), maxlen);
|
|
10578
10609
|
}
|
|
10579
10610
|
return o;
|
|
10580
10611
|
}
|
|
@@ -10843,8 +10874,19 @@ function SSF_frac(x, D, mixed) {
|
|
|
10843
10874
|
var q = Math.floor(sgn * P / Q);
|
|
10844
10875
|
return [q, sgn * P - q * Q, Q];
|
|
10845
10876
|
}
|
|
10877
|
+
function SSF_normalize_xl_unsafe(v) {
|
|
10878
|
+
var s = v.toPrecision(16);
|
|
10879
|
+
if (s.indexOf("e") > -1) {
|
|
10880
|
+
var m = s.slice(0, s.indexOf("e"));
|
|
10881
|
+
m = m.indexOf(".") > -1 ? m.slice(0, m.slice(0, 2) == "0." ? 17 : 16) : m.slice(0, 15) + fill("0", m.length - 15);
|
|
10882
|
+
return m + s.slice(s.indexOf("e"));
|
|
10883
|
+
}
|
|
10884
|
+
var n = s.indexOf(".") > -1 ? s.slice(0, s.slice(0, 2) == "0." ? 17 : 16) : s.slice(0, 15) + fill("0", s.length - 15);
|
|
10885
|
+
return Number(n);
|
|
10886
|
+
}
|
|
10846
10887
|
function SSF_parse_date_code(v, opts, b2) {
|
|
10847
10888
|
if (v > 2958465 || v < 0) return null;
|
|
10889
|
+
v = SSF_normalize_xl_unsafe(v);
|
|
10848
10890
|
var date = v | 0, time = Math.floor(86400 * (v - date)), dow = 0;
|
|
10849
10891
|
var dout = [];
|
|
10850
10892
|
var out = { D: date, T: time, u: 86400 * (v - date) - time, y: 0, m: 0, d: 0, H: 0, M: 0, S: 0, q: 0 };
|
|
@@ -10884,15 +10926,6 @@ function SSF_parse_date_code(v, opts, b2) {
|
|
|
10884
10926
|
out.q = dow;
|
|
10885
10927
|
return out;
|
|
10886
10928
|
}
|
|
10887
|
-
var SSFbasedate = /* @__PURE__ */ new Date(1899, 11, 31, 0, 0, 0);
|
|
10888
|
-
var SSFdnthresh = /* @__PURE__ */ SSFbasedate.getTime();
|
|
10889
|
-
var SSFbase1904 = /* @__PURE__ */ new Date(1900, 2, 1, 0, 0, 0);
|
|
10890
|
-
function datenum_local(v, date1904) {
|
|
10891
|
-
var epoch = /* @__PURE__ */ v.getTime();
|
|
10892
|
-
if (date1904) epoch -= 1461 * 24 * 60 * 60 * 1e3;
|
|
10893
|
-
else if (v >= SSFbase1904) epoch += 24 * 60 * 60 * 1e3;
|
|
10894
|
-
return (epoch - (SSFdnthresh + (/* @__PURE__ */ v.getTimezoneOffset() - /* @__PURE__ */ SSFbasedate.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3);
|
|
10895
|
-
}
|
|
10896
10929
|
function SSF_strip_decimal(o) {
|
|
10897
10930
|
return o.indexOf(".") == -1 ? o : o.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1");
|
|
10898
10931
|
}
|
|
@@ -10913,6 +10946,7 @@ function SSF_large_exp(v) {
|
|
|
10913
10946
|
return o.length > (v < 0 ? 12 : 11) || o === "0" || o === "-0" ? v.toPrecision(6) : o;
|
|
10914
10947
|
}
|
|
10915
10948
|
function SSF_general_num(v) {
|
|
10949
|
+
if (!isFinite(v)) return isNaN(v) ? "#NUM!" : "#DIV/0!";
|
|
10916
10950
|
var V = Math.floor(Math.log(Math.abs(v)) * Math.LOG10E), o;
|
|
10917
10951
|
if (V >= -4 && V <= -1) o = v.toPrecision(10 + V);
|
|
10918
10952
|
else if (Math.abs(V) <= 9) o = SSF_small_exp(v);
|
|
@@ -10932,7 +10966,7 @@ function SSF_general(v, opts) {
|
|
|
10932
10966
|
return "";
|
|
10933
10967
|
case "object":
|
|
10934
10968
|
if (v == null) return "";
|
|
10935
|
-
if (v instanceof Date) return SSF_format(14,
|
|
10969
|
+
if (v instanceof Date) return SSF_format(14, datenum(v, opts && opts.date1904), opts);
|
|
10936
10970
|
}
|
|
10937
10971
|
throw new Error("unsupported value in General format: " + v);
|
|
10938
10972
|
}
|
|
@@ -11045,7 +11079,7 @@ function SSF_write_date(type2, fmt, val, ss0) {
|
|
|
11045
11079
|
break;
|
|
11046
11080
|
case "[s]":
|
|
11047
11081
|
case "[ss]":
|
|
11048
|
-
out = ((val.D * 24 + val.H) * 60 + val.M) * 60 + Math.round(val.S + val.u);
|
|
11082
|
+
out = ((val.D * 24 + val.H) * 60 + val.M) * 60 + (ss0 == 0 ? Math.round(val.S + val.u) : val.S);
|
|
11049
11083
|
break;
|
|
11050
11084
|
default:
|
|
11051
11085
|
throw "bad abstime format: " + fmt;
|
|
@@ -11116,7 +11150,7 @@ function write_num_f2(r, aval, sign2) {
|
|
|
11116
11150
|
return sign2 + (aval === 0 ? "" : "" + aval) + fill(" ", r[1].length + 2 + r[4].length);
|
|
11117
11151
|
}
|
|
11118
11152
|
var dec1 = /^#*0*\.([0#]+)/;
|
|
11119
|
-
var closeparen = /\)
|
|
11153
|
+
var closeparen = /\)[^)]*[0#]/;
|
|
11120
11154
|
var phone = /\(###\) ###\\?-####/;
|
|
11121
11155
|
function hashq(str) {
|
|
11122
11156
|
var o = "", cc;
|
|
@@ -11600,7 +11634,7 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11600
11634
|
var q = { t: c, v: c };
|
|
11601
11635
|
if (dt == null) dt = SSF_parse_date_code(v, opts);
|
|
11602
11636
|
if (fmt.substr(i, 3).toUpperCase() === "A/P") {
|
|
11603
|
-
if (dt != null) q.v = dt.H >= 12 ?
|
|
11637
|
+
if (dt != null) q.v = dt.H >= 12 ? fmt.charAt(i + 2) : c;
|
|
11604
11638
|
q.t = "T";
|
|
11605
11639
|
hr = "h";
|
|
11606
11640
|
i += 3;
|
|
@@ -11707,15 +11741,21 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11707
11741
|
if (bt < 1) bt = 1;
|
|
11708
11742
|
break;
|
|
11709
11743
|
case "s":
|
|
11710
|
-
if (ssm = out[i].v.match(/\.0+$/))
|
|
11744
|
+
if (ssm = out[i].v.match(/\.0+$/)) {
|
|
11745
|
+
ss0 = Math.max(ss0, ssm[0].length - 1);
|
|
11746
|
+
bt = 4;
|
|
11747
|
+
}
|
|
11711
11748
|
if (bt < 3) bt = 3;
|
|
11712
11749
|
/* falls through */
|
|
11713
11750
|
case "d":
|
|
11714
11751
|
case "y":
|
|
11715
|
-
case "M":
|
|
11716
11752
|
case "e":
|
|
11717
11753
|
lst = out[i].t;
|
|
11718
11754
|
break;
|
|
11755
|
+
case "M":
|
|
11756
|
+
lst = out[i].t;
|
|
11757
|
+
if (bt < 2) bt = 2;
|
|
11758
|
+
break;
|
|
11719
11759
|
case "m":
|
|
11720
11760
|
if (lst === "s") {
|
|
11721
11761
|
out[i].t = "M";
|
|
@@ -11730,10 +11770,13 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11730
11770
|
if (bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;
|
|
11731
11771
|
}
|
|
11732
11772
|
}
|
|
11773
|
+
var _dt;
|
|
11733
11774
|
switch (bt) {
|
|
11734
11775
|
case 0:
|
|
11735
11776
|
break;
|
|
11736
11777
|
case 1:
|
|
11778
|
+
case 2:
|
|
11779
|
+
case 3:
|
|
11737
11780
|
if (dt.u >= 0.5) {
|
|
11738
11781
|
dt.u = 0;
|
|
11739
11782
|
++dt.S;
|
|
@@ -11746,9 +11789,30 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11746
11789
|
dt.M = 0;
|
|
11747
11790
|
++dt.H;
|
|
11748
11791
|
}
|
|
11792
|
+
if (dt.H >= 24) {
|
|
11793
|
+
dt.H = 0;
|
|
11794
|
+
++dt.D;
|
|
11795
|
+
_dt = SSF_parse_date_code(dt.D);
|
|
11796
|
+
_dt.u = dt.u;
|
|
11797
|
+
_dt.S = dt.S;
|
|
11798
|
+
_dt.M = dt.M;
|
|
11799
|
+
_dt.H = dt.H;
|
|
11800
|
+
dt = _dt;
|
|
11801
|
+
}
|
|
11749
11802
|
break;
|
|
11750
|
-
case
|
|
11751
|
-
|
|
11803
|
+
case 4:
|
|
11804
|
+
switch (ss0) {
|
|
11805
|
+
case 1:
|
|
11806
|
+
dt.u = Math.round(dt.u * 10) / 10;
|
|
11807
|
+
break;
|
|
11808
|
+
case 2:
|
|
11809
|
+
dt.u = Math.round(dt.u * 100) / 100;
|
|
11810
|
+
break;
|
|
11811
|
+
case 3:
|
|
11812
|
+
dt.u = Math.round(dt.u * 1e3) / 1e3;
|
|
11813
|
+
break;
|
|
11814
|
+
}
|
|
11815
|
+
if (dt.u >= 1) {
|
|
11752
11816
|
dt.u = 0;
|
|
11753
11817
|
++dt.S;
|
|
11754
11818
|
}
|
|
@@ -11756,6 +11820,20 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11756
11820
|
dt.S = 0;
|
|
11757
11821
|
++dt.M;
|
|
11758
11822
|
}
|
|
11823
|
+
if (dt.M >= 60) {
|
|
11824
|
+
dt.M = 0;
|
|
11825
|
+
++dt.H;
|
|
11826
|
+
}
|
|
11827
|
+
if (dt.H >= 24) {
|
|
11828
|
+
dt.H = 0;
|
|
11829
|
+
++dt.D;
|
|
11830
|
+
_dt = SSF_parse_date_code(dt.D);
|
|
11831
|
+
_dt.u = dt.u;
|
|
11832
|
+
_dt.S = dt.S;
|
|
11833
|
+
_dt.M = dt.M;
|
|
11834
|
+
_dt.H = dt.H;
|
|
11835
|
+
dt = _dt;
|
|
11836
|
+
}
|
|
11759
11837
|
break;
|
|
11760
11838
|
}
|
|
11761
11839
|
var nstr = "", jj;
|
|
@@ -11904,6 +11982,7 @@ function choose_fmt(f, v) {
|
|
|
11904
11982
|
if (l < 4 && lat > -1) --l;
|
|
11905
11983
|
if (fmt.length > 4) throw new Error("cannot find right format for |" + fmt.join("|") + "|");
|
|
11906
11984
|
if (typeof v !== "number") return [4, fmt.length === 4 || lat > -1 ? fmt[fmt.length - 1] : "@"];
|
|
11985
|
+
if (typeof v === "number" && !isFinite(v)) v = 0;
|
|
11907
11986
|
switch (fmt.length) {
|
|
11908
11987
|
case 1:
|
|
11909
11988
|
fmt = lat > -1 ? ["General", "General", "General", fmt[0]] : [fmt[0], fmt[0], fmt[0], "@"];
|
|
@@ -11940,12 +12019,14 @@ function SSF_format(fmt, v, o) {
|
|
|
11940
12019
|
break;
|
|
11941
12020
|
}
|
|
11942
12021
|
if (SSF_isgeneral(sfmt, 0)) return SSF_general(v, o);
|
|
11943
|
-
if (v instanceof Date) v =
|
|
12022
|
+
if (v instanceof Date) v = datenum(v, o.date1904);
|
|
11944
12023
|
var f = choose_fmt(sfmt, v);
|
|
11945
12024
|
if (SSF_isgeneral(f[1])) return SSF_general(v, o);
|
|
11946
12025
|
if (v === true) v = "TRUE";
|
|
11947
12026
|
else if (v === false) v = "FALSE";
|
|
11948
12027
|
else if (v === "" || v == null) return "";
|
|
12028
|
+
else if (isNaN(v) && f[1].indexOf("0") > -1) return "#NUM!";
|
|
12029
|
+
else if (!isFinite(v) && f[1].indexOf("0") > -1) return "#DIV/0!";
|
|
11949
12030
|
return eval_fmt(f[1], v, o, f[0]);
|
|
11950
12031
|
}
|
|
11951
12032
|
function SSF_load(fmt, idx) {
|
|
@@ -11973,6 +12054,13 @@ function SSF_load_table(tbl) {
|
|
|
11973
12054
|
function make_ssf() {
|
|
11974
12055
|
table_fmt = SSF_init_table();
|
|
11975
12056
|
}
|
|
12057
|
+
var bad_formats = {
|
|
12058
|
+
"d.m": "d\\.m"
|
|
12059
|
+
// Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd"."m' or 'd\\.m'
|
|
12060
|
+
};
|
|
12061
|
+
function SSF__load(fmt, idx) {
|
|
12062
|
+
return SSF_load(bad_formats[fmt] || fmt, idx);
|
|
12063
|
+
}
|
|
11976
12064
|
var CRC32 = /* @__PURE__ */ (function() {
|
|
11977
12065
|
var CRC322 = {};
|
|
11978
12066
|
CRC322.version = "1.2.0";
|
|
@@ -12001,7 +12089,7 @@ var CRC32 = /* @__PURE__ */ (function() {
|
|
|
12001
12089
|
for (c = 256 + n; c < 4096; c += 256) v = table[c] = v >>> 8 ^ T[v & 255];
|
|
12002
12090
|
}
|
|
12003
12091
|
var out = [];
|
|
12004
|
-
for (n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);
|
|
12092
|
+
for (n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== "undefined" && typeof table.subarray == "function" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);
|
|
12005
12093
|
return out;
|
|
12006
12094
|
}
|
|
12007
12095
|
var TT = slice_by_16_tables(T0);
|
|
@@ -12051,8 +12139,11 @@ var CRC32 = /* @__PURE__ */ (function() {
|
|
|
12051
12139
|
return CRC322;
|
|
12052
12140
|
})();
|
|
12053
12141
|
var CFB = /* @__PURE__ */ (function _CFB() {
|
|
12054
|
-
var exports2 =
|
|
12055
|
-
|
|
12142
|
+
var exports2 = (
|
|
12143
|
+
/*::(*/
|
|
12144
|
+
{}
|
|
12145
|
+
);
|
|
12146
|
+
exports2.version = "1.2.2";
|
|
12056
12147
|
function namecmp(l, r) {
|
|
12057
12148
|
var L = l.split("/"), R = r.split("/");
|
|
12058
12149
|
for (var i2 = 0, c = 0, Z = Math.min(L.length, R.length); i2 < Z; ++i2) {
|
|
@@ -12127,6 +12218,16 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12127
12218
|
if (p.mtime) p.mt = new Date(p.mtime * 1e3);
|
|
12128
12219
|
}
|
|
12129
12220
|
break;
|
|
12221
|
+
/* ZIP64 Extended Information Field */
|
|
12222
|
+
case 1:
|
|
12223
|
+
{
|
|
12224
|
+
var sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);
|
|
12225
|
+
p.usz = sz2 * Math.pow(2, 32) + sz1;
|
|
12226
|
+
sz1 = blob.read_shift(4);
|
|
12227
|
+
sz2 = blob.read_shift(4);
|
|
12228
|
+
p.csz = sz2 * Math.pow(2, 32) + sz1;
|
|
12229
|
+
}
|
|
12230
|
+
break;
|
|
12130
12231
|
}
|
|
12131
12232
|
blob.l = tgt;
|
|
12132
12233
|
o[type2] = p;
|
|
@@ -12135,7 +12236,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12135
12236
|
}
|
|
12136
12237
|
var fs;
|
|
12137
12238
|
function get_fs() {
|
|
12138
|
-
return fs || (fs =
|
|
12239
|
+
return fs || (fs = _fs);
|
|
12139
12240
|
}
|
|
12140
12241
|
function parse(file, options) {
|
|
12141
12242
|
if (file[0] == 80 && file[1] == 75) return parse_zip(file, options);
|
|
@@ -12198,7 +12299,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12198
12299
|
var sectors = sectorify(file, ssz);
|
|
12199
12300
|
sleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);
|
|
12200
12301
|
var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);
|
|
12201
|
-
sector_list[dir_start].name = "!Directory";
|
|
12302
|
+
if (dir_start < sector_list.length) sector_list[dir_start].name = "!Directory";
|
|
12202
12303
|
if (nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT";
|
|
12203
12304
|
sector_list[fat_addrs[0]].name = "!FAT";
|
|
12204
12305
|
sector_list.fat_addrs = fat_addrs;
|
|
@@ -12311,7 +12412,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12311
12412
|
if ((q2 = __readInt32LE(sector, i2 * 4)) === ENDOFCHAIN) break;
|
|
12312
12413
|
fat_addrs.push(q2);
|
|
12313
12414
|
}
|
|
12314
|
-
sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
|
|
12415
|
+
if (cnt >= 1) sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
|
|
12315
12416
|
}
|
|
12316
12417
|
}
|
|
12317
12418
|
function get_sector_list(sectors, start, fat_addrs, ssz, chkd) {
|
|
@@ -12499,7 +12600,8 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12499
12600
|
for (i2 = 0; i2 < data.length; ++i2) {
|
|
12500
12601
|
var dad = dirname(data[i2][0]);
|
|
12501
12602
|
s = fullPaths[dad];
|
|
12502
|
-
|
|
12603
|
+
while (!s) {
|
|
12604
|
+
while (dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);
|
|
12503
12605
|
data.push([dad, {
|
|
12504
12606
|
name: filename(dad).replace("/", ""),
|
|
12505
12607
|
type: 1,
|
|
@@ -12509,6 +12611,8 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12509
12611
|
content: null
|
|
12510
12612
|
}]);
|
|
12511
12613
|
fullPaths[dad] = true;
|
|
12614
|
+
dad = dirname(data[i2][0]);
|
|
12615
|
+
s = fullPaths[dad];
|
|
12512
12616
|
}
|
|
12513
12617
|
}
|
|
12514
12618
|
data.sort(function(x, y) {
|
|
@@ -12648,6 +12752,10 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12648
12752
|
file = cfb.FileIndex[i2];
|
|
12649
12753
|
if (i2 === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;
|
|
12650
12754
|
var _nm = i2 === 0 && _opts.root || file.name;
|
|
12755
|
+
if (_nm.length > 31) {
|
|
12756
|
+
console.error("Name " + _nm + " will be truncated to " + _nm.slice(0, 31));
|
|
12757
|
+
_nm = _nm.slice(0, 31);
|
|
12758
|
+
}
|
|
12651
12759
|
flen = 2 * (_nm.length + 1);
|
|
12652
12760
|
o.write_shift(64, _nm, "utf16le");
|
|
12653
12761
|
o.write_shift(2, flen);
|
|
@@ -13251,6 +13359,10 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13251
13359
|
blob.l += namelen + efsz + fcsz;
|
|
13252
13360
|
var L = blob.l;
|
|
13253
13361
|
blob.l = offset + 4;
|
|
13362
|
+
if (EF && EF[1]) {
|
|
13363
|
+
if ((EF[1] || {}).usz) usz = EF[1].usz;
|
|
13364
|
+
if ((EF[1] || {}).csz) csz = EF[1].csz;
|
|
13365
|
+
}
|
|
13254
13366
|
parse_local_file(blob, csz, usz, o, EF);
|
|
13255
13367
|
blob.l = L;
|
|
13256
13368
|
}
|
|
@@ -13276,7 +13388,13 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13276
13388
|
/*:: :any)*/
|
|
13277
13389
|
);
|
|
13278
13390
|
if ((ef[21589] || {}).mt) date = ef[21589].mt;
|
|
13279
|
-
if ((
|
|
13391
|
+
if ((ef[1] || {}).usz) _usz = ef[1].usz;
|
|
13392
|
+
if ((ef[1] || {}).csz) _csz = ef[1].csz;
|
|
13393
|
+
if (EF) {
|
|
13394
|
+
if ((EF[21589] || {}).mt) date = EF[21589].mt;
|
|
13395
|
+
if ((EF[1] || {}).usz) _usz = EF[1].usz;
|
|
13396
|
+
if ((EF[1] || {}).csz) _csz = EF[1].csz;
|
|
13397
|
+
}
|
|
13280
13398
|
}
|
|
13281
13399
|
blob.l += efsz;
|
|
13282
13400
|
var data = blob.slice(blob.l, blob.l + _csz);
|
|
@@ -13285,6 +13403,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13285
13403
|
data = _inflateRawSync(blob, _usz);
|
|
13286
13404
|
break;
|
|
13287
13405
|
case 0:
|
|
13406
|
+
blob.l += _csz;
|
|
13288
13407
|
break;
|
|
13289
13408
|
// TODO: scan for magic number
|
|
13290
13409
|
default:
|
|
@@ -13317,17 +13436,17 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13317
13436
|
for (i2 = 1; i2 < cfb.FullPaths.length; ++i2) {
|
|
13318
13437
|
fp = cfb.FullPaths[i2].slice(root.length);
|
|
13319
13438
|
fi = cfb.FileIndex[i2];
|
|
13320
|
-
if (!fi.size || !fi.content || fp == "Sh33tJ5") continue;
|
|
13439
|
+
if (!fi.size || !fi.content || Array.isArray(fi.content) && fi.content.length == 0 || fp == "Sh33tJ5") continue;
|
|
13321
13440
|
var start = start_cd;
|
|
13322
13441
|
var namebuf = new_buf(fp.length);
|
|
13323
13442
|
for (j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 127);
|
|
13324
13443
|
namebuf = namebuf.slice(0, namebuf.l);
|
|
13325
|
-
crcs[fcnt] = CRC32.buf(
|
|
13444
|
+
crcs[fcnt] = typeof fi.content == "string" ? CRC32.bstr(fi.content, 0) : CRC32.buf(
|
|
13326
13445
|
/*::((*/
|
|
13327
13446
|
fi.content,
|
|
13328
13447
|
0
|
|
13329
13448
|
);
|
|
13330
|
-
var outbuf = fi.content;
|
|
13449
|
+
var outbuf = typeof fi.content == "string" ? s2a(fi.content) : fi.content;
|
|
13331
13450
|
if (method == 8) outbuf = _deflateRawSync(outbuf);
|
|
13332
13451
|
o = new_buf(30);
|
|
13333
13452
|
o.write_shift(4, 67324752);
|
|
@@ -13462,7 +13581,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13462
13581
|
for (; di < 10; ++di) {
|
|
13463
13582
|
var line = data[di];
|
|
13464
13583
|
if (!line || line.match(/^\s*$/)) break;
|
|
13465
|
-
var m = line.match(/^(
|
|
13584
|
+
var m = line.match(/^([^:]*?):\s*([^\s].*)$/);
|
|
13466
13585
|
if (m) switch (m[1].toLowerCase()) {
|
|
13467
13586
|
case "content-location":
|
|
13468
13587
|
fname = m[2].trim();
|
|
@@ -13639,6 +13758,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13639
13758
|
};
|
|
13640
13759
|
return exports2;
|
|
13641
13760
|
})();
|
|
13761
|
+
var _fs;
|
|
13642
13762
|
function blobify(data) {
|
|
13643
13763
|
if (typeof data === "string") return s2ab(data);
|
|
13644
13764
|
if (Array.isArray(data)) return a2u(data);
|
|
@@ -13674,6 +13794,9 @@ function write_dl(fname, payload, enc) {
|
|
|
13674
13794
|
}, 6e4);
|
|
13675
13795
|
return url;
|
|
13676
13796
|
}
|
|
13797
|
+
} else if (typeof URL !== "undefined" && !URL.createObjectURL && typeof chrome === "object") {
|
|
13798
|
+
var b64 = "data:application/octet-stream;base64," + Base64_encode_arr(new Uint8Array(blobify(data)));
|
|
13799
|
+
return chrome.downloads.download({ url: b64, filename: fname, saveAs: true });
|
|
13677
13800
|
}
|
|
13678
13801
|
}
|
|
13679
13802
|
if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined") try {
|
|
@@ -13685,7 +13808,7 @@ function write_dl(fname, payload, enc) {
|
|
|
13685
13808
|
out.close();
|
|
13686
13809
|
return payload;
|
|
13687
13810
|
} catch (e) {
|
|
13688
|
-
if (!e.message ||
|
|
13811
|
+
if (!e.message || e.message.indexOf("onstruct") == -1) throw e;
|
|
13689
13812
|
}
|
|
13690
13813
|
throw new Error("cannot save file " + fname);
|
|
13691
13814
|
}
|
|
@@ -13712,34 +13835,38 @@ function evert_arr(obj) {
|
|
|
13712
13835
|
}
|
|
13713
13836
|
return o;
|
|
13714
13837
|
}
|
|
13715
|
-
var
|
|
13838
|
+
var dnthresh = /* @__PURE__ */ Date.UTC(1899, 11, 30, 0, 0, 0);
|
|
13839
|
+
var dnthresh1 = /* @__PURE__ */ Date.UTC(1899, 11, 31, 0, 0, 0);
|
|
13840
|
+
var dnthresh2 = /* @__PURE__ */ Date.UTC(1904, 0, 1, 0, 0, 0);
|
|
13716
13841
|
function datenum(v, date1904) {
|
|
13717
13842
|
var epoch = /* @__PURE__ */ v.getTime();
|
|
13718
|
-
var
|
|
13719
|
-
|
|
13720
|
-
|
|
13721
|
-
|
|
13722
|
-
var good_pd_date = /* @__PURE__ */ isNaN(/* @__PURE__ */ good_pd_date_1.getFullYear()) ? /* @__PURE__ */ new Date("2/19/17") : good_pd_date_1;
|
|
13723
|
-
var good_pd = /* @__PURE__ */ good_pd_date.getFullYear() == 2017;
|
|
13724
|
-
function parseDate(str, fixdate) {
|
|
13725
|
-
var d = new Date(str);
|
|
13726
|
-
if (good_pd) {
|
|
13727
|
-
if (fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1e3);
|
|
13728
|
-
else if (fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1e3);
|
|
13729
|
-
return d;
|
|
13843
|
+
var res = (epoch - dnthresh) / (24 * 60 * 60 * 1e3);
|
|
13844
|
+
if (date1904) {
|
|
13845
|
+
res -= 1462;
|
|
13846
|
+
return res < -1402 ? res - 1 : res;
|
|
13730
13847
|
}
|
|
13731
|
-
|
|
13732
|
-
|
|
13733
|
-
|
|
13734
|
-
|
|
13735
|
-
|
|
13736
|
-
|
|
13737
|
-
}
|
|
13738
|
-
var n = str.match(/\d+/g) || ["2017", "2", "19", "0", "0", "0"];
|
|
13739
|
-
var out = new Date(+n[0], +n[1] - 1, +n[2], +n[3] || 0, +n[4] || 0, +n[5] || 0);
|
|
13740
|
-
if (str.indexOf("Z") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1e3);
|
|
13848
|
+
return res < 60 ? res - 1 : res;
|
|
13849
|
+
}
|
|
13850
|
+
function numdate(v) {
|
|
13851
|
+
if (v >= 60 && v < 61) return v;
|
|
13852
|
+
var out = /* @__PURE__ */ new Date();
|
|
13853
|
+
out.setTime((v > 60 ? v : v + 1) * 24 * 60 * 60 * 1e3 + dnthresh);
|
|
13741
13854
|
return out;
|
|
13742
13855
|
}
|
|
13856
|
+
var pdre1 = /^(\d+):(\d+)(:\d+)?(\.\d+)?$/;
|
|
13857
|
+
var pdre2 = /^(\d+)-(\d+)-(\d+)$/;
|
|
13858
|
+
var pdre3 = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)?(\.\d+)?$/;
|
|
13859
|
+
function parseDate(str, date1904) {
|
|
13860
|
+
if (str instanceof Date) return str;
|
|
13861
|
+
var m = str.match(pdre1);
|
|
13862
|
+
if (m) return new Date((date1904 ? dnthresh2 : dnthresh1) + ((parseInt(m[1], 10) * 60 + parseInt(m[2], 10)) * 60 + (m[3] ? parseInt(m[3].slice(1), 10) : 0)) * 1e3 + (m[4] ? parseInt((m[4] + "000").slice(1, 4), 10) : 0));
|
|
13863
|
+
m = str.match(pdre2);
|
|
13864
|
+
if (m) return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3], 0, 0, 0, 0));
|
|
13865
|
+
m = str.match(pdre3);
|
|
13866
|
+
if (m) return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], m[6] && parseInt(m[6].slice(1), 10) || 0, m[7] && parseInt((m[7] + "0000").slice(1, 4), 10) || 0));
|
|
13867
|
+
var d = new Date(str);
|
|
13868
|
+
return d;
|
|
13869
|
+
}
|
|
13743
13870
|
function dup(o) {
|
|
13744
13871
|
if (typeof JSON != "undefined" && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));
|
|
13745
13872
|
if (typeof o != "object" || o == null) return o;
|
|
@@ -13763,30 +13890,67 @@ function fuzzynum(s) {
|
|
|
13763
13890
|
return "";
|
|
13764
13891
|
});
|
|
13765
13892
|
if (!isNaN(v = Number(ss))) return v / wt;
|
|
13766
|
-
ss = ss.replace(/[(](
|
|
13893
|
+
ss = ss.replace(/[(]([^()]*)[)]/, function($$, $1) {
|
|
13767
13894
|
wt = -wt;
|
|
13768
13895
|
return $1;
|
|
13769
13896
|
});
|
|
13770
13897
|
if (!isNaN(v = Number(ss))) return v / wt;
|
|
13771
13898
|
return v;
|
|
13772
13899
|
}
|
|
13900
|
+
var FDRE1 = /^(0?\d|1[0-2])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))\s+([ap])m?$/;
|
|
13901
|
+
var FDRE2 = /^([01]?\d|2[0-3])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))$/;
|
|
13902
|
+
var FDISO = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)(\.\d+)?[Z]?$/;
|
|
13903
|
+
var utc_append_works = (/* @__PURE__ */ new Date("6/9/69 00:00 UTC")).valueOf() == -177984e5;
|
|
13904
|
+
function fuzzytime1(M) {
|
|
13905
|
+
if (!M[2]) return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), 0, 0, 0));
|
|
13906
|
+
if (M[3]) {
|
|
13907
|
+
if (M[4]) return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), +M[2], +M[4], parseFloat(M[3]) * 1e3));
|
|
13908
|
+
else return new Date(Date.UTC(1899, 11, 31, M[7] == "p" ? 12 : 0, +M[1], +M[2], parseFloat(M[3]) * 1e3));
|
|
13909
|
+
} else if (M[5]) return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1e3 : 0));
|
|
13910
|
+
else return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), +M[2], 0, 0));
|
|
13911
|
+
}
|
|
13912
|
+
function fuzzytime2(M) {
|
|
13913
|
+
if (!M[2]) return new Date(Date.UTC(1899, 11, 31, +M[1], 0, 0, 0));
|
|
13914
|
+
if (M[3]) {
|
|
13915
|
+
if (M[4]) return new Date(Date.UTC(1899, 11, 31, +M[1], +M[2], +M[4], parseFloat(M[3]) * 1e3));
|
|
13916
|
+
else return new Date(Date.UTC(1899, 11, 31, 0, +M[1], +M[2], parseFloat(M[3]) * 1e3));
|
|
13917
|
+
} else if (M[5]) return new Date(Date.UTC(1899, 11, 31, +M[1], +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1e3 : 0));
|
|
13918
|
+
else return new Date(Date.UTC(1899, 11, 31, +M[1], +M[2], 0, 0));
|
|
13919
|
+
}
|
|
13773
13920
|
var lower_months = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
|
|
13774
13921
|
function fuzzydate(s) {
|
|
13775
|
-
|
|
13776
|
-
var y = o.getYear(), m = o.getMonth(), d = o.getDate();
|
|
13777
|
-
if (isNaN(d)) return n;
|
|
13922
|
+
if (FDISO.test(s)) return s.indexOf("Z") == -1 ? local_to_utc(new Date(s)) : new Date(s);
|
|
13778
13923
|
var lower = s.toLowerCase();
|
|
13924
|
+
var lnos = lower.replace(/\s+/g, " ").trim();
|
|
13925
|
+
var M = lnos.match(FDRE1);
|
|
13926
|
+
if (M) return fuzzytime1(M);
|
|
13927
|
+
M = lnos.match(FDRE2);
|
|
13928
|
+
if (M) return fuzzytime2(M);
|
|
13929
|
+
M = lnos.match(pdre3);
|
|
13930
|
+
if (M) return new Date(Date.UTC(+M[1], +M[2] - 1, +M[3], +M[4], +M[5], M[6] && parseInt(M[6].slice(1), 10) || 0, M[7] && parseInt((M[7] + "0000").slice(1, 4), 10) || 0));
|
|
13931
|
+
var o = new Date(utc_append_works && s.indexOf("UTC") == -1 ? s + " UTC" : s), n = /* @__PURE__ */ new Date(NaN);
|
|
13932
|
+
var y = o.getYear();
|
|
13933
|
+
o.getMonth();
|
|
13934
|
+
var d = o.getDate();
|
|
13935
|
+
if (isNaN(d)) return n;
|
|
13779
13936
|
if (lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {
|
|
13780
13937
|
lower = lower.replace(/[^a-z]/g, "").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/, "");
|
|
13781
13938
|
if (lower.length > 3 && lower_months.indexOf(lower) == -1) return n;
|
|
13782
|
-
} else if (lower.match(/[a-z]/)) return n;
|
|
13783
|
-
if (y < 0 || y > 8099) return n;
|
|
13784
|
-
if ((m > 0 || d > 1) && y != 101) return o;
|
|
13785
|
-
if (s.match(/[^-0-9:,\/\\]/)) return n;
|
|
13939
|
+
} else if (lower.replace(/[ap]m?/, "").match(/[a-z]/)) return n;
|
|
13940
|
+
if (y < 0 || y > 8099 || s.match(/[^-0-9:,\/\\\ ]/)) return n;
|
|
13786
13941
|
return o;
|
|
13787
13942
|
}
|
|
13943
|
+
function utc_to_local(utc) {
|
|
13944
|
+
return new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());
|
|
13945
|
+
}
|
|
13946
|
+
function local_to_utc(local) {
|
|
13947
|
+
return new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));
|
|
13948
|
+
}
|
|
13788
13949
|
function zip_add_file(zip, path, content) {
|
|
13789
13950
|
if (zip.FullPaths) {
|
|
13951
|
+
if (Array.isArray(content) && typeof content[0] == "string") {
|
|
13952
|
+
content = content.join("");
|
|
13953
|
+
}
|
|
13790
13954
|
if (typeof content == "string") {
|
|
13791
13955
|
var res;
|
|
13792
13956
|
if (has_buf) res = Buffer_from(content);
|
|
@@ -13808,7 +13972,7 @@ var encodings = {
|
|
|
13808
13972
|
"&": "&"
|
|
13809
13973
|
};
|
|
13810
13974
|
var rencoding = /* @__PURE__ */ evert(encodings);
|
|
13811
|
-
var decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f]/g;
|
|
13975
|
+
var decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f\uFFFE-\uFFFF]/g;
|
|
13812
13976
|
function escapexml(text) {
|
|
13813
13977
|
var s = text + "";
|
|
13814
13978
|
return s.replace(decregex, function(y) {
|
|
@@ -13929,7 +14093,7 @@ var htmldecode = /* @__PURE__ */ (function() {
|
|
|
13929
14093
|
return [new RegExp("&" + x[0] + ";", "ig"), x[1]];
|
|
13930
14094
|
});
|
|
13931
14095
|
return function htmldecode2(str) {
|
|
13932
|
-
var o = str.replace(/^[\t\n\r ]+/, "").replace(/[\t\n\r ]+$/, "").replace(/>\s+/g, ">").replace(/\s+</g, "<").replace(/[\t\n\r ]+/g, " ").replace(/<\s*[bB][rR]\s*\/?>/g, "\n").replace(/<[
|
|
14096
|
+
var o = str.replace(/^[\t\n\r ]+/, "").replace(/(^|[^\t\n\r ])[\t\n\r ]+$/, "$1").replace(/>\s+/g, ">").replace(/\b\s+</g, "<").replace(/[\t\n\r ]+/g, " ").replace(/<\s*[bB][rR]\s*\/?>/g, "\n").replace(/<[^<>]*>/g, "");
|
|
13933
14097
|
for (var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);
|
|
13934
14098
|
return o;
|
|
13935
14099
|
};
|
|
@@ -14045,7 +14209,7 @@ var ___utf16le = function(b, s, e) {
|
|
|
14045
14209
|
return ss.join("").replace(chr0, "");
|
|
14046
14210
|
};
|
|
14047
14211
|
var __utf16le = has_buf ? function(b, s, e) {
|
|
14048
|
-
if (!Buffer.isBuffer(b)) return ___utf16le(b, s, e);
|
|
14212
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___utf16le(b, s, e);
|
|
14049
14213
|
return b.toString("utf16le", s, e).replace(chr0, "");
|
|
14050
14214
|
} : ___utf16le;
|
|
14051
14215
|
var ___hexlify = function(b, s, l) {
|
|
@@ -14105,12 +14269,12 @@ if (has_buf) {
|
|
|
14105
14269
|
return len > 0 ? b.toString("utf8", i + 4, i + 4 + len - 1) : "";
|
|
14106
14270
|
};
|
|
14107
14271
|
__lpwstr = function lpwstr_b(b, i) {
|
|
14108
|
-
if (!Buffer.isBuffer(b)) return ___lpwstr(b, i);
|
|
14272
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___lpwstr(b, i);
|
|
14109
14273
|
var len = 2 * b.readUInt32LE(i);
|
|
14110
14274
|
return b.toString("utf16le", i + 4, i + 4 + len - 1);
|
|
14111
14275
|
};
|
|
14112
14276
|
__lpp4 = function lpp4_b(b, i) {
|
|
14113
|
-
if (!Buffer.isBuffer(b)) return ___lpp4(b, i);
|
|
14277
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___lpp4(b, i);
|
|
14114
14278
|
var len = b.readUInt32LE(i);
|
|
14115
14279
|
return b.toString("utf16le", i + 4, i + 4 + len);
|
|
14116
14280
|
};
|
|
@@ -14148,7 +14312,7 @@ function ReadShift(size, t) {
|
|
|
14148
14312
|
switch (t) {
|
|
14149
14313
|
case "dbcs":
|
|
14150
14314
|
loc = this.l;
|
|
14151
|
-
if (has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l + 2 * size).toString("utf16le");
|
|
14315
|
+
if (has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l + 2 * size).toString("utf16le");
|
|
14152
14316
|
else for (i = 0; i < size; ++i) {
|
|
14153
14317
|
o += String.fromCharCode(__readUInt16LE(this, loc));
|
|
14154
14318
|
loc += 2;
|
|
@@ -14299,12 +14463,12 @@ function WriteShift(t, val, f) {
|
|
|
14299
14463
|
if (f === "dbcs") {
|
|
14300
14464
|
for (i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);
|
|
14301
14465
|
size = 2 * val.length;
|
|
14302
|
-
} else if (f === "sbcs") {
|
|
14466
|
+
} else if (f === "sbcs" || f == "cpstr") {
|
|
14303
14467
|
{
|
|
14304
14468
|
val = val.replace(/[^\x00-\x7F]/g, "_");
|
|
14305
14469
|
for (i = 0; i != val.length; ++i) this[this.l + i] = val.charCodeAt(i) & 255;
|
|
14470
|
+
size = val.length;
|
|
14306
14471
|
}
|
|
14307
|
-
size = val.length;
|
|
14308
14472
|
} else if (f === "hex") {
|
|
14309
14473
|
for (; i < t; ++i) {
|
|
14310
14474
|
this[this.l++] = parseInt(val.slice(2 * i, 2 * i + 2), 16) || 0;
|
|
@@ -14430,6 +14594,15 @@ function encode_range(cs, ce) {
|
|
|
14430
14594
|
if (typeof ce !== "string") ce = encode_cell(ce);
|
|
14431
14595
|
return cs == ce ? cs : cs + ":" + ce;
|
|
14432
14596
|
}
|
|
14597
|
+
function fix_range(a1) {
|
|
14598
|
+
var s = decode_range(a1);
|
|
14599
|
+
return "$" + encode_col(s.s.c) + "$" + encode_row(s.s.r) + ":$" + encode_col(s.e.c) + "$" + encode_row(s.e.r);
|
|
14600
|
+
}
|
|
14601
|
+
function formula_quote_sheet_name(sname, opts) {
|
|
14602
|
+
if (!sname && true) throw new Error("empty sheet name");
|
|
14603
|
+
if (/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(sname)) return "'" + sname.replace(/'/g, "''") + "'";
|
|
14604
|
+
return sname;
|
|
14605
|
+
}
|
|
14433
14606
|
function safe_decode_range(range2) {
|
|
14434
14607
|
var o = { s: { c: 0, r: 0 }, e: { c: 0, r: 0 } };
|
|
14435
14608
|
var idx = 0, i = 0, cc = 0;
|
|
@@ -14488,10 +14661,17 @@ function sheet_to_workbook(sheet, opts) {
|
|
|
14488
14661
|
sheets[n] = sheet;
|
|
14489
14662
|
return { SheetNames: [n], Sheets: sheets };
|
|
14490
14663
|
}
|
|
14664
|
+
function sheet_new(opts) {
|
|
14665
|
+
var out = {};
|
|
14666
|
+
var o = opts || {};
|
|
14667
|
+
if (o.dense) out["!data"] = [];
|
|
14668
|
+
return out;
|
|
14669
|
+
}
|
|
14491
14670
|
function sheet_add_aoa(_ws, data, opts) {
|
|
14492
14671
|
var o = opts || {};
|
|
14493
|
-
var dense = _ws ?
|
|
14494
|
-
var ws = _ws || (dense ? [] : {});
|
|
14672
|
+
var dense = _ws ? _ws["!data"] != null : o.dense;
|
|
14673
|
+
var ws = _ws || (dense ? { "!data": [] } : {});
|
|
14674
|
+
if (dense && !ws["!data"]) ws["!data"] = [];
|
|
14495
14675
|
var _R = 0, _C = 0;
|
|
14496
14676
|
if (ws && o.origin != null) {
|
|
14497
14677
|
if (typeof o.origin == "number") _R = o.origin;
|
|
@@ -14500,7 +14680,6 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14500
14680
|
_R = _origin.r;
|
|
14501
14681
|
_C = _origin.c;
|
|
14502
14682
|
}
|
|
14503
|
-
if (!ws["!ref"]) ws["!ref"] = "A1:A1";
|
|
14504
14683
|
}
|
|
14505
14684
|
var range2 = { s: { c: 1e7, r: 1e7 }, e: { c: 0, r: 0 } };
|
|
14506
14685
|
if (ws["!ref"]) {
|
|
@@ -14509,23 +14688,33 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14509
14688
|
range2.s.r = _range.s.r;
|
|
14510
14689
|
range2.e.c = Math.max(range2.e.c, _range.e.c);
|
|
14511
14690
|
range2.e.r = Math.max(range2.e.r, _range.e.r);
|
|
14512
|
-
if (_R == -1) range2.e.r = _R = _range.e.r + 1;
|
|
14691
|
+
if (_R == -1) range2.e.r = _R = ws["!ref"] ? _range.e.r + 1 : 0;
|
|
14692
|
+
} else {
|
|
14693
|
+
range2.s.c = range2.e.c = range2.s.r = range2.e.r = 0;
|
|
14513
14694
|
}
|
|
14695
|
+
var row = [], seen = false;
|
|
14514
14696
|
for (var R = 0; R != data.length; ++R) {
|
|
14515
14697
|
if (!data[R]) continue;
|
|
14516
14698
|
if (!Array.isArray(data[R])) throw new Error("aoa_to_sheet expects an array of arrays");
|
|
14517
|
-
|
|
14518
|
-
|
|
14519
|
-
|
|
14520
|
-
|
|
14699
|
+
var __R = _R + R;
|
|
14700
|
+
if (dense) {
|
|
14701
|
+
if (!ws["!data"][__R]) ws["!data"][__R] = [];
|
|
14702
|
+
row = ws["!data"][__R];
|
|
14703
|
+
}
|
|
14704
|
+
var data_R = data[R];
|
|
14705
|
+
for (var C = 0; C != data_R.length; ++C) {
|
|
14706
|
+
if (typeof data_R[C] === "undefined") continue;
|
|
14707
|
+
var cell = { v: data_R[C], t: "" };
|
|
14708
|
+
var __C = _C + C;
|
|
14521
14709
|
if (range2.s.r > __R) range2.s.r = __R;
|
|
14522
14710
|
if (range2.s.c > __C) range2.s.c = __C;
|
|
14523
14711
|
if (range2.e.r < __R) range2.e.r = __R;
|
|
14524
14712
|
if (range2.e.c < __C) range2.e.c = __C;
|
|
14525
|
-
|
|
14713
|
+
seen = true;
|
|
14714
|
+
if (data_R[C] && typeof data_R[C] === "object" && !Array.isArray(data_R[C]) && !(data_R[C] instanceof Date)) cell = data_R[C];
|
|
14526
14715
|
else {
|
|
14527
14716
|
if (Array.isArray(cell.v)) {
|
|
14528
|
-
cell.f =
|
|
14717
|
+
cell.f = data_R[C][1];
|
|
14529
14718
|
cell.v = cell.v[0];
|
|
14530
14719
|
}
|
|
14531
14720
|
if (cell.v === null) {
|
|
@@ -14535,57 +14724,67 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14535
14724
|
cell.v = 0;
|
|
14536
14725
|
} else if (!o.sheetStubs) continue;
|
|
14537
14726
|
else cell.t = "z";
|
|
14538
|
-
} else if (typeof cell.v === "number")
|
|
14539
|
-
|
|
14727
|
+
} else if (typeof cell.v === "number") {
|
|
14728
|
+
if (isFinite(cell.v)) cell.t = "n";
|
|
14729
|
+
else if (isNaN(cell.v)) {
|
|
14730
|
+
cell.t = "e";
|
|
14731
|
+
cell.v = 15;
|
|
14732
|
+
} else {
|
|
14733
|
+
cell.t = "e";
|
|
14734
|
+
cell.v = 7;
|
|
14735
|
+
}
|
|
14736
|
+
} else if (typeof cell.v === "boolean") cell.t = "b";
|
|
14540
14737
|
else if (cell.v instanceof Date) {
|
|
14541
14738
|
cell.z = o.dateNF || table_fmt[14];
|
|
14739
|
+
if (!o.UTC) cell.v = local_to_utc(cell.v);
|
|
14542
14740
|
if (o.cellDates) {
|
|
14543
14741
|
cell.t = "d";
|
|
14544
|
-
cell.w = SSF_format(cell.z, datenum(cell.v));
|
|
14742
|
+
cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904));
|
|
14545
14743
|
} else {
|
|
14546
14744
|
cell.t = "n";
|
|
14547
|
-
cell.v = datenum(cell.v);
|
|
14745
|
+
cell.v = datenum(cell.v, o.date1904);
|
|
14548
14746
|
cell.w = SSF_format(cell.z, cell.v);
|
|
14549
14747
|
}
|
|
14550
14748
|
} else cell.t = "s";
|
|
14551
14749
|
}
|
|
14552
14750
|
if (dense) {
|
|
14553
|
-
if (
|
|
14554
|
-
|
|
14555
|
-
ws[__R][__C] = cell;
|
|
14751
|
+
if (row[__C] && row[__C].z) cell.z = row[__C].z;
|
|
14752
|
+
row[__C] = cell;
|
|
14556
14753
|
} else {
|
|
14557
|
-
var cell_ref =
|
|
14754
|
+
var cell_ref = encode_col(__C) + (__R + 1);
|
|
14558
14755
|
if (ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;
|
|
14559
14756
|
ws[cell_ref] = cell;
|
|
14560
14757
|
}
|
|
14561
14758
|
}
|
|
14562
14759
|
}
|
|
14563
|
-
if (range2.s.c <
|
|
14760
|
+
if (seen && range2.s.c < 104e5) ws["!ref"] = encode_range(range2);
|
|
14564
14761
|
return ws;
|
|
14565
14762
|
}
|
|
14566
14763
|
function aoa_to_sheet(data, opts) {
|
|
14567
14764
|
return sheet_add_aoa(null, data, opts);
|
|
14568
14765
|
}
|
|
14569
14766
|
var BErr = {
|
|
14570
|
-
/*::[*/
|
|
14571
14767
|
0: "#NULL!",
|
|
14572
|
-
/*::[*/
|
|
14573
14768
|
7: "#DIV/0!",
|
|
14574
|
-
/*::[*/
|
|
14575
14769
|
15: "#VALUE!",
|
|
14576
|
-
/*::[*/
|
|
14577
14770
|
23: "#REF!",
|
|
14578
|
-
/*::[*/
|
|
14579
14771
|
29: "#NAME?",
|
|
14580
|
-
/*::[*/
|
|
14581
14772
|
36: "#NUM!",
|
|
14582
|
-
/*::[*/
|
|
14583
14773
|
42: "#N/A",
|
|
14584
|
-
/*::[*/
|
|
14585
14774
|
43: "#GETTING_DATA",
|
|
14586
|
-
/*::[*/
|
|
14587
14775
|
255: "#WTF?"
|
|
14588
14776
|
};
|
|
14777
|
+
var RBErr = {
|
|
14778
|
+
"#NULL!": 0,
|
|
14779
|
+
"#DIV/0!": 7,
|
|
14780
|
+
"#VALUE!": 15,
|
|
14781
|
+
"#REF!": 23,
|
|
14782
|
+
"#NAME?": 29,
|
|
14783
|
+
"#NUM!": 36,
|
|
14784
|
+
"#N/A": 42,
|
|
14785
|
+
"#GETTING_DATA": 43,
|
|
14786
|
+
"#WTF?": 255
|
|
14787
|
+
};
|
|
14589
14788
|
var ct2type = {
|
|
14590
14789
|
/* Workbook */
|
|
14591
14790
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": "workbooks",
|
|
@@ -14797,35 +14996,37 @@ function new_ct() {
|
|
|
14797
14996
|
xmlns: ""
|
|
14798
14997
|
};
|
|
14799
14998
|
}
|
|
14800
|
-
function write_ct(ct, opts) {
|
|
14999
|
+
function write_ct(ct, opts, raw) {
|
|
14801
15000
|
var type2ct = evert_arr(ct2type);
|
|
14802
15001
|
var o = [], v;
|
|
14803
|
-
|
|
14804
|
-
|
|
14805
|
-
"
|
|
14806
|
-
|
|
14807
|
-
|
|
14808
|
-
|
|
14809
|
-
|
|
14810
|
-
[
|
|
14811
|
-
|
|
14812
|
-
|
|
14813
|
-
|
|
14814
|
-
|
|
14815
|
-
|
|
14816
|
-
|
|
14817
|
-
|
|
14818
|
-
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
14827
|
-
|
|
14828
|
-
|
|
15002
|
+
{
|
|
15003
|
+
o[o.length] = XML_HEADER;
|
|
15004
|
+
o[o.length] = writextag("Types", null, {
|
|
15005
|
+
"xmlns": XMLNS.CT,
|
|
15006
|
+
"xmlns:xsd": XMLNS.xsd,
|
|
15007
|
+
"xmlns:xsi": XMLNS.xsi
|
|
15008
|
+
});
|
|
15009
|
+
o = o.concat([
|
|
15010
|
+
["xml", "application/xml"],
|
|
15011
|
+
["bin", "application/vnd.ms-excel.sheet.binary.macroEnabled.main"],
|
|
15012
|
+
["vml", "application/vnd.openxmlformats-officedocument.vmlDrawing"],
|
|
15013
|
+
["data", "application/vnd.openxmlformats-officedocument.model+data"],
|
|
15014
|
+
/* from test files */
|
|
15015
|
+
["bmp", "image/bmp"],
|
|
15016
|
+
["png", "image/png"],
|
|
15017
|
+
["gif", "image/gif"],
|
|
15018
|
+
["emf", "image/x-emf"],
|
|
15019
|
+
["wmf", "image/x-wmf"],
|
|
15020
|
+
["jpg", "image/jpeg"],
|
|
15021
|
+
["jpeg", "image/jpeg"],
|
|
15022
|
+
["tif", "image/tiff"],
|
|
15023
|
+
["tiff", "image/tiff"],
|
|
15024
|
+
["pdf", "application/pdf"],
|
|
15025
|
+
["rels", "application/vnd.openxmlformats-package.relationships+xml"]
|
|
15026
|
+
].map(function(x) {
|
|
15027
|
+
return writextag("Default", null, { "Extension": x[0], "ContentType": x[1] });
|
|
15028
|
+
}));
|
|
15029
|
+
}
|
|
14829
15030
|
var f1 = function(w) {
|
|
14830
15031
|
if (ct[w] && ct[w].length > 0) {
|
|
14831
15032
|
v = ct[w][0];
|
|
@@ -15061,6 +15262,7 @@ function write_sst_xml(sst, opts) {
|
|
|
15061
15262
|
else {
|
|
15062
15263
|
sitag += "<t";
|
|
15063
15264
|
if (!s.t) s.t = "";
|
|
15265
|
+
if (typeof s.t !== "string") s.t = String(s.t);
|
|
15064
15266
|
if (s.t.match(straywsregex)) sitag += ' xml:space="preserve"';
|
|
15065
15267
|
sitag += ">" + escapexml(s.t) + "</t>";
|
|
15066
15268
|
}
|
|
@@ -15324,58 +15526,61 @@ function write_xlmeta_xml() {
|
|
|
15324
15526
|
o.push('<metadata xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:xlrd="http://schemas.microsoft.com/office/spreadsheetml/2017/richdata" xmlns:xda="http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray">\n <metadataTypes count="1">\n <metadataType name="XLDAPR" minSupportedVersion="120000" copy="1" pasteAll="1" pasteValues="1" merge="1" splitFirst="1" rowColShift="1" clearFormats="1" clearComments="1" assign="1" coerce="1" cellMeta="1"/>\n </metadataTypes>\n <futureMetadata name="XLDAPR" count="1">\n <bk>\n <extLst>\n <ext uri="{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}">\n <xda:dynamicArrayProperties fDynamic="1" fCollapsed="0"/>\n </ext>\n </extLst>\n </bk>\n </futureMetadata>\n <cellMetadata count="1">\n <bk>\n <rc t="1" v="0"/>\n </bk>\n </cellMetadata>\n</metadata>');
|
|
15325
15527
|
return o.join("");
|
|
15326
15528
|
}
|
|
15327
|
-
|
|
15328
|
-
function write_comments_vml(rId, comments) {
|
|
15529
|
+
function write_vml(rId, comments, ws) {
|
|
15329
15530
|
var csize = [21600, 21600];
|
|
15330
15531
|
var bbox = ["m0,0l0", csize[1], csize[0], csize[1], csize[0], "0xe"].join(",");
|
|
15331
15532
|
var o = [
|
|
15332
15533
|
writextag("xml", null, { "xmlns:v": XLMLNS.v, "xmlns:o": XLMLNS.o, "xmlns:x": XLMLNS.x, "xmlns:mv": XLMLNS.mv }).replace(/\/>/, ">"),
|
|
15333
|
-
writextag("o:shapelayout", writextag("o:idmap", null, { "v:ext": "edit", "data": rId }), { "v:ext": "edit" })
|
|
15334
|
-
writextag("v:shapetype", [
|
|
15335
|
-
writextag("v:stroke", null, { joinstyle: "miter" }),
|
|
15336
|
-
writextag("v:path", null, { gradientshapeok: "t", "o:connecttype": "rect" })
|
|
15337
|
-
].join(""), { id: "_x0000_t202", "o:spt": 202, coordsize: csize.join(","), path: bbox })
|
|
15534
|
+
writextag("o:shapelayout", writextag("o:idmap", null, { "v:ext": "edit", "data": rId }), { "v:ext": "edit" })
|
|
15338
15535
|
];
|
|
15339
|
-
|
|
15340
|
-
comments
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
|
|
15344
|
-
|
|
15345
|
-
|
|
15346
|
-
if (fillopts.type == "gradient") fillopts.angle = "-180";
|
|
15347
|
-
var fillparm = fillopts.type == "gradient" ? writextag("o:fill", null, { type: "gradientUnscaled", "v:ext": "view" }) : null;
|
|
15348
|
-
var fillxml = writextag("v:fill", fillparm, fillopts);
|
|
15349
|
-
var shadata = { on: "t", "obscured": "t" };
|
|
15536
|
+
var _shapeid = 65536 * rId;
|
|
15537
|
+
var _comments = comments || [];
|
|
15538
|
+
if (_comments.length > 0) o.push(writextag("v:shapetype", [
|
|
15539
|
+
writextag("v:stroke", null, { joinstyle: "miter" }),
|
|
15540
|
+
writextag("v:path", null, { gradientshapeok: "t", "o:connecttype": "rect" })
|
|
15541
|
+
].join(""), { id: "_x0000_t202", coordsize: csize.join(","), "o:spt": 202, path: bbox }));
|
|
15542
|
+
_comments.forEach(function(x) {
|
|
15350
15543
|
++_shapeid;
|
|
15351
|
-
o
|
|
15352
|
-
"<v:shape" + wxt_helper({
|
|
15353
|
-
id: "_x0000_s" + _shapeid,
|
|
15354
|
-
type: "#_x0000_t202",
|
|
15355
|
-
style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (x[1].hidden ? ";visibility:hidden" : ""),
|
|
15356
|
-
fillcolor: "#ECFAD4",
|
|
15357
|
-
strokecolor: "#edeaa1"
|
|
15358
|
-
}) + ">",
|
|
15359
|
-
fillxml,
|
|
15360
|
-
writextag("v:shadow", null, shadata),
|
|
15361
|
-
writextag("v:path", null, { "o:connecttype": "none" }),
|
|
15362
|
-
'<v:textbox><div style="text-align:left"></div></v:textbox>',
|
|
15363
|
-
'<x:ClientData ObjectType="Note">',
|
|
15364
|
-
"<x:MoveWithCells/>",
|
|
15365
|
-
"<x:SizeWithCells/>",
|
|
15366
|
-
/* Part 4 19.4.2.3 Anchor (Anchor) */
|
|
15367
|
-
writetag("x:Anchor", [c.c + 1, 0, c.r + 1, 0, c.c + 3, 20, c.r + 5, 20].join(",")),
|
|
15368
|
-
writetag("x:AutoFill", "False"),
|
|
15369
|
-
writetag("x:Row", String(c.r)),
|
|
15370
|
-
writetag("x:Column", String(c.c)),
|
|
15371
|
-
x[1].hidden ? "" : "<x:Visible/>",
|
|
15372
|
-
"</x:ClientData>",
|
|
15373
|
-
"</v:shape>"
|
|
15374
|
-
]);
|
|
15544
|
+
o.push(write_vml_comment(x, _shapeid));
|
|
15375
15545
|
});
|
|
15376
15546
|
o.push("</xml>");
|
|
15377
15547
|
return o.join("");
|
|
15378
15548
|
}
|
|
15549
|
+
function write_vml_comment(x, _shapeid, ws) {
|
|
15550
|
+
var c = decode_cell(x[0]);
|
|
15551
|
+
var fillopts = (
|
|
15552
|
+
/*::(*/
|
|
15553
|
+
{ "color2": "#BEFF82", "type": "gradient" }
|
|
15554
|
+
);
|
|
15555
|
+
if (fillopts.type == "gradient") fillopts.angle = "-180";
|
|
15556
|
+
var fillparm = fillopts.type == "gradient" ? writextag("o:fill", null, { type: "gradientUnscaled", "v:ext": "view" }) : null;
|
|
15557
|
+
var fillxml = writextag("v:fill", fillparm, fillopts);
|
|
15558
|
+
var shadata = { on: "t", "obscured": "t" };
|
|
15559
|
+
return [
|
|
15560
|
+
"<v:shape" + wxt_helper({
|
|
15561
|
+
id: "_x0000_s" + _shapeid,
|
|
15562
|
+
type: "#_x0000_t202",
|
|
15563
|
+
style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (x[1].hidden ? ";visibility:hidden" : ""),
|
|
15564
|
+
fillcolor: "#ECFAD4",
|
|
15565
|
+
strokecolor: "#edeaa1"
|
|
15566
|
+
}) + ">",
|
|
15567
|
+
fillxml,
|
|
15568
|
+
writextag("v:shadow", null, shadata),
|
|
15569
|
+
writextag("v:path", null, { "o:connecttype": "none" }),
|
|
15570
|
+
'<v:textbox><div style="text-align:left"></div></v:textbox>',
|
|
15571
|
+
'<x:ClientData ObjectType="Note">',
|
|
15572
|
+
"<x:MoveWithCells/>",
|
|
15573
|
+
"<x:SizeWithCells/>",
|
|
15574
|
+
/* Part 4 19.4.2.3 Anchor (Anchor) */
|
|
15575
|
+
writetag("x:Anchor", [c.c + 1, 0, c.r + 1, 0, c.c + 3, 20, c.r + 5, 20].join(",")),
|
|
15576
|
+
writetag("x:AutoFill", "False"),
|
|
15577
|
+
writetag("x:Row", String(c.r)),
|
|
15578
|
+
writetag("x:Column", String(c.c)),
|
|
15579
|
+
x[1].hidden ? "" : "<x:Visible/>",
|
|
15580
|
+
"</x:ClientData>",
|
|
15581
|
+
"</v:shape>"
|
|
15582
|
+
].join("");
|
|
15583
|
+
}
|
|
15379
15584
|
function write_comments_xml(data) {
|
|
15380
15585
|
var o = [XML_HEADER, writextag("comments", null, { "xmlns": XMLNS_main[0] })];
|
|
15381
15586
|
var iauthor = [];
|
|
@@ -15400,20 +15605,27 @@ function write_comments_xml(data) {
|
|
|
15400
15605
|
o.push("</authors>");
|
|
15401
15606
|
o.push("<commentList>");
|
|
15402
15607
|
data.forEach(function(d) {
|
|
15403
|
-
var lastauthor = 0, ts = [];
|
|
15608
|
+
var lastauthor = 0, ts = [], tcnt = 0;
|
|
15404
15609
|
if (d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d[1][0].ID);
|
|
15405
|
-
|
|
15610
|
+
d[1].forEach(function(c) {
|
|
15406
15611
|
if (c.a) lastauthor = iauthor.indexOf(escapexml(c.a));
|
|
15407
|
-
|
|
15612
|
+
if (c.T) ++tcnt;
|
|
15613
|
+
ts.push(c.t == null ? "" : escapexml(c.t));
|
|
15408
15614
|
});
|
|
15409
|
-
|
|
15410
|
-
|
|
15411
|
-
|
|
15615
|
+
if (tcnt === 0) {
|
|
15616
|
+
d[1].forEach(function(c) {
|
|
15617
|
+
o.push('<comment ref="' + d[0] + '" authorId="' + iauthor.indexOf(escapexml(c.a)) + '"><text>');
|
|
15618
|
+
o.push(writetag("t", c.t == null ? "" : escapexml(c.t)));
|
|
15619
|
+
o.push("</text></comment>");
|
|
15620
|
+
});
|
|
15621
|
+
} else {
|
|
15622
|
+
if (d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d[1][0].ID);
|
|
15623
|
+
o.push('<comment ref="' + d[0] + '" authorId="' + lastauthor + '"><text>');
|
|
15412
15624
|
var t = "Comment:\n " + ts[0] + "\n";
|
|
15413
15625
|
for (var i = 1; i < ts.length; ++i) t += "Reply:\n " + ts[i] + "\n";
|
|
15414
15626
|
o.push(writetag("t", escapexml(t)));
|
|
15627
|
+
o.push("</text></comment>");
|
|
15415
15628
|
}
|
|
15416
|
-
o.push("</text></comment>");
|
|
15417
15629
|
});
|
|
15418
15630
|
o.push("</commentList>");
|
|
15419
15631
|
if (o.length > 2) {
|
|
@@ -15463,6 +15675,11 @@ function write_people_xml(people) {
|
|
|
15463
15675
|
return o.join("");
|
|
15464
15676
|
}
|
|
15465
15677
|
var VBAFMTS = ["xlsb", "xlsm", "xlam", "biff8", "xla"];
|
|
15678
|
+
var crefregex = /(^|[^._A-Z0-9])(\$?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])(\$?)(\d{1,7})(?![_.\(A-Za-z0-9])/g;
|
|
15679
|
+
try {
|
|
15680
|
+
crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\d{4}|104[0-7]\d{3}|1048[0-4]\d{2}|10485[0-6]\d|104857[0-6]|[1-9]\d{0,5})(?![_.\(A-Za-z0-9])/g;
|
|
15681
|
+
} catch (e) {
|
|
15682
|
+
}
|
|
15466
15683
|
var browser_has_Map = typeof Map !== "undefined";
|
|
15467
15684
|
function get_sst_id(sst, str, rev) {
|
|
15468
15685
|
var i = 0, len = sst.length;
|
|
@@ -15528,7 +15745,7 @@ function get_cell_style(styles, cell, opts) {
|
|
|
15528
15745
|
var i = 60, len = styles.length;
|
|
15529
15746
|
if (z == null && opts.ssf) {
|
|
15530
15747
|
for (; i < 392; ++i) if (opts.ssf[i] == null) {
|
|
15531
|
-
|
|
15748
|
+
SSF__load(cell.z, i);
|
|
15532
15749
|
opts.ssf[i] = cell.z;
|
|
15533
15750
|
opts.revssf[cell.z] = z = i;
|
|
15534
15751
|
break;
|
|
@@ -15630,7 +15847,7 @@ function write_ws_xml_autofilter(data, ws, wb, idx) {
|
|
|
15630
15847
|
var name = names[i];
|
|
15631
15848
|
if (name.Name != "_xlnm._FilterDatabase") continue;
|
|
15632
15849
|
if (name.Sheet != idx) continue;
|
|
15633
|
-
name.Ref =
|
|
15850
|
+
name.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + "!" + fix_range(ref2);
|
|
15634
15851
|
break;
|
|
15635
15852
|
}
|
|
15636
15853
|
if (i == names.length) names.push({ Name: "_xlnm._FilterDatabase", Sheet: idx, Ref: "'" + wb.SheetNames[idx] + "'!" + ref2 });
|
|
@@ -15641,9 +15858,9 @@ function write_ws_xml_sheetviews(ws, opts, idx, wb) {
|
|
|
15641
15858
|
if ((((wb || {}).Workbook || {}).Views || [])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? "1" : "0";
|
|
15642
15859
|
return writextag("sheetViews", writextag("sheetView", null, sview), {});
|
|
15643
15860
|
}
|
|
15644
|
-
function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
15861
|
+
function write_ws_xml_cell(cell, ref2, ws, opts, idx, wb, date1904) {
|
|
15645
15862
|
if (cell.c) ws["!comments"].push([ref2, cell.c]);
|
|
15646
|
-
if (cell.v === void 0 && typeof cell.f !== "string"
|
|
15863
|
+
if ((cell.v === void 0 || cell.t === "z" && !(opts || {}).sheetStubs) && typeof cell.f !== "string" && typeof cell.z == "undefined") return "";
|
|
15647
15864
|
var vv = "";
|
|
15648
15865
|
var oldt = cell.t, oldv = cell.v;
|
|
15649
15866
|
if (cell.t !== "z") switch (cell.t) {
|
|
@@ -15651,17 +15868,26 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15651
15868
|
vv = cell.v ? "1" : "0";
|
|
15652
15869
|
break;
|
|
15653
15870
|
case "n":
|
|
15654
|
-
|
|
15871
|
+
if (isNaN(cell.v)) {
|
|
15872
|
+
cell.t = "e";
|
|
15873
|
+
vv = BErr[cell.v = 36];
|
|
15874
|
+
} else if (!isFinite(cell.v)) {
|
|
15875
|
+
cell.t = "e";
|
|
15876
|
+
vv = BErr[cell.v = 7];
|
|
15877
|
+
} else vv = "" + cell.v;
|
|
15655
15878
|
break;
|
|
15656
15879
|
case "e":
|
|
15657
15880
|
vv = BErr[cell.v];
|
|
15658
15881
|
break;
|
|
15659
15882
|
case "d":
|
|
15660
|
-
if (opts && opts.cellDates)
|
|
15661
|
-
|
|
15883
|
+
if (opts && opts.cellDates) {
|
|
15884
|
+
var _vv = parseDate(cell.v, date1904);
|
|
15885
|
+
vv = _vv.toISOString();
|
|
15886
|
+
if (_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf("T") + 1).replace("Z", "");
|
|
15887
|
+
} else {
|
|
15662
15888
|
cell = dup(cell);
|
|
15663
15889
|
cell.t = "n";
|
|
15664
|
-
vv = "" + (cell.v = datenum(parseDate(cell.v)));
|
|
15890
|
+
vv = "" + (cell.v = datenum(parseDate(cell.v, date1904), date1904));
|
|
15665
15891
|
}
|
|
15666
15892
|
if (typeof cell.z === "undefined") cell.z = table_fmt[14];
|
|
15667
15893
|
break;
|
|
@@ -15669,7 +15895,7 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15669
15895
|
vv = cell.v;
|
|
15670
15896
|
break;
|
|
15671
15897
|
}
|
|
15672
|
-
var v = writetag("v", escapexml(vv)), o = { r: ref2 };
|
|
15898
|
+
var v = cell.t == "z" || cell.v == null ? "" : writetag("v", escapexml(vv)), o = { r: ref2 };
|
|
15673
15899
|
var os = get_cell_style(opts.cellXfs, cell, opts);
|
|
15674
15900
|
if (os !== 0) o.s = os;
|
|
15675
15901
|
switch (cell.t) {
|
|
@@ -15696,8 +15922,7 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15696
15922
|
v = writetag("v", "" + get_sst_id(opts.Strings, cell.v, opts.revStrings));
|
|
15697
15923
|
o.t = "s";
|
|
15698
15924
|
break;
|
|
15699
|
-
}
|
|
15700
|
-
o.t = "str";
|
|
15925
|
+
} else o.t = "str";
|
|
15701
15926
|
break;
|
|
15702
15927
|
}
|
|
15703
15928
|
if (cell.t != oldt) {
|
|
@@ -15708,23 +15933,28 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15708
15933
|
var ff = cell.F && cell.F.slice(0, ref2.length) == ref2 ? { t: "array", ref: cell.F } : null;
|
|
15709
15934
|
v = writextag("f", escapexml(cell.f), ff) + (cell.v != null ? v : "");
|
|
15710
15935
|
}
|
|
15711
|
-
if (cell.l)
|
|
15936
|
+
if (cell.l) {
|
|
15937
|
+
cell.l.display = escapexml(vv);
|
|
15938
|
+
ws["!links"].push([ref2, cell.l]);
|
|
15939
|
+
}
|
|
15712
15940
|
if (cell.D) o.cm = 1;
|
|
15713
15941
|
return writextag("c", v, o);
|
|
15714
15942
|
}
|
|
15715
15943
|
function write_ws_xml_data(ws, opts, idx, wb) {
|
|
15716
15944
|
var o = [], r = [], range2 = safe_decode_range(ws["!ref"]), cell = "", ref2, rr = "", cols = [], R = 0, C = 0, rows = ws["!rows"];
|
|
15717
|
-
var dense =
|
|
15945
|
+
var dense = ws["!data"] != null, data = dense ? ws["!data"] : [];
|
|
15718
15946
|
var params = { r: rr }, row, height = -1;
|
|
15947
|
+
var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
|
|
15719
15948
|
for (C = range2.s.c; C <= range2.e.c; ++C) cols[C] = encode_col(C);
|
|
15720
15949
|
for (R = range2.s.r; R <= range2.e.r; ++R) {
|
|
15721
15950
|
r = [];
|
|
15722
15951
|
rr = encode_row(R);
|
|
15952
|
+
var data_R = dense ? data[R] : [];
|
|
15723
15953
|
for (C = range2.s.c; C <= range2.e.c; ++C) {
|
|
15724
15954
|
ref2 = cols[C] + rr;
|
|
15725
|
-
var _cell = dense ?
|
|
15955
|
+
var _cell = dense ? data_R[C] : ws[ref2];
|
|
15726
15956
|
if (_cell === void 0) continue;
|
|
15727
|
-
if ((cell = write_ws_xml_cell(_cell, ref2, ws, opts)) != null) r.push(cell);
|
|
15957
|
+
if ((cell = write_ws_xml_cell(_cell, ref2, ws, opts, idx, wb, date1904)) != null) r.push(cell);
|
|
15728
15958
|
}
|
|
15729
15959
|
if (r.length > 0 || rows && rows[R]) {
|
|
15730
15960
|
params = { r: rr };
|
|
@@ -15796,7 +16026,7 @@ function write_ws_xml(idx, opts, wb, rels) {
|
|
|
15796
16026
|
o[sidx = o.length] = "<sheetData/>";
|
|
15797
16027
|
ws["!links"] = [];
|
|
15798
16028
|
if (ws["!ref"] != null) {
|
|
15799
|
-
rdata = write_ws_xml_data(ws, opts);
|
|
16029
|
+
rdata = write_ws_xml_data(ws, opts, idx, wb);
|
|
15800
16030
|
if (rdata.length > 0) o[o.length] = rdata;
|
|
15801
16031
|
}
|
|
15802
16032
|
if (o.length > sidx + 1) {
|
|
@@ -15816,11 +16046,12 @@ function write_ws_xml(idx, opts, wb, rels) {
|
|
|
15816
16046
|
if (!l[1].Target) return;
|
|
15817
16047
|
rel = { "ref": l[0] };
|
|
15818
16048
|
if (l[1].Target.charAt(0) != "#") {
|
|
15819
|
-
rId = add_rels(rels, -1, escapexml(l[1].Target).replace(
|
|
16049
|
+
rId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#[\s\S]*$/, ""), RELS.HLINK);
|
|
15820
16050
|
rel["r:id"] = "rId" + rId;
|
|
15821
16051
|
}
|
|
15822
16052
|
if ((relc = l[1].Target.indexOf("#")) > -1) rel.location = escapexml(l[1].Target.slice(relc + 1));
|
|
15823
16053
|
if (l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);
|
|
16054
|
+
rel.display = l[1].display;
|
|
15824
16055
|
o[o.length] = writextag("hyperlink", null, rel);
|
|
15825
16056
|
});
|
|
15826
16057
|
o[o.length] = "</hyperlinks>";
|
|
@@ -15864,17 +16095,21 @@ var WBPropsDef = [
|
|
|
15864
16095
|
["showPivotChartFilter", false, "bool"],
|
|
15865
16096
|
["updateLinks", "userSet"]
|
|
15866
16097
|
];
|
|
15867
|
-
var badchars = /* @__PURE__ */ "][*?/\\".split("");
|
|
16098
|
+
var badchars = /* @__PURE__ */ ":][*?/\\".split("");
|
|
15868
16099
|
function check_ws_name(n, safe) {
|
|
15869
|
-
|
|
15870
|
-
throw new Error("Sheet
|
|
16100
|
+
try {
|
|
16101
|
+
if (n == "") throw new Error("Sheet name cannot be blank");
|
|
16102
|
+
if (n.length > 31) throw new Error("Sheet name cannot exceed 31 chars");
|
|
16103
|
+
if (n.charCodeAt(0) == 39 || n.charCodeAt(n.length - 1) == 39) throw new Error("Sheet name cannot start or end with apostrophe (')");
|
|
16104
|
+
if (n.toLowerCase() == "history") throw new Error("Sheet name cannot be 'History'");
|
|
16105
|
+
badchars.forEach(function(c) {
|
|
16106
|
+
if (n.indexOf(c) == -1) return;
|
|
16107
|
+
throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
|
|
16108
|
+
});
|
|
16109
|
+
} catch (e) {
|
|
16110
|
+
throw e;
|
|
15871
16111
|
}
|
|
15872
|
-
|
|
15873
|
-
badchars.forEach(function(c) {
|
|
15874
|
-
if (n.indexOf(c) == -1) return;
|
|
15875
|
-
throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
|
|
15876
|
-
});
|
|
15877
|
-
return _good;
|
|
16112
|
+
return true;
|
|
15878
16113
|
}
|
|
15879
16114
|
function check_wb_names(N, S, codes) {
|
|
15880
16115
|
N.forEach(function(n, i) {
|
|
@@ -15892,6 +16127,19 @@ function check_wb(wb) {
|
|
|
15892
16127
|
var Sheets = wb.Workbook && wb.Workbook.Sheets || [];
|
|
15893
16128
|
check_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);
|
|
15894
16129
|
for (var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);
|
|
16130
|
+
wb.SheetNames.forEach(function(n, i2) {
|
|
16131
|
+
var ws = wb.Sheets[n];
|
|
16132
|
+
if (!ws || !ws["!autofilter"]) return;
|
|
16133
|
+
var DN;
|
|
16134
|
+
if (!wb.Workbook) wb.Workbook = {};
|
|
16135
|
+
if (!wb.Workbook.Names) wb.Workbook.Names = [];
|
|
16136
|
+
wb.Workbook.Names.forEach(function(dn) {
|
|
16137
|
+
if (dn.Name == "_xlnm._FilterDatabase" && dn.Sheet == i2) DN = dn;
|
|
16138
|
+
});
|
|
16139
|
+
var nn = formula_quote_sheet_name(n) + "!" + fix_range(ws["!autofilter"].ref);
|
|
16140
|
+
if (DN) DN.Ref = nn;
|
|
16141
|
+
else wb.Workbook.Names.push({ Name: "_xlnm._FilterDatabase", Sheet: i2, Ref: nn });
|
|
16142
|
+
});
|
|
15895
16143
|
}
|
|
15896
16144
|
function write_wb_xml(wb) {
|
|
15897
16145
|
var o = [XML_HEADER];
|
|
@@ -15964,6 +16212,8 @@ function write_wb_xml(wb) {
|
|
|
15964
16212
|
function make_html_row(ws, r, R, o) {
|
|
15965
16213
|
var M = ws["!merges"] || [];
|
|
15966
16214
|
var oo = [];
|
|
16215
|
+
var sp = {};
|
|
16216
|
+
var dense = ws["!data"] != null;
|
|
15967
16217
|
for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
15968
16218
|
var RS = 0, CS = 0;
|
|
15969
16219
|
for (var j = 0; j < M.length; ++j) {
|
|
@@ -15978,18 +16228,22 @@ function make_html_row(ws, r, R, o) {
|
|
|
15978
16228
|
break;
|
|
15979
16229
|
}
|
|
15980
16230
|
if (RS < 0) continue;
|
|
15981
|
-
var coord =
|
|
15982
|
-
var cell =
|
|
16231
|
+
var coord = encode_col(C) + encode_row(R);
|
|
16232
|
+
var cell = dense ? (ws["!data"][R] || [])[C] : ws[coord];
|
|
16233
|
+
if (cell && cell.t == "n" && cell.v != null && !isFinite(cell.v)) {
|
|
16234
|
+
if (isNaN(cell.v)) cell = { t: "e", v: 36, w: BErr[36] };
|
|
16235
|
+
else cell = { t: "e", v: 7, w: BErr[7] };
|
|
16236
|
+
}
|
|
15983
16237
|
var w = cell && cell.v != null && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || "")) || "";
|
|
15984
|
-
|
|
16238
|
+
sp = {};
|
|
15985
16239
|
if (RS > 1) sp.rowspan = RS;
|
|
15986
16240
|
if (CS > 1) sp.colspan = CS;
|
|
15987
16241
|
if (o.editable) w = '<span contenteditable="true">' + w + "</span>";
|
|
15988
16242
|
else if (cell) {
|
|
15989
16243
|
sp["data-t"] = cell && cell.t || "z";
|
|
15990
|
-
if (cell.v != null) sp["data-v"] = cell.v;
|
|
16244
|
+
if (cell.v != null) sp["data-v"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);
|
|
15991
16245
|
if (cell.z != null) sp["data-z"] = cell.z;
|
|
15992
|
-
if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w = '<a href="' + cell.l.Target + '">' + w + "</a>";
|
|
16246
|
+
if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w = '<a href="' + escapehtml(cell.l.Target) + '">' + w + "</a>";
|
|
15993
16247
|
}
|
|
15994
16248
|
sp.id = (o.id || "sjs") + "-" + coord;
|
|
15995
16249
|
oo.push(writextag("td", w, sp));
|
|
@@ -16008,15 +16262,19 @@ function sheet_to_html(ws, opts) {
|
|
|
16008
16262
|
var header = o.header != null ? o.header : HTML_BEGIN;
|
|
16009
16263
|
var footer = o.footer != null ? o.footer : HTML_END;
|
|
16010
16264
|
var out = [header];
|
|
16011
|
-
var r = decode_range(ws["!ref"]);
|
|
16012
|
-
o.dense = Array.isArray(ws);
|
|
16265
|
+
var r = decode_range(ws["!ref"] || "A1");
|
|
16013
16266
|
out.push(make_html_preamble(ws, r, o));
|
|
16014
|
-
for (var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));
|
|
16267
|
+
if (ws["!ref"]) for (var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));
|
|
16015
16268
|
out.push("</table>" + footer);
|
|
16016
16269
|
return out.join("");
|
|
16017
16270
|
}
|
|
16018
16271
|
function sheet_add_dom(ws, table, _opts) {
|
|
16272
|
+
var rows = table.rows;
|
|
16273
|
+
if (!rows) {
|
|
16274
|
+
throw "Unsupported origin when " + table.tagName + " is not a TABLE";
|
|
16275
|
+
}
|
|
16019
16276
|
var opts = _opts || {};
|
|
16277
|
+
var dense = ws["!data"] != null;
|
|
16020
16278
|
var or_R = 0, or_C = 0;
|
|
16021
16279
|
if (opts.origin != null) {
|
|
16022
16280
|
if (typeof opts.origin == "number") or_R = opts.origin;
|
|
@@ -16026,7 +16284,6 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16026
16284
|
or_C = _origin.c;
|
|
16027
16285
|
}
|
|
16028
16286
|
}
|
|
16029
|
-
var rows = table.getElementsByTagName("tr");
|
|
16030
16287
|
var sheetRows = Math.min(opts.sheetRows || 1e7, rows.length);
|
|
16031
16288
|
var range2 = { s: { r: 0, c: 0 }, e: { r: or_R, c: or_C } };
|
|
16032
16289
|
if (ws["!ref"]) {
|
|
@@ -16047,7 +16304,7 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16047
16304
|
if (opts.display) continue;
|
|
16048
16305
|
rowinfo[R] = { hidden: true };
|
|
16049
16306
|
}
|
|
16050
|
-
var elts = row.
|
|
16307
|
+
var elts = row.cells;
|
|
16051
16308
|
for (_C = C = 0; _C < elts.length; ++_C) {
|
|
16052
16309
|
var elt = elts[_C];
|
|
16053
16310
|
if (opts.display && is_dom_element_hidden(elt)) continue;
|
|
@@ -16067,14 +16324,16 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16067
16324
|
if (v != null) {
|
|
16068
16325
|
if (v.length == 0) o.t = _t || "z";
|
|
16069
16326
|
else if (opts.raw || v.trim().length == 0 || _t == "s") ;
|
|
16327
|
+
else if (_t == "e" && BErr[+v]) o = { t: "e", v: +v, w: BErr[+v] };
|
|
16070
16328
|
else if (v === "TRUE") o = { t: "b", v: true };
|
|
16071
16329
|
else if (v === "FALSE") o = { t: "b", v: false };
|
|
16072
16330
|
else if (!isNaN(fuzzynum(v))) o = { t: "n", v: fuzzynum(v) };
|
|
16073
16331
|
else if (!isNaN(fuzzydate(v).getDate())) {
|
|
16074
16332
|
o = { t: "d", v: parseDate(v) };
|
|
16333
|
+
if (opts.UTC) o.v = local_to_utc(o.v);
|
|
16075
16334
|
if (!opts.cellDates) o = { t: "n", v: datenum(o.v) };
|
|
16076
16335
|
o.z = opts.dateNF || table_fmt[14];
|
|
16077
|
-
}
|
|
16336
|
+
} else if (v.charCodeAt(0) == 35 && RBErr[v] != null) o = { t: "e", v: RBErr[v], w: v };
|
|
16078
16337
|
}
|
|
16079
16338
|
if (o.z === void 0 && z != null) o.z = z;
|
|
16080
16339
|
var l = "", Aelts = elt.getElementsByTagName("A");
|
|
@@ -16084,10 +16343,10 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16084
16343
|
if (l.charAt(0) != "#") break;
|
|
16085
16344
|
}
|
|
16086
16345
|
}
|
|
16087
|
-
if (l && l.charAt(0) != "#") o.l = { Target: l };
|
|
16088
|
-
if (
|
|
16089
|
-
if (!ws[R + or_R]) ws[R + or_R] = [];
|
|
16090
|
-
ws[R + or_R][C + or_C] = o;
|
|
16346
|
+
if (l && l.charAt(0) != "#" && l.slice(0, 11).toLowerCase() != "javascript:") o.l = { Target: l };
|
|
16347
|
+
if (dense) {
|
|
16348
|
+
if (!ws["!data"][R + or_R]) ws["!data"][R + or_R] = [];
|
|
16349
|
+
ws["!data"][R + or_R][C + or_C] = o;
|
|
16091
16350
|
} else ws[encode_cell({ c: C + or_C, r: R + or_R })] = o;
|
|
16092
16351
|
if (range2.e.c < C + or_C) range2.e.c = C + or_C;
|
|
16093
16352
|
C += CS;
|
|
@@ -16102,11 +16361,13 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16102
16361
|
}
|
|
16103
16362
|
function parse_dom_table(table, _opts) {
|
|
16104
16363
|
var opts = _opts || {};
|
|
16105
|
-
var ws =
|
|
16364
|
+
var ws = {};
|
|
16365
|
+
if (opts.dense) ws["!data"] = [];
|
|
16106
16366
|
return sheet_add_dom(ws, table, _opts);
|
|
16107
16367
|
}
|
|
16108
16368
|
function table_to_book(table, opts) {
|
|
16109
|
-
|
|
16369
|
+
var o = sheet_to_workbook(parse_dom_table(table, opts), opts);
|
|
16370
|
+
return o;
|
|
16110
16371
|
}
|
|
16111
16372
|
function is_dom_element_hidden(element) {
|
|
16112
16373
|
var display = "";
|
|
@@ -16120,6 +16381,25 @@ function get_get_computed_style_function(element) {
|
|
|
16120
16381
|
if (typeof getComputedStyle === "function") return getComputedStyle;
|
|
16121
16382
|
return null;
|
|
16122
16383
|
}
|
|
16384
|
+
/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */
|
|
16385
|
+
(function() {
|
|
16386
|
+
try {
|
|
16387
|
+
if (typeof Uint8Array == "undefined")
|
|
16388
|
+
return "slice";
|
|
16389
|
+
if (typeof Uint8Array.prototype.subarray == "undefined")
|
|
16390
|
+
return "slice";
|
|
16391
|
+
if (typeof Buffer !== "undefined") {
|
|
16392
|
+
if (typeof Buffer.prototype.subarray == "undefined")
|
|
16393
|
+
return "slice";
|
|
16394
|
+
if ((typeof Buffer.from == "function" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)
|
|
16395
|
+
return "subarray";
|
|
16396
|
+
return "slice";
|
|
16397
|
+
}
|
|
16398
|
+
return "subarray";
|
|
16399
|
+
} catch (e) {
|
|
16400
|
+
return "slice";
|
|
16401
|
+
}
|
|
16402
|
+
})();
|
|
16123
16403
|
function fix_opts_func(defaults) {
|
|
16124
16404
|
return function fix_opts(opts) {
|
|
16125
16405
|
for (var i = 0; i != defaults.length; ++i) {
|
|
@@ -16144,7 +16424,6 @@ function fix_write_opts(opts) {
|
|
|
16144
16424
|
])(opts);
|
|
16145
16425
|
}
|
|
16146
16426
|
function write_zip_xlsx(wb, opts) {
|
|
16147
|
-
_shapeid = 1024;
|
|
16148
16427
|
if (wb && !wb.SSF) {
|
|
16149
16428
|
wb.SSF = dup(table_fmt);
|
|
16150
16429
|
}
|
|
@@ -16226,10 +16505,10 @@ function write_zip_xlsx(wb, opts) {
|
|
|
16226
16505
|
});
|
|
16227
16506
|
});
|
|
16228
16507
|
if (needtc) {
|
|
16229
|
-
cf = "xl/threadedComments/threadedComment" + rId + "."
|
|
16508
|
+
cf = "xl/threadedComments/threadedComment" + rId + ".xml";
|
|
16230
16509
|
zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
|
|
16231
16510
|
ct.threadedcomments.push(cf);
|
|
16232
|
-
add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + "."
|
|
16511
|
+
add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
|
|
16233
16512
|
}
|
|
16234
16513
|
cf = "xl/comments" + rId + "." + wbext;
|
|
16235
16514
|
zip_add_file(zip, cf, write_comments_xml(comments));
|
|
@@ -16238,7 +16517,7 @@ function write_zip_xlsx(wb, opts) {
|
|
|
16238
16517
|
need_vml = true;
|
|
16239
16518
|
}
|
|
16240
16519
|
if (ws["!legacy"]) {
|
|
16241
|
-
if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml",
|
|
16520
|
+
if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
|
|
16242
16521
|
}
|
|
16243
16522
|
delete ws["!comments"];
|
|
16244
16523
|
delete ws["!legacy"];
|
|
@@ -16363,10 +16642,10 @@ function writeSyncXLSX(wb, opts) {
|
|
|
16363
16642
|
}
|
|
16364
16643
|
return write_zip_typeXLSX(wb, o);
|
|
16365
16644
|
}
|
|
16366
|
-
function make_json_row(sheet, r, R, cols, header, hdr,
|
|
16645
|
+
function make_json_row(sheet, r, R, cols, header, hdr, o) {
|
|
16367
16646
|
var rr = encode_row(R);
|
|
16368
16647
|
var defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, "raw");
|
|
16369
|
-
var isempty = true;
|
|
16648
|
+
var isempty = true, dense = sheet["!data"] != null;
|
|
16370
16649
|
var row = header === 1 ? [] : {};
|
|
16371
16650
|
if (header !== 1) {
|
|
16372
16651
|
if (Object.defineProperty) try {
|
|
@@ -16376,9 +16655,9 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16376
16655
|
}
|
|
16377
16656
|
else row.__rowNum__ = R;
|
|
16378
16657
|
}
|
|
16379
|
-
if (!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16380
|
-
var val = dense ? sheet[R][C] : sheet[cols[C] + rr];
|
|
16381
|
-
if (val
|
|
16658
|
+
if (!dense || sheet["!data"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16659
|
+
var val = dense ? (sheet["!data"][R] || [])[C] : sheet[cols[C] + rr];
|
|
16660
|
+
if (val == null || val.t === void 0) {
|
|
16382
16661
|
if (defval === void 0) continue;
|
|
16383
16662
|
if (hdr[C] != null) {
|
|
16384
16663
|
row[hdr[C]] = defval;
|
|
@@ -16394,9 +16673,14 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16394
16673
|
v = v == 0 ? null : void 0;
|
|
16395
16674
|
break;
|
|
16396
16675
|
case "s":
|
|
16397
|
-
case "d":
|
|
16398
16676
|
case "b":
|
|
16399
16677
|
case "n":
|
|
16678
|
+
if (!val.z || !fmt_is_date(val.z)) break;
|
|
16679
|
+
v = numdate(v);
|
|
16680
|
+
if (typeof v == "number") break;
|
|
16681
|
+
/* falls through */
|
|
16682
|
+
case "d":
|
|
16683
|
+
if (!(o && (o.UTC || o.raw === false))) v = utc_to_local(new Date(v));
|
|
16400
16684
|
break;
|
|
16401
16685
|
default:
|
|
16402
16686
|
throw new Error("unrecognized type " + val.t);
|
|
@@ -16408,7 +16692,7 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16408
16692
|
else if (raw && v === null) row[hdr[C]] = null;
|
|
16409
16693
|
else continue;
|
|
16410
16694
|
} else {
|
|
16411
|
-
row[hdr[C]] =
|
|
16695
|
+
row[hdr[C]] = (val.t === "n" && typeof o.rawNumbers === "boolean" ? o.rawNumbers : raw) ? v : format_cell(val, v, o);
|
|
16412
16696
|
}
|
|
16413
16697
|
if (v != null) isempty = false;
|
|
16414
16698
|
}
|
|
@@ -16441,16 +16725,16 @@ function sheet_to_json(sheet, opts) {
|
|
|
16441
16725
|
var cols = [];
|
|
16442
16726
|
var out = [];
|
|
16443
16727
|
var outi = 0, counter = 0;
|
|
16444
|
-
var dense =
|
|
16728
|
+
var dense = sheet["!data"] != null;
|
|
16445
16729
|
var R = r.s.r, C = 0;
|
|
16446
16730
|
var header_cnt = {};
|
|
16447
|
-
if (dense && !sheet[R]) sheet[R] = [];
|
|
16731
|
+
if (dense && !sheet["!data"][R]) sheet["!data"][R] = [];
|
|
16448
16732
|
var colinfo = o.skipHidden && sheet["!cols"] || [];
|
|
16449
16733
|
var rowinfo = o.skipHidden && sheet["!rows"] || [];
|
|
16450
16734
|
for (C = r.s.c; C <= r.e.c; ++C) {
|
|
16451
16735
|
if ((colinfo[C] || {}).hidden) continue;
|
|
16452
16736
|
cols[C] = encode_col(C);
|
|
16453
|
-
val = dense ? sheet[R][C] : sheet[cols[C] + rr];
|
|
16737
|
+
val = dense ? sheet["!data"][R][C] : sheet[cols[C] + rr];
|
|
16454
16738
|
switch (header) {
|
|
16455
16739
|
case 1:
|
|
16456
16740
|
hdr[C] = C - r.s.c;
|
|
@@ -16478,19 +16762,21 @@ function sheet_to_json(sheet, opts) {
|
|
|
16478
16762
|
}
|
|
16479
16763
|
for (R = r.s.r + offset; R <= r.e.r; ++R) {
|
|
16480
16764
|
if ((rowinfo[R] || {}).hidden) continue;
|
|
16481
|
-
var row = make_json_row(sheet, r, R, cols, header, hdr,
|
|
16765
|
+
var row = make_json_row(sheet, r, R, cols, header, hdr, o);
|
|
16482
16766
|
if (row.isempty === false || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;
|
|
16483
16767
|
}
|
|
16484
16768
|
out.length = outi;
|
|
16485
16769
|
return out;
|
|
16486
16770
|
}
|
|
16487
16771
|
var qreg = /"/g;
|
|
16488
|
-
function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
16772
|
+
function make_csv_row(sheet, r, R, cols, fs, rs, FS, w, o) {
|
|
16489
16773
|
var isempty = true;
|
|
16490
16774
|
var row = [], txt = "", rr = encode_row(R);
|
|
16775
|
+
var dense = sheet["!data"] != null;
|
|
16776
|
+
var datarow = dense && sheet["!data"][R] || [];
|
|
16491
16777
|
for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16492
16778
|
if (!cols[C]) continue;
|
|
16493
|
-
var val =
|
|
16779
|
+
var val = dense ? datarow[C] : sheet[cols[C] + rr];
|
|
16494
16780
|
if (val == null) txt = "";
|
|
16495
16781
|
else if (val.v != null) {
|
|
16496
16782
|
isempty = false;
|
|
@@ -16499,7 +16785,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
|
16499
16785
|
txt = '"' + txt.replace(qreg, '""') + '"';
|
|
16500
16786
|
break;
|
|
16501
16787
|
}
|
|
16502
|
-
if (txt == "ID") txt = '"ID"';
|
|
16788
|
+
if (txt == "ID" && w == 0 && row.length == 0) txt = '"ID"';
|
|
16503
16789
|
} else if (val.f != null && !val.F) {
|
|
16504
16790
|
isempty = false;
|
|
16505
16791
|
txt = "=" + val.f;
|
|
@@ -16507,6 +16793,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
|
16507
16793
|
} else txt = "";
|
|
16508
16794
|
row.push(txt);
|
|
16509
16795
|
}
|
|
16796
|
+
if (o.strip) while (row[row.length - 1] === "") --row.length;
|
|
16510
16797
|
if (o.blankrows === false && isempty) return null;
|
|
16511
16798
|
return row.join(FS);
|
|
16512
16799
|
}
|
|
@@ -16517,23 +16804,19 @@ function sheet_to_csv(sheet, opts) {
|
|
|
16517
16804
|
var r = safe_decode_range(sheet["!ref"]);
|
|
16518
16805
|
var FS = o.FS !== void 0 ? o.FS : ",", fs = FS.charCodeAt(0);
|
|
16519
16806
|
var RS = o.RS !== void 0 ? o.RS : "\n", rs = RS.charCodeAt(0);
|
|
16520
|
-
var endregex = new RegExp((FS == "|" ? "\\|" : FS) + "+$");
|
|
16521
16807
|
var row = "", cols = [];
|
|
16522
|
-
o.dense = Array.isArray(sheet);
|
|
16523
16808
|
var colinfo = o.skipHidden && sheet["!cols"] || [];
|
|
16524
16809
|
var rowinfo = o.skipHidden && sheet["!rows"] || [];
|
|
16525
16810
|
for (var C = r.s.c; C <= r.e.c; ++C) if (!(colinfo[C] || {}).hidden) cols[C] = encode_col(C);
|
|
16526
16811
|
var w = 0;
|
|
16527
16812
|
for (var R = r.s.r; R <= r.e.r; ++R) {
|
|
16528
16813
|
if ((rowinfo[R] || {}).hidden) continue;
|
|
16529
|
-
row = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);
|
|
16814
|
+
row = make_csv_row(sheet, r, R, cols, fs, rs, FS, w, o);
|
|
16530
16815
|
if (row == null) {
|
|
16531
16816
|
continue;
|
|
16532
16817
|
}
|
|
16533
|
-
if (o.strip) row = row.replace(endregex, "");
|
|
16534
16818
|
if (row || o.blankrows !== false) out.push((w++ ? RS : "") + row);
|
|
16535
16819
|
}
|
|
16536
|
-
delete o.dense;
|
|
16537
16820
|
return out.join("");
|
|
16538
16821
|
}
|
|
16539
16822
|
function sheet_to_txt(sheet, opts) {
|
|
@@ -16543,18 +16826,18 @@ function sheet_to_txt(sheet, opts) {
|
|
|
16543
16826
|
var s = sheet_to_csv(sheet, opts);
|
|
16544
16827
|
return s;
|
|
16545
16828
|
}
|
|
16546
|
-
function sheet_to_formulae(sheet) {
|
|
16829
|
+
function sheet_to_formulae(sheet, opts) {
|
|
16547
16830
|
var y = "", x, val = "";
|
|
16548
16831
|
if (sheet == null || sheet["!ref"] == null) return [];
|
|
16549
16832
|
var r = safe_decode_range(sheet["!ref"]), rr = "", cols = [], C;
|
|
16550
16833
|
var cmds = [];
|
|
16551
|
-
var dense =
|
|
16834
|
+
var dense = sheet["!data"] != null;
|
|
16552
16835
|
for (C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);
|
|
16553
16836
|
for (var R = r.s.r; R <= r.e.r; ++R) {
|
|
16554
16837
|
rr = encode_row(R);
|
|
16555
16838
|
for (C = r.s.c; C <= r.e.c; ++C) {
|
|
16556
16839
|
y = cols[C] + rr;
|
|
16557
|
-
x = dense ? (sheet[R] || [])[C] : sheet[y];
|
|
16840
|
+
x = dense ? (sheet["!data"][R] || [])[C] : sheet[y];
|
|
16558
16841
|
val = "";
|
|
16559
16842
|
if (x === void 0) continue;
|
|
16560
16843
|
else if (x.F != null) {
|
|
@@ -16564,6 +16847,7 @@ function sheet_to_formulae(sheet) {
|
|
|
16564
16847
|
if (y.indexOf(":") == -1) y = y + ":" + y;
|
|
16565
16848
|
}
|
|
16566
16849
|
if (x.f != null) val = x.f;
|
|
16850
|
+
else if (opts && opts.values === false) continue;
|
|
16567
16851
|
else if (x.t == "z") continue;
|
|
16568
16852
|
else if (x.t == "n" && x.v != null) val = "" + x.v;
|
|
16569
16853
|
else if (x.t == "b") val = x.v ? "TRUE" : "FALSE";
|
|
@@ -16578,8 +16862,10 @@ function sheet_to_formulae(sheet) {
|
|
|
16578
16862
|
}
|
|
16579
16863
|
function sheet_add_json(_ws, js, opts) {
|
|
16580
16864
|
var o = opts || {};
|
|
16865
|
+
var dense = _ws ? _ws["!data"] != null : o.dense;
|
|
16581
16866
|
var offset = +!o.skipHeader;
|
|
16582
16867
|
var ws = _ws || {};
|
|
16868
|
+
if (!_ws && dense) ws["!data"] = [];
|
|
16583
16869
|
var _R = 0, _C = 0;
|
|
16584
16870
|
if (ws && o.origin != null) {
|
|
16585
16871
|
if (typeof o.origin == "number") _R = o.origin;
|
|
@@ -16589,7 +16875,6 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16589
16875
|
_C = _origin.c;
|
|
16590
16876
|
}
|
|
16591
16877
|
}
|
|
16592
|
-
var cell;
|
|
16593
16878
|
var range2 = { s: { c: 0, r: 0 }, e: { c: _C, r: _R + js.length - 1 + offset } };
|
|
16594
16879
|
if (ws["!ref"]) {
|
|
16595
16880
|
var _range = safe_decode_range(ws["!ref"]);
|
|
@@ -16606,33 +16891,40 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16606
16891
|
}
|
|
16607
16892
|
}
|
|
16608
16893
|
var hdr = o.header || [], C = 0;
|
|
16894
|
+
var ROW = [];
|
|
16609
16895
|
js.forEach(function(JS, R) {
|
|
16896
|
+
if (dense && !ws["!data"][_R + R + offset]) ws["!data"][_R + R + offset] = [];
|
|
16897
|
+
if (dense) ROW = ws["!data"][_R + R + offset];
|
|
16610
16898
|
keys(JS).forEach(function(k) {
|
|
16611
16899
|
if ((C = hdr.indexOf(k)) == -1) hdr[C = hdr.length] = k;
|
|
16612
16900
|
var v = JS[k];
|
|
16613
16901
|
var t = "z";
|
|
16614
16902
|
var z = "";
|
|
16615
|
-
var ref2 =
|
|
16616
|
-
cell =
|
|
16903
|
+
var ref2 = dense ? "" : encode_col(_C + C) + encode_row(_R + R + offset);
|
|
16904
|
+
var cell = dense ? ROW[_C + C] : ws[ref2];
|
|
16617
16905
|
if (v && typeof v === "object" && !(v instanceof Date)) {
|
|
16618
|
-
|
|
16906
|
+
if (dense) ROW[_C + C] = v;
|
|
16907
|
+
else ws[ref2] = v;
|
|
16619
16908
|
} else {
|
|
16620
16909
|
if (typeof v == "number") t = "n";
|
|
16621
16910
|
else if (typeof v == "boolean") t = "b";
|
|
16622
16911
|
else if (typeof v == "string") t = "s";
|
|
16623
16912
|
else if (v instanceof Date) {
|
|
16624
16913
|
t = "d";
|
|
16914
|
+
if (!o.UTC) v = local_to_utc(v);
|
|
16625
16915
|
if (!o.cellDates) {
|
|
16626
16916
|
t = "n";
|
|
16627
16917
|
v = datenum(v);
|
|
16628
16918
|
}
|
|
16629
|
-
z = o.dateNF || table_fmt[14];
|
|
16919
|
+
z = cell != null && cell.z && fmt_is_date(cell.z) ? cell.z : o.dateNF || table_fmt[14];
|
|
16630
16920
|
} else if (v === null && o.nullError) {
|
|
16631
16921
|
t = "e";
|
|
16632
16922
|
v = 0;
|
|
16633
16923
|
}
|
|
16634
|
-
if (!cell)
|
|
16635
|
-
|
|
16924
|
+
if (!cell) {
|
|
16925
|
+
if (!dense) ws[ref2] = cell = { t, v };
|
|
16926
|
+
else ROW[_C + C] = cell = { t, v };
|
|
16927
|
+
} else {
|
|
16636
16928
|
cell.t = t;
|
|
16637
16929
|
cell.v = v;
|
|
16638
16930
|
delete cell.w;
|
|
@@ -16645,7 +16937,11 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16645
16937
|
});
|
|
16646
16938
|
range2.e.c = Math.max(range2.e.c, _C + hdr.length - 1);
|
|
16647
16939
|
var __R = encode_row(_R);
|
|
16648
|
-
if (
|
|
16940
|
+
if (dense && !ws["!data"][_R]) ws["!data"][_R] = [];
|
|
16941
|
+
if (offset) for (C = 0; C < hdr.length; ++C) {
|
|
16942
|
+
if (dense) ws["!data"][_R][C + _C] = { t: "s", v: hdr[C] };
|
|
16943
|
+
else ws[encode_col(C + _C) + __R] = { t: "s", v: hdr[C] };
|
|
16944
|
+
}
|
|
16649
16945
|
ws["!ref"] = encode_range(range2);
|
|
16650
16946
|
return ws;
|
|
16651
16947
|
}
|
|
@@ -16654,15 +16950,15 @@ function json_to_sheet(js, opts) {
|
|
|
16654
16950
|
}
|
|
16655
16951
|
function ws_get_cell_stub(ws, R, C) {
|
|
16656
16952
|
if (typeof R == "string") {
|
|
16657
|
-
if (
|
|
16953
|
+
if (ws["!data"] != null) {
|
|
16658
16954
|
var RC = decode_cell(R);
|
|
16659
|
-
if (!ws[RC.r]) ws[RC.r] = [];
|
|
16660
|
-
return ws[RC.r][RC.c] || (ws[RC.r][RC.c] = { t: "z" });
|
|
16955
|
+
if (!ws["!data"][RC.r]) ws["!data"][RC.r] = [];
|
|
16956
|
+
return ws["!data"][RC.r][RC.c] || (ws["!data"][RC.r][RC.c] = { t: "z" });
|
|
16661
16957
|
}
|
|
16662
16958
|
return ws[R] || (ws[R] = { t: "z" });
|
|
16663
16959
|
}
|
|
16664
16960
|
if (typeof R != "number") return ws_get_cell_stub(ws, encode_cell(R));
|
|
16665
|
-
return ws_get_cell_stub(ws,
|
|
16961
|
+
return ws_get_cell_stub(ws, encode_col(C || 0) + encode_row(R));
|
|
16666
16962
|
}
|
|
16667
16963
|
function wb_sheet_idx(wb, sh) {
|
|
16668
16964
|
if (typeof sh == "number") {
|
|
@@ -16674,8 +16970,10 @@ function wb_sheet_idx(wb, sh) {
|
|
|
16674
16970
|
throw new Error("Cannot find sheet name |" + sh + "|");
|
|
16675
16971
|
} else throw new Error("Cannot find sheet |" + sh + "|");
|
|
16676
16972
|
}
|
|
16677
|
-
function book_new() {
|
|
16678
|
-
|
|
16973
|
+
function book_new(ws, wsname) {
|
|
16974
|
+
var wb = { SheetNames: [], Sheets: {} };
|
|
16975
|
+
if (ws) book_append_sheet(wb, ws, wsname || "Sheet1");
|
|
16976
|
+
return wb;
|
|
16679
16977
|
}
|
|
16680
16978
|
function book_append_sheet(wb, ws, name, roll) {
|
|
16681
16979
|
var i = 1;
|
|
@@ -16683,10 +16981,10 @@ function book_append_sheet(wb, ws, name, roll) {
|
|
|
16683
16981
|
for (; i <= 65535; ++i, name = void 0) if (wb.SheetNames.indexOf(name = "Sheet" + i) == -1) break;
|
|
16684
16982
|
}
|
|
16685
16983
|
if (!name || wb.SheetNames.length >= 65535) throw new Error("Too many worksheets");
|
|
16686
|
-
if (roll && wb.SheetNames.indexOf(name) >= 0) {
|
|
16687
|
-
var m = name.match(
|
|
16688
|
-
i = m && +m[
|
|
16689
|
-
var root = m && m
|
|
16984
|
+
if (roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {
|
|
16985
|
+
var m = name.match(/\d+$/);
|
|
16986
|
+
i = m && +m[0] || 0;
|
|
16987
|
+
var root = m && name.slice(0, m.index) || name;
|
|
16690
16988
|
for (++i; i <= 65535; ++i) if (wb.SheetNames.indexOf(name = root + i) == -1) break;
|
|
16691
16989
|
}
|
|
16692
16990
|
check_ws_name(name);
|
|
@@ -16743,6 +17041,12 @@ function sheet_set_array_formula(ws, range2, formula, dynamic) {
|
|
|
16743
17041
|
if (dynamic) cell.D = true;
|
|
16744
17042
|
}
|
|
16745
17043
|
}
|
|
17044
|
+
var wsr = decode_range(ws["!ref"]);
|
|
17045
|
+
if (wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;
|
|
17046
|
+
if (wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;
|
|
17047
|
+
if (wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;
|
|
17048
|
+
if (wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;
|
|
17049
|
+
ws["!ref"] = encode_range(wsr);
|
|
16746
17050
|
return ws;
|
|
16747
17051
|
}
|
|
16748
17052
|
var utils$1 = {
|
|
@@ -16756,6 +17060,7 @@ var utils$1 = {
|
|
|
16756
17060
|
decode_cell,
|
|
16757
17061
|
decode_range,
|
|
16758
17062
|
format_cell,
|
|
17063
|
+
sheet_new,
|
|
16759
17064
|
sheet_add_aoa,
|
|
16760
17065
|
sheet_add_json,
|
|
16761
17066
|
sheet_add_dom,
|
|
@@ -16956,7 +17261,7 @@ class BarSeries extends XmlComponent {
|
|
|
16956
17261
|
errorBars,
|
|
16957
17262
|
categories,
|
|
16958
17263
|
values,
|
|
16959
|
-
|
|
17264
|
+
shapeFmt,
|
|
16960
17265
|
extensionList
|
|
16961
17266
|
} = _l, options = __objRest(_l, [
|
|
16962
17267
|
"invertIfNegative",
|
|
@@ -16967,7 +17272,7 @@ class BarSeries extends XmlComponent {
|
|
|
16967
17272
|
"errorBars",
|
|
16968
17273
|
"categories",
|
|
16969
17274
|
"values",
|
|
16970
|
-
"
|
|
17275
|
+
"shapeFmt",
|
|
16971
17276
|
"extensionList"
|
|
16972
17277
|
]);
|
|
16973
17278
|
super("c:ser");
|
|
@@ -17010,8 +17315,8 @@ class BarSeries extends XmlComponent {
|
|
|
17010
17315
|
})
|
|
17011
17316
|
);
|
|
17012
17317
|
}
|
|
17013
|
-
if (
|
|
17014
|
-
this.root.push(new StringEnumValueElement("c:shape",
|
|
17318
|
+
if (shapeFmt) {
|
|
17319
|
+
this.root.push(new StringEnumValueElement("c:shape", shapeFmt, ""));
|
|
17015
17320
|
}
|
|
17016
17321
|
if (extensionList) {
|
|
17017
17322
|
this.root.push(new ExtensionList(extensionList));
|
|
@@ -17146,10 +17451,12 @@ class LineSeries extends XmlComponent {
|
|
|
17146
17451
|
this.root.push(new DataPoint(item));
|
|
17147
17452
|
});
|
|
17148
17453
|
this.root.push(
|
|
17149
|
-
new DataLabels(__spreadValues(__spreadValues({}, dataLabels && "delete" in dataLabels ? {} : {
|
|
17454
|
+
new DataLabels(__spreadValues(__spreadProps(__spreadValues({}, dataLabels && "delete" in dataLabels ? {} : {
|
|
17150
17455
|
numFmt: __spreadValues({
|
|
17151
17456
|
formatCode: "#,##0"
|
|
17152
17457
|
}, dataLabels == null ? void 0 : dataLabels.numFmt)
|
|
17458
|
+
}), {
|
|
17459
|
+
position: DataLabelPosition.TOP
|
|
17153
17460
|
}), dataLabels))
|
|
17154
17461
|
);
|
|
17155
17462
|
trendlines == null ? void 0 : trendlines.forEach((item) => {
|
|
@@ -17196,13 +17503,9 @@ const addLineChartSharedOptions = (root, { categories, grouping, series, varyCol
|
|
|
17196
17503
|
series == null ? void 0 : series.forEach((item, index) => {
|
|
17197
17504
|
root.push(new LineSeries(__spreadProps(__spreadValues({ categories }, item), { index, refOffset })));
|
|
17198
17505
|
});
|
|
17199
|
-
|
|
17200
|
-
new DataLabels(
|
|
17201
|
-
|
|
17202
|
-
formatCode: "#,##0"
|
|
17203
|
-
}, dataLabels == null ? void 0 : dataLabels.numFmt)
|
|
17204
|
-
}), dataLabels))
|
|
17205
|
-
);
|
|
17506
|
+
if (dataLabels) {
|
|
17507
|
+
root.push(new DataLabels(dataLabels));
|
|
17508
|
+
}
|
|
17206
17509
|
if ((lines == null ? void 0 : lines.drop) !== void 0) {
|
|
17207
17510
|
root.push(
|
|
17208
17511
|
new BuilderElement({
|