@sunertech/docx 10.0.1 → 10.0.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/dist/index.cjs +574 -269
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.iife.js +574 -269
- package/dist/index.mjs +574 -269
- package/dist/index.umd.cjs +574 -269
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -10485,9 +10485,34 @@ function Base64_encode(input) {
|
|
|
10485
10485
|
}
|
|
10486
10486
|
return o;
|
|
10487
10487
|
}
|
|
10488
|
+
function Base64_encode_arr(input) {
|
|
10489
|
+
var o = "";
|
|
10490
|
+
var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
|
|
10491
|
+
for (var i = 0; i < input.length; ) {
|
|
10492
|
+
c1 = input[i++];
|
|
10493
|
+
e1 = c1 >> 2;
|
|
10494
|
+
c2 = input[i++];
|
|
10495
|
+
e2 = (c1 & 3) << 4 | c2 >> 4;
|
|
10496
|
+
c3 = input[i++];
|
|
10497
|
+
e3 = (c2 & 15) << 2 | c3 >> 6;
|
|
10498
|
+
e4 = c3 & 63;
|
|
10499
|
+
if (isNaN(c2)) {
|
|
10500
|
+
e3 = e4 = 64;
|
|
10501
|
+
} else if (isNaN(c3)) {
|
|
10502
|
+
e4 = 64;
|
|
10503
|
+
}
|
|
10504
|
+
o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);
|
|
10505
|
+
}
|
|
10506
|
+
return o;
|
|
10507
|
+
}
|
|
10488
10508
|
function Base64_decode(input) {
|
|
10489
10509
|
var o = "";
|
|
10490
10510
|
var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;
|
|
10511
|
+
if (input.slice(0, 5) == "data:") {
|
|
10512
|
+
var i = input.slice(0, 1024).indexOf(";base64,");
|
|
10513
|
+
if (i > -1)
|
|
10514
|
+
input = input.slice(i + 8);
|
|
10515
|
+
}
|
|
10491
10516
|
input = input.replace(/[^\w\+\/\=]/g, "");
|
|
10492
10517
|
for (var i = 0; i < input.length; ) {
|
|
10493
10518
|
e1 = Base64_map.indexOf(input.charAt(i++));
|
|
@@ -10525,6 +10550,13 @@ var Buffer_from = /* @__PURE__ */ (function() {
|
|
|
10525
10550
|
return function() {
|
|
10526
10551
|
};
|
|
10527
10552
|
})();
|
|
10553
|
+
var buf_utf16le = /* @__PURE__ */ (function() {
|
|
10554
|
+
if (typeof Buffer === "undefined") return false;
|
|
10555
|
+
var x = Buffer_from([65, 0]);
|
|
10556
|
+
if (!x) return false;
|
|
10557
|
+
var o = x.toString("utf16le");
|
|
10558
|
+
return o.length == 1;
|
|
10559
|
+
})();
|
|
10528
10560
|
function new_raw_buf(len) {
|
|
10529
10561
|
if (has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);
|
|
10530
10562
|
return typeof Uint8Array != "undefined" ? new Uint8Array(len) : new Array(len);
|
|
@@ -10570,9 +10602,8 @@ var bconcat = has_buf ? function(bufs) {
|
|
|
10570
10602
|
for (i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {
|
|
10571
10603
|
len = bufs[i].length;
|
|
10572
10604
|
if (bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);
|
|
10573
|
-
else if (typeof bufs[i] == "string")
|
|
10574
|
-
|
|
10575
|
-
} else o.set(new Uint8Array(bufs[i]), maxlen);
|
|
10605
|
+
else if (typeof bufs[i] == "string") o.set(new Uint8Array(s2a(bufs[i])), maxlen);
|
|
10606
|
+
else o.set(new Uint8Array(bufs[i]), maxlen);
|
|
10576
10607
|
}
|
|
10577
10608
|
return o;
|
|
10578
10609
|
}
|
|
@@ -10841,8 +10872,19 @@ function SSF_frac(x, D, mixed) {
|
|
|
10841
10872
|
var q = Math.floor(sgn * P / Q);
|
|
10842
10873
|
return [q, sgn * P - q * Q, Q];
|
|
10843
10874
|
}
|
|
10875
|
+
function SSF_normalize_xl_unsafe(v) {
|
|
10876
|
+
var s = v.toPrecision(16);
|
|
10877
|
+
if (s.indexOf("e") > -1) {
|
|
10878
|
+
var m = s.slice(0, s.indexOf("e"));
|
|
10879
|
+
m = m.indexOf(".") > -1 ? m.slice(0, m.slice(0, 2) == "0." ? 17 : 16) : m.slice(0, 15) + fill("0", m.length - 15);
|
|
10880
|
+
return m + s.slice(s.indexOf("e"));
|
|
10881
|
+
}
|
|
10882
|
+
var n = s.indexOf(".") > -1 ? s.slice(0, s.slice(0, 2) == "0." ? 17 : 16) : s.slice(0, 15) + fill("0", s.length - 15);
|
|
10883
|
+
return Number(n);
|
|
10884
|
+
}
|
|
10844
10885
|
function SSF_parse_date_code(v, opts, b2) {
|
|
10845
10886
|
if (v > 2958465 || v < 0) return null;
|
|
10887
|
+
v = SSF_normalize_xl_unsafe(v);
|
|
10846
10888
|
var date = v | 0, time = Math.floor(86400 * (v - date)), dow = 0;
|
|
10847
10889
|
var dout = [];
|
|
10848
10890
|
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 };
|
|
@@ -10882,15 +10924,6 @@ function SSF_parse_date_code(v, opts, b2) {
|
|
|
10882
10924
|
out.q = dow;
|
|
10883
10925
|
return out;
|
|
10884
10926
|
}
|
|
10885
|
-
var SSFbasedate = /* @__PURE__ */ new Date(1899, 11, 31, 0, 0, 0);
|
|
10886
|
-
var SSFdnthresh = /* @__PURE__ */ SSFbasedate.getTime();
|
|
10887
|
-
var SSFbase1904 = /* @__PURE__ */ new Date(1900, 2, 1, 0, 0, 0);
|
|
10888
|
-
function datenum_local(v, date1904) {
|
|
10889
|
-
var epoch = /* @__PURE__ */ v.getTime();
|
|
10890
|
-
if (date1904) epoch -= 1461 * 24 * 60 * 60 * 1e3;
|
|
10891
|
-
else if (v >= SSFbase1904) epoch += 24 * 60 * 60 * 1e3;
|
|
10892
|
-
return (epoch - (SSFdnthresh + (/* @__PURE__ */ v.getTimezoneOffset() - /* @__PURE__ */ SSFbasedate.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3);
|
|
10893
|
-
}
|
|
10894
10927
|
function SSF_strip_decimal(o) {
|
|
10895
10928
|
return o.indexOf(".") == -1 ? o : o.replace(/(?:\.0*|(\.\d*[1-9])0+)$/, "$1");
|
|
10896
10929
|
}
|
|
@@ -10911,6 +10944,7 @@ function SSF_large_exp(v) {
|
|
|
10911
10944
|
return o.length > (v < 0 ? 12 : 11) || o === "0" || o === "-0" ? v.toPrecision(6) : o;
|
|
10912
10945
|
}
|
|
10913
10946
|
function SSF_general_num(v) {
|
|
10947
|
+
if (!isFinite(v)) return isNaN(v) ? "#NUM!" : "#DIV/0!";
|
|
10914
10948
|
var V = Math.floor(Math.log(Math.abs(v)) * Math.LOG10E), o;
|
|
10915
10949
|
if (V >= -4 && V <= -1) o = v.toPrecision(10 + V);
|
|
10916
10950
|
else if (Math.abs(V) <= 9) o = SSF_small_exp(v);
|
|
@@ -10930,7 +10964,7 @@ function SSF_general(v, opts) {
|
|
|
10930
10964
|
return "";
|
|
10931
10965
|
case "object":
|
|
10932
10966
|
if (v == null) return "";
|
|
10933
|
-
if (v instanceof Date) return SSF_format(14,
|
|
10967
|
+
if (v instanceof Date) return SSF_format(14, datenum(v, opts && opts.date1904), opts);
|
|
10934
10968
|
}
|
|
10935
10969
|
throw new Error("unsupported value in General format: " + v);
|
|
10936
10970
|
}
|
|
@@ -11043,7 +11077,7 @@ function SSF_write_date(type2, fmt, val, ss0) {
|
|
|
11043
11077
|
break;
|
|
11044
11078
|
case "[s]":
|
|
11045
11079
|
case "[ss]":
|
|
11046
|
-
out = ((val.D * 24 + val.H) * 60 + val.M) * 60 + Math.round(val.S + val.u);
|
|
11080
|
+
out = ((val.D * 24 + val.H) * 60 + val.M) * 60 + (ss0 == 0 ? Math.round(val.S + val.u) : val.S);
|
|
11047
11081
|
break;
|
|
11048
11082
|
default:
|
|
11049
11083
|
throw "bad abstime format: " + fmt;
|
|
@@ -11114,7 +11148,7 @@ function write_num_f2(r, aval, sign2) {
|
|
|
11114
11148
|
return sign2 + (aval === 0 ? "" : "" + aval) + fill(" ", r[1].length + 2 + r[4].length);
|
|
11115
11149
|
}
|
|
11116
11150
|
var dec1 = /^#*0*\.([0#]+)/;
|
|
11117
|
-
var closeparen = /\)
|
|
11151
|
+
var closeparen = /\)[^)]*[0#]/;
|
|
11118
11152
|
var phone = /\(###\) ###\\?-####/;
|
|
11119
11153
|
function hashq(str) {
|
|
11120
11154
|
var o = "", cc;
|
|
@@ -11598,7 +11632,7 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11598
11632
|
var q = { t: c, v: c };
|
|
11599
11633
|
if (dt == null) dt = SSF_parse_date_code(v, opts);
|
|
11600
11634
|
if (fmt.substr(i, 3).toUpperCase() === "A/P") {
|
|
11601
|
-
if (dt != null) q.v = dt.H >= 12 ?
|
|
11635
|
+
if (dt != null) q.v = dt.H >= 12 ? fmt.charAt(i + 2) : c;
|
|
11602
11636
|
q.t = "T";
|
|
11603
11637
|
hr = "h";
|
|
11604
11638
|
i += 3;
|
|
@@ -11705,15 +11739,21 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11705
11739
|
if (bt < 1) bt = 1;
|
|
11706
11740
|
break;
|
|
11707
11741
|
case "s":
|
|
11708
|
-
if (ssm = out[i].v.match(/\.0+$/))
|
|
11742
|
+
if (ssm = out[i].v.match(/\.0+$/)) {
|
|
11743
|
+
ss0 = Math.max(ss0, ssm[0].length - 1);
|
|
11744
|
+
bt = 4;
|
|
11745
|
+
}
|
|
11709
11746
|
if (bt < 3) bt = 3;
|
|
11710
11747
|
/* falls through */
|
|
11711
11748
|
case "d":
|
|
11712
11749
|
case "y":
|
|
11713
|
-
case "M":
|
|
11714
11750
|
case "e":
|
|
11715
11751
|
lst = out[i].t;
|
|
11716
11752
|
break;
|
|
11753
|
+
case "M":
|
|
11754
|
+
lst = out[i].t;
|
|
11755
|
+
if (bt < 2) bt = 2;
|
|
11756
|
+
break;
|
|
11717
11757
|
case "m":
|
|
11718
11758
|
if (lst === "s") {
|
|
11719
11759
|
out[i].t = "M";
|
|
@@ -11728,10 +11768,13 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11728
11768
|
if (bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;
|
|
11729
11769
|
}
|
|
11730
11770
|
}
|
|
11771
|
+
var _dt;
|
|
11731
11772
|
switch (bt) {
|
|
11732
11773
|
case 0:
|
|
11733
11774
|
break;
|
|
11734
11775
|
case 1:
|
|
11776
|
+
case 2:
|
|
11777
|
+
case 3:
|
|
11735
11778
|
if (dt.u >= 0.5) {
|
|
11736
11779
|
dt.u = 0;
|
|
11737
11780
|
++dt.S;
|
|
@@ -11744,9 +11787,30 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11744
11787
|
dt.M = 0;
|
|
11745
11788
|
++dt.H;
|
|
11746
11789
|
}
|
|
11790
|
+
if (dt.H >= 24) {
|
|
11791
|
+
dt.H = 0;
|
|
11792
|
+
++dt.D;
|
|
11793
|
+
_dt = SSF_parse_date_code(dt.D);
|
|
11794
|
+
_dt.u = dt.u;
|
|
11795
|
+
_dt.S = dt.S;
|
|
11796
|
+
_dt.M = dt.M;
|
|
11797
|
+
_dt.H = dt.H;
|
|
11798
|
+
dt = _dt;
|
|
11799
|
+
}
|
|
11747
11800
|
break;
|
|
11748
|
-
case
|
|
11749
|
-
|
|
11801
|
+
case 4:
|
|
11802
|
+
switch (ss0) {
|
|
11803
|
+
case 1:
|
|
11804
|
+
dt.u = Math.round(dt.u * 10) / 10;
|
|
11805
|
+
break;
|
|
11806
|
+
case 2:
|
|
11807
|
+
dt.u = Math.round(dt.u * 100) / 100;
|
|
11808
|
+
break;
|
|
11809
|
+
case 3:
|
|
11810
|
+
dt.u = Math.round(dt.u * 1e3) / 1e3;
|
|
11811
|
+
break;
|
|
11812
|
+
}
|
|
11813
|
+
if (dt.u >= 1) {
|
|
11750
11814
|
dt.u = 0;
|
|
11751
11815
|
++dt.S;
|
|
11752
11816
|
}
|
|
@@ -11754,6 +11818,20 @@ function eval_fmt(fmt, v, opts, flen) {
|
|
|
11754
11818
|
dt.S = 0;
|
|
11755
11819
|
++dt.M;
|
|
11756
11820
|
}
|
|
11821
|
+
if (dt.M >= 60) {
|
|
11822
|
+
dt.M = 0;
|
|
11823
|
+
++dt.H;
|
|
11824
|
+
}
|
|
11825
|
+
if (dt.H >= 24) {
|
|
11826
|
+
dt.H = 0;
|
|
11827
|
+
++dt.D;
|
|
11828
|
+
_dt = SSF_parse_date_code(dt.D);
|
|
11829
|
+
_dt.u = dt.u;
|
|
11830
|
+
_dt.S = dt.S;
|
|
11831
|
+
_dt.M = dt.M;
|
|
11832
|
+
_dt.H = dt.H;
|
|
11833
|
+
dt = _dt;
|
|
11834
|
+
}
|
|
11757
11835
|
break;
|
|
11758
11836
|
}
|
|
11759
11837
|
var nstr = "", jj;
|
|
@@ -11902,6 +11980,7 @@ function choose_fmt(f, v) {
|
|
|
11902
11980
|
if (l < 4 && lat > -1) --l;
|
|
11903
11981
|
if (fmt.length > 4) throw new Error("cannot find right format for |" + fmt.join("|") + "|");
|
|
11904
11982
|
if (typeof v !== "number") return [4, fmt.length === 4 || lat > -1 ? fmt[fmt.length - 1] : "@"];
|
|
11983
|
+
if (typeof v === "number" && !isFinite(v)) v = 0;
|
|
11905
11984
|
switch (fmt.length) {
|
|
11906
11985
|
case 1:
|
|
11907
11986
|
fmt = lat > -1 ? ["General", "General", "General", fmt[0]] : [fmt[0], fmt[0], fmt[0], "@"];
|
|
@@ -11938,12 +12017,14 @@ function SSF_format(fmt, v, o) {
|
|
|
11938
12017
|
break;
|
|
11939
12018
|
}
|
|
11940
12019
|
if (SSF_isgeneral(sfmt, 0)) return SSF_general(v, o);
|
|
11941
|
-
if (v instanceof Date) v =
|
|
12020
|
+
if (v instanceof Date) v = datenum(v, o.date1904);
|
|
11942
12021
|
var f = choose_fmt(sfmt, v);
|
|
11943
12022
|
if (SSF_isgeneral(f[1])) return SSF_general(v, o);
|
|
11944
12023
|
if (v === true) v = "TRUE";
|
|
11945
12024
|
else if (v === false) v = "FALSE";
|
|
11946
12025
|
else if (v === "" || v == null) return "";
|
|
12026
|
+
else if (isNaN(v) && f[1].indexOf("0") > -1) return "#NUM!";
|
|
12027
|
+
else if (!isFinite(v) && f[1].indexOf("0") > -1) return "#DIV/0!";
|
|
11947
12028
|
return eval_fmt(f[1], v, o, f[0]);
|
|
11948
12029
|
}
|
|
11949
12030
|
function SSF_load(fmt, idx) {
|
|
@@ -11971,6 +12052,13 @@ function SSF_load_table(tbl) {
|
|
|
11971
12052
|
function make_ssf() {
|
|
11972
12053
|
table_fmt = SSF_init_table();
|
|
11973
12054
|
}
|
|
12055
|
+
var bad_formats = {
|
|
12056
|
+
"d.m": "d\\.m"
|
|
12057
|
+
// Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd"."m' or 'd\\.m'
|
|
12058
|
+
};
|
|
12059
|
+
function SSF__load(fmt, idx) {
|
|
12060
|
+
return SSF_load(bad_formats[fmt] || fmt, idx);
|
|
12061
|
+
}
|
|
11974
12062
|
var CRC32 = /* @__PURE__ */ (function() {
|
|
11975
12063
|
var CRC322 = {};
|
|
11976
12064
|
CRC322.version = "1.2.0";
|
|
@@ -11999,7 +12087,7 @@ var CRC32 = /* @__PURE__ */ (function() {
|
|
|
11999
12087
|
for (c = 256 + n; c < 4096; c += 256) v = table[c] = v >>> 8 ^ T[v & 255];
|
|
12000
12088
|
}
|
|
12001
12089
|
var out = [];
|
|
12002
|
-
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);
|
|
12090
|
+
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);
|
|
12003
12091
|
return out;
|
|
12004
12092
|
}
|
|
12005
12093
|
var TT = slice_by_16_tables(T0);
|
|
@@ -12049,8 +12137,11 @@ var CRC32 = /* @__PURE__ */ (function() {
|
|
|
12049
12137
|
return CRC322;
|
|
12050
12138
|
})();
|
|
12051
12139
|
var CFB = /* @__PURE__ */ (function _CFB() {
|
|
12052
|
-
var exports =
|
|
12053
|
-
|
|
12140
|
+
var exports = (
|
|
12141
|
+
/*::(*/
|
|
12142
|
+
{}
|
|
12143
|
+
);
|
|
12144
|
+
exports.version = "1.2.2";
|
|
12054
12145
|
function namecmp(l, r) {
|
|
12055
12146
|
var L = l.split("/"), R = r.split("/");
|
|
12056
12147
|
for (var i2 = 0, c = 0, Z = Math.min(L.length, R.length); i2 < Z; ++i2) {
|
|
@@ -12125,6 +12216,16 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12125
12216
|
if (p.mtime) p.mt = new Date(p.mtime * 1e3);
|
|
12126
12217
|
}
|
|
12127
12218
|
break;
|
|
12219
|
+
/* ZIP64 Extended Information Field */
|
|
12220
|
+
case 1:
|
|
12221
|
+
{
|
|
12222
|
+
var sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);
|
|
12223
|
+
p.usz = sz2 * Math.pow(2, 32) + sz1;
|
|
12224
|
+
sz1 = blob.read_shift(4);
|
|
12225
|
+
sz2 = blob.read_shift(4);
|
|
12226
|
+
p.csz = sz2 * Math.pow(2, 32) + sz1;
|
|
12227
|
+
}
|
|
12228
|
+
break;
|
|
12128
12229
|
}
|
|
12129
12230
|
blob.l = tgt;
|
|
12130
12231
|
o[type2] = p;
|
|
@@ -12133,7 +12234,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12133
12234
|
}
|
|
12134
12235
|
var fs;
|
|
12135
12236
|
function get_fs() {
|
|
12136
|
-
return fs || (fs =
|
|
12237
|
+
return fs || (fs = _fs);
|
|
12137
12238
|
}
|
|
12138
12239
|
function parse(file, options) {
|
|
12139
12240
|
if (file[0] == 80 && file[1] == 75) return parse_zip(file, options);
|
|
@@ -12196,7 +12297,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12196
12297
|
var sectors = sectorify(file, ssz);
|
|
12197
12298
|
sleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);
|
|
12198
12299
|
var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);
|
|
12199
|
-
sector_list[dir_start].name = "!Directory";
|
|
12300
|
+
if (dir_start < sector_list.length) sector_list[dir_start].name = "!Directory";
|
|
12200
12301
|
if (nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT";
|
|
12201
12302
|
sector_list[fat_addrs[0]].name = "!FAT";
|
|
12202
12303
|
sector_list.fat_addrs = fat_addrs;
|
|
@@ -12309,7 +12410,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12309
12410
|
if ((q2 = __readInt32LE(sector, i2 * 4)) === ENDOFCHAIN) break;
|
|
12310
12411
|
fat_addrs.push(q2);
|
|
12311
12412
|
}
|
|
12312
|
-
sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
|
|
12413
|
+
if (cnt >= 1) sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
|
|
12313
12414
|
}
|
|
12314
12415
|
}
|
|
12315
12416
|
function get_sector_list(sectors, start, fat_addrs, ssz, chkd) {
|
|
@@ -12497,7 +12598,8 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12497
12598
|
for (i2 = 0; i2 < data.length; ++i2) {
|
|
12498
12599
|
var dad = dirname(data[i2][0]);
|
|
12499
12600
|
s = fullPaths[dad];
|
|
12500
|
-
|
|
12601
|
+
while (!s) {
|
|
12602
|
+
while (dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);
|
|
12501
12603
|
data.push([dad, {
|
|
12502
12604
|
name: filename(dad).replace("/", ""),
|
|
12503
12605
|
type: 1,
|
|
@@ -12507,6 +12609,8 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12507
12609
|
content: null
|
|
12508
12610
|
}]);
|
|
12509
12611
|
fullPaths[dad] = true;
|
|
12612
|
+
dad = dirname(data[i2][0]);
|
|
12613
|
+
s = fullPaths[dad];
|
|
12510
12614
|
}
|
|
12511
12615
|
}
|
|
12512
12616
|
data.sort(function(x, y) {
|
|
@@ -12646,6 +12750,10 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
12646
12750
|
file = cfb.FileIndex[i2];
|
|
12647
12751
|
if (i2 === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;
|
|
12648
12752
|
var _nm = i2 === 0 && _opts.root || file.name;
|
|
12753
|
+
if (_nm.length > 31) {
|
|
12754
|
+
console.error("Name " + _nm + " will be truncated to " + _nm.slice(0, 31));
|
|
12755
|
+
_nm = _nm.slice(0, 31);
|
|
12756
|
+
}
|
|
12649
12757
|
flen = 2 * (_nm.length + 1);
|
|
12650
12758
|
o.write_shift(64, _nm, "utf16le");
|
|
12651
12759
|
o.write_shift(2, flen);
|
|
@@ -13249,6 +13357,10 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13249
13357
|
blob.l += namelen + efsz + fcsz;
|
|
13250
13358
|
var L = blob.l;
|
|
13251
13359
|
blob.l = offset + 4;
|
|
13360
|
+
if (EF && EF[1]) {
|
|
13361
|
+
if ((EF[1] || {}).usz) usz = EF[1].usz;
|
|
13362
|
+
if ((EF[1] || {}).csz) csz = EF[1].csz;
|
|
13363
|
+
}
|
|
13252
13364
|
parse_local_file(blob, csz, usz, o, EF);
|
|
13253
13365
|
blob.l = L;
|
|
13254
13366
|
}
|
|
@@ -13274,7 +13386,13 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13274
13386
|
/*:: :any)*/
|
|
13275
13387
|
);
|
|
13276
13388
|
if ((ef[21589] || {}).mt) date = ef[21589].mt;
|
|
13277
|
-
if ((
|
|
13389
|
+
if ((ef[1] || {}).usz) _usz = ef[1].usz;
|
|
13390
|
+
if ((ef[1] || {}).csz) _csz = ef[1].csz;
|
|
13391
|
+
if (EF) {
|
|
13392
|
+
if ((EF[21589] || {}).mt) date = EF[21589].mt;
|
|
13393
|
+
if ((EF[1] || {}).usz) _usz = EF[1].usz;
|
|
13394
|
+
if ((EF[1] || {}).csz) _csz = EF[1].csz;
|
|
13395
|
+
}
|
|
13278
13396
|
}
|
|
13279
13397
|
blob.l += efsz;
|
|
13280
13398
|
var data = blob.slice(blob.l, blob.l + _csz);
|
|
@@ -13283,6 +13401,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13283
13401
|
data = _inflateRawSync(blob, _usz);
|
|
13284
13402
|
break;
|
|
13285
13403
|
case 0:
|
|
13404
|
+
blob.l += _csz;
|
|
13286
13405
|
break;
|
|
13287
13406
|
// TODO: scan for magic number
|
|
13288
13407
|
default:
|
|
@@ -13315,17 +13434,17 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13315
13434
|
for (i2 = 1; i2 < cfb.FullPaths.length; ++i2) {
|
|
13316
13435
|
fp = cfb.FullPaths[i2].slice(root.length);
|
|
13317
13436
|
fi = cfb.FileIndex[i2];
|
|
13318
|
-
if (!fi.size || !fi.content || fp == "Sh33tJ5") continue;
|
|
13437
|
+
if (!fi.size || !fi.content || Array.isArray(fi.content) && fi.content.length == 0 || fp == "Sh33tJ5") continue;
|
|
13319
13438
|
var start = start_cd;
|
|
13320
13439
|
var namebuf = new_buf(fp.length);
|
|
13321
13440
|
for (j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 127);
|
|
13322
13441
|
namebuf = namebuf.slice(0, namebuf.l);
|
|
13323
|
-
crcs[fcnt] = CRC32.buf(
|
|
13442
|
+
crcs[fcnt] = typeof fi.content == "string" ? CRC32.bstr(fi.content, 0) : CRC32.buf(
|
|
13324
13443
|
/*::((*/
|
|
13325
13444
|
fi.content,
|
|
13326
13445
|
0
|
|
13327
13446
|
);
|
|
13328
|
-
var outbuf = fi.content;
|
|
13447
|
+
var outbuf = typeof fi.content == "string" ? s2a(fi.content) : fi.content;
|
|
13329
13448
|
if (method == 8) outbuf = _deflateRawSync(outbuf);
|
|
13330
13449
|
o = new_buf(30);
|
|
13331
13450
|
o.write_shift(4, 67324752);
|
|
@@ -13460,7 +13579,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13460
13579
|
for (; di < 10; ++di) {
|
|
13461
13580
|
var line = data[di];
|
|
13462
13581
|
if (!line || line.match(/^\s*$/)) break;
|
|
13463
|
-
var m = line.match(/^(
|
|
13582
|
+
var m = line.match(/^([^:]*?):\s*([^\s].*)$/);
|
|
13464
13583
|
if (m) switch (m[1].toLowerCase()) {
|
|
13465
13584
|
case "content-location":
|
|
13466
13585
|
fname = m[2].trim();
|
|
@@ -13637,6 +13756,7 @@ var CFB = /* @__PURE__ */ (function _CFB() {
|
|
|
13637
13756
|
};
|
|
13638
13757
|
return exports;
|
|
13639
13758
|
})();
|
|
13759
|
+
var _fs;
|
|
13640
13760
|
function blobify(data) {
|
|
13641
13761
|
if (typeof data === "string") return s2ab(data);
|
|
13642
13762
|
if (Array.isArray(data)) return a2u(data);
|
|
@@ -13672,6 +13792,9 @@ function write_dl(fname, payload, enc) {
|
|
|
13672
13792
|
}, 6e4);
|
|
13673
13793
|
return url;
|
|
13674
13794
|
}
|
|
13795
|
+
} else if (typeof URL !== "undefined" && !URL.createObjectURL && typeof chrome === "object") {
|
|
13796
|
+
var b64 = "data:application/octet-stream;base64," + Base64_encode_arr(new Uint8Array(blobify(data)));
|
|
13797
|
+
return chrome.downloads.download({ url: b64, filename: fname, saveAs: true });
|
|
13675
13798
|
}
|
|
13676
13799
|
}
|
|
13677
13800
|
if (typeof $ !== "undefined" && typeof File !== "undefined" && typeof Folder !== "undefined") try {
|
|
@@ -13683,7 +13806,7 @@ function write_dl(fname, payload, enc) {
|
|
|
13683
13806
|
out.close();
|
|
13684
13807
|
return payload;
|
|
13685
13808
|
} catch (e) {
|
|
13686
|
-
if (!e.message ||
|
|
13809
|
+
if (!e.message || e.message.indexOf("onstruct") == -1) throw e;
|
|
13687
13810
|
}
|
|
13688
13811
|
throw new Error("cannot save file " + fname);
|
|
13689
13812
|
}
|
|
@@ -13710,34 +13833,38 @@ function evert_arr(obj) {
|
|
|
13710
13833
|
}
|
|
13711
13834
|
return o;
|
|
13712
13835
|
}
|
|
13713
|
-
var
|
|
13836
|
+
var dnthresh = /* @__PURE__ */ Date.UTC(1899, 11, 30, 0, 0, 0);
|
|
13837
|
+
var dnthresh1 = /* @__PURE__ */ Date.UTC(1899, 11, 31, 0, 0, 0);
|
|
13838
|
+
var dnthresh2 = /* @__PURE__ */ Date.UTC(1904, 0, 1, 0, 0, 0);
|
|
13714
13839
|
function datenum(v, date1904) {
|
|
13715
13840
|
var epoch = /* @__PURE__ */ v.getTime();
|
|
13716
|
-
var
|
|
13717
|
-
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
var good_pd_date = /* @__PURE__ */ isNaN(/* @__PURE__ */ good_pd_date_1.getFullYear()) ? /* @__PURE__ */ new Date("2/19/17") : good_pd_date_1;
|
|
13721
|
-
var good_pd = /* @__PURE__ */ good_pd_date.getFullYear() == 2017;
|
|
13722
|
-
function parseDate(str, fixdate) {
|
|
13723
|
-
var d = new Date(str);
|
|
13724
|
-
if (good_pd) {
|
|
13725
|
-
if (fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1e3);
|
|
13726
|
-
else if (fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1e3);
|
|
13727
|
-
return d;
|
|
13841
|
+
var res = (epoch - dnthresh) / (24 * 60 * 60 * 1e3);
|
|
13842
|
+
if (date1904) {
|
|
13843
|
+
res -= 1462;
|
|
13844
|
+
return res < -1402 ? res - 1 : res;
|
|
13728
13845
|
}
|
|
13729
|
-
|
|
13730
|
-
|
|
13731
|
-
|
|
13732
|
-
|
|
13733
|
-
|
|
13734
|
-
|
|
13735
|
-
}
|
|
13736
|
-
var n = str.match(/\d+/g) || ["2017", "2", "19", "0", "0", "0"];
|
|
13737
|
-
var out = new Date(+n[0], +n[1] - 1, +n[2], +n[3] || 0, +n[4] || 0, +n[5] || 0);
|
|
13738
|
-
if (str.indexOf("Z") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1e3);
|
|
13846
|
+
return res < 60 ? res - 1 : res;
|
|
13847
|
+
}
|
|
13848
|
+
function numdate(v) {
|
|
13849
|
+
if (v >= 60 && v < 61) return v;
|
|
13850
|
+
var out = /* @__PURE__ */ new Date();
|
|
13851
|
+
out.setTime((v > 60 ? v : v + 1) * 24 * 60 * 60 * 1e3 + dnthresh);
|
|
13739
13852
|
return out;
|
|
13740
13853
|
}
|
|
13854
|
+
var pdre1 = /^(\d+):(\d+)(:\d+)?(\.\d+)?$/;
|
|
13855
|
+
var pdre2 = /^(\d+)-(\d+)-(\d+)$/;
|
|
13856
|
+
var pdre3 = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)?(\.\d+)?$/;
|
|
13857
|
+
function parseDate(str, date1904) {
|
|
13858
|
+
if (str instanceof Date) return str;
|
|
13859
|
+
var m = str.match(pdre1);
|
|
13860
|
+
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));
|
|
13861
|
+
m = str.match(pdre2);
|
|
13862
|
+
if (m) return new Date(Date.UTC(+m[1], +m[2] - 1, +m[3], 0, 0, 0, 0));
|
|
13863
|
+
m = str.match(pdre3);
|
|
13864
|
+
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));
|
|
13865
|
+
var d = new Date(str);
|
|
13866
|
+
return d;
|
|
13867
|
+
}
|
|
13741
13868
|
function dup(o) {
|
|
13742
13869
|
if (typeof JSON != "undefined" && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));
|
|
13743
13870
|
if (typeof o != "object" || o == null) return o;
|
|
@@ -13761,30 +13888,67 @@ function fuzzynum(s) {
|
|
|
13761
13888
|
return "";
|
|
13762
13889
|
});
|
|
13763
13890
|
if (!isNaN(v = Number(ss))) return v / wt;
|
|
13764
|
-
ss = ss.replace(/[(](
|
|
13891
|
+
ss = ss.replace(/[(]([^()]*)[)]/, function($$, $1) {
|
|
13765
13892
|
wt = -wt;
|
|
13766
13893
|
return $1;
|
|
13767
13894
|
});
|
|
13768
13895
|
if (!isNaN(v = Number(ss))) return v / wt;
|
|
13769
13896
|
return v;
|
|
13770
13897
|
}
|
|
13898
|
+
var FDRE1 = /^(0?\d|1[0-2])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))\s+([ap])m?$/;
|
|
13899
|
+
var FDRE2 = /^([01]?\d|2[0-3])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))$/;
|
|
13900
|
+
var FDISO = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)(\.\d+)?[Z]?$/;
|
|
13901
|
+
var utc_append_works = (/* @__PURE__ */ new Date("6/9/69 00:00 UTC")).valueOf() == -177984e5;
|
|
13902
|
+
function fuzzytime1(M) {
|
|
13903
|
+
if (!M[2]) return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), 0, 0, 0));
|
|
13904
|
+
if (M[3]) {
|
|
13905
|
+
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));
|
|
13906
|
+
else return new Date(Date.UTC(1899, 11, 31, M[7] == "p" ? 12 : 0, +M[1], +M[2], parseFloat(M[3]) * 1e3));
|
|
13907
|
+
} 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));
|
|
13908
|
+
else return new Date(Date.UTC(1899, 11, 31, +M[1] % 12 + (M[7] == "p" ? 12 : 0), +M[2], 0, 0));
|
|
13909
|
+
}
|
|
13910
|
+
function fuzzytime2(M) {
|
|
13911
|
+
if (!M[2]) return new Date(Date.UTC(1899, 11, 31, +M[1], 0, 0, 0));
|
|
13912
|
+
if (M[3]) {
|
|
13913
|
+
if (M[4]) return new Date(Date.UTC(1899, 11, 31, +M[1], +M[2], +M[4], parseFloat(M[3]) * 1e3));
|
|
13914
|
+
else return new Date(Date.UTC(1899, 11, 31, 0, +M[1], +M[2], parseFloat(M[3]) * 1e3));
|
|
13915
|
+
} 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));
|
|
13916
|
+
else return new Date(Date.UTC(1899, 11, 31, +M[1], +M[2], 0, 0));
|
|
13917
|
+
}
|
|
13771
13918
|
var lower_months = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
|
|
13772
13919
|
function fuzzydate(s) {
|
|
13773
|
-
|
|
13774
|
-
var y = o.getYear(), m = o.getMonth(), d = o.getDate();
|
|
13775
|
-
if (isNaN(d)) return n;
|
|
13920
|
+
if (FDISO.test(s)) return s.indexOf("Z") == -1 ? local_to_utc(new Date(s)) : new Date(s);
|
|
13776
13921
|
var lower = s.toLowerCase();
|
|
13922
|
+
var lnos = lower.replace(/\s+/g, " ").trim();
|
|
13923
|
+
var M = lnos.match(FDRE1);
|
|
13924
|
+
if (M) return fuzzytime1(M);
|
|
13925
|
+
M = lnos.match(FDRE2);
|
|
13926
|
+
if (M) return fuzzytime2(M);
|
|
13927
|
+
M = lnos.match(pdre3);
|
|
13928
|
+
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));
|
|
13929
|
+
var o = new Date(utc_append_works && s.indexOf("UTC") == -1 ? s + " UTC" : s), n = /* @__PURE__ */ new Date(NaN);
|
|
13930
|
+
var y = o.getYear();
|
|
13931
|
+
o.getMonth();
|
|
13932
|
+
var d = o.getDate();
|
|
13933
|
+
if (isNaN(d)) return n;
|
|
13777
13934
|
if (lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {
|
|
13778
13935
|
lower = lower.replace(/[^a-z]/g, "").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/, "");
|
|
13779
13936
|
if (lower.length > 3 && lower_months.indexOf(lower) == -1) return n;
|
|
13780
|
-
} else if (lower.match(/[a-z]/)) return n;
|
|
13781
|
-
if (y < 0 || y > 8099) return n;
|
|
13782
|
-
if ((m > 0 || d > 1) && y != 101) return o;
|
|
13783
|
-
if (s.match(/[^-0-9:,\/\\]/)) return n;
|
|
13937
|
+
} else if (lower.replace(/[ap]m?/, "").match(/[a-z]/)) return n;
|
|
13938
|
+
if (y < 0 || y > 8099 || s.match(/[^-0-9:,\/\\\ ]/)) return n;
|
|
13784
13939
|
return o;
|
|
13785
13940
|
}
|
|
13941
|
+
function utc_to_local(utc) {
|
|
13942
|
+
return new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());
|
|
13943
|
+
}
|
|
13944
|
+
function local_to_utc(local) {
|
|
13945
|
+
return new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));
|
|
13946
|
+
}
|
|
13786
13947
|
function zip_add_file(zip, path, content) {
|
|
13787
13948
|
if (zip.FullPaths) {
|
|
13949
|
+
if (Array.isArray(content) && typeof content[0] == "string") {
|
|
13950
|
+
content = content.join("");
|
|
13951
|
+
}
|
|
13788
13952
|
if (typeof content == "string") {
|
|
13789
13953
|
var res;
|
|
13790
13954
|
if (has_buf) res = Buffer_from(content);
|
|
@@ -13806,7 +13970,7 @@ var encodings = {
|
|
|
13806
13970
|
"&": "&"
|
|
13807
13971
|
};
|
|
13808
13972
|
var rencoding = /* @__PURE__ */ evert(encodings);
|
|
13809
|
-
var decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f]/g;
|
|
13973
|
+
var decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f\uFFFE-\uFFFF]/g;
|
|
13810
13974
|
function escapexml(text) {
|
|
13811
13975
|
var s = text + "";
|
|
13812
13976
|
return s.replace(decregex, function(y) {
|
|
@@ -13927,7 +14091,7 @@ var htmldecode = /* @__PURE__ */ (function() {
|
|
|
13927
14091
|
return [new RegExp("&" + x[0] + ";", "ig"), x[1]];
|
|
13928
14092
|
});
|
|
13929
14093
|
return function htmldecode2(str) {
|
|
13930
|
-
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(/<[
|
|
14094
|
+
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, "");
|
|
13931
14095
|
for (var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);
|
|
13932
14096
|
return o;
|
|
13933
14097
|
};
|
|
@@ -14043,7 +14207,7 @@ var ___utf16le = function(b, s, e) {
|
|
|
14043
14207
|
return ss.join("").replace(chr0, "");
|
|
14044
14208
|
};
|
|
14045
14209
|
var __utf16le = has_buf ? function(b, s, e) {
|
|
14046
|
-
if (!Buffer.isBuffer(b)) return ___utf16le(b, s, e);
|
|
14210
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___utf16le(b, s, e);
|
|
14047
14211
|
return b.toString("utf16le", s, e).replace(chr0, "");
|
|
14048
14212
|
} : ___utf16le;
|
|
14049
14213
|
var ___hexlify = function(b, s, l) {
|
|
@@ -14103,12 +14267,12 @@ if (has_buf) {
|
|
|
14103
14267
|
return len > 0 ? b.toString("utf8", i + 4, i + 4 + len - 1) : "";
|
|
14104
14268
|
};
|
|
14105
14269
|
__lpwstr = function lpwstr_b(b, i) {
|
|
14106
|
-
if (!Buffer.isBuffer(b)) return ___lpwstr(b, i);
|
|
14270
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___lpwstr(b, i);
|
|
14107
14271
|
var len = 2 * b.readUInt32LE(i);
|
|
14108
14272
|
return b.toString("utf16le", i + 4, i + 4 + len - 1);
|
|
14109
14273
|
};
|
|
14110
14274
|
__lpp4 = function lpp4_b(b, i) {
|
|
14111
|
-
if (!Buffer.isBuffer(b)) return ___lpp4(b, i);
|
|
14275
|
+
if (!Buffer.isBuffer(b) || !buf_utf16le) return ___lpp4(b, i);
|
|
14112
14276
|
var len = b.readUInt32LE(i);
|
|
14113
14277
|
return b.toString("utf16le", i + 4, i + 4 + len);
|
|
14114
14278
|
};
|
|
@@ -14146,7 +14310,7 @@ function ReadShift(size, t) {
|
|
|
14146
14310
|
switch (t) {
|
|
14147
14311
|
case "dbcs":
|
|
14148
14312
|
loc = this.l;
|
|
14149
|
-
if (has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l + 2 * size).toString("utf16le");
|
|
14313
|
+
if (has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l + 2 * size).toString("utf16le");
|
|
14150
14314
|
else for (i = 0; i < size; ++i) {
|
|
14151
14315
|
o += String.fromCharCode(__readUInt16LE(this, loc));
|
|
14152
14316
|
loc += 2;
|
|
@@ -14297,12 +14461,12 @@ function WriteShift(t, val, f) {
|
|
|
14297
14461
|
if (f === "dbcs") {
|
|
14298
14462
|
for (i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);
|
|
14299
14463
|
size = 2 * val.length;
|
|
14300
|
-
} else if (f === "sbcs") {
|
|
14464
|
+
} else if (f === "sbcs" || f == "cpstr") {
|
|
14301
14465
|
{
|
|
14302
14466
|
val = val.replace(/[^\x00-\x7F]/g, "_");
|
|
14303
14467
|
for (i = 0; i != val.length; ++i) this[this.l + i] = val.charCodeAt(i) & 255;
|
|
14468
|
+
size = val.length;
|
|
14304
14469
|
}
|
|
14305
|
-
size = val.length;
|
|
14306
14470
|
} else if (f === "hex") {
|
|
14307
14471
|
for (; i < t; ++i) {
|
|
14308
14472
|
this[this.l++] = parseInt(val.slice(2 * i, 2 * i + 2), 16) || 0;
|
|
@@ -14428,6 +14592,15 @@ function encode_range(cs, ce) {
|
|
|
14428
14592
|
if (typeof ce !== "string") ce = encode_cell(ce);
|
|
14429
14593
|
return cs == ce ? cs : cs + ":" + ce;
|
|
14430
14594
|
}
|
|
14595
|
+
function fix_range(a1) {
|
|
14596
|
+
var s = decode_range(a1);
|
|
14597
|
+
return "$" + encode_col(s.s.c) + "$" + encode_row(s.s.r) + ":$" + encode_col(s.e.c) + "$" + encode_row(s.e.r);
|
|
14598
|
+
}
|
|
14599
|
+
function formula_quote_sheet_name(sname, opts) {
|
|
14600
|
+
if (!sname && true) throw new Error("empty sheet name");
|
|
14601
|
+
if (/[^\w\u4E00-\u9FFF\u3040-\u30FF]/.test(sname)) return "'" + sname.replace(/'/g, "''") + "'";
|
|
14602
|
+
return sname;
|
|
14603
|
+
}
|
|
14431
14604
|
function safe_decode_range(range2) {
|
|
14432
14605
|
var o = { s: { c: 0, r: 0 }, e: { c: 0, r: 0 } };
|
|
14433
14606
|
var idx = 0, i = 0, cc = 0;
|
|
@@ -14486,10 +14659,17 @@ function sheet_to_workbook(sheet, opts) {
|
|
|
14486
14659
|
sheets[n] = sheet;
|
|
14487
14660
|
return { SheetNames: [n], Sheets: sheets };
|
|
14488
14661
|
}
|
|
14662
|
+
function sheet_new(opts) {
|
|
14663
|
+
var out = {};
|
|
14664
|
+
var o = opts || {};
|
|
14665
|
+
if (o.dense) out["!data"] = [];
|
|
14666
|
+
return out;
|
|
14667
|
+
}
|
|
14489
14668
|
function sheet_add_aoa(_ws, data, opts) {
|
|
14490
14669
|
var o = opts || {};
|
|
14491
|
-
var dense = _ws ?
|
|
14492
|
-
var ws = _ws || (dense ? [] : {});
|
|
14670
|
+
var dense = _ws ? _ws["!data"] != null : o.dense;
|
|
14671
|
+
var ws = _ws || (dense ? { "!data": [] } : {});
|
|
14672
|
+
if (dense && !ws["!data"]) ws["!data"] = [];
|
|
14493
14673
|
var _R = 0, _C = 0;
|
|
14494
14674
|
if (ws && o.origin != null) {
|
|
14495
14675
|
if (typeof o.origin == "number") _R = o.origin;
|
|
@@ -14498,7 +14678,6 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14498
14678
|
_R = _origin.r;
|
|
14499
14679
|
_C = _origin.c;
|
|
14500
14680
|
}
|
|
14501
|
-
if (!ws["!ref"]) ws["!ref"] = "A1:A1";
|
|
14502
14681
|
}
|
|
14503
14682
|
var range2 = { s: { c: 1e7, r: 1e7 }, e: { c: 0, r: 0 } };
|
|
14504
14683
|
if (ws["!ref"]) {
|
|
@@ -14507,23 +14686,33 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14507
14686
|
range2.s.r = _range.s.r;
|
|
14508
14687
|
range2.e.c = Math.max(range2.e.c, _range.e.c);
|
|
14509
14688
|
range2.e.r = Math.max(range2.e.r, _range.e.r);
|
|
14510
|
-
if (_R == -1) range2.e.r = _R = _range.e.r + 1;
|
|
14689
|
+
if (_R == -1) range2.e.r = _R = ws["!ref"] ? _range.e.r + 1 : 0;
|
|
14690
|
+
} else {
|
|
14691
|
+
range2.s.c = range2.e.c = range2.s.r = range2.e.r = 0;
|
|
14511
14692
|
}
|
|
14693
|
+
var row = [], seen = false;
|
|
14512
14694
|
for (var R = 0; R != data.length; ++R) {
|
|
14513
14695
|
if (!data[R]) continue;
|
|
14514
14696
|
if (!Array.isArray(data[R])) throw new Error("aoa_to_sheet expects an array of arrays");
|
|
14515
|
-
|
|
14516
|
-
|
|
14517
|
-
|
|
14518
|
-
|
|
14697
|
+
var __R = _R + R;
|
|
14698
|
+
if (dense) {
|
|
14699
|
+
if (!ws["!data"][__R]) ws["!data"][__R] = [];
|
|
14700
|
+
row = ws["!data"][__R];
|
|
14701
|
+
}
|
|
14702
|
+
var data_R = data[R];
|
|
14703
|
+
for (var C = 0; C != data_R.length; ++C) {
|
|
14704
|
+
if (typeof data_R[C] === "undefined") continue;
|
|
14705
|
+
var cell = { v: data_R[C], t: "" };
|
|
14706
|
+
var __C = _C + C;
|
|
14519
14707
|
if (range2.s.r > __R) range2.s.r = __R;
|
|
14520
14708
|
if (range2.s.c > __C) range2.s.c = __C;
|
|
14521
14709
|
if (range2.e.r < __R) range2.e.r = __R;
|
|
14522
14710
|
if (range2.e.c < __C) range2.e.c = __C;
|
|
14523
|
-
|
|
14711
|
+
seen = true;
|
|
14712
|
+
if (data_R[C] && typeof data_R[C] === "object" && !Array.isArray(data_R[C]) && !(data_R[C] instanceof Date)) cell = data_R[C];
|
|
14524
14713
|
else {
|
|
14525
14714
|
if (Array.isArray(cell.v)) {
|
|
14526
|
-
cell.f =
|
|
14715
|
+
cell.f = data_R[C][1];
|
|
14527
14716
|
cell.v = cell.v[0];
|
|
14528
14717
|
}
|
|
14529
14718
|
if (cell.v === null) {
|
|
@@ -14533,57 +14722,67 @@ function sheet_add_aoa(_ws, data, opts) {
|
|
|
14533
14722
|
cell.v = 0;
|
|
14534
14723
|
} else if (!o.sheetStubs) continue;
|
|
14535
14724
|
else cell.t = "z";
|
|
14536
|
-
} else if (typeof cell.v === "number")
|
|
14537
|
-
|
|
14725
|
+
} else if (typeof cell.v === "number") {
|
|
14726
|
+
if (isFinite(cell.v)) cell.t = "n";
|
|
14727
|
+
else if (isNaN(cell.v)) {
|
|
14728
|
+
cell.t = "e";
|
|
14729
|
+
cell.v = 15;
|
|
14730
|
+
} else {
|
|
14731
|
+
cell.t = "e";
|
|
14732
|
+
cell.v = 7;
|
|
14733
|
+
}
|
|
14734
|
+
} else if (typeof cell.v === "boolean") cell.t = "b";
|
|
14538
14735
|
else if (cell.v instanceof Date) {
|
|
14539
14736
|
cell.z = o.dateNF || table_fmt[14];
|
|
14737
|
+
if (!o.UTC) cell.v = local_to_utc(cell.v);
|
|
14540
14738
|
if (o.cellDates) {
|
|
14541
14739
|
cell.t = "d";
|
|
14542
|
-
cell.w = SSF_format(cell.z, datenum(cell.v));
|
|
14740
|
+
cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904));
|
|
14543
14741
|
} else {
|
|
14544
14742
|
cell.t = "n";
|
|
14545
|
-
cell.v = datenum(cell.v);
|
|
14743
|
+
cell.v = datenum(cell.v, o.date1904);
|
|
14546
14744
|
cell.w = SSF_format(cell.z, cell.v);
|
|
14547
14745
|
}
|
|
14548
14746
|
} else cell.t = "s";
|
|
14549
14747
|
}
|
|
14550
14748
|
if (dense) {
|
|
14551
|
-
if (
|
|
14552
|
-
|
|
14553
|
-
ws[__R][__C] = cell;
|
|
14749
|
+
if (row[__C] && row[__C].z) cell.z = row[__C].z;
|
|
14750
|
+
row[__C] = cell;
|
|
14554
14751
|
} else {
|
|
14555
|
-
var cell_ref =
|
|
14752
|
+
var cell_ref = encode_col(__C) + (__R + 1);
|
|
14556
14753
|
if (ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;
|
|
14557
14754
|
ws[cell_ref] = cell;
|
|
14558
14755
|
}
|
|
14559
14756
|
}
|
|
14560
14757
|
}
|
|
14561
|
-
if (range2.s.c <
|
|
14758
|
+
if (seen && range2.s.c < 104e5) ws["!ref"] = encode_range(range2);
|
|
14562
14759
|
return ws;
|
|
14563
14760
|
}
|
|
14564
14761
|
function aoa_to_sheet(data, opts) {
|
|
14565
14762
|
return sheet_add_aoa(null, data, opts);
|
|
14566
14763
|
}
|
|
14567
14764
|
var BErr = {
|
|
14568
|
-
/*::[*/
|
|
14569
14765
|
0: "#NULL!",
|
|
14570
|
-
/*::[*/
|
|
14571
14766
|
7: "#DIV/0!",
|
|
14572
|
-
/*::[*/
|
|
14573
14767
|
15: "#VALUE!",
|
|
14574
|
-
/*::[*/
|
|
14575
14768
|
23: "#REF!",
|
|
14576
|
-
/*::[*/
|
|
14577
14769
|
29: "#NAME?",
|
|
14578
|
-
/*::[*/
|
|
14579
14770
|
36: "#NUM!",
|
|
14580
|
-
/*::[*/
|
|
14581
14771
|
42: "#N/A",
|
|
14582
|
-
/*::[*/
|
|
14583
14772
|
43: "#GETTING_DATA",
|
|
14584
|
-
/*::[*/
|
|
14585
14773
|
255: "#WTF?"
|
|
14586
14774
|
};
|
|
14775
|
+
var RBErr = {
|
|
14776
|
+
"#NULL!": 0,
|
|
14777
|
+
"#DIV/0!": 7,
|
|
14778
|
+
"#VALUE!": 15,
|
|
14779
|
+
"#REF!": 23,
|
|
14780
|
+
"#NAME?": 29,
|
|
14781
|
+
"#NUM!": 36,
|
|
14782
|
+
"#N/A": 42,
|
|
14783
|
+
"#GETTING_DATA": 43,
|
|
14784
|
+
"#WTF?": 255
|
|
14785
|
+
};
|
|
14587
14786
|
var ct2type = {
|
|
14588
14787
|
/* Workbook */
|
|
14589
14788
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": "workbooks",
|
|
@@ -14795,35 +14994,37 @@ function new_ct() {
|
|
|
14795
14994
|
xmlns: ""
|
|
14796
14995
|
};
|
|
14797
14996
|
}
|
|
14798
|
-
function write_ct(ct, opts) {
|
|
14997
|
+
function write_ct(ct, opts, raw) {
|
|
14799
14998
|
var type2ct = evert_arr(ct2type);
|
|
14800
14999
|
var o = [], v;
|
|
14801
|
-
|
|
14802
|
-
|
|
14803
|
-
"
|
|
14804
|
-
|
|
14805
|
-
|
|
14806
|
-
|
|
14807
|
-
|
|
14808
|
-
[
|
|
14809
|
-
|
|
14810
|
-
|
|
14811
|
-
|
|
14812
|
-
|
|
14813
|
-
|
|
14814
|
-
|
|
14815
|
-
|
|
14816
|
-
|
|
14817
|
-
|
|
14818
|
-
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
15000
|
+
{
|
|
15001
|
+
o[o.length] = XML_HEADER;
|
|
15002
|
+
o[o.length] = writextag("Types", null, {
|
|
15003
|
+
"xmlns": XMLNS.CT,
|
|
15004
|
+
"xmlns:xsd": XMLNS.xsd,
|
|
15005
|
+
"xmlns:xsi": XMLNS.xsi
|
|
15006
|
+
});
|
|
15007
|
+
o = o.concat([
|
|
15008
|
+
["xml", "application/xml"],
|
|
15009
|
+
["bin", "application/vnd.ms-excel.sheet.binary.macroEnabled.main"],
|
|
15010
|
+
["vml", "application/vnd.openxmlformats-officedocument.vmlDrawing"],
|
|
15011
|
+
["data", "application/vnd.openxmlformats-officedocument.model+data"],
|
|
15012
|
+
/* from test files */
|
|
15013
|
+
["bmp", "image/bmp"],
|
|
15014
|
+
["png", "image/png"],
|
|
15015
|
+
["gif", "image/gif"],
|
|
15016
|
+
["emf", "image/x-emf"],
|
|
15017
|
+
["wmf", "image/x-wmf"],
|
|
15018
|
+
["jpg", "image/jpeg"],
|
|
15019
|
+
["jpeg", "image/jpeg"],
|
|
15020
|
+
["tif", "image/tiff"],
|
|
15021
|
+
["tiff", "image/tiff"],
|
|
15022
|
+
["pdf", "application/pdf"],
|
|
15023
|
+
["rels", "application/vnd.openxmlformats-package.relationships+xml"]
|
|
15024
|
+
].map(function(x) {
|
|
15025
|
+
return writextag("Default", null, { "Extension": x[0], "ContentType": x[1] });
|
|
15026
|
+
}));
|
|
15027
|
+
}
|
|
14827
15028
|
var f1 = function(w) {
|
|
14828
15029
|
if (ct[w] && ct[w].length > 0) {
|
|
14829
15030
|
v = ct[w][0];
|
|
@@ -15059,6 +15260,7 @@ function write_sst_xml(sst, opts) {
|
|
|
15059
15260
|
else {
|
|
15060
15261
|
sitag += "<t";
|
|
15061
15262
|
if (!s.t) s.t = "";
|
|
15263
|
+
if (typeof s.t !== "string") s.t = String(s.t);
|
|
15062
15264
|
if (s.t.match(straywsregex)) sitag += ' xml:space="preserve"';
|
|
15063
15265
|
sitag += ">" + escapexml(s.t) + "</t>";
|
|
15064
15266
|
}
|
|
@@ -15322,58 +15524,61 @@ function write_xlmeta_xml() {
|
|
|
15322
15524
|
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>');
|
|
15323
15525
|
return o.join("");
|
|
15324
15526
|
}
|
|
15325
|
-
|
|
15326
|
-
function write_comments_vml(rId, comments) {
|
|
15527
|
+
function write_vml(rId, comments, ws) {
|
|
15327
15528
|
var csize = [21600, 21600];
|
|
15328
15529
|
var bbox = ["m0,0l0", csize[1], csize[0], csize[1], csize[0], "0xe"].join(",");
|
|
15329
15530
|
var o = [
|
|
15330
15531
|
writextag("xml", null, { "xmlns:v": XLMLNS.v, "xmlns:o": XLMLNS.o, "xmlns:x": XLMLNS.x, "xmlns:mv": XLMLNS.mv }).replace(/\/>/, ">"),
|
|
15331
|
-
writextag("o:shapelayout", writextag("o:idmap", null, { "v:ext": "edit", "data": rId }), { "v:ext": "edit" })
|
|
15332
|
-
writextag("v:shapetype", [
|
|
15333
|
-
writextag("v:stroke", null, { joinstyle: "miter" }),
|
|
15334
|
-
writextag("v:path", null, { gradientshapeok: "t", "o:connecttype": "rect" })
|
|
15335
|
-
].join(""), { id: "_x0000_t202", "o:spt": 202, coordsize: csize.join(","), path: bbox })
|
|
15532
|
+
writextag("o:shapelayout", writextag("o:idmap", null, { "v:ext": "edit", "data": rId }), { "v:ext": "edit" })
|
|
15336
15533
|
];
|
|
15337
|
-
|
|
15338
|
-
comments
|
|
15339
|
-
|
|
15340
|
-
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
|
|
15344
|
-
if (fillopts.type == "gradient") fillopts.angle = "-180";
|
|
15345
|
-
var fillparm = fillopts.type == "gradient" ? writextag("o:fill", null, { type: "gradientUnscaled", "v:ext": "view" }) : null;
|
|
15346
|
-
var fillxml = writextag("v:fill", fillparm, fillopts);
|
|
15347
|
-
var shadata = { on: "t", "obscured": "t" };
|
|
15534
|
+
var _shapeid = 65536 * rId;
|
|
15535
|
+
var _comments = comments || [];
|
|
15536
|
+
if (_comments.length > 0) o.push(writextag("v:shapetype", [
|
|
15537
|
+
writextag("v:stroke", null, { joinstyle: "miter" }),
|
|
15538
|
+
writextag("v:path", null, { gradientshapeok: "t", "o:connecttype": "rect" })
|
|
15539
|
+
].join(""), { id: "_x0000_t202", coordsize: csize.join(","), "o:spt": 202, path: bbox }));
|
|
15540
|
+
_comments.forEach(function(x) {
|
|
15348
15541
|
++_shapeid;
|
|
15349
|
-
o
|
|
15350
|
-
"<v:shape" + wxt_helper({
|
|
15351
|
-
id: "_x0000_s" + _shapeid,
|
|
15352
|
-
type: "#_x0000_t202",
|
|
15353
|
-
style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (x[1].hidden ? ";visibility:hidden" : ""),
|
|
15354
|
-
fillcolor: "#ECFAD4",
|
|
15355
|
-
strokecolor: "#edeaa1"
|
|
15356
|
-
}) + ">",
|
|
15357
|
-
fillxml,
|
|
15358
|
-
writextag("v:shadow", null, shadata),
|
|
15359
|
-
writextag("v:path", null, { "o:connecttype": "none" }),
|
|
15360
|
-
'<v:textbox><div style="text-align:left"></div></v:textbox>',
|
|
15361
|
-
'<x:ClientData ObjectType="Note">',
|
|
15362
|
-
"<x:MoveWithCells/>",
|
|
15363
|
-
"<x:SizeWithCells/>",
|
|
15364
|
-
/* Part 4 19.4.2.3 Anchor (Anchor) */
|
|
15365
|
-
writetag("x:Anchor", [c.c + 1, 0, c.r + 1, 0, c.c + 3, 20, c.r + 5, 20].join(",")),
|
|
15366
|
-
writetag("x:AutoFill", "False"),
|
|
15367
|
-
writetag("x:Row", String(c.r)),
|
|
15368
|
-
writetag("x:Column", String(c.c)),
|
|
15369
|
-
x[1].hidden ? "" : "<x:Visible/>",
|
|
15370
|
-
"</x:ClientData>",
|
|
15371
|
-
"</v:shape>"
|
|
15372
|
-
]);
|
|
15542
|
+
o.push(write_vml_comment(x, _shapeid));
|
|
15373
15543
|
});
|
|
15374
15544
|
o.push("</xml>");
|
|
15375
15545
|
return o.join("");
|
|
15376
15546
|
}
|
|
15547
|
+
function write_vml_comment(x, _shapeid, ws) {
|
|
15548
|
+
var c = decode_cell(x[0]);
|
|
15549
|
+
var fillopts = (
|
|
15550
|
+
/*::(*/
|
|
15551
|
+
{ "color2": "#BEFF82", "type": "gradient" }
|
|
15552
|
+
);
|
|
15553
|
+
if (fillopts.type == "gradient") fillopts.angle = "-180";
|
|
15554
|
+
var fillparm = fillopts.type == "gradient" ? writextag("o:fill", null, { type: "gradientUnscaled", "v:ext": "view" }) : null;
|
|
15555
|
+
var fillxml = writextag("v:fill", fillparm, fillopts);
|
|
15556
|
+
var shadata = { on: "t", "obscured": "t" };
|
|
15557
|
+
return [
|
|
15558
|
+
"<v:shape" + wxt_helper({
|
|
15559
|
+
id: "_x0000_s" + _shapeid,
|
|
15560
|
+
type: "#_x0000_t202",
|
|
15561
|
+
style: "position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10" + (x[1].hidden ? ";visibility:hidden" : ""),
|
|
15562
|
+
fillcolor: "#ECFAD4",
|
|
15563
|
+
strokecolor: "#edeaa1"
|
|
15564
|
+
}) + ">",
|
|
15565
|
+
fillxml,
|
|
15566
|
+
writextag("v:shadow", null, shadata),
|
|
15567
|
+
writextag("v:path", null, { "o:connecttype": "none" }),
|
|
15568
|
+
'<v:textbox><div style="text-align:left"></div></v:textbox>',
|
|
15569
|
+
'<x:ClientData ObjectType="Note">',
|
|
15570
|
+
"<x:MoveWithCells/>",
|
|
15571
|
+
"<x:SizeWithCells/>",
|
|
15572
|
+
/* Part 4 19.4.2.3 Anchor (Anchor) */
|
|
15573
|
+
writetag("x:Anchor", [c.c + 1, 0, c.r + 1, 0, c.c + 3, 20, c.r + 5, 20].join(",")),
|
|
15574
|
+
writetag("x:AutoFill", "False"),
|
|
15575
|
+
writetag("x:Row", String(c.r)),
|
|
15576
|
+
writetag("x:Column", String(c.c)),
|
|
15577
|
+
x[1].hidden ? "" : "<x:Visible/>",
|
|
15578
|
+
"</x:ClientData>",
|
|
15579
|
+
"</v:shape>"
|
|
15580
|
+
].join("");
|
|
15581
|
+
}
|
|
15377
15582
|
function write_comments_xml(data) {
|
|
15378
15583
|
var o = [XML_HEADER, writextag("comments", null, { "xmlns": XMLNS_main[0] })];
|
|
15379
15584
|
var iauthor = [];
|
|
@@ -15398,20 +15603,27 @@ function write_comments_xml(data) {
|
|
|
15398
15603
|
o.push("</authors>");
|
|
15399
15604
|
o.push("<commentList>");
|
|
15400
15605
|
data.forEach(function(d) {
|
|
15401
|
-
var lastauthor = 0, ts = [];
|
|
15606
|
+
var lastauthor = 0, ts = [], tcnt = 0;
|
|
15402
15607
|
if (d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d[1][0].ID);
|
|
15403
|
-
|
|
15608
|
+
d[1].forEach(function(c) {
|
|
15404
15609
|
if (c.a) lastauthor = iauthor.indexOf(escapexml(c.a));
|
|
15405
|
-
|
|
15610
|
+
if (c.T) ++tcnt;
|
|
15611
|
+
ts.push(c.t == null ? "" : escapexml(c.t));
|
|
15406
15612
|
});
|
|
15407
|
-
|
|
15408
|
-
|
|
15409
|
-
|
|
15613
|
+
if (tcnt === 0) {
|
|
15614
|
+
d[1].forEach(function(c) {
|
|
15615
|
+
o.push('<comment ref="' + d[0] + '" authorId="' + iauthor.indexOf(escapexml(c.a)) + '"><text>');
|
|
15616
|
+
o.push(writetag("t", c.t == null ? "" : escapexml(c.t)));
|
|
15617
|
+
o.push("</text></comment>");
|
|
15618
|
+
});
|
|
15619
|
+
} else {
|
|
15620
|
+
if (d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf("tc=" + d[1][0].ID);
|
|
15621
|
+
o.push('<comment ref="' + d[0] + '" authorId="' + lastauthor + '"><text>');
|
|
15410
15622
|
var t = "Comment:\n " + ts[0] + "\n";
|
|
15411
15623
|
for (var i = 1; i < ts.length; ++i) t += "Reply:\n " + ts[i] + "\n";
|
|
15412
15624
|
o.push(writetag("t", escapexml(t)));
|
|
15625
|
+
o.push("</text></comment>");
|
|
15413
15626
|
}
|
|
15414
|
-
o.push("</text></comment>");
|
|
15415
15627
|
});
|
|
15416
15628
|
o.push("</commentList>");
|
|
15417
15629
|
if (o.length > 2) {
|
|
@@ -15461,6 +15673,11 @@ function write_people_xml(people) {
|
|
|
15461
15673
|
return o.join("");
|
|
15462
15674
|
}
|
|
15463
15675
|
var VBAFMTS = ["xlsb", "xlsm", "xlam", "biff8", "xla"];
|
|
15676
|
+
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;
|
|
15677
|
+
try {
|
|
15678
|
+
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;
|
|
15679
|
+
} catch (e) {
|
|
15680
|
+
}
|
|
15464
15681
|
var browser_has_Map = typeof Map !== "undefined";
|
|
15465
15682
|
function get_sst_id(sst, str, rev) {
|
|
15466
15683
|
var i = 0, len = sst.length;
|
|
@@ -15526,7 +15743,7 @@ function get_cell_style(styles, cell, opts) {
|
|
|
15526
15743
|
var i = 60, len = styles.length;
|
|
15527
15744
|
if (z == null && opts.ssf) {
|
|
15528
15745
|
for (; i < 392; ++i) if (opts.ssf[i] == null) {
|
|
15529
|
-
|
|
15746
|
+
SSF__load(cell.z, i);
|
|
15530
15747
|
opts.ssf[i] = cell.z;
|
|
15531
15748
|
opts.revssf[cell.z] = z = i;
|
|
15532
15749
|
break;
|
|
@@ -15628,7 +15845,7 @@ function write_ws_xml_autofilter(data, ws, wb, idx) {
|
|
|
15628
15845
|
var name = names[i];
|
|
15629
15846
|
if (name.Name != "_xlnm._FilterDatabase") continue;
|
|
15630
15847
|
if (name.Sheet != idx) continue;
|
|
15631
|
-
name.Ref =
|
|
15848
|
+
name.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + "!" + fix_range(ref2);
|
|
15632
15849
|
break;
|
|
15633
15850
|
}
|
|
15634
15851
|
if (i == names.length) names.push({ Name: "_xlnm._FilterDatabase", Sheet: idx, Ref: "'" + wb.SheetNames[idx] + "'!" + ref2 });
|
|
@@ -15639,9 +15856,9 @@ function write_ws_xml_sheetviews(ws, opts, idx, wb) {
|
|
|
15639
15856
|
if ((((wb || {}).Workbook || {}).Views || [])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? "1" : "0";
|
|
15640
15857
|
return writextag("sheetViews", writextag("sheetView", null, sview), {});
|
|
15641
15858
|
}
|
|
15642
|
-
function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
15859
|
+
function write_ws_xml_cell(cell, ref2, ws, opts, idx, wb, date1904) {
|
|
15643
15860
|
if (cell.c) ws["!comments"].push([ref2, cell.c]);
|
|
15644
|
-
if (cell.v === void 0 && typeof cell.f !== "string"
|
|
15861
|
+
if ((cell.v === void 0 || cell.t === "z" && !(opts || {}).sheetStubs) && typeof cell.f !== "string" && typeof cell.z == "undefined") return "";
|
|
15645
15862
|
var vv = "";
|
|
15646
15863
|
var oldt = cell.t, oldv = cell.v;
|
|
15647
15864
|
if (cell.t !== "z") switch (cell.t) {
|
|
@@ -15649,17 +15866,26 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15649
15866
|
vv = cell.v ? "1" : "0";
|
|
15650
15867
|
break;
|
|
15651
15868
|
case "n":
|
|
15652
|
-
|
|
15869
|
+
if (isNaN(cell.v)) {
|
|
15870
|
+
cell.t = "e";
|
|
15871
|
+
vv = BErr[cell.v = 36];
|
|
15872
|
+
} else if (!isFinite(cell.v)) {
|
|
15873
|
+
cell.t = "e";
|
|
15874
|
+
vv = BErr[cell.v = 7];
|
|
15875
|
+
} else vv = "" + cell.v;
|
|
15653
15876
|
break;
|
|
15654
15877
|
case "e":
|
|
15655
15878
|
vv = BErr[cell.v];
|
|
15656
15879
|
break;
|
|
15657
15880
|
case "d":
|
|
15658
|
-
if (opts && opts.cellDates)
|
|
15659
|
-
|
|
15881
|
+
if (opts && opts.cellDates) {
|
|
15882
|
+
var _vv = parseDate(cell.v, date1904);
|
|
15883
|
+
vv = _vv.toISOString();
|
|
15884
|
+
if (_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf("T") + 1).replace("Z", "");
|
|
15885
|
+
} else {
|
|
15660
15886
|
cell = dup(cell);
|
|
15661
15887
|
cell.t = "n";
|
|
15662
|
-
vv = "" + (cell.v = datenum(parseDate(cell.v)));
|
|
15888
|
+
vv = "" + (cell.v = datenum(parseDate(cell.v, date1904), date1904));
|
|
15663
15889
|
}
|
|
15664
15890
|
if (typeof cell.z === "undefined") cell.z = table_fmt[14];
|
|
15665
15891
|
break;
|
|
@@ -15667,7 +15893,7 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15667
15893
|
vv = cell.v;
|
|
15668
15894
|
break;
|
|
15669
15895
|
}
|
|
15670
|
-
var v = writetag("v", escapexml(vv)), o = { r: ref2 };
|
|
15896
|
+
var v = cell.t == "z" || cell.v == null ? "" : writetag("v", escapexml(vv)), o = { r: ref2 };
|
|
15671
15897
|
var os = get_cell_style(opts.cellXfs, cell, opts);
|
|
15672
15898
|
if (os !== 0) o.s = os;
|
|
15673
15899
|
switch (cell.t) {
|
|
@@ -15694,8 +15920,7 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15694
15920
|
v = writetag("v", "" + get_sst_id(opts.Strings, cell.v, opts.revStrings));
|
|
15695
15921
|
o.t = "s";
|
|
15696
15922
|
break;
|
|
15697
|
-
}
|
|
15698
|
-
o.t = "str";
|
|
15923
|
+
} else o.t = "str";
|
|
15699
15924
|
break;
|
|
15700
15925
|
}
|
|
15701
15926
|
if (cell.t != oldt) {
|
|
@@ -15706,23 +15931,28 @@ function write_ws_xml_cell(cell, ref2, ws, opts) {
|
|
|
15706
15931
|
var ff = cell.F && cell.F.slice(0, ref2.length) == ref2 ? { t: "array", ref: cell.F } : null;
|
|
15707
15932
|
v = writextag("f", escapexml(cell.f), ff) + (cell.v != null ? v : "");
|
|
15708
15933
|
}
|
|
15709
|
-
if (cell.l)
|
|
15934
|
+
if (cell.l) {
|
|
15935
|
+
cell.l.display = escapexml(vv);
|
|
15936
|
+
ws["!links"].push([ref2, cell.l]);
|
|
15937
|
+
}
|
|
15710
15938
|
if (cell.D) o.cm = 1;
|
|
15711
15939
|
return writextag("c", v, o);
|
|
15712
15940
|
}
|
|
15713
15941
|
function write_ws_xml_data(ws, opts, idx, wb) {
|
|
15714
15942
|
var o = [], r = [], range2 = safe_decode_range(ws["!ref"]), cell = "", ref2, rr = "", cols = [], R = 0, C = 0, rows = ws["!rows"];
|
|
15715
|
-
var dense =
|
|
15943
|
+
var dense = ws["!data"] != null, data = dense ? ws["!data"] : [];
|
|
15716
15944
|
var params = { r: rr }, row, height = -1;
|
|
15945
|
+
var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
|
|
15717
15946
|
for (C = range2.s.c; C <= range2.e.c; ++C) cols[C] = encode_col(C);
|
|
15718
15947
|
for (R = range2.s.r; R <= range2.e.r; ++R) {
|
|
15719
15948
|
r = [];
|
|
15720
15949
|
rr = encode_row(R);
|
|
15950
|
+
var data_R = dense ? data[R] : [];
|
|
15721
15951
|
for (C = range2.s.c; C <= range2.e.c; ++C) {
|
|
15722
15952
|
ref2 = cols[C] + rr;
|
|
15723
|
-
var _cell = dense ?
|
|
15953
|
+
var _cell = dense ? data_R[C] : ws[ref2];
|
|
15724
15954
|
if (_cell === void 0) continue;
|
|
15725
|
-
if ((cell = write_ws_xml_cell(_cell, ref2, ws, opts)) != null) r.push(cell);
|
|
15955
|
+
if ((cell = write_ws_xml_cell(_cell, ref2, ws, opts, idx, wb, date1904)) != null) r.push(cell);
|
|
15726
15956
|
}
|
|
15727
15957
|
if (r.length > 0 || rows && rows[R]) {
|
|
15728
15958
|
params = { r: rr };
|
|
@@ -15794,7 +16024,7 @@ function write_ws_xml(idx, opts, wb, rels) {
|
|
|
15794
16024
|
o[sidx = o.length] = "<sheetData/>";
|
|
15795
16025
|
ws["!links"] = [];
|
|
15796
16026
|
if (ws["!ref"] != null) {
|
|
15797
|
-
rdata = write_ws_xml_data(ws, opts);
|
|
16027
|
+
rdata = write_ws_xml_data(ws, opts, idx, wb);
|
|
15798
16028
|
if (rdata.length > 0) o[o.length] = rdata;
|
|
15799
16029
|
}
|
|
15800
16030
|
if (o.length > sidx + 1) {
|
|
@@ -15814,11 +16044,12 @@ function write_ws_xml(idx, opts, wb, rels) {
|
|
|
15814
16044
|
if (!l[1].Target) return;
|
|
15815
16045
|
rel = { "ref": l[0] };
|
|
15816
16046
|
if (l[1].Target.charAt(0) != "#") {
|
|
15817
|
-
rId = add_rels(rels, -1, escapexml(l[1].Target).replace(
|
|
16047
|
+
rId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#[\s\S]*$/, ""), RELS.HLINK);
|
|
15818
16048
|
rel["r:id"] = "rId" + rId;
|
|
15819
16049
|
}
|
|
15820
16050
|
if ((relc = l[1].Target.indexOf("#")) > -1) rel.location = escapexml(l[1].Target.slice(relc + 1));
|
|
15821
16051
|
if (l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);
|
|
16052
|
+
rel.display = l[1].display;
|
|
15822
16053
|
o[o.length] = writextag("hyperlink", null, rel);
|
|
15823
16054
|
});
|
|
15824
16055
|
o[o.length] = "</hyperlinks>";
|
|
@@ -15862,17 +16093,21 @@ var WBPropsDef = [
|
|
|
15862
16093
|
["showPivotChartFilter", false, "bool"],
|
|
15863
16094
|
["updateLinks", "userSet"]
|
|
15864
16095
|
];
|
|
15865
|
-
var badchars = /* @__PURE__ */ "][*?/\\".split("");
|
|
16096
|
+
var badchars = /* @__PURE__ */ ":][*?/\\".split("");
|
|
15866
16097
|
function check_ws_name(n, safe) {
|
|
15867
|
-
|
|
15868
|
-
throw new Error("Sheet
|
|
16098
|
+
try {
|
|
16099
|
+
if (n == "") throw new Error("Sheet name cannot be blank");
|
|
16100
|
+
if (n.length > 31) throw new Error("Sheet name cannot exceed 31 chars");
|
|
16101
|
+
if (n.charCodeAt(0) == 39 || n.charCodeAt(n.length - 1) == 39) throw new Error("Sheet name cannot start or end with apostrophe (')");
|
|
16102
|
+
if (n.toLowerCase() == "history") throw new Error("Sheet name cannot be 'History'");
|
|
16103
|
+
badchars.forEach(function(c) {
|
|
16104
|
+
if (n.indexOf(c) == -1) return;
|
|
16105
|
+
throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
|
|
16106
|
+
});
|
|
16107
|
+
} catch (e) {
|
|
16108
|
+
throw e;
|
|
15869
16109
|
}
|
|
15870
|
-
|
|
15871
|
-
badchars.forEach(function(c) {
|
|
15872
|
-
if (n.indexOf(c) == -1) return;
|
|
15873
|
-
throw new Error("Sheet name cannot contain : \\ / ? * [ ]");
|
|
15874
|
-
});
|
|
15875
|
-
return _good;
|
|
16110
|
+
return true;
|
|
15876
16111
|
}
|
|
15877
16112
|
function check_wb_names(N, S, codes) {
|
|
15878
16113
|
N.forEach(function(n, i) {
|
|
@@ -15890,6 +16125,19 @@ function check_wb(wb) {
|
|
|
15890
16125
|
var Sheets = wb.Workbook && wb.Workbook.Sheets || [];
|
|
15891
16126
|
check_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);
|
|
15892
16127
|
for (var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);
|
|
16128
|
+
wb.SheetNames.forEach(function(n, i2) {
|
|
16129
|
+
var ws = wb.Sheets[n];
|
|
16130
|
+
if (!ws || !ws["!autofilter"]) return;
|
|
16131
|
+
var DN;
|
|
16132
|
+
if (!wb.Workbook) wb.Workbook = {};
|
|
16133
|
+
if (!wb.Workbook.Names) wb.Workbook.Names = [];
|
|
16134
|
+
wb.Workbook.Names.forEach(function(dn) {
|
|
16135
|
+
if (dn.Name == "_xlnm._FilterDatabase" && dn.Sheet == i2) DN = dn;
|
|
16136
|
+
});
|
|
16137
|
+
var nn = formula_quote_sheet_name(n) + "!" + fix_range(ws["!autofilter"].ref);
|
|
16138
|
+
if (DN) DN.Ref = nn;
|
|
16139
|
+
else wb.Workbook.Names.push({ Name: "_xlnm._FilterDatabase", Sheet: i2, Ref: nn });
|
|
16140
|
+
});
|
|
15893
16141
|
}
|
|
15894
16142
|
function write_wb_xml(wb) {
|
|
15895
16143
|
var o = [XML_HEADER];
|
|
@@ -15962,6 +16210,8 @@ function write_wb_xml(wb) {
|
|
|
15962
16210
|
function make_html_row(ws, r, R, o) {
|
|
15963
16211
|
var M = ws["!merges"] || [];
|
|
15964
16212
|
var oo = [];
|
|
16213
|
+
var sp = {};
|
|
16214
|
+
var dense = ws["!data"] != null;
|
|
15965
16215
|
for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
15966
16216
|
var RS = 0, CS = 0;
|
|
15967
16217
|
for (var j = 0; j < M.length; ++j) {
|
|
@@ -15976,18 +16226,22 @@ function make_html_row(ws, r, R, o) {
|
|
|
15976
16226
|
break;
|
|
15977
16227
|
}
|
|
15978
16228
|
if (RS < 0) continue;
|
|
15979
|
-
var coord =
|
|
15980
|
-
var cell =
|
|
16229
|
+
var coord = encode_col(C) + encode_row(R);
|
|
16230
|
+
var cell = dense ? (ws["!data"][R] || [])[C] : ws[coord];
|
|
16231
|
+
if (cell && cell.t == "n" && cell.v != null && !isFinite(cell.v)) {
|
|
16232
|
+
if (isNaN(cell.v)) cell = { t: "e", v: 36, w: BErr[36] };
|
|
16233
|
+
else cell = { t: "e", v: 7, w: BErr[7] };
|
|
16234
|
+
}
|
|
15981
16235
|
var w = cell && cell.v != null && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || "")) || "";
|
|
15982
|
-
|
|
16236
|
+
sp = {};
|
|
15983
16237
|
if (RS > 1) sp.rowspan = RS;
|
|
15984
16238
|
if (CS > 1) sp.colspan = CS;
|
|
15985
16239
|
if (o.editable) w = '<span contenteditable="true">' + w + "</span>";
|
|
15986
16240
|
else if (cell) {
|
|
15987
16241
|
sp["data-t"] = cell && cell.t || "z";
|
|
15988
|
-
if (cell.v != null) sp["data-v"] = cell.v;
|
|
16242
|
+
if (cell.v != null) sp["data-v"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);
|
|
15989
16243
|
if (cell.z != null) sp["data-z"] = cell.z;
|
|
15990
|
-
if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w = '<a href="' + cell.l.Target + '">' + w + "</a>";
|
|
16244
|
+
if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w = '<a href="' + escapehtml(cell.l.Target) + '">' + w + "</a>";
|
|
15991
16245
|
}
|
|
15992
16246
|
sp.id = (o.id || "sjs") + "-" + coord;
|
|
15993
16247
|
oo.push(writextag("td", w, sp));
|
|
@@ -16006,15 +16260,19 @@ function sheet_to_html(ws, opts) {
|
|
|
16006
16260
|
var header = o.header != null ? o.header : HTML_BEGIN;
|
|
16007
16261
|
var footer = o.footer != null ? o.footer : HTML_END;
|
|
16008
16262
|
var out = [header];
|
|
16009
|
-
var r = decode_range(ws["!ref"]);
|
|
16010
|
-
o.dense = Array.isArray(ws);
|
|
16263
|
+
var r = decode_range(ws["!ref"] || "A1");
|
|
16011
16264
|
out.push(make_html_preamble(ws, r, o));
|
|
16012
|
-
for (var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));
|
|
16265
|
+
if (ws["!ref"]) for (var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));
|
|
16013
16266
|
out.push("</table>" + footer);
|
|
16014
16267
|
return out.join("");
|
|
16015
16268
|
}
|
|
16016
16269
|
function sheet_add_dom(ws, table, _opts) {
|
|
16270
|
+
var rows = table.rows;
|
|
16271
|
+
if (!rows) {
|
|
16272
|
+
throw "Unsupported origin when " + table.tagName + " is not a TABLE";
|
|
16273
|
+
}
|
|
16017
16274
|
var opts = _opts || {};
|
|
16275
|
+
var dense = ws["!data"] != null;
|
|
16018
16276
|
var or_R = 0, or_C = 0;
|
|
16019
16277
|
if (opts.origin != null) {
|
|
16020
16278
|
if (typeof opts.origin == "number") or_R = opts.origin;
|
|
@@ -16024,7 +16282,6 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16024
16282
|
or_C = _origin.c;
|
|
16025
16283
|
}
|
|
16026
16284
|
}
|
|
16027
|
-
var rows = table.getElementsByTagName("tr");
|
|
16028
16285
|
var sheetRows = Math.min(opts.sheetRows || 1e7, rows.length);
|
|
16029
16286
|
var range2 = { s: { r: 0, c: 0 }, e: { r: or_R, c: or_C } };
|
|
16030
16287
|
if (ws["!ref"]) {
|
|
@@ -16045,7 +16302,7 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16045
16302
|
if (opts.display) continue;
|
|
16046
16303
|
rowinfo[R] = { hidden: true };
|
|
16047
16304
|
}
|
|
16048
|
-
var elts = row.
|
|
16305
|
+
var elts = row.cells;
|
|
16049
16306
|
for (_C = C = 0; _C < elts.length; ++_C) {
|
|
16050
16307
|
var elt = elts[_C];
|
|
16051
16308
|
if (opts.display && is_dom_element_hidden(elt)) continue;
|
|
@@ -16065,14 +16322,16 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16065
16322
|
if (v != null) {
|
|
16066
16323
|
if (v.length == 0) o.t = _t || "z";
|
|
16067
16324
|
else if (opts.raw || v.trim().length == 0 || _t == "s") ;
|
|
16325
|
+
else if (_t == "e" && BErr[+v]) o = { t: "e", v: +v, w: BErr[+v] };
|
|
16068
16326
|
else if (v === "TRUE") o = { t: "b", v: true };
|
|
16069
16327
|
else if (v === "FALSE") o = { t: "b", v: false };
|
|
16070
16328
|
else if (!isNaN(fuzzynum(v))) o = { t: "n", v: fuzzynum(v) };
|
|
16071
16329
|
else if (!isNaN(fuzzydate(v).getDate())) {
|
|
16072
16330
|
o = { t: "d", v: parseDate(v) };
|
|
16331
|
+
if (opts.UTC) o.v = local_to_utc(o.v);
|
|
16073
16332
|
if (!opts.cellDates) o = { t: "n", v: datenum(o.v) };
|
|
16074
16333
|
o.z = opts.dateNF || table_fmt[14];
|
|
16075
|
-
}
|
|
16334
|
+
} else if (v.charCodeAt(0) == 35 && RBErr[v] != null) o = { t: "e", v: RBErr[v], w: v };
|
|
16076
16335
|
}
|
|
16077
16336
|
if (o.z === void 0 && z != null) o.z = z;
|
|
16078
16337
|
var l = "", Aelts = elt.getElementsByTagName("A");
|
|
@@ -16082,10 +16341,10 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16082
16341
|
if (l.charAt(0) != "#") break;
|
|
16083
16342
|
}
|
|
16084
16343
|
}
|
|
16085
|
-
if (l && l.charAt(0) != "#") o.l = { Target: l };
|
|
16086
|
-
if (
|
|
16087
|
-
if (!ws[R + or_R]) ws[R + or_R] = [];
|
|
16088
|
-
ws[R + or_R][C + or_C] = o;
|
|
16344
|
+
if (l && l.charAt(0) != "#" && l.slice(0, 11).toLowerCase() != "javascript:") o.l = { Target: l };
|
|
16345
|
+
if (dense) {
|
|
16346
|
+
if (!ws["!data"][R + or_R]) ws["!data"][R + or_R] = [];
|
|
16347
|
+
ws["!data"][R + or_R][C + or_C] = o;
|
|
16089
16348
|
} else ws[encode_cell({ c: C + or_C, r: R + or_R })] = o;
|
|
16090
16349
|
if (range2.e.c < C + or_C) range2.e.c = C + or_C;
|
|
16091
16350
|
C += CS;
|
|
@@ -16100,11 +16359,13 @@ function sheet_add_dom(ws, table, _opts) {
|
|
|
16100
16359
|
}
|
|
16101
16360
|
function parse_dom_table(table, _opts) {
|
|
16102
16361
|
var opts = _opts || {};
|
|
16103
|
-
var ws =
|
|
16362
|
+
var ws = {};
|
|
16363
|
+
if (opts.dense) ws["!data"] = [];
|
|
16104
16364
|
return sheet_add_dom(ws, table, _opts);
|
|
16105
16365
|
}
|
|
16106
16366
|
function table_to_book(table, opts) {
|
|
16107
|
-
|
|
16367
|
+
var o = sheet_to_workbook(parse_dom_table(table, opts), opts);
|
|
16368
|
+
return o;
|
|
16108
16369
|
}
|
|
16109
16370
|
function is_dom_element_hidden(element) {
|
|
16110
16371
|
var display = "";
|
|
@@ -16118,6 +16379,25 @@ function get_get_computed_style_function(element) {
|
|
|
16118
16379
|
if (typeof getComputedStyle === "function") return getComputedStyle;
|
|
16119
16380
|
return null;
|
|
16120
16381
|
}
|
|
16382
|
+
/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */
|
|
16383
|
+
(function() {
|
|
16384
|
+
try {
|
|
16385
|
+
if (typeof Uint8Array == "undefined")
|
|
16386
|
+
return "slice";
|
|
16387
|
+
if (typeof Uint8Array.prototype.subarray == "undefined")
|
|
16388
|
+
return "slice";
|
|
16389
|
+
if (typeof Buffer !== "undefined") {
|
|
16390
|
+
if (typeof Buffer.prototype.subarray == "undefined")
|
|
16391
|
+
return "slice";
|
|
16392
|
+
if ((typeof Buffer.from == "function" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)
|
|
16393
|
+
return "subarray";
|
|
16394
|
+
return "slice";
|
|
16395
|
+
}
|
|
16396
|
+
return "subarray";
|
|
16397
|
+
} catch (e) {
|
|
16398
|
+
return "slice";
|
|
16399
|
+
}
|
|
16400
|
+
})();
|
|
16121
16401
|
function fix_opts_func(defaults) {
|
|
16122
16402
|
return function fix_opts(opts) {
|
|
16123
16403
|
for (var i = 0; i != defaults.length; ++i) {
|
|
@@ -16142,7 +16422,6 @@ function fix_write_opts(opts) {
|
|
|
16142
16422
|
])(opts);
|
|
16143
16423
|
}
|
|
16144
16424
|
function write_zip_xlsx(wb, opts) {
|
|
16145
|
-
_shapeid = 1024;
|
|
16146
16425
|
if (wb && !wb.SSF) {
|
|
16147
16426
|
wb.SSF = dup(table_fmt);
|
|
16148
16427
|
}
|
|
@@ -16224,10 +16503,10 @@ function write_zip_xlsx(wb, opts) {
|
|
|
16224
16503
|
});
|
|
16225
16504
|
});
|
|
16226
16505
|
if (needtc) {
|
|
16227
|
-
cf = "xl/threadedComments/threadedComment" + rId + "."
|
|
16506
|
+
cf = "xl/threadedComments/threadedComment" + rId + ".xml";
|
|
16228
16507
|
zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
|
|
16229
16508
|
ct.threadedcomments.push(cf);
|
|
16230
|
-
add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + "."
|
|
16509
|
+
add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
|
|
16231
16510
|
}
|
|
16232
16511
|
cf = "xl/comments" + rId + "." + wbext;
|
|
16233
16512
|
zip_add_file(zip, cf, write_comments_xml(comments));
|
|
@@ -16236,7 +16515,7 @@ function write_zip_xlsx(wb, opts) {
|
|
|
16236
16515
|
need_vml = true;
|
|
16237
16516
|
}
|
|
16238
16517
|
if (ws["!legacy"]) {
|
|
16239
|
-
if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml",
|
|
16518
|
+
if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
|
|
16240
16519
|
}
|
|
16241
16520
|
delete ws["!comments"];
|
|
16242
16521
|
delete ws["!legacy"];
|
|
@@ -16361,10 +16640,10 @@ function writeSyncXLSX(wb, opts) {
|
|
|
16361
16640
|
}
|
|
16362
16641
|
return write_zip_typeXLSX(wb, o);
|
|
16363
16642
|
}
|
|
16364
|
-
function make_json_row(sheet, r, R, cols, header, hdr,
|
|
16643
|
+
function make_json_row(sheet, r, R, cols, header, hdr, o) {
|
|
16365
16644
|
var rr = encode_row(R);
|
|
16366
16645
|
var defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, "raw");
|
|
16367
|
-
var isempty = true;
|
|
16646
|
+
var isempty = true, dense = sheet["!data"] != null;
|
|
16368
16647
|
var row = header === 1 ? [] : {};
|
|
16369
16648
|
if (header !== 1) {
|
|
16370
16649
|
if (Object.defineProperty) try {
|
|
@@ -16374,9 +16653,9 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16374
16653
|
}
|
|
16375
16654
|
else row.__rowNum__ = R;
|
|
16376
16655
|
}
|
|
16377
|
-
if (!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16378
|
-
var val = dense ? sheet[R][C] : sheet[cols[C] + rr];
|
|
16379
|
-
if (val
|
|
16656
|
+
if (!dense || sheet["!data"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16657
|
+
var val = dense ? (sheet["!data"][R] || [])[C] : sheet[cols[C] + rr];
|
|
16658
|
+
if (val == null || val.t === void 0) {
|
|
16380
16659
|
if (defval === void 0) continue;
|
|
16381
16660
|
if (hdr[C] != null) {
|
|
16382
16661
|
row[hdr[C]] = defval;
|
|
@@ -16392,9 +16671,14 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16392
16671
|
v = v == 0 ? null : void 0;
|
|
16393
16672
|
break;
|
|
16394
16673
|
case "s":
|
|
16395
|
-
case "d":
|
|
16396
16674
|
case "b":
|
|
16397
16675
|
case "n":
|
|
16676
|
+
if (!val.z || !fmt_is_date(val.z)) break;
|
|
16677
|
+
v = numdate(v);
|
|
16678
|
+
if (typeof v == "number") break;
|
|
16679
|
+
/* falls through */
|
|
16680
|
+
case "d":
|
|
16681
|
+
if (!(o && (o.UTC || o.raw === false))) v = utc_to_local(new Date(v));
|
|
16398
16682
|
break;
|
|
16399
16683
|
default:
|
|
16400
16684
|
throw new Error("unrecognized type " + val.t);
|
|
@@ -16406,7 +16690,7 @@ function make_json_row(sheet, r, R, cols, header, hdr, dense, o) {
|
|
|
16406
16690
|
else if (raw && v === null) row[hdr[C]] = null;
|
|
16407
16691
|
else continue;
|
|
16408
16692
|
} else {
|
|
16409
|
-
row[hdr[C]] =
|
|
16693
|
+
row[hdr[C]] = (val.t === "n" && typeof o.rawNumbers === "boolean" ? o.rawNumbers : raw) ? v : format_cell(val, v, o);
|
|
16410
16694
|
}
|
|
16411
16695
|
if (v != null) isempty = false;
|
|
16412
16696
|
}
|
|
@@ -16439,16 +16723,16 @@ function sheet_to_json(sheet, opts) {
|
|
|
16439
16723
|
var cols = [];
|
|
16440
16724
|
var out = [];
|
|
16441
16725
|
var outi = 0, counter = 0;
|
|
16442
|
-
var dense =
|
|
16726
|
+
var dense = sheet["!data"] != null;
|
|
16443
16727
|
var R = r.s.r, C = 0;
|
|
16444
16728
|
var header_cnt = {};
|
|
16445
|
-
if (dense && !sheet[R]) sheet[R] = [];
|
|
16729
|
+
if (dense && !sheet["!data"][R]) sheet["!data"][R] = [];
|
|
16446
16730
|
var colinfo = o.skipHidden && sheet["!cols"] || [];
|
|
16447
16731
|
var rowinfo = o.skipHidden && sheet["!rows"] || [];
|
|
16448
16732
|
for (C = r.s.c; C <= r.e.c; ++C) {
|
|
16449
16733
|
if ((colinfo[C] || {}).hidden) continue;
|
|
16450
16734
|
cols[C] = encode_col(C);
|
|
16451
|
-
val = dense ? sheet[R][C] : sheet[cols[C] + rr];
|
|
16735
|
+
val = dense ? sheet["!data"][R][C] : sheet[cols[C] + rr];
|
|
16452
16736
|
switch (header) {
|
|
16453
16737
|
case 1:
|
|
16454
16738
|
hdr[C] = C - r.s.c;
|
|
@@ -16476,19 +16760,21 @@ function sheet_to_json(sheet, opts) {
|
|
|
16476
16760
|
}
|
|
16477
16761
|
for (R = r.s.r + offset; R <= r.e.r; ++R) {
|
|
16478
16762
|
if ((rowinfo[R] || {}).hidden) continue;
|
|
16479
|
-
var row = make_json_row(sheet, r, R, cols, header, hdr,
|
|
16763
|
+
var row = make_json_row(sheet, r, R, cols, header, hdr, o);
|
|
16480
16764
|
if (row.isempty === false || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;
|
|
16481
16765
|
}
|
|
16482
16766
|
out.length = outi;
|
|
16483
16767
|
return out;
|
|
16484
16768
|
}
|
|
16485
16769
|
var qreg = /"/g;
|
|
16486
|
-
function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
16770
|
+
function make_csv_row(sheet, r, R, cols, fs, rs, FS, w, o) {
|
|
16487
16771
|
var isempty = true;
|
|
16488
16772
|
var row = [], txt = "", rr = encode_row(R);
|
|
16773
|
+
var dense = sheet["!data"] != null;
|
|
16774
|
+
var datarow = dense && sheet["!data"][R] || [];
|
|
16489
16775
|
for (var C = r.s.c; C <= r.e.c; ++C) {
|
|
16490
16776
|
if (!cols[C]) continue;
|
|
16491
|
-
var val =
|
|
16777
|
+
var val = dense ? datarow[C] : sheet[cols[C] + rr];
|
|
16492
16778
|
if (val == null) txt = "";
|
|
16493
16779
|
else if (val.v != null) {
|
|
16494
16780
|
isempty = false;
|
|
@@ -16497,7 +16783,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
|
16497
16783
|
txt = '"' + txt.replace(qreg, '""') + '"';
|
|
16498
16784
|
break;
|
|
16499
16785
|
}
|
|
16500
|
-
if (txt == "ID") txt = '"ID"';
|
|
16786
|
+
if (txt == "ID" && w == 0 && row.length == 0) txt = '"ID"';
|
|
16501
16787
|
} else if (val.f != null && !val.F) {
|
|
16502
16788
|
isempty = false;
|
|
16503
16789
|
txt = "=" + val.f;
|
|
@@ -16505,6 +16791,7 @@ function make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {
|
|
|
16505
16791
|
} else txt = "";
|
|
16506
16792
|
row.push(txt);
|
|
16507
16793
|
}
|
|
16794
|
+
if (o.strip) while (row[row.length - 1] === "") --row.length;
|
|
16508
16795
|
if (o.blankrows === false && isempty) return null;
|
|
16509
16796
|
return row.join(FS);
|
|
16510
16797
|
}
|
|
@@ -16515,23 +16802,19 @@ function sheet_to_csv(sheet, opts) {
|
|
|
16515
16802
|
var r = safe_decode_range(sheet["!ref"]);
|
|
16516
16803
|
var FS = o.FS !== void 0 ? o.FS : ",", fs = FS.charCodeAt(0);
|
|
16517
16804
|
var RS = o.RS !== void 0 ? o.RS : "\n", rs = RS.charCodeAt(0);
|
|
16518
|
-
var endregex = new RegExp((FS == "|" ? "\\|" : FS) + "+$");
|
|
16519
16805
|
var row = "", cols = [];
|
|
16520
|
-
o.dense = Array.isArray(sheet);
|
|
16521
16806
|
var colinfo = o.skipHidden && sheet["!cols"] || [];
|
|
16522
16807
|
var rowinfo = o.skipHidden && sheet["!rows"] || [];
|
|
16523
16808
|
for (var C = r.s.c; C <= r.e.c; ++C) if (!(colinfo[C] || {}).hidden) cols[C] = encode_col(C);
|
|
16524
16809
|
var w = 0;
|
|
16525
16810
|
for (var R = r.s.r; R <= r.e.r; ++R) {
|
|
16526
16811
|
if ((rowinfo[R] || {}).hidden) continue;
|
|
16527
|
-
row = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);
|
|
16812
|
+
row = make_csv_row(sheet, r, R, cols, fs, rs, FS, w, o);
|
|
16528
16813
|
if (row == null) {
|
|
16529
16814
|
continue;
|
|
16530
16815
|
}
|
|
16531
|
-
if (o.strip) row = row.replace(endregex, "");
|
|
16532
16816
|
if (row || o.blankrows !== false) out.push((w++ ? RS : "") + row);
|
|
16533
16817
|
}
|
|
16534
|
-
delete o.dense;
|
|
16535
16818
|
return out.join("");
|
|
16536
16819
|
}
|
|
16537
16820
|
function sheet_to_txt(sheet, opts) {
|
|
@@ -16541,18 +16824,18 @@ function sheet_to_txt(sheet, opts) {
|
|
|
16541
16824
|
var s = sheet_to_csv(sheet, opts);
|
|
16542
16825
|
return s;
|
|
16543
16826
|
}
|
|
16544
|
-
function sheet_to_formulae(sheet) {
|
|
16827
|
+
function sheet_to_formulae(sheet, opts) {
|
|
16545
16828
|
var y = "", x, val = "";
|
|
16546
16829
|
if (sheet == null || sheet["!ref"] == null) return [];
|
|
16547
16830
|
var r = safe_decode_range(sheet["!ref"]), rr = "", cols = [], C;
|
|
16548
16831
|
var cmds = [];
|
|
16549
|
-
var dense =
|
|
16832
|
+
var dense = sheet["!data"] != null;
|
|
16550
16833
|
for (C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);
|
|
16551
16834
|
for (var R = r.s.r; R <= r.e.r; ++R) {
|
|
16552
16835
|
rr = encode_row(R);
|
|
16553
16836
|
for (C = r.s.c; C <= r.e.c; ++C) {
|
|
16554
16837
|
y = cols[C] + rr;
|
|
16555
|
-
x = dense ? (sheet[R] || [])[C] : sheet[y];
|
|
16838
|
+
x = dense ? (sheet["!data"][R] || [])[C] : sheet[y];
|
|
16556
16839
|
val = "";
|
|
16557
16840
|
if (x === void 0) continue;
|
|
16558
16841
|
else if (x.F != null) {
|
|
@@ -16562,6 +16845,7 @@ function sheet_to_formulae(sheet) {
|
|
|
16562
16845
|
if (y.indexOf(":") == -1) y = y + ":" + y;
|
|
16563
16846
|
}
|
|
16564
16847
|
if (x.f != null) val = x.f;
|
|
16848
|
+
else if (opts && opts.values === false) continue;
|
|
16565
16849
|
else if (x.t == "z") continue;
|
|
16566
16850
|
else if (x.t == "n" && x.v != null) val = "" + x.v;
|
|
16567
16851
|
else if (x.t == "b") val = x.v ? "TRUE" : "FALSE";
|
|
@@ -16576,8 +16860,10 @@ function sheet_to_formulae(sheet) {
|
|
|
16576
16860
|
}
|
|
16577
16861
|
function sheet_add_json(_ws, js, opts) {
|
|
16578
16862
|
var o = opts || {};
|
|
16863
|
+
var dense = _ws ? _ws["!data"] != null : o.dense;
|
|
16579
16864
|
var offset = +!o.skipHeader;
|
|
16580
16865
|
var ws = _ws || {};
|
|
16866
|
+
if (!_ws && dense) ws["!data"] = [];
|
|
16581
16867
|
var _R = 0, _C = 0;
|
|
16582
16868
|
if (ws && o.origin != null) {
|
|
16583
16869
|
if (typeof o.origin == "number") _R = o.origin;
|
|
@@ -16587,7 +16873,6 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16587
16873
|
_C = _origin.c;
|
|
16588
16874
|
}
|
|
16589
16875
|
}
|
|
16590
|
-
var cell;
|
|
16591
16876
|
var range2 = { s: { c: 0, r: 0 }, e: { c: _C, r: _R + js.length - 1 + offset } };
|
|
16592
16877
|
if (ws["!ref"]) {
|
|
16593
16878
|
var _range = safe_decode_range(ws["!ref"]);
|
|
@@ -16604,33 +16889,40 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16604
16889
|
}
|
|
16605
16890
|
}
|
|
16606
16891
|
var hdr = o.header || [], C = 0;
|
|
16892
|
+
var ROW = [];
|
|
16607
16893
|
js.forEach(function(JS, R) {
|
|
16894
|
+
if (dense && !ws["!data"][_R + R + offset]) ws["!data"][_R + R + offset] = [];
|
|
16895
|
+
if (dense) ROW = ws["!data"][_R + R + offset];
|
|
16608
16896
|
keys(JS).forEach(function(k) {
|
|
16609
16897
|
if ((C = hdr.indexOf(k)) == -1) hdr[C = hdr.length] = k;
|
|
16610
16898
|
var v = JS[k];
|
|
16611
16899
|
var t = "z";
|
|
16612
16900
|
var z = "";
|
|
16613
|
-
var ref2 =
|
|
16614
|
-
cell =
|
|
16901
|
+
var ref2 = dense ? "" : encode_col(_C + C) + encode_row(_R + R + offset);
|
|
16902
|
+
var cell = dense ? ROW[_C + C] : ws[ref2];
|
|
16615
16903
|
if (v && typeof v === "object" && !(v instanceof Date)) {
|
|
16616
|
-
|
|
16904
|
+
if (dense) ROW[_C + C] = v;
|
|
16905
|
+
else ws[ref2] = v;
|
|
16617
16906
|
} else {
|
|
16618
16907
|
if (typeof v == "number") t = "n";
|
|
16619
16908
|
else if (typeof v == "boolean") t = "b";
|
|
16620
16909
|
else if (typeof v == "string") t = "s";
|
|
16621
16910
|
else if (v instanceof Date) {
|
|
16622
16911
|
t = "d";
|
|
16912
|
+
if (!o.UTC) v = local_to_utc(v);
|
|
16623
16913
|
if (!o.cellDates) {
|
|
16624
16914
|
t = "n";
|
|
16625
16915
|
v = datenum(v);
|
|
16626
16916
|
}
|
|
16627
|
-
z = o.dateNF || table_fmt[14];
|
|
16917
|
+
z = cell != null && cell.z && fmt_is_date(cell.z) ? cell.z : o.dateNF || table_fmt[14];
|
|
16628
16918
|
} else if (v === null && o.nullError) {
|
|
16629
16919
|
t = "e";
|
|
16630
16920
|
v = 0;
|
|
16631
16921
|
}
|
|
16632
|
-
if (!cell)
|
|
16633
|
-
|
|
16922
|
+
if (!cell) {
|
|
16923
|
+
if (!dense) ws[ref2] = cell = { t, v };
|
|
16924
|
+
else ROW[_C + C] = cell = { t, v };
|
|
16925
|
+
} else {
|
|
16634
16926
|
cell.t = t;
|
|
16635
16927
|
cell.v = v;
|
|
16636
16928
|
delete cell.w;
|
|
@@ -16643,7 +16935,11 @@ function sheet_add_json(_ws, js, opts) {
|
|
|
16643
16935
|
});
|
|
16644
16936
|
range2.e.c = Math.max(range2.e.c, _C + hdr.length - 1);
|
|
16645
16937
|
var __R = encode_row(_R);
|
|
16646
|
-
if (
|
|
16938
|
+
if (dense && !ws["!data"][_R]) ws["!data"][_R] = [];
|
|
16939
|
+
if (offset) for (C = 0; C < hdr.length; ++C) {
|
|
16940
|
+
if (dense) ws["!data"][_R][C + _C] = { t: "s", v: hdr[C] };
|
|
16941
|
+
else ws[encode_col(C + _C) + __R] = { t: "s", v: hdr[C] };
|
|
16942
|
+
}
|
|
16647
16943
|
ws["!ref"] = encode_range(range2);
|
|
16648
16944
|
return ws;
|
|
16649
16945
|
}
|
|
@@ -16652,15 +16948,15 @@ function json_to_sheet(js, opts) {
|
|
|
16652
16948
|
}
|
|
16653
16949
|
function ws_get_cell_stub(ws, R, C) {
|
|
16654
16950
|
if (typeof R == "string") {
|
|
16655
|
-
if (
|
|
16951
|
+
if (ws["!data"] != null) {
|
|
16656
16952
|
var RC = decode_cell(R);
|
|
16657
|
-
if (!ws[RC.r]) ws[RC.r] = [];
|
|
16658
|
-
return ws[RC.r][RC.c] || (ws[RC.r][RC.c] = { t: "z" });
|
|
16953
|
+
if (!ws["!data"][RC.r]) ws["!data"][RC.r] = [];
|
|
16954
|
+
return ws["!data"][RC.r][RC.c] || (ws["!data"][RC.r][RC.c] = { t: "z" });
|
|
16659
16955
|
}
|
|
16660
16956
|
return ws[R] || (ws[R] = { t: "z" });
|
|
16661
16957
|
}
|
|
16662
16958
|
if (typeof R != "number") return ws_get_cell_stub(ws, encode_cell(R));
|
|
16663
|
-
return ws_get_cell_stub(ws,
|
|
16959
|
+
return ws_get_cell_stub(ws, encode_col(C || 0) + encode_row(R));
|
|
16664
16960
|
}
|
|
16665
16961
|
function wb_sheet_idx(wb, sh) {
|
|
16666
16962
|
if (typeof sh == "number") {
|
|
@@ -16672,8 +16968,10 @@ function wb_sheet_idx(wb, sh) {
|
|
|
16672
16968
|
throw new Error("Cannot find sheet name |" + sh + "|");
|
|
16673
16969
|
} else throw new Error("Cannot find sheet |" + sh + "|");
|
|
16674
16970
|
}
|
|
16675
|
-
function book_new() {
|
|
16676
|
-
|
|
16971
|
+
function book_new(ws, wsname) {
|
|
16972
|
+
var wb = { SheetNames: [], Sheets: {} };
|
|
16973
|
+
if (ws) book_append_sheet(wb, ws, wsname || "Sheet1");
|
|
16974
|
+
return wb;
|
|
16677
16975
|
}
|
|
16678
16976
|
function book_append_sheet(wb, ws, name, roll) {
|
|
16679
16977
|
var i = 1;
|
|
@@ -16681,10 +16979,10 @@ function book_append_sheet(wb, ws, name, roll) {
|
|
|
16681
16979
|
for (; i <= 65535; ++i, name = void 0) if (wb.SheetNames.indexOf(name = "Sheet" + i) == -1) break;
|
|
16682
16980
|
}
|
|
16683
16981
|
if (!name || wb.SheetNames.length >= 65535) throw new Error("Too many worksheets");
|
|
16684
|
-
if (roll && wb.SheetNames.indexOf(name) >= 0) {
|
|
16685
|
-
var m = name.match(
|
|
16686
|
-
i = m && +m[
|
|
16687
|
-
var root = m && m
|
|
16982
|
+
if (roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {
|
|
16983
|
+
var m = name.match(/\d+$/);
|
|
16984
|
+
i = m && +m[0] || 0;
|
|
16985
|
+
var root = m && name.slice(0, m.index) || name;
|
|
16688
16986
|
for (++i; i <= 65535; ++i) if (wb.SheetNames.indexOf(name = root + i) == -1) break;
|
|
16689
16987
|
}
|
|
16690
16988
|
check_ws_name(name);
|
|
@@ -16741,6 +17039,12 @@ function sheet_set_array_formula(ws, range2, formula, dynamic) {
|
|
|
16741
17039
|
if (dynamic) cell.D = true;
|
|
16742
17040
|
}
|
|
16743
17041
|
}
|
|
17042
|
+
var wsr = decode_range(ws["!ref"]);
|
|
17043
|
+
if (wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;
|
|
17044
|
+
if (wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;
|
|
17045
|
+
if (wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;
|
|
17046
|
+
if (wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;
|
|
17047
|
+
ws["!ref"] = encode_range(wsr);
|
|
16744
17048
|
return ws;
|
|
16745
17049
|
}
|
|
16746
17050
|
var utils$1 = {
|
|
@@ -16754,6 +17058,7 @@ var utils$1 = {
|
|
|
16754
17058
|
decode_cell,
|
|
16755
17059
|
decode_range,
|
|
16756
17060
|
format_cell,
|
|
17061
|
+
sheet_new,
|
|
16757
17062
|
sheet_add_aoa,
|
|
16758
17063
|
sheet_add_json,
|
|
16759
17064
|
sheet_add_dom,
|
|
@@ -16954,7 +17259,7 @@ class BarSeries extends XmlComponent {
|
|
|
16954
17259
|
errorBars,
|
|
16955
17260
|
categories,
|
|
16956
17261
|
values,
|
|
16957
|
-
|
|
17262
|
+
shapeFmt,
|
|
16958
17263
|
extensionList
|
|
16959
17264
|
} = _l, options = __objRest(_l, [
|
|
16960
17265
|
"invertIfNegative",
|
|
@@ -16965,7 +17270,7 @@ class BarSeries extends XmlComponent {
|
|
|
16965
17270
|
"errorBars",
|
|
16966
17271
|
"categories",
|
|
16967
17272
|
"values",
|
|
16968
|
-
"
|
|
17273
|
+
"shapeFmt",
|
|
16969
17274
|
"extensionList"
|
|
16970
17275
|
]);
|
|
16971
17276
|
super("c:ser");
|
|
@@ -17008,8 +17313,8 @@ class BarSeries extends XmlComponent {
|
|
|
17008
17313
|
})
|
|
17009
17314
|
);
|
|
17010
17315
|
}
|
|
17011
|
-
if (
|
|
17012
|
-
this.root.push(new StringEnumValueElement("c:shape",
|
|
17316
|
+
if (shapeFmt) {
|
|
17317
|
+
this.root.push(new StringEnumValueElement("c:shape", shapeFmt, ""));
|
|
17013
17318
|
}
|
|
17014
17319
|
if (extensionList) {
|
|
17015
17320
|
this.root.push(new ExtensionList(extensionList));
|
|
@@ -29483,7 +29788,7 @@ const patchDocument = (_0) => __async(null, [_0], function* ({
|
|
|
29483
29788
|
relationshipAdditions.push({
|
|
29484
29789
|
key,
|
|
29485
29790
|
entries: chartEntries.map(([tempId], index) => ({
|
|
29486
|
-
name: `chart${index + 1}`,
|
|
29791
|
+
name: `chart${index + 1}.xml`,
|
|
29487
29792
|
path: "charts",
|
|
29488
29793
|
type: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
|
|
29489
29794
|
repl: tempId
|