diff --git a/apps/macos/Sources/Clawdis/Resources/WebChat/bootstrap.js b/apps/macos/Sources/Clawdis/Resources/WebChat/bootstrap.js
new file mode 100644
index 000000000..dad3765db
--- /dev/null
+++ b/apps/macos/Sources/Clawdis/Resources/WebChat/bootstrap.js
@@ -0,0 +1,122 @@
+// Bundled entry point for the macOS WKWebView web chat.
+// This replaces the inline module script in index.html so we can ship a single JS bundle.
+
+/* global window, document, crypto */
+
+if (!globalThis.process) {
+ // Some vendor modules peek at process.env; provide a minimal stub for browser.
+ globalThis.process = { env: {} };
+}
+
+const logStatus = (msg) => {
+ try {
+ console.log(msg);
+ if (typeof window.__clawdisLog === "function") {
+ window.__clawdisLog(msg);
+ }
+ const el = document.getElementById("app");
+ if (el && !el.dataset.booted) el.textContent = msg;
+ } catch {
+ // Ignore logging failures—never block bootstrap.
+ }
+};
+
+const getBootstrap = () => {
+ const bootstrap = window.__clawdisBootstrap || {};
+ return {
+ initialMessages: Array.isArray(bootstrap.initialMessages) ? bootstrap.initialMessages : [],
+ sessionKey: typeof bootstrap.sessionKey === "string" ? bootstrap.sessionKey : "main",
+ };
+};
+
+class NativeTransport {
+ constructor(sessionKey) {
+ this.sessionKey = sessionKey;
+ }
+
+ async *run(messages, userMessage, cfg, signal) {
+ const result = await window.__clawdisSend({
+ type: "chat",
+ payload: { text: userMessage.content?.[0]?.text ?? "", sessionKey: this.sessionKey },
+ });
+ const usage = {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
+ };
+ const assistant = {
+ role: "assistant",
+ content: [{ type: "text", text: result.text ?? "" }],
+ api: cfg.model.api,
+ provider: cfg.model.provider,
+ model: cfg.model.id,
+ usage,
+ stopReason: "stop",
+ timestamp: Date.now(),
+ };
+ yield { type: "turn_start" };
+ yield { type: "message_start", message: assistant };
+ yield { type: "message_end", message: assistant };
+ yield { type: "turn_end" };
+ yield { type: "agent_end" };
+ }
+}
+
+const startChat = async () => {
+ const { initialMessages, sessionKey } = getBootstrap();
+
+ logStatus("boot: starting imports");
+ const { Agent } = await import("./agent/agent.js");
+ const { ChatPanel } = await import("./ChatPanel.js");
+ const { AppStorage, setAppStorage } = await import("./storage/app-storage.js");
+ const { getModel } = await import("@mariozechner/pi-ai");
+ logStatus("boot: modules loaded");
+
+ const storage = new AppStorage();
+ setAppStorage(storage);
+
+ const agent = new Agent({
+ initialState: {
+ systemPrompt: "You are Clawd (primary session).",
+ model: getModel("anthropic", "claude-opus-4-5"),
+ thinkingLevel: "off",
+ messages: initialMessages,
+ },
+ transport: new NativeTransport(sessionKey),
+ });
+
+ const origPrompt = agent.prompt.bind(agent);
+ agent.prompt = async (input, attachments) => {
+ const userMessage = {
+ role: "user",
+ content: [{ type: "text", text: input }],
+ attachments: attachments?.length ? attachments : undefined,
+ timestamp: Date.now(),
+ };
+ agent.appendMessage(userMessage);
+ return origPrompt(input, attachments);
+ };
+
+ const panel = new ChatPanel();
+ panel.style.height = "100%";
+ panel.style.display = "block";
+ await panel.setAgent(agent);
+
+ const mount = document.getElementById("app");
+ if (!mount) throw new Error("#app container missing");
+ mount.dataset.booted = "1";
+ mount.textContent = "";
+ mount.appendChild(panel);
+ logStatus("boot: ready");
+};
+
+startChat().catch((err) => {
+ const msg = err?.stack || err?.message || String(err);
+ logStatus(`boot failed: ${msg}`);
+ document.body.style.color = "#e06666";
+ document.body.style.fontFamily = "monospace";
+ document.body.style.padding = "16px";
+ document.body.innerText = "Web chat failed to load:\\n" + msg;
+});
diff --git a/apps/macos/Sources/Clawdis/Resources/WebChat/index.html b/apps/macos/Sources/Clawdis/Resources/WebChat/index.html
index a8fcdf731..203147304 100644
--- a/apps/macos/Sources/Clawdis/Resources/WebChat/index.html
+++ b/apps/macos/Sources/Clawdis/Resources/WebChat/index.html
@@ -5,31 +5,6 @@
Clawd Web Chat
-
"];
+ opts.cellXfs.forEach(function(xf, id) {
+ var payload = [];
+ payload.push(writextag("NumberFormat", null, { "ss:Format": escapexml(table_fmt[xf.numFmtId]) }));
+ var o$10 = { "ss:ID": "s" + (21 + id) };
+ styles$1.push(writextag("Style", payload.join(""), o$10));
+ });
+ return writextag("Styles", styles$1.join(""));
+}
+function write_name_xlml(n$9) {
+ return writextag("NamedRange", null, {
+ "ss:Name": n$9.Name.slice(0, 6) == "_xlnm." ? n$9.Name.slice(6) : n$9.Name,
+ "ss:RefersTo": "=" + a1_to_rc(n$9.Ref, {
+ r: 0,
+ c: 0
+ })
+ });
+}
+function write_names_xlml(wb) {
+ if (!((wb || {}).Workbook || {}).Names) return "";
+ var names = wb.Workbook.Names;
+ var out = [];
+ for (var i$7 = 0; i$7 < names.length; ++i$7) {
+ var n$9 = names[i$7];
+ if (n$9.Sheet != null) continue;
+ if (n$9.Name.match(/^_xlfn\./)) continue;
+ out.push(write_name_xlml(n$9));
+ }
+ return writextag("Names", out.join(""));
+}
+function write_ws_xlml_names(ws, opts, idx, wb) {
+ if (!ws) return "";
+ if (!((wb || {}).Workbook || {}).Names) return "";
+ var names = wb.Workbook.Names;
+ var out = [];
+ for (var i$7 = 0; i$7 < names.length; ++i$7) {
+ var n$9 = names[i$7];
+ if (n$9.Sheet != idx) continue;
+ if (n$9.Name.match(/^_xlfn\./)) continue;
+ out.push(write_name_xlml(n$9));
+ }
+ return out.join("");
+}
+function write_ws_xlml_wsopts(ws, opts, idx, wb) {
+ if (!ws) return "";
+ var o$10 = [];
+ if (ws["!margins"]) {
+ o$10.push("");
+ if (ws["!margins"].header) o$10.push(writextag("Header", null, { "x:Margin": ws["!margins"].header }));
+ if (ws["!margins"].footer) o$10.push(writextag("Footer", null, { "x:Margin": ws["!margins"].footer }));
+ o$10.push(writextag("PageMargins", null, {
+ "x:Bottom": ws["!margins"].bottom || "0.75",
+ "x:Left": ws["!margins"].left || "0.7",
+ "x:Right": ws["!margins"].right || "0.7",
+ "x:Top": ws["!margins"].top || "0.75"
+ }));
+ o$10.push("");
+ }
+ if (wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {
+ if (wb.Workbook.Sheets[idx].Hidden) o$10.push(writextag("Visible", wb.Workbook.Sheets[idx].Hidden == 1 ? "SheetHidden" : "SheetVeryHidden", {}));
+ else {
+ for (var i$7 = 0; i$7 < idx; ++i$7) if (wb.Workbook.Sheets[i$7] && !wb.Workbook.Sheets[i$7].Hidden) break;
+ if (i$7 == idx) o$10.push("");
+ }
+ }
+ if (((((wb || {}).Workbook || {}).Views || [])[0] || {}).RTL) o$10.push("");
+ if (ws["!protect"]) {
+ o$10.push(writetag("ProtectContents", "True"));
+ if (ws["!protect"].objects) o$10.push(writetag("ProtectObjects", "True"));
+ if (ws["!protect"].scenarios) o$10.push(writetag("ProtectScenarios", "True"));
+ if (ws["!protect"].selectLockedCells != null && !ws["!protect"].selectLockedCells) o$10.push(writetag("EnableSelection", "NoSelection"));
+ else if (ws["!protect"].selectUnlockedCells != null && !ws["!protect"].selectUnlockedCells) o$10.push(writetag("EnableSelection", "UnlockedCells"));
+ [
+ ["formatCells", "AllowFormatCells"],
+ ["formatColumns", "AllowSizeCols"],
+ ["formatRows", "AllowSizeRows"],
+ ["insertColumns", "AllowInsertCols"],
+ ["insertRows", "AllowInsertRows"],
+ ["insertHyperlinks", "AllowInsertHyperlinks"],
+ ["deleteColumns", "AllowDeleteCols"],
+ ["deleteRows", "AllowDeleteRows"],
+ ["sort", "AllowSort"],
+ ["autoFilter", "AllowFilter"],
+ ["pivotTables", "AllowUsePivotTables"]
+ ].forEach(function(x$2) {
+ if (ws["!protect"][x$2[0]]) o$10.push("<" + x$2[1] + "/>");
+ });
+ }
+ if (o$10.length == 0) return "";
+ return writextag("WorksheetOptions", o$10.join(""), { xmlns: XLMLNS.x });
+}
+function write_ws_xlml_comment(comments) {
+ return comments.map(function(c$7) {
+ var t$6 = xlml_unfixstr(c$7.t || "");
+ var d$5 = writextag("ss:Data", t$6, { "xmlns": "http://www.w3.org/TR/REC-html40" });
+ var p$3 = {};
+ if (c$7.a) p$3["ss:Author"] = c$7.a;
+ if (!comments.hidden) p$3["ss:ShowAlways"] = "1";
+ return writextag("Comment", d$5, p$3);
+ }).join("");
+}
+function write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr) {
+ if (!cell || cell.v == undefined && cell.f == undefined) return "";
+ var attr = {};
+ if (cell.f) attr["ss:Formula"] = "=" + escapexml(a1_to_rc(cell.f, addr));
+ if (cell.F && cell.F.slice(0, ref.length) == ref) {
+ var end = decode_cell(cell.F.slice(ref.length + 1));
+ attr["ss:ArrayRange"] = "RC:R" + (end.r == addr.r ? "" : "[" + (end.r - addr.r) + "]") + "C" + (end.c == addr.c ? "" : "[" + (end.c - addr.c) + "]");
+ }
+ if (cell.l && cell.l.Target) {
+ attr["ss:HRef"] = escapexml(cell.l.Target);
+ if (cell.l.Tooltip) attr["x:HRefScreenTip"] = escapexml(cell.l.Tooltip);
+ }
+ if (ws["!merges"]) {
+ var marr = ws["!merges"];
+ for (var mi = 0; mi != marr.length; ++mi) {
+ if (marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;
+ if (marr[mi].e.c > marr[mi].s.c) attr["ss:MergeAcross"] = marr[mi].e.c - marr[mi].s.c;
+ if (marr[mi].e.r > marr[mi].s.r) attr["ss:MergeDown"] = marr[mi].e.r - marr[mi].s.r;
+ }
+ }
+ var t$6 = "", p$3 = "";
+ switch (cell.t) {
+ case "z":
+ if (!opts.sheetStubs) return "";
+ break;
+ case "n":
+ {
+ if (!isFinite(cell.v)) {
+ t$6 = "Error";
+ p$3 = BErr[isNaN(cell.v) ? 36 : 7];
+ } else {
+ t$6 = "Number";
+ p$3 = String(cell.v);
+ }
+ }
+ break;
+ case "b":
+ t$6 = "Boolean";
+ p$3 = cell.v ? "1" : "0";
+ break;
+ case "e":
+ t$6 = "Error";
+ p$3 = BErr[cell.v];
+ break;
+ case "d":
+ t$6 = "DateTime";
+ p$3 = new Date(cell.v).toISOString();
+ if (cell.z == null) cell.z = cell.z || table_fmt[14];
+ break;
+ case "s":
+ t$6 = "String";
+ p$3 = escapexlml(cell.v || "");
+ break;
+ }
+ var os = get_cell_style(opts.cellXfs, cell, opts);
+ attr["ss:StyleID"] = "s" + (21 + os);
+ attr["ss:Index"] = addr.c + 1;
+ var _v = cell.v != null ? p$3 : "";
+ var m$3 = cell.t == "z" ? "" : "" + _v + "";
+ if ((cell.c || []).length > 0) m$3 += write_ws_xlml_comment(cell.c);
+ return writextag("Cell", m$3, attr);
+}
+function write_ws_xlml_row(R$1, row) {
+ var o$10 = "";
+}
+function write_ws_xlml_table(ws, opts, idx, wb) {
+ if (!ws["!ref"]) return "";
+ var range = safe_decode_range(ws["!ref"]);
+ var marr = ws["!merges"] || [], mi = 0;
+ var o$10 = [];
+ if (ws["!cols"]) ws["!cols"].forEach(function(n$9, i$7) {
+ process_col(n$9);
+ var w$2 = !!n$9.width;
+ var p$3 = col_obj_w(i$7, n$9);
+ var k$2 = { "ss:Index": i$7 + 1 };
+ if (w$2) k$2["ss:Width"] = width2px(p$3.width);
+ if (n$9.hidden) k$2["ss:Hidden"] = "1";
+ o$10.push(writextag("Column", null, k$2));
+ });
+ var dense = ws["!data"] != null;
+ var addr = {
+ r: 0,
+ c: 0
+ };
+ for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
+ var row = [write_ws_xlml_row(R$1, (ws["!rows"] || [])[R$1])];
+ addr.r = R$1;
+ for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ addr.c = C$2;
+ var skip = false;
+ for (mi = 0; mi != marr.length; ++mi) {
+ if (marr[mi].s.c > C$2) continue;
+ if (marr[mi].s.r > R$1) continue;
+ if (marr[mi].e.c < C$2) continue;
+ if (marr[mi].e.r < R$1) continue;
+ if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
+ break;
+ }
+ if (skip) continue;
+ var ref = encode_col(C$2) + encode_row(R$1), cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
+ row.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));
+ }
+ row.push("
");
+ if (row.length > 2) o$10.push(row.join(""));
+ }
+ return o$10.join("");
+}
+function write_ws_xlml(idx, opts, wb) {
+ var o$10 = [];
+ var s$5 = wb.SheetNames[idx];
+ var ws = wb.Sheets[s$5];
+ var t$6 = ws ? write_ws_xlml_names(ws, opts, idx, wb) : "";
+ if (t$6.length > 0) o$10.push("" + t$6 + "");
+ t$6 = ws ? write_ws_xlml_table(ws, opts, idx, wb) : "";
+ if (t$6.length > 0) o$10.push("");
+ o$10.push(write_ws_xlml_wsopts(ws, opts, idx, wb));
+ if (ws && ws["!autofilter"]) o$10.push("");
+ return o$10.join("");
+}
+function write_xlml(wb, opts) {
+ if (!opts) opts = {};
+ if (!wb.SSF) wb.SSF = dup(table_fmt);
+ if (wb.SSF) {
+ make_ssf();
+ SSF_load_table(wb.SSF);
+ opts.revssf = evert_num(wb.SSF);
+ opts.revssf[wb.SSF[65535]] = 0;
+ opts.ssf = wb.SSF;
+ opts.cellXfs = [];
+ get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
+ }
+ var d$5 = [];
+ d$5.push(write_props_xlml(wb, opts));
+ d$5.push(write_wb_xlml(wb, opts));
+ d$5.push("");
+ d$5.push(write_names_xlml(wb, opts));
+ for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) d$5.push(writextag("Worksheet", write_ws_xlml(i$7, opts, wb), { "ss:Name": escapexml(wb.SheetNames[i$7]) }));
+ d$5[2] = write_sty_xlml(wb, opts);
+ return XML_HEADER + writextag("Workbook", d$5.join(""), {
+ "xmlns": XLMLNS.ss,
+ "xmlns:o": XLMLNS.o,
+ "xmlns:x": XLMLNS.x,
+ "xmlns:ss": XLMLNS.ss,
+ "xmlns:dt": XLMLNS.dt,
+ "xmlns:html": XLMLNS.html
+ });
+}
+function parse_compobj(obj) {
+ var v$3 = {};
+ var o$10 = obj.content;
+ o$10.l = 28;
+ v$3.AnsiUserType = o$10.read_shift(0, "lpstr-ansi");
+ v$3.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o$10);
+ if (o$10.length - o$10.l <= 4) return v$3;
+ var m$3 = o$10.read_shift(4);
+ if (m$3 == 0 || m$3 > 40) return v$3;
+ o$10.l -= 4;
+ v$3.Reserved1 = o$10.read_shift(0, "lpstr-ansi");
+ if (o$10.length - o$10.l <= 4) return v$3;
+ m$3 = o$10.read_shift(4);
+ if (m$3 !== 1907505652) return v$3;
+ v$3.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o$10);
+ m$3 = o$10.read_shift(4);
+ if (m$3 == 0 || m$3 > 40) return v$3;
+ o$10.l -= 4;
+ v$3.Reserved2 = o$10.read_shift(0, "lpwstr");
+}
+function slurp(RecordType, R$1, blob, length, opts) {
+ var l$3 = length;
+ var bufs = [];
+ var d$5 = blob.slice(blob.l, blob.l + l$3);
+ if (opts && opts.enc && opts.enc.insitu && d$5.length > 0) switch (RecordType) {
+ case 9:
+ case 521:
+ case 1033:
+ case 2057:
+ case 47:
+ case 405:
+ case 225:
+ case 406:
+ case 312:
+ case 404:
+ case 10: break;
+ case 133: break;
+ default: opts.enc.insitu(d$5);
+ }
+ bufs.push(d$5);
+ blob.l += l$3;
+ var nextrt = __readUInt16LE(blob, blob.l), next = XLSRecordEnum[nextrt];
+ var start = 0;
+ while (next != null && CONTINUE_RT.indexOf(nextrt) > -1) {
+ l$3 = __readUInt16LE(blob, blob.l + 2);
+ start = blob.l + 4;
+ if (nextrt == 2066) start += 4;
+ else if (nextrt == 2165 || nextrt == 2175) {
+ start += 12;
+ }
+ d$5 = blob.slice(start, blob.l + 4 + l$3);
+ bufs.push(d$5);
+ blob.l += 4 + l$3;
+ next = XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)];
+ }
+ var b$3 = bconcat(bufs);
+ prep_blob(b$3, 0);
+ var ll = 0;
+ b$3.lens = [];
+ for (var j$2 = 0; j$2 < bufs.length; ++j$2) {
+ b$3.lens.push(ll);
+ ll += bufs[j$2].length;
+ }
+ if (b$3.length < length) throw "XLS Record 0x" + RecordType.toString(16) + " Truncated: " + b$3.length + " < " + length;
+ return R$1.f(b$3, b$3.length, opts);
+}
+function safe_format_xf(p$3, opts, date1904) {
+ if (p$3.t === "z") return;
+ if (!p$3.XF) return;
+ var fmtid = 0;
+ try {
+ fmtid = p$3.z || p$3.XF.numFmtId || 0;
+ if (opts.cellNF && p$3.z == null) p$3.z = table_fmt[fmtid];
+ } catch (e$10) {
+ if (opts.WTF) throw e$10;
+ }
+ if (!opts || opts.cellText !== false) try {
+ if (p$3.t === "e") {
+ p$3.w = p$3.w || BErr[p$3.v];
+ } else if (fmtid === 0 || fmtid == "General") {
+ if (p$3.t === "n") {
+ if ((p$3.v | 0) === p$3.v) p$3.w = p$3.v.toString(10);
+ else p$3.w = SSF_general_num(p$3.v);
+ } else p$3.w = SSF_general(p$3.v);
+ } else p$3.w = SSF_format(fmtid, p$3.v, {
+ date1904: !!date1904,
+ dateNF: opts && opts.dateNF
+ });
+ } catch (e$10) {
+ if (opts.WTF) throw e$10;
+ }
+ if (opts.cellDates && fmtid && p$3.t == "n" && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {
+ var _d = SSF_parse_date_code(p$3.v + (date1904 ? 1462 : 0));
+ if (_d) {
+ p$3.t = "d";
+ p$3.v = new Date(Date.UTC(_d.y, _d.m - 1, _d.d, _d.H, _d.M, _d.S, _d.u));
+ }
+ }
+}
+function make_cell(val$1, ixfe, t$6) {
+ return {
+ v: val$1,
+ ixfe,
+ t: t$6
+ };
+}
+function parse_workbook(blob, options) {
+ var wb = { opts: {} };
+ var Sheets = {};
+ if (DENSE != null && options.dense == null) options.dense = DENSE;
+ var out = {};
+ if (options.dense) out["!data"] = [];
+ var Directory = {};
+ var range = {};
+ var last_formula = null;
+ var sst = [];
+ var cur_sheet = "";
+ var Preamble = {};
+ var lastcell, last_cell = "", cc, cmnt, rngC, rngR;
+ var sharedf = {};
+ var arrayf = [];
+ var temp_val;
+ var country;
+ var XFs = [];
+ var palette = [];
+ var Workbook = {
+ Sheets: [],
+ WBProps: { date1904: false },
+ Views: [{}]
+ }, wsprops = {};
+ var biff4w = false;
+ var get_rgb = function getrgb(icv) {
+ if (icv < 8) return XLSIcv[icv];
+ if (icv < 64) return palette[icv - 8] || XLSIcv[icv];
+ return XLSIcv[icv];
+ };
+ var process_cell_style = function pcs(line, options$1) {
+ var xfd = line.XF.data;
+ if (!xfd || !xfd.patternType || !options$1 || !options$1.cellStyles) return;
+ line.s = {};
+ line.s.patternType = xfd.patternType;
+ var t$6;
+ if (t$6 = rgb2Hex(get_rgb(xfd.icvFore))) {
+ line.s.fgColor = { rgb: t$6 };
+ }
+ if (t$6 = rgb2Hex(get_rgb(xfd.icvBack))) {
+ line.s.bgColor = { rgb: t$6 };
+ }
+ };
+ var addcell = function addcell$1(cell, line, options$1) {
+ if (!biff4w && file_depth > 1) return;
+ if (options$1.sheetRows && cell.r >= options$1.sheetRows) return;
+ if (options$1.cellStyles && line.XF && line.XF.data) process_cell_style(line, options$1);
+ delete line.ixfe;
+ delete line.XF;
+ lastcell = cell;
+ last_cell = encode_cell(cell);
+ if (!range || !range.s || !range.e) range = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ if (cell.r < range.s.r) range.s.r = cell.r;
+ if (cell.c < range.s.c) range.s.c = cell.c;
+ if (cell.r + 1 > range.e.r) range.e.r = cell.r + 1;
+ if (cell.c + 1 > range.e.c) range.e.c = cell.c + 1;
+ if (options$1.cellFormula && line.f) {
+ for (var afi = 0; afi < arrayf.length; ++afi) {
+ if (arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;
+ if (arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;
+ line.F = encode_range(arrayf[afi][0]);
+ if (arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;
+ if (line.f) line.f = "" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);
+ break;
+ }
+ }
+ {
+ if (options$1.dense) {
+ if (!out["!data"][cell.r]) out["!data"][cell.r] = [];
+ out["!data"][cell.r][cell.c] = line;
+ } else out[last_cell] = line;
+ }
+ };
+ var opts = {
+ enc: false,
+ sbcch: 0,
+ snames: [],
+ sharedf,
+ arrayf,
+ rrtabid: [],
+ lastuser: "",
+ biff: 8,
+ codepage: 0,
+ winlocked: 0,
+ cellStyles: !!options && !!options.cellStyles,
+ WTF: !!options && !!options.wtf
+ };
+ if (options.password) opts.password = options.password;
+ var themes;
+ var merges = [];
+ var objects = [];
+ var colinfo = [], rowinfo = [];
+ var seencol = false;
+ var supbooks = [];
+ supbooks.SheetNames = opts.snames;
+ supbooks.sharedf = opts.sharedf;
+ supbooks.arrayf = opts.arrayf;
+ supbooks.names = [];
+ supbooks.XTI = [];
+ var last_RT = 0;
+ var file_depth = 0;
+ var BIFF2Fmt = 0, BIFF2FmtTable = [];
+ var FilterDatabases = [];
+ var last_lbl;
+ opts.codepage = 1200;
+ set_cp(1200);
+ var seen_codepage = false;
+ while (blob.l < blob.length - 1) {
+ var s$5 = blob.l;
+ var RecordType = blob.read_shift(2);
+ if (RecordType === 0 && last_RT === 10) break;
+ var length = blob.l === blob.length ? 0 : blob.read_shift(2);
+ var R$1 = XLSRecordEnum[RecordType];
+ if (file_depth == 0 && [
+ 9,
+ 521,
+ 1033,
+ 2057
+ ].indexOf(RecordType) == -1) break;
+ if (R$1 && R$1.f) {
+ if (options.bookSheets) {
+ if (last_RT === 133 && RecordType !== 133) break;
+ }
+ last_RT = RecordType;
+ if (R$1.r === 2 || R$1.r == 12) {
+ var rt = blob.read_shift(2);
+ length -= 2;
+ if (!opts.enc && rt !== RecordType && ((rt & 255) << 8 | rt >> 8) !== RecordType) throw new Error("rt mismatch: " + rt + "!=" + RecordType);
+ if (R$1.r == 12) {
+ blob.l += 10;
+ length -= 10;
+ }
+ }
+ var val$1 = {};
+ if (RecordType === 10) val$1 = R$1.f(blob, length, opts);
+ else val$1 = slurp(RecordType, R$1, blob, length, opts);
+ if (file_depth == 0 && [
+ 9,
+ 521,
+ 1033,
+ 2057
+ ].indexOf(last_RT) === -1) continue;
+ switch (RecordType) {
+ case 34:
+ wb.opts.Date1904 = Workbook.WBProps.date1904 = val$1;
+ break;
+ case 134:
+ wb.opts.WriteProtect = true;
+ break;
+ case 47:
+ if (!opts.enc) blob.l = 0;
+ opts.enc = val$1;
+ if (!options.password) throw new Error("File is password-protected");
+ if (val$1.valid == null) throw new Error("Encryption scheme unsupported");
+ if (!val$1.valid) throw new Error("Password is incorrect");
+ break;
+ case 92:
+ opts.lastuser = val$1;
+ break;
+ case 66:
+ var cpval = Number(val$1);
+ switch (cpval) {
+ case 21010:
+ cpval = 1200;
+ break;
+ case 32768:
+ cpval = 1e4;
+ break;
+ case 32769:
+ cpval = 1252;
+ break;
+ }
+ set_cp(opts.codepage = cpval);
+ seen_codepage = true;
+ break;
+ case 317:
+ opts.rrtabid = val$1;
+ break;
+ case 25:
+ opts.winlocked = val$1;
+ break;
+ case 439:
+ wb.opts["RefreshAll"] = val$1;
+ break;
+ case 12:
+ wb.opts["CalcCount"] = val$1;
+ break;
+ case 16:
+ wb.opts["CalcDelta"] = val$1;
+ break;
+ case 17:
+ wb.opts["CalcIter"] = val$1;
+ break;
+ case 13:
+ wb.opts["CalcMode"] = val$1;
+ break;
+ case 14:
+ wb.opts["CalcPrecision"] = val$1;
+ break;
+ case 95:
+ wb.opts["CalcSaveRecalc"] = val$1;
+ break;
+ case 15:
+ opts.CalcRefMode = val$1;
+ break;
+ case 2211:
+ wb.opts.FullCalc = val$1;
+ break;
+ case 129:
+ if (val$1.fDialog) out["!type"] = "dialog";
+ if (!val$1.fBelow) (out["!outline"] || (out["!outline"] = {})).above = true;
+ if (!val$1.fRight) (out["!outline"] || (out["!outline"] = {})).left = true;
+ break;
+ case 67:
+ case 579:
+ case 1091:
+ case 224:
+ XFs.push(val$1);
+ break;
+ case 430:
+ supbooks.push([val$1]);
+ supbooks[supbooks.length - 1].XTI = [];
+ break;
+ case 35:
+ case 547:
+ supbooks[supbooks.length - 1].push(val$1);
+ break;
+ case 24:
+ case 536:
+ last_lbl = {
+ Name: val$1.Name,
+ Ref: stringify_formula(val$1.rgce, range, null, supbooks, opts)
+ };
+ if (val$1.itab > 0) last_lbl.Sheet = val$1.itab - 1;
+ supbooks.names.push(last_lbl);
+ if (!supbooks[0]) {
+ supbooks[0] = [];
+ supbooks[0].XTI = [];
+ }
+ supbooks[supbooks.length - 1].push(val$1);
+ if (val$1.Name == "_xlnm._FilterDatabase" && val$1.itab > 0) {
+ if (val$1.rgce && val$1.rgce[0] && val$1.rgce[0][0] && val$1.rgce[0][0][0] == "PtgArea3d") FilterDatabases[val$1.itab - 1] = { ref: encode_range(val$1.rgce[0][0][1][2]) };
+ }
+ break;
+ case 22:
+ opts.ExternCount = val$1;
+ break;
+ case 23:
+ if (supbooks.length == 0) {
+ supbooks[0] = [];
+ supbooks[0].XTI = [];
+ }
+ supbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val$1);
+ supbooks.XTI = supbooks.XTI.concat(val$1);
+ break;
+ case 2196:
+ if (opts.biff < 8) break;
+ if (last_lbl != null) last_lbl.Comment = val$1[1];
+ break;
+ case 18:
+ out["!protect"] = val$1;
+ break;
+ case 19:
+ if (val$1 !== 0 && opts.WTF) console.error("Password verifier: " + val$1);
+ break;
+ case 133:
+ {
+ Directory[opts.biff == 4 ? opts.snames.length : val$1.pos] = val$1;
+ opts.snames.push(val$1.name);
+ }
+ break;
+ case 10:
+ {
+ if (--file_depth ? !biff4w : biff4w) break;
+ if (range.e) {
+ if (range.e.r > 0 && range.e.c > 0) {
+ range.e.r--;
+ range.e.c--;
+ out["!ref"] = encode_range(range);
+ if (options.sheetRows && options.sheetRows <= range.e.r) {
+ var tmpri = range.e.r;
+ range.e.r = options.sheetRows - 1;
+ out["!fullref"] = out["!ref"];
+ out["!ref"] = encode_range(range);
+ range.e.r = tmpri;
+ }
+ range.e.r++;
+ range.e.c++;
+ }
+ if (merges.length > 0) out["!merges"] = merges;
+ if (objects.length > 0) out["!objects"] = objects;
+ if (colinfo.length > 0) out["!cols"] = colinfo;
+ if (rowinfo.length > 0) out["!rows"] = rowinfo;
+ Workbook.Sheets.push(wsprops);
+ }
+ if (cur_sheet === "") Preamble = out;
+ else Sheets[cur_sheet] = out;
+ out = {};
+ if (options.dense) out["!data"] = [];
+ }
+ break;
+ case 9:
+ case 521:
+ case 1033:
+ case 2057:
+ {
+ if (opts.biff === 8) opts.biff = {
+ 9: 2,
+ 521: 3,
+ 1033: 4
+ }[RecordType] || {
+ 512: 2,
+ 768: 3,
+ 1024: 4,
+ 1280: 5,
+ 1536: 8,
+ 2: 2,
+ 7: 2
+ }[val$1.BIFFVer] || 8;
+ opts.biffguess = val$1.BIFFVer == 0;
+ if (val$1.BIFFVer == 0 && val$1.dt == 4096) {
+ opts.biff = 5;
+ seen_codepage = true;
+ set_cp(opts.codepage = 28591);
+ }
+ if (opts.biff == 4 && val$1.dt & 256) biff4w = true;
+ if (opts.biff == 8 && val$1.BIFFVer == 0 && val$1.dt == 16) opts.biff = 2;
+ if (file_depth++ && !biff4w) break;
+ out = {};
+ if (options.dense) out["!data"] = [];
+ if (opts.biff < 8 && !seen_codepage) {
+ seen_codepage = true;
+ set_cp(opts.codepage = options.codepage || 1252);
+ }
+ if (opts.biff == 4 && biff4w) {
+ cur_sheet = (Directory[opts.snames.indexOf(cur_sheet) + 1] || { name: "" }).name;
+ } else if (opts.biff < 5 || val$1.BIFFVer == 0 && val$1.dt == 4096) {
+ if (cur_sheet === "") cur_sheet = "Sheet1";
+ range = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var fakebs8 = {
+ pos: blob.l - length,
+ name: cur_sheet
+ };
+ Directory[fakebs8.pos] = fakebs8;
+ opts.snames.push(cur_sheet);
+ } else cur_sheet = (Directory[s$5] || { name: "" }).name;
+ if (val$1.dt == 32) out["!type"] = "chart";
+ if (val$1.dt == 64) out["!type"] = "macro";
+ merges = [];
+ objects = [];
+ opts.arrayf = arrayf = [];
+ colinfo = [];
+ rowinfo = [];
+ seencol = false;
+ wsprops = {
+ Hidden: (Directory[s$5] || { hs: 0 }).hs,
+ name: cur_sheet
+ };
+ }
+ break;
+ case 515:
+ case 3:
+ case 2:
+ {
+ if (out["!type"] == "chart") {
+ if (options.dense ? (out["!data"][val$1.r] || [])[val$1.c] : out[encode_col(val$1.c) + encode_row(val$1.r)]) ++val$1.c;
+ }
+ temp_val = {
+ ixfe: val$1.ixfe,
+ XF: XFs[val$1.ixfe] || {},
+ v: val$1.val,
+ t: "n"
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ break;
+ case 5:
+ case 517:
+ {
+ temp_val = {
+ ixfe: val$1.ixfe,
+ XF: XFs[val$1.ixfe],
+ v: val$1.val,
+ t: val$1.t
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ break;
+ case 638:
+ {
+ temp_val = {
+ ixfe: val$1.ixfe,
+ XF: XFs[val$1.ixfe],
+ v: val$1.rknum,
+ t: "n"
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ break;
+ case 189:
+ {
+ for (var j$2 = val$1.c; j$2 <= val$1.C; ++j$2) {
+ var ixfe = val$1.rkrec[j$2 - val$1.c][0];
+ temp_val = {
+ ixfe,
+ XF: XFs[ixfe],
+ v: val$1.rkrec[j$2 - val$1.c][1],
+ t: "n"
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: j$2,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ }
+ break;
+ case 6:
+ case 518:
+ case 1030:
+ {
+ if (val$1.val == "String") {
+ last_formula = val$1;
+ break;
+ }
+ temp_val = make_cell(val$1.val, val$1.cell.ixfe, val$1.tt);
+ temp_val.XF = XFs[temp_val.ixfe];
+ if (options.cellFormula) {
+ var _f = val$1.formula;
+ if (_f && _f[0] && _f[0][0] && _f[0][0][0] == "PtgExp") {
+ var _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];
+ var _fe = encode_cell({
+ r: _fr,
+ c: _fc
+ });
+ if (sharedf[_fe]) temp_val.f = "" + stringify_formula(val$1.formula, range, val$1.cell, supbooks, opts);
+ else temp_val.F = ((options.dense ? (out["!data"][_fr] || [])[_fc] : out[_fe]) || {}).F;
+ } else temp_val.f = "" + stringify_formula(val$1.formula, range, val$1.cell, supbooks, opts);
+ }
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell(val$1.cell, temp_val, options);
+ last_formula = val$1;
+ }
+ break;
+ case 7:
+ case 519:
+ {
+ if (last_formula) {
+ last_formula.val = val$1;
+ temp_val = make_cell(val$1, last_formula.cell.ixfe, "s");
+ temp_val.XF = XFs[temp_val.ixfe];
+ if (options.cellFormula) {
+ temp_val.f = "" + stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);
+ }
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell(last_formula.cell, temp_val, options);
+ last_formula = null;
+ } else throw new Error("String record expects Formula");
+ }
+ break;
+ case 33:
+ case 545:
+ {
+ arrayf.push(val$1);
+ var _arraystart = encode_cell(val$1[0].s);
+ cc = options.dense ? (out["!data"][val$1[0].s.r] || [])[val$1[0].s.c] : out[_arraystart];
+ if (options.cellFormula && cc) {
+ if (!last_formula) break;
+ if (!_arraystart || !cc) break;
+ cc.f = "" + stringify_formula(val$1[1], range, val$1[0], supbooks, opts);
+ cc.F = encode_range(val$1[0]);
+ }
+ }
+ break;
+ case 1212:
+ {
+ if (!options.cellFormula) break;
+ if (last_cell) {
+ if (!last_formula) break;
+ sharedf[encode_cell(last_formula.cell)] = val$1[0];
+ cc = options.dense ? (out["!data"][last_formula.cell.r] || [])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];
+ (cc || {}).f = "" + stringify_formula(val$1[0], range, lastcell, supbooks, opts);
+ }
+ }
+ break;
+ case 253:
+ temp_val = make_cell(sst[val$1.isst].t, val$1.ixfe, "s");
+ if (sst[val$1.isst].h) temp_val.h = sst[val$1.isst].h;
+ temp_val.XF = XFs[temp_val.ixfe];
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ break;
+ case 513:
+ if (options.sheetStubs) {
+ temp_val = {
+ ixfe: val$1.ixfe,
+ XF: XFs[val$1.ixfe],
+ t: "z"
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ break;
+ case 190:
+ if (options.sheetStubs) {
+ for (var _j = val$1.c; _j <= val$1.C; ++_j) {
+ var _ixfe = val$1.ixfe[_j - val$1.c];
+ temp_val = {
+ ixfe: _ixfe,
+ XF: XFs[_ixfe],
+ t: "z"
+ };
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: _j,
+ r: val$1.r
+ }, temp_val, options);
+ }
+ }
+ break;
+ case 214:
+ case 516:
+ case 4:
+ temp_val = make_cell(val$1.val, val$1.ixfe, "s");
+ temp_val.XF = XFs[temp_val.ixfe];
+ if (BIFF2Fmt > 0) temp_val.z = temp_val.XF && temp_val.XF.numFmtId && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[temp_val.ixfe >> 8 & 63];
+ safe_format_xf(temp_val, options, wb.opts.Date1904);
+ addcell({
+ c: val$1.c,
+ r: val$1.r
+ }, temp_val, options);
+ break;
+ case 0:
+ case 512:
+ {
+ if (file_depth === 1) range = val$1;
+ }
+ break;
+ case 252:
+ {
+ sst = val$1;
+ }
+ break;
+ case 1054:
+ {
+ if (opts.biff >= 3 && opts.biff <= 4) {
+ BIFF2FmtTable[BIFF2Fmt++] = val$1[1];
+ for (var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if (table_fmt[b4idx] == val$1[1]) break;
+ if (b4idx >= 163) SSF__load(val$1[1], BIFF2Fmt + 163);
+ } else SSF__load(val$1[1], val$1[0]);
+ }
+ break;
+ case 30:
+ {
+ BIFF2FmtTable[BIFF2Fmt++] = val$1;
+ for (var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if (table_fmt[b2idx] == val$1) break;
+ if (b2idx >= 163) SSF__load(val$1, BIFF2Fmt + 163);
+ }
+ break;
+ case 229:
+ merges = merges.concat(val$1);
+ break;
+ case 93:
+ objects[val$1.cmo[0]] = opts.lastobj = val$1;
+ break;
+ case 438:
+ opts.lastobj.TxO = val$1;
+ break;
+ case 127:
+ opts.lastobj.ImData = val$1;
+ break;
+ case 440:
+ {
+ for (rngR = val$1[0].s.r; rngR <= val$1[0].e.r; ++rngR) for (rngC = val$1[0].s.c; rngC <= val$1[0].e.c; ++rngC) {
+ cc = options.dense ? (out["!data"][rngR] || [])[rngC] : out[encode_cell({
+ c: rngC,
+ r: rngR
+ })];
+ if (cc) cc.l = val$1[1];
+ }
+ }
+ break;
+ case 2048:
+ {
+ for (rngR = val$1[0].s.r; rngR <= val$1[0].e.r; ++rngR) for (rngC = val$1[0].s.c; rngC <= val$1[0].e.c; ++rngC) {
+ cc = options.dense ? (out["!data"][rngR] || [])[rngC] : out[encode_cell({
+ c: rngC,
+ r: rngR
+ })];
+ if (cc && cc.l) cc.l.Tooltip = val$1[1];
+ }
+ }
+ break;
+ case 28:
+ {
+ cc = options.dense ? (out["!data"][val$1[0].r] || [])[val$1[0].c] : out[encode_cell(val$1[0])];
+ if (!cc) {
+ if (options.dense) {
+ if (!out["!data"][val$1[0].r]) out["!data"][val$1[0].r] = [];
+ cc = out["!data"][val$1[0].r][val$1[0].c] = { t: "z" };
+ } else {
+ cc = out[encode_cell(val$1[0])] = { t: "z" };
+ }
+ range.e.r = Math.max(range.e.r, val$1[0].r);
+ range.s.r = Math.min(range.s.r, val$1[0].r);
+ range.e.c = Math.max(range.e.c, val$1[0].c);
+ range.s.c = Math.min(range.s.c, val$1[0].c);
+ }
+ if (!cc.c) cc.c = [];
+ if (opts.biff <= 5 && opts.biff >= 2) cmnt = {
+ a: "SheetJ5",
+ t: val$1[1]
+ };
+ else {
+ var noteobj = objects[val$1[2]];
+ cmnt = {
+ a: val$1[1],
+ t: noteobj.TxO.t
+ };
+ if (val$1[3] != null && !(val$1[3] & 2)) cc.c.hidden = true;
+ }
+ cc.c.push(cmnt);
+ }
+ break;
+ case 2173:
+ update_xfext(XFs[val$1.ixfe], val$1.ext);
+ break;
+ case 125:
+ {
+ if (!opts.cellStyles) break;
+ while (val$1.e >= val$1.s) {
+ colinfo[val$1.e--] = {
+ width: val$1.w / 256,
+ level: val$1.level || 0,
+ hidden: !!(val$1.flags & 1)
+ };
+ if (!seencol) {
+ seencol = true;
+ find_mdw_colw(val$1.w / 256);
+ }
+ process_col(colinfo[val$1.e + 1]);
+ }
+ }
+ break;
+ case 520:
+ {
+ var rowobj = {};
+ if (val$1.level != null) {
+ rowinfo[val$1.r] = rowobj;
+ rowobj.level = val$1.level;
+ }
+ if (val$1.hidden) {
+ rowinfo[val$1.r] = rowobj;
+ rowobj.hidden = true;
+ }
+ if (val$1.hpt) {
+ rowinfo[val$1.r] = rowobj;
+ rowobj.hpt = val$1.hpt;
+ rowobj.hpx = pt2px(val$1.hpt);
+ }
+ }
+ break;
+ case 38:
+ case 39:
+ case 40:
+ case 41:
+ if (!out["!margins"]) default_margins(out["!margins"] = {});
+ out["!margins"][{
+ 38: "left",
+ 39: "right",
+ 40: "top",
+ 41: "bottom"
+ }[RecordType]] = val$1;
+ break;
+ case 161:
+ if (!out["!margins"]) default_margins(out["!margins"] = {});
+ out["!margins"].header = val$1.header;
+ out["!margins"].footer = val$1.footer;
+ break;
+ case 574:
+ if (val$1.RTL) Workbook.Views[0].RTL = true;
+ break;
+ case 146:
+ palette = val$1;
+ break;
+ case 2198:
+ themes = val$1;
+ break;
+ case 140:
+ country = val$1;
+ break;
+ case 442:
+ {
+ if (!cur_sheet) Workbook.WBProps.CodeName = val$1 || "ThisWorkbook";
+ else wsprops.CodeName = val$1 || wsprops.name;
+ }
+ break;
+ }
+ } else {
+ if (!R$1) console.error("Missing Info for XLS Record 0x" + RecordType.toString(16));
+ blob.l += length;
+ }
+ }
+ wb.SheetNames = keys(Directory).sort(function(a$2, b$3) {
+ return Number(a$2) - Number(b$3);
+ }).map(function(x$2) {
+ return Directory[x$2].name;
+ });
+ if (!options.bookSheets) wb.Sheets = Sheets;
+ if (!wb.SheetNames.length && Preamble["!ref"]) {
+ wb.SheetNames.push("Sheet1");
+ if (wb.Sheets) wb.Sheets["Sheet1"] = Preamble;
+ } else wb.Preamble = Preamble;
+ if (wb.Sheets) FilterDatabases.forEach(function(r$10, i$7) {
+ wb.Sheets[wb.SheetNames[i$7]]["!autofilter"] = r$10;
+ });
+ wb.Strings = sst;
+ wb.SSF = dup(table_fmt);
+ if (opts.enc) wb.Encryption = opts.enc;
+ if (themes) wb.Themes = themes;
+ wb.Metadata = {};
+ if (country !== undefined) wb.Metadata.Country = country;
+ if (supbooks.names.length > 0) Workbook.Names = supbooks.names;
+ wb.Workbook = Workbook;
+ return wb;
+}
+function parse_xls_props(cfb, props, o$10) {
+ var DSI = CFB.find(cfb, "/!DocumentSummaryInformation");
+ if (DSI && DSI.size > 0) try {
+ var DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);
+ for (var d$5 in DocSummary) props[d$5] = DocSummary[d$5];
+ } catch (e$10) {
+ if (o$10.WTF) throw e$10;
+ }
+ var SI = CFB.find(cfb, "/!SummaryInformation");
+ if (SI && SI.size > 0) try {
+ var Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);
+ for (var s$5 in Summary) if (props[s$5] == null) props[s$5] = Summary[s$5];
+ } catch (e$10) {
+ if (o$10.WTF) throw e$10;
+ }
+ if (props.HeadingPairs && props.TitlesOfParts) {
+ load_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o$10);
+ delete props.HeadingPairs;
+ delete props.TitlesOfParts;
+ }
+}
+function write_xls_props(wb, cfb) {
+ var DSEntries = [], SEntries = [], CEntries = [];
+ var i$7 = 0, Keys;
+ var DocSummaryRE = evert_key(DocSummaryPIDDSI, "n");
+ var SummaryRE = evert_key(SummaryPIDSI, "n");
+ if (wb.Props) {
+ Keys = keys(wb.Props);
+ for (i$7 = 0; i$7 < Keys.length; ++i$7) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i$7]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i$7]) ? SEntries : CEntries).push([Keys[i$7], wb.Props[Keys[i$7]]]);
+ }
+ if (wb.Custprops) {
+ Keys = keys(wb.Custprops);
+ for (i$7 = 0; i$7 < Keys.length; ++i$7) if (!Object.prototype.hasOwnProperty.call(wb.Props || {}, Keys[i$7])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i$7]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i$7]) ? SEntries : CEntries).push([Keys[i$7], wb.Custprops[Keys[i$7]]]);
+ }
+ var CEntries2 = [];
+ for (i$7 = 0; i$7 < CEntries.length; ++i$7) {
+ if (XLSPSSkip.indexOf(CEntries[i$7][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i$7][0]) > -1) continue;
+ if (CEntries[i$7][1] == null) continue;
+ CEntries2.push(CEntries[i$7]);
+ }
+ if (SEntries.length) CFB.utils.cfb_add(cfb, "/SummaryInformation", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));
+ if (DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, "/DocumentSummaryInformation", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));
+}
+function parse_xlscfb(cfb, options) {
+ if (!options) options = {};
+ fix_read_opts(options);
+ reset_cp();
+ if (options.codepage) set_ansi(options.codepage);
+ var CompObj, WB;
+ if (cfb.FullPaths) {
+ if (CFB.find(cfb, "/encryption")) throw new Error("File is password-protected");
+ CompObj = CFB.find(cfb, "!CompObj");
+ WB = CFB.find(cfb, "/Workbook") || CFB.find(cfb, "/Book");
+ } else {
+ switch (options.type) {
+ case "base64":
+ cfb = s2a(Base64_decode(cfb));
+ break;
+ case "binary":
+ cfb = s2a(cfb);
+ break;
+ case "buffer": break;
+ case "array":
+ if (!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb);
+ break;
+ }
+ prep_blob(cfb, 0);
+ WB = { content: cfb };
+ }
+ var WorkbookP;
+ var _data;
+ if (CompObj) parse_compobj(CompObj);
+ if (options.bookProps && !options.bookSheets) WorkbookP = {};
+ else {
+ var T$3 = has_buf ? "buffer" : "array";
+ if (WB && WB.content) WorkbookP = parse_workbook(WB.content, options);
+ else if ((_data = CFB.find(cfb, "PerfectOffice_MAIN")) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T$3, options));
+ else if ((_data = CFB.find(cfb, "NativeContent_MAIN")) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T$3, options));
+ else if ((_data = CFB.find(cfb, "MN0")) && _data.content) throw new Error("Unsupported Works 4 for Mac file");
+ else throw new Error("Cannot find Workbook stream");
+ if (options.bookVBA && cfb.FullPaths && CFB.find(cfb, "/_VBA_PROJECT_CUR/VBA/dir")) WorkbookP.vbaraw = make_vba_xls(cfb);
+ }
+ var props = {};
+ if (cfb.FullPaths) parse_xls_props(cfb, props, options);
+ WorkbookP.Props = WorkbookP.Custprops = props;
+ if (options.bookFiles) WorkbookP.cfb = cfb;
+ return WorkbookP;
+}
+function write_xlscfb(wb, opts) {
+ var o$10 = opts || {};
+ var cfb = CFB.utils.cfb_new({ root: "R" });
+ var wbpath = "/Workbook";
+ switch (o$10.bookType || "xls") {
+ case "xls": o$10.bookType = "biff8";
+ case "xla": if (!o$10.bookType) o$10.bookType = "xla";
+ case "biff8":
+ wbpath = "/Workbook";
+ o$10.biff = 8;
+ break;
+ case "biff5":
+ wbpath = "/Book";
+ o$10.biff = 5;
+ break;
+ default: throw new Error("invalid type " + o$10.bookType + " for XLS CFB");
+ }
+ CFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o$10));
+ if (o$10.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);
+ if (o$10.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, { type: typeof wb.vbaraw == "string" ? "binary" : "buffer" }));
+ return cfb;
+}
+function write_biff_rec(ba, type, payload, length) {
+ var t$6 = type;
+ if (isNaN(t$6)) return;
+ var len = length || (payload || []).length || 0;
+ var o$10 = ba.next(4);
+ o$10.write_shift(2, t$6);
+ o$10.write_shift(2, len);
+ if (len > 0 && is_buf(payload)) ba.push(payload);
+}
+function write_biff_continue(ba, type, payload, length) {
+ var len = length || (payload || []).length || 0;
+ if (len <= 8224) return write_biff_rec(ba, type, payload, len);
+ var t$6 = type;
+ if (isNaN(t$6)) return;
+ var parts = payload.parts || [], sidx = 0;
+ var i$7 = 0, w$2 = 0;
+ while (w$2 + (parts[sidx] || 8224) <= 8224) {
+ w$2 += parts[sidx] || 8224;
+ sidx++;
+ }
+ var o$10 = ba.next(4);
+ o$10.write_shift(2, t$6);
+ o$10.write_shift(2, w$2);
+ ba.push(payload.slice(i$7, i$7 + w$2));
+ i$7 += w$2;
+ while (i$7 < len) {
+ o$10 = ba.next(4);
+ o$10.write_shift(2, 60);
+ w$2 = 0;
+ while (w$2 + (parts[sidx] || 8224) <= 8224) {
+ w$2 += parts[sidx] || 8224;
+ sidx++;
+ }
+ o$10.write_shift(2, w$2);
+ ba.push(payload.slice(i$7, i$7 + w$2));
+ i$7 += w$2;
+ }
+}
+function write_BIFF2BERR(r$10, c$7, val$1, t$6) {
+ var out = new_buf(9);
+ write_BIFF2Cell(out, r$10, c$7);
+ write_Bes(val$1, t$6 || "b", out);
+ return out;
+}
+function write_BIFF2LABEL(r$10, c$7, val$1) {
+ var out = new_buf(8 + 2 * val$1.length);
+ write_BIFF2Cell(out, r$10, c$7);
+ out.write_shift(1, val$1.length);
+ out.write_shift(val$1.length, val$1, "sbcs");
+ return out.l < out.length ? out.slice(0, out.l) : out;
+}
+function write_comments_biff2(ba, comments) {
+ comments.forEach(function(data) {
+ var text$2 = data[0].map(function(cc) {
+ return cc.t;
+ }).join("");
+ if (text$2.length <= 2048) return write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2, data[1], data[2]));
+ write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2.slice(0, 2048), data[1], data[2], text$2.length));
+ for (var i$7 = 2048; i$7 < text$2.length; i$7 += 2048) write_biff_rec(ba, 28, write_NOTE_BIFF2(text$2.slice(i$7, Math.min(i$7 + 2048, text$2.length)), -1, -1, Math.min(2048, text$2.length - i$7)));
+ });
+}
+function write_ws_biff2_cell(ba, cell, R$1, C$2, opts, date1904) {
+ var ifmt = 0;
+ if (cell.z != null) {
+ ifmt = opts._BIFF2FmtTable.indexOf(cell.z);
+ if (ifmt == -1) {
+ opts._BIFF2FmtTable.push(cell.z);
+ ifmt = opts._BIFF2FmtTable.length - 1;
+ }
+ }
+ var ixfe = 0;
+ if (cell.z != null) {
+ for (; ixfe < opts.cellXfs.length; ++ixfe) if (opts.cellXfs[ixfe].numFmtId == ifmt) break;
+ if (ixfe == opts.cellXfs.length) opts.cellXfs.push({ numFmtId: ifmt });
+ }
+ if (cell.v != null) switch (cell.t) {
+ case "d":
+ case "n":
+ var v$3 = cell.t == "d" ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;
+ if (opts.biff == 2 && v$3 == (v$3 | 0) && v$3 >= 0 && v$3 < 65536) write_biff_rec(ba, 2, write_BIFF2INT(R$1, C$2, v$3, ixfe, ifmt));
+ else if (isNaN(v$3)) write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, 36, "e"));
+ else if (!isFinite(v$3)) write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, 7, "e"));
+ else write_biff_rec(ba, 3, write_BIFF2NUM(R$1, C$2, v$3, ixfe, ifmt));
+ return;
+ case "b":
+ case "e":
+ write_biff_rec(ba, 5, write_BIFF2BERR(R$1, C$2, cell.v, cell.t));
+ return;
+ case "s":
+ case "str":
+ write_biff_rec(ba, 4, write_BIFF2LABEL(R$1, C$2, cell.v == null ? "" : String(cell.v).slice(0, 255)));
+ return;
+ }
+ write_biff_rec(ba, 1, write_BIFF2Cell(null, R$1, C$2));
+}
+function write_ws_biff2(ba, ws, idx, opts, wb) {
+ var dense = ws["!data"] != null;
+ var range = safe_decode_range(ws["!ref"] || "A1"), rr = "", cols = [];
+ if (range.e.c > 255 || range.e.r > 16383) {
+ if (opts.WTF) throw new Error("Range " + (ws["!ref"] || "A1") + " exceeds format limit A1:IV16384");
+ range.e.c = Math.min(range.e.c, 255);
+ range.e.r = Math.min(range.e.r, 16383);
+ }
+ var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
+ var row = [], comments = [];
+ for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
+ for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
+ if (dense) row = ws["!data"][R$1] || [];
+ rr = encode_row(R$1);
+ for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ var cell = dense ? row[C$2] : ws[cols[C$2] + rr];
+ if (!cell) continue;
+ write_ws_biff2_cell(ba, cell, R$1, C$2, opts, date1904);
+ if (cell.c) comments.push([
+ cell.c,
+ R$1,
+ C$2
+ ]);
+ }
+ }
+ write_comments_biff2(ba, comments);
+}
+function write_biff2_buf(wb, opts) {
+ var o$10 = opts || {};
+ var ba = buf_array();
+ var idx = 0;
+ for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) if (wb.SheetNames[i$7] == o$10.sheet) idx = i$7;
+ if (idx == 0 && !!o$10.sheet && wb.SheetNames[0] != o$10.sheet) throw new Error("Sheet not found: " + o$10.sheet);
+ write_biff_rec(ba, o$10.biff == 4 ? 1033 : o$10.biff == 3 ? 521 : 9, write_BOF(wb, 16, o$10));
+ if (((wb.Workbook || {}).WBProps || {}).date1904) write_biff_rec(ba, 34, writebool(true));
+ o$10.cellXfs = [{ numFmtId: 0 }];
+ o$10._BIFF2FmtTable = ["General"];
+ o$10._Fonts = [];
+ var body = buf_array();
+ write_ws_biff2(body, wb.Sheets[wb.SheetNames[idx]], idx, o$10, wb);
+ o$10._BIFF2FmtTable.forEach(function(f$4) {
+ if (o$10.biff <= 3) write_biff_rec(ba, 30, write_BIFF2Format(f$4));
+ else write_biff_rec(ba, 1054, write_BIFF4Format(f$4));
+ });
+ o$10.cellXfs.forEach(function(xf) {
+ switch (o$10.biff) {
+ case 2:
+ write_biff_rec(ba, 67, write_BIFF2XF(xf));
+ break;
+ case 3:
+ write_biff_rec(ba, 579, write_BIFF3XF(xf));
+ break;
+ case 4:
+ write_biff_rec(ba, 1091, write_BIFF4XF(xf));
+ break;
+ }
+ });
+ delete o$10._BIFF2FmtTable;
+ delete o$10.cellXfs;
+ delete o$10._Fonts;
+ ba.push(body.end());
+ write_biff_rec(ba, 10);
+ return ba.end();
+}
+function write_MsoDrawingGroup() {
+ var buf = new_buf(82 + 8 * b8ocnts.length);
+ buf.write_shift(2, 15);
+ buf.write_shift(2, 61440);
+ buf.write_shift(4, 74 + 8 * b8ocnts.length);
+ {
+ buf.write_shift(2, 0);
+ buf.write_shift(2, 61446);
+ buf.write_shift(4, 16 + 8 * b8ocnts.length);
+ {
+ buf.write_shift(4, b8oid);
+ buf.write_shift(4, b8ocnts.length + 1);
+ var acc = 0;
+ for (var i$7 = 0; i$7 < b8ocnts.length; ++i$7) acc += b8ocnts[i$7] && b8ocnts[i$7][1] || 0;
+ buf.write_shift(4, acc);
+ buf.write_shift(4, b8ocnts.length);
+ }
+ b8ocnts.forEach(function(b8) {
+ buf.write_shift(4, b8[0]);
+ buf.write_shift(4, b8[2]);
+ });
+ }
+ {
+ buf.write_shift(2, 51);
+ buf.write_shift(2, 61451);
+ buf.write_shift(4, 18);
+ buf.write_shift(2, 191);
+ buf.write_shift(4, 524296);
+ buf.write_shift(2, 385);
+ buf.write_shift(4, 134217793);
+ buf.write_shift(2, 448);
+ buf.write_shift(4, 134217792);
+ }
+ {
+ buf.write_shift(2, 64);
+ buf.write_shift(2, 61726);
+ buf.write_shift(4, 16);
+ buf.write_shift(4, 134217741);
+ buf.write_shift(4, 134217740);
+ buf.write_shift(4, 134217751);
+ buf.write_shift(4, 268435703);
+ }
+ return buf;
+}
+function write_comments_biff8(ba, comments) {
+ var notes = [], sz = 0, pl = buf_array(), baseid = b8oid;
+ var _oasc;
+ comments.forEach(function(c$7, ci) {
+ var author = "";
+ var text$2 = c$7[0].map(function(t$6) {
+ if (t$6.a && !author) author = t$6.a;
+ return t$6.t;
+ }).join("");
+ ++b8oid;
+ {
+ var oasc = new_buf(150);
+ oasc.write_shift(2, 15);
+ oasc.write_shift(2, 61444);
+ oasc.write_shift(4, 150);
+ {
+ oasc.write_shift(2, 3234);
+ oasc.write_shift(2, 61450);
+ oasc.write_shift(4, 8);
+ oasc.write_shift(4, b8oid);
+ oasc.write_shift(4, 2560);
+ }
+ {
+ oasc.write_shift(2, 227);
+ oasc.write_shift(2, 61451);
+ oasc.write_shift(4, 84);
+ oasc.write_shift(2, 128);
+ oasc.write_shift(4, 0);
+ oasc.write_shift(2, 139);
+ oasc.write_shift(4, 2);
+ oasc.write_shift(2, 191);
+ oasc.write_shift(4, 524296);
+ oasc.write_shift(2, 344);
+ oasc.l += 4;
+ oasc.write_shift(2, 385);
+ oasc.write_shift(4, 134217808);
+ oasc.write_shift(2, 387);
+ oasc.write_shift(4, 134217808);
+ oasc.write_shift(2, 389);
+ oasc.write_shift(4, 268435700);
+ oasc.write_shift(2, 447);
+ oasc.write_shift(4, 1048592);
+ oasc.write_shift(2, 448);
+ oasc.write_shift(4, 134217809);
+ oasc.write_shift(2, 451);
+ oasc.write_shift(4, 268435700);
+ oasc.write_shift(2, 513);
+ oasc.write_shift(4, 134217809);
+ oasc.write_shift(2, 515);
+ oasc.write_shift(4, 268435700);
+ oasc.write_shift(2, 575);
+ oasc.write_shift(4, 196609);
+ oasc.write_shift(2, 959);
+ oasc.write_shift(4, 131072 | (c$7[0].hidden ? 2 : 0));
+ }
+ {
+ oasc.l += 2;
+ oasc.write_shift(2, 61456);
+ oasc.write_shift(4, 18);
+ oasc.write_shift(2, 3);
+ oasc.write_shift(2, c$7[2] + 2);
+ oasc.l += 2;
+ oasc.write_shift(2, c$7[1] + 1);
+ oasc.l += 2;
+ oasc.write_shift(2, c$7[2] + 4);
+ oasc.l += 2;
+ oasc.write_shift(2, c$7[1] + 5);
+ oasc.l += 2;
+ }
+ {
+ oasc.l += 2;
+ oasc.write_shift(2, 61457);
+ oasc.l += 4;
+ }
+ oasc.l = 150;
+ if (ci == 0) _oasc = oasc;
+ else write_biff_rec(pl, 236, oasc);
+ }
+ sz += 150;
+ {
+ var obj = new_buf(52);
+ obj.write_shift(2, 21);
+ obj.write_shift(2, 18);
+ obj.write_shift(2, 25);
+ obj.write_shift(2, b8oid);
+ obj.write_shift(2, 0);
+ obj.l = 22;
+ obj.write_shift(2, 13);
+ obj.write_shift(2, 22);
+ obj.write_shift(4, 1651663474);
+ obj.write_shift(4, 2503426821);
+ obj.write_shift(4, 2150634280);
+ obj.write_shift(4, 1768515844 + b8oid * 256);
+ obj.write_shift(2, 0);
+ obj.write_shift(4, 0);
+ obj.l += 4;
+ write_biff_rec(pl, 93, obj);
+ }
+ {
+ var oact = new_buf(8);
+ oact.l += 2;
+ oact.write_shift(2, 61453);
+ oact.l += 4;
+ write_biff_rec(pl, 236, oact);
+ }
+ sz += 8;
+ {
+ var txo = new_buf(18);
+ txo.write_shift(2, 18);
+ txo.l += 8;
+ txo.write_shift(2, text$2.length);
+ txo.write_shift(2, 16);
+ txo.l += 4;
+ write_biff_rec(pl, 438, txo);
+ {
+ var cont = new_buf(1 + text$2.length);
+ cont.write_shift(1, 0);
+ cont.write_shift(text$2.length, text$2, "sbcs");
+ write_biff_rec(pl, 60, cont);
+ }
+ {
+ var conf = new_buf(16);
+ conf.l += 8;
+ conf.write_shift(2, text$2.length);
+ conf.l += 6;
+ write_biff_rec(pl, 60, conf);
+ }
+ }
+ {
+ var notesh = new_buf(12 + author.length);
+ notesh.write_shift(2, c$7[1]);
+ notesh.write_shift(2, c$7[2]);
+ notesh.write_shift(2, 0 | (c$7[0].hidden ? 0 : 2));
+ notesh.write_shift(2, b8oid);
+ notesh.write_shift(2, author.length);
+ notesh.write_shift(1, 0);
+ notesh.write_shift(author.length, author, "sbcs");
+ notesh.l++;
+ notes.push(notesh);
+ }
+ });
+ {
+ var hdr = new_buf(80);
+ hdr.write_shift(2, 15);
+ hdr.write_shift(2, 61442);
+ hdr.write_shift(4, sz + hdr.length - 8);
+ {
+ hdr.write_shift(2, 16);
+ hdr.write_shift(2, 61448);
+ hdr.write_shift(4, 8);
+ hdr.write_shift(4, comments.length + 1);
+ hdr.write_shift(4, b8oid);
+ }
+ {
+ hdr.write_shift(2, 15);
+ hdr.write_shift(2, 61443);
+ hdr.write_shift(4, sz + 48);
+ {
+ hdr.write_shift(2, 15);
+ hdr.write_shift(2, 61444);
+ hdr.write_shift(4, 40);
+ {
+ hdr.write_shift(2, 1);
+ hdr.write_shift(2, 61449);
+ hdr.write_shift(4, 16);
+ hdr.l += 16;
+ }
+ {
+ hdr.write_shift(2, 2);
+ hdr.write_shift(2, 61450);
+ hdr.write_shift(4, 8);
+ hdr.write_shift(4, baseid);
+ hdr.write_shift(4, 5);
+ }
+ }
+ }
+ write_biff_rec(ba, 236, _oasc ? bconcat([hdr, _oasc]) : hdr);
+ }
+ ba.push(pl.end());
+ notes.forEach(function(n$9) {
+ write_biff_rec(ba, 28, n$9);
+ });
+ b8ocnts.push([
+ baseid,
+ comments.length + 1,
+ b8oid
+ ]);
+ ++b8oid;
+}
+function write_FONTS_biff8(ba, data, opts) {
+ write_biff_rec(ba, 49, write_Font({
+ sz: 12,
+ color: { theme: 1 },
+ name: "Arial",
+ family: 2,
+ scheme: "minor"
+ }, opts));
+}
+function write_FMTS_biff8(ba, NF, opts) {
+ if (!NF) return;
+ [
+ [5, 8],
+ [23, 26],
+ [41, 44],
+ [50, 392]
+ ].forEach(function(r$10) {
+ for (var i$7 = r$10[0]; i$7 <= r$10[1]; ++i$7) if (NF[i$7] != null) write_biff_rec(ba, 1054, write_Format(i$7, NF[i$7], opts));
+ });
+}
+function write_FEAT(ba, ws) {
+ var o$10 = new_buf(19);
+ o$10.write_shift(4, 2151);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(2, 3);
+ o$10.write_shift(1, 1);
+ o$10.write_shift(4, 0);
+ write_biff_rec(ba, 2151, o$10);
+ o$10 = new_buf(39);
+ o$10.write_shift(4, 2152);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(2, 3);
+ o$10.write_shift(1, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(2, 1);
+ o$10.write_shift(4, 4);
+ o$10.write_shift(2, 0);
+ write_Ref8U(safe_decode_range(ws["!ref"] || "A1"), o$10);
+ o$10.write_shift(4, 4);
+ write_biff_rec(ba, 2152, o$10);
+}
+function write_CELLXFS_biff8(ba, opts) {
+ for (var i$7 = 0; i$7 < 16; ++i$7) write_biff_rec(ba, 224, write_XF({
+ numFmtId: 0,
+ style: true
+ }, 0, opts));
+ opts.cellXfs.forEach(function(c$7) {
+ write_biff_rec(ba, 224, write_XF(c$7, 0, opts));
+ });
+}
+function write_ws_biff8_hlinks(ba, ws) {
+ for (var R$1 = 0; R$1 < ws["!links"].length; ++R$1) {
+ var HL = ws["!links"][R$1];
+ write_biff_rec(ba, 440, write_HLink(HL));
+ if (HL[1].Tooltip) write_biff_rec(ba, 2048, write_HLinkTooltip(HL));
+ }
+ delete ws["!links"];
+}
+function write_ws_cols_biff8(ba, cols) {
+ if (!cols) return;
+ var cnt = 0;
+ cols.forEach(function(col, idx) {
+ if (++cnt <= 256 && col) {
+ write_biff_rec(ba, 125, write_ColInfo(col_obj_w(idx, col), idx));
+ }
+ });
+}
+function write_ws_biff8_cell(ba, cell, R$1, C$2, opts, date1904) {
+ var os = 16 + get_cell_style(opts.cellXfs, cell, opts);
+ if (cell.v == null && !cell.bf) {
+ write_biff_rec(ba, 513, write_XLSCell(R$1, C$2, os));
+ return;
+ }
+ if (cell.bf) write_biff_rec(ba, 6, write_Formula(cell, R$1, C$2, opts, os));
+ else switch (cell.t) {
+ case "d":
+ case "n":
+ var v$3 = cell.t == "d" ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;
+ if (isNaN(v$3)) write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, 36, os, opts, "e"));
+ else if (!isFinite(v$3)) write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, 7, os, opts, "e"));
+ else write_biff_rec(ba, 515, write_Number(R$1, C$2, v$3, os, opts));
+ break;
+ case "b":
+ case "e":
+ write_biff_rec(ba, 517, write_BoolErr(R$1, C$2, cell.v, os, opts, cell.t));
+ break;
+ case "s":
+ case "str":
+ if (opts.bookSST) {
+ var isst = get_sst_id(opts.Strings, cell.v == null ? "" : String(cell.v), opts.revStrings);
+ write_biff_rec(ba, 253, write_LabelSst(R$1, C$2, isst, os, opts));
+ } else write_biff_rec(ba, 516, write_Label(R$1, C$2, (cell.v == null ? "" : String(cell.v)).slice(0, 255), os, opts));
+ break;
+ default: write_biff_rec(ba, 513, write_XLSCell(R$1, C$2, os));
+ }
+}
+function write_ws_biff8(idx, opts, wb) {
+ var ba = buf_array();
+ var s$5 = wb.SheetNames[idx], ws = wb.Sheets[s$5] || {};
+ var _WB = (wb || {}).Workbook || {};
+ var _sheet = (_WB.Sheets || [])[idx] || {};
+ var dense = ws["!data"] != null;
+ var b8 = opts.biff == 8;
+ var ref, rr = "", cols = [];
+ var range = safe_decode_range(ws["!ref"] || "A1");
+ var MAX_ROWS = b8 ? 65536 : 16384;
+ if (range.e.c > 255 || range.e.r >= MAX_ROWS) {
+ if (opts.WTF) throw new Error("Range " + (ws["!ref"] || "A1") + " exceeds format limit A1:IV" + MAX_ROWS);
+ range.e.c = Math.min(range.e.c, 255);
+ range.e.r = Math.min(range.e.r, MAX_ROWS - 1);
+ }
+ write_biff_rec(ba, 2057, write_BOF(wb, 16, opts));
+ write_biff_rec(ba, 13, writeuint16(1));
+ write_biff_rec(ba, 12, writeuint16(100));
+ write_biff_rec(ba, 15, writebool(true));
+ write_biff_rec(ba, 17, writebool(false));
+ write_biff_rec(ba, 16, write_Xnum(.001));
+ write_biff_rec(ba, 95, writebool(true));
+ write_biff_rec(ba, 42, writebool(false));
+ write_biff_rec(ba, 43, writebool(false));
+ write_biff_rec(ba, 130, writeuint16(1));
+ write_biff_rec(ba, 128, write_Guts([0, 0]));
+ write_biff_rec(ba, 131, writebool(false));
+ write_biff_rec(ba, 132, writebool(false));
+ if (b8) write_ws_cols_biff8(ba, ws["!cols"]);
+ write_biff_rec(ba, 512, write_Dimensions(range, opts));
+ var date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
+ if (b8) ws["!links"] = [];
+ for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
+ var comments = [];
+ var row = [];
+ for (var R$1 = range.s.r; R$1 <= range.e.r; ++R$1) {
+ if (dense) row = ws["!data"][R$1] || [];
+ rr = encode_row(R$1);
+ for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ var cell = dense ? row[C$2] : ws[cols[C$2] + rr];
+ if (!cell) continue;
+ write_ws_biff8_cell(ba, cell, R$1, C$2, opts, date1904);
+ if (b8 && cell.l) ws["!links"].push([cols[C$2] + rr, cell.l]);
+ if (cell.c) comments.push([
+ cell.c,
+ R$1,
+ C$2
+ ]);
+ }
+ }
+ var cname = _sheet.CodeName || _sheet.name || s$5;
+ if (b8) write_comments_biff8(ba, comments);
+ else write_comments_biff2(ba, comments);
+ if (b8) write_biff_rec(ba, 574, write_Window2((_WB.Views || [])[0]));
+ if (b8 && (ws["!merges"] || []).length) write_biff_rec(ba, 229, write_MergeCells(ws["!merges"]));
+ if (b8) write_ws_biff8_hlinks(ba, ws);
+ write_biff_rec(ba, 442, write_XLUnicodeString(cname, opts));
+ if (b8) write_FEAT(ba, ws);
+ write_biff_rec(ba, 10);
+ return ba.end();
+}
+function write_biff8_global(wb, bufs, opts) {
+ var A$1 = buf_array();
+ var _WB = (wb || {}).Workbook || {};
+ var _sheets = _WB.Sheets || [];
+ var _wb = _WB.WBProps || {};
+ var b8 = opts.biff == 8, b5 = opts.biff == 5;
+ write_biff_rec(A$1, 2057, write_BOF(wb, 5, opts));
+ if (opts.bookType == "xla") write_biff_rec(A$1, 135);
+ write_biff_rec(A$1, 225, b8 ? writeuint16(1200) : null);
+ write_biff_rec(A$1, 193, writezeroes(2));
+ if (b5) write_biff_rec(A$1, 191);
+ if (b5) write_biff_rec(A$1, 192);
+ write_biff_rec(A$1, 226);
+ write_biff_rec(A$1, 92, write_WriteAccess("SheetJS", opts));
+ write_biff_rec(A$1, 66, writeuint16(b8 ? 1200 : 1252));
+ if (b8) write_biff_rec(A$1, 353, writeuint16(0));
+ if (b8) write_biff_rec(A$1, 448);
+ write_biff_rec(A$1, 317, write_RRTabId(wb.SheetNames.length));
+ if (b8 && wb.vbaraw) write_biff_rec(A$1, 211);
+ if (b8 && wb.vbaraw) {
+ var cname = _wb.CodeName || "ThisWorkbook";
+ write_biff_rec(A$1, 442, write_XLUnicodeString(cname, opts));
+ }
+ write_biff_rec(A$1, 156, writeuint16(17));
+ write_biff_rec(A$1, 25, writebool(false));
+ write_biff_rec(A$1, 18, writebool(false));
+ write_biff_rec(A$1, 19, writeuint16(0));
+ if (b8) write_biff_rec(A$1, 431, writebool(false));
+ if (b8) write_biff_rec(A$1, 444, writeuint16(0));
+ write_biff_rec(A$1, 61, write_Window1(opts));
+ write_biff_rec(A$1, 64, writebool(false));
+ write_biff_rec(A$1, 141, writeuint16(0));
+ write_biff_rec(A$1, 34, writebool(safe1904(wb) == "true"));
+ write_biff_rec(A$1, 14, writebool(true));
+ if (b8) write_biff_rec(A$1, 439, writebool(false));
+ write_biff_rec(A$1, 218, writeuint16(0));
+ write_FONTS_biff8(A$1, wb, opts);
+ write_FMTS_biff8(A$1, wb.SSF, opts);
+ write_CELLXFS_biff8(A$1, opts);
+ if (b8) write_biff_rec(A$1, 352, writebool(false));
+ var a$2 = A$1.end();
+ var C$2 = buf_array();
+ if (b8) write_biff_rec(C$2, 140, write_Country());
+ if (b8 && b8ocnts.length) write_biff_rec(C$2, 235, write_MsoDrawingGroup());
+ if (b8 && opts.Strings) write_biff_continue(C$2, 252, write_SST(opts.Strings, opts));
+ write_biff_rec(C$2, 10);
+ var c$7 = C$2.end();
+ var B$2 = buf_array();
+ var blen = 0, j$2 = 0;
+ for (j$2 = 0; j$2 < wb.SheetNames.length; ++j$2) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j$2].length;
+ var start = a$2.length + blen + c$7.length;
+ for (j$2 = 0; j$2 < wb.SheetNames.length; ++j$2) {
+ var _sheet = _sheets[j$2] || {};
+ write_biff_rec(B$2, 133, write_BoundSheet8({
+ pos: start,
+ hs: _sheet.Hidden || 0,
+ dt: 0,
+ name: wb.SheetNames[j$2]
+ }, opts));
+ start += bufs[j$2].length;
+ }
+ var b$3 = B$2.end();
+ if (blen != b$3.length) throw new Error("BS8 " + blen + " != " + b$3.length);
+ var out = [];
+ if (a$2.length) out.push(a$2);
+ if (b$3.length) out.push(b$3);
+ if (c$7.length) out.push(c$7);
+ return bconcat(out);
+}
+function write_biff8_buf(wb, opts) {
+ var o$10 = opts || {};
+ var bufs = [];
+ if (wb && !wb.SSF) {
+ wb.SSF = dup(table_fmt);
+ }
+ if (wb && wb.SSF) {
+ make_ssf();
+ SSF_load_table(wb.SSF);
+ o$10.revssf = evert_num(wb.SSF);
+ o$10.revssf[wb.SSF[65535]] = 0;
+ o$10.ssf = wb.SSF;
+ }
+ b8oid = 1;
+ b8ocnts = [];
+ o$10.Strings = [];
+ o$10.Strings.Count = 0;
+ o$10.Strings.Unique = 0;
+ fix_write_opts(o$10);
+ o$10.cellXfs = [];
+ get_cell_style(o$10.cellXfs, {}, { revssf: { "General": 0 } });
+ if (!wb.Props) wb.Props = {};
+ for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) bufs[bufs.length] = write_ws_biff8(i$7, o$10, wb);
+ bufs.unshift(write_biff8_global(wb, bufs, o$10));
+ return bconcat(bufs);
+}
+function write_biff_buf(wb, opts) {
+ for (var i$7 = 0; i$7 <= wb.SheetNames.length; ++i$7) {
+ var ws = wb.Sheets[wb.SheetNames[i$7]];
+ if (!ws || !ws["!ref"]) continue;
+ var range = decode_range(ws["!ref"]);
+ if (range.e.c > 255) {
+ if (typeof console != "undefined" && console.error) console.error("Worksheet '" + wb.SheetNames[i$7] + "' extends beyond column IV (255). Data may be lost.");
+ }
+ if (range.e.r > 65535) {
+ if (typeof console != "undefined" && console.error) console.error("Worksheet '" + wb.SheetNames[i$7] + "' extends beyond row 65536. Data may be lost.");
+ }
+ }
+ var o$10 = opts || {};
+ switch (o$10.biff || 2) {
+ case 8:
+ case 5: return write_biff8_buf(wb, opts);
+ case 4:
+ case 3:
+ case 2: return write_biff2_buf(wb, opts);
+ }
+ throw new Error("invalid type " + o$10.bookType + " for BIFF");
+}
+function html_to_sheet(str, _opts) {
+ var opts = _opts || {};
+ var dense = opts.dense != null ? opts.dense : DENSE;
+ var ws = {};
+ if (dense) ws["!data"] = [];
+ str = str_remove_ng(str, "");
+ var mtch = str.match(/");
+ var mtch2 = str.match(/<\/table/i);
+ var i$7 = mtch.index, j$2 = mtch2 && mtch2.index || str.length;
+ var rows = split_regex(str.slice(i$7, j$2), /(:?]*>)/i, "
");
+ var R$1 = -1, C$2 = 0, RS = 0, CS = 0;
+ var range = {
+ s: {
+ r: 1e7,
+ c: 1e7
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var merges = [];
+ for (i$7 = 0; i$7 < rows.length; ++i$7) {
+ var row = rows[i$7].trim();
+ var hd = row.slice(0, 3).toLowerCase();
+ if (hd == "
/i);
+ for (j$2 = 0; j$2 < cells.length; ++j$2) {
+ var cell = cells[j$2].trim();
+ if (!cell.match(/")) > -1) m$3 = m$3.slice(cc + 1);
+ for (var midx = 0; midx < merges.length; ++midx) {
+ var _merge = merges[midx];
+ if (_merge.s.c == C$2 && _merge.s.r < R$1 && R$1 <= _merge.e.r) {
+ C$2 = _merge.e.c + 1;
+ midx = -1;
+ }
+ }
+ var tag = parsexmltag(cell.slice(0, cell.indexOf(">")));
+ CS = tag.colspan ? +tag.colspan : 1;
+ if ((RS = +tag.rowspan) > 1 || CS > 1) merges.push({
+ s: {
+ r: R$1,
+ c: C$2
+ },
+ e: {
+ r: R$1 + (RS || 1) - 1,
+ c: C$2 + CS - 1
+ }
+ });
+ var _t = tag.t || tag["data-t"] || "";
+ if (!m$3.length) {
+ C$2 += CS;
+ continue;
+ }
+ m$3 = htmldecode(m$3);
+ if (range.s.r > R$1) range.s.r = R$1;
+ if (range.e.r < R$1) range.e.r = R$1;
+ if (range.s.c > C$2) range.s.c = C$2;
+ if (range.e.c < C$2) range.e.c = C$2;
+ if (!m$3.length) {
+ C$2 += CS;
+ continue;
+ }
+ var o$10 = {
+ t: "s",
+ v: m$3
+ };
+ if (opts.raw || !m$3.trim().length || _t == "s") {} else if (m$3 === "TRUE") o$10 = {
+ t: "b",
+ v: true
+ };
+ else if (m$3 === "FALSE") o$10 = {
+ t: "b",
+ v: false
+ };
+ else if (!isNaN(fuzzynum(m$3))) o$10 = {
+ t: "n",
+ v: fuzzynum(m$3)
+ };
+ else if (!isNaN(fuzzydate(m$3).getDate())) {
+ o$10 = {
+ t: "d",
+ v: parseDate(m$3)
+ };
+ if (opts.UTC === false) o$10.v = utc_to_local(o$10.v);
+ if (!opts.cellDates) o$10 = {
+ t: "n",
+ v: datenum(o$10.v)
+ };
+ o$10.z = opts.dateNF || table_fmt[14];
+ } else if (m$3.charCodeAt(0) == 35 && RBErr[m$3] != null) {
+ o$10.t = "e";
+ o$10.w = m$3;
+ o$10.v = RBErr[m$3];
+ }
+ if (o$10.cellText !== false) o$10.w = m$3;
+ if (dense) {
+ if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
+ ws["!data"][R$1][C$2] = o$10;
+ } else ws[encode_cell({
+ r: R$1,
+ c: C$2
+ })] = o$10;
+ C$2 += CS;
+ }
+ }
+ ws["!ref"] = encode_range(range);
+ if (merges.length) ws["!merges"] = merges;
+ return ws;
+}
+function make_html_row(ws, r$10, R$1, o$10) {
+ var M$3 = ws["!merges"] || [];
+ var oo = [];
+ var sp = {};
+ var dense = ws["!data"] != null;
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ var RS = 0, CS = 0;
+ for (var j$2 = 0; j$2 < M$3.length; ++j$2) {
+ if (M$3[j$2].s.r > R$1 || M$3[j$2].s.c > C$2) continue;
+ if (M$3[j$2].e.r < R$1 || M$3[j$2].e.c < C$2) continue;
+ if (M$3[j$2].s.r < R$1 || M$3[j$2].s.c < C$2) {
+ RS = -1;
+ break;
+ }
+ RS = M$3[j$2].e.r - M$3[j$2].s.r + 1;
+ CS = M$3[j$2].e.c - M$3[j$2].s.c + 1;
+ break;
+ }
+ if (RS < 0) continue;
+ var coord = encode_col(C$2) + encode_row(R$1);
+ var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
+ if (cell && cell.t == "n" && cell.v != null && !isFinite(cell.v)) {
+ if (isNaN(cell.v)) cell = {
+ t: "e",
+ v: 36,
+ w: BErr[36]
+ };
+ else cell = {
+ t: "e",
+ v: 7,
+ w: BErr[7]
+ };
+ }
+ var w$2 = cell && cell.v != null && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || "")) || "";
+ sp = {};
+ if (RS > 1) sp.rowspan = RS;
+ if (CS > 1) sp.colspan = CS;
+ if (o$10.editable) w$2 = "" + w$2 + "";
+ else if (cell) {
+ sp["data-t"] = cell && cell.t || "z";
+ if (cell.v != null) sp["data-v"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);
+ if (cell.z != null) sp["data-z"] = cell.z;
+ if (cell.l && (cell.l.Target || "#").charAt(0) != "#") w$2 = "" + w$2 + "";
+ }
+ sp.id = (o$10.id || "sjs") + "-" + coord;
+ oo.push(writextag("td", w$2, sp));
+ }
+ var preamble = "";
+ return preamble + oo.join("") + "
";
+}
+function html_to_workbook(str, opts) {
+ var mtch = str_match_xml_ig(str, "table");
+ if (!mtch || mtch.length == 0) throw new Error("Invalid HTML: could not find ");
+ if (mtch.length == 1) {
+ var w$2 = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);
+ w$2.bookType = "html";
+ return w$2;
+ }
+ var wb = book_new();
+ mtch.forEach(function(s$5, idx) {
+ book_append_sheet(wb, html_to_sheet(s$5, opts), "Sheet" + (idx + 1));
+ });
+ wb.bookType = "html";
+ return wb;
+}
+function make_html_preamble(ws, R$1, o$10) {
+ var out = [];
+ return out.join("") + "";
+}
+function sheet_to_html(ws, opts) {
+ var o$10 = opts || {};
+ var header = o$10.header != null ? o$10.header : HTML_BEGIN;
+ var footer = o$10.footer != null ? o$10.footer : HTML_END;
+ var out = [header];
+ var r$10 = decode_range(ws["!ref"] || "A1");
+ out.push(make_html_preamble(ws, r$10, o$10));
+ if (ws["!ref"]) for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) out.push(make_html_row(ws, r$10, R$1, o$10));
+ out.push("
" + footer);
+ return out.join("");
+}
+function sheet_add_dom(ws, table, _opts) {
+ var rows = table.rows;
+ if (!rows) {
+ throw "Unsupported origin when " + table.tagName + " is not a TABLE";
+ }
+ var opts = _opts || {};
+ var dense = ws["!data"] != null;
+ var or_R = 0, or_C = 0;
+ if (opts.origin != null) {
+ if (typeof opts.origin == "number") or_R = opts.origin;
+ else {
+ var _origin = typeof opts.origin == "string" ? decode_cell(opts.origin) : opts.origin;
+ or_R = _origin.r;
+ or_C = _origin.c;
+ }
+ }
+ var sheetRows = Math.min(opts.sheetRows || 1e7, rows.length);
+ var range = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: or_R,
+ c: or_C
+ }
+ };
+ if (ws["!ref"]) {
+ var _range = decode_range(ws["!ref"]);
+ range.s.r = Math.min(range.s.r, _range.s.r);
+ range.s.c = Math.min(range.s.c, _range.s.c);
+ range.e.r = Math.max(range.e.r, _range.e.r);
+ range.e.c = Math.max(range.e.c, _range.e.c);
+ if (or_R == -1) range.e.r = or_R = _range.e.r + 1;
+ }
+ var merges = [], midx = 0;
+ var rowinfo = ws["!rows"] || (ws["!rows"] = []);
+ var _R = 0, R$1 = 0, _C = 0, C$2 = 0, RS = 0, CS = 0;
+ if (!ws["!cols"]) ws["!cols"] = [];
+ for (; _R < rows.length && R$1 < sheetRows; ++_R) {
+ var row = rows[_R];
+ if (is_dom_element_hidden(row)) {
+ if (opts.display) continue;
+ rowinfo[R$1] = { hidden: true };
+ }
+ var elts = row.cells;
+ for (_C = C$2 = 0; _C < elts.length; ++_C) {
+ var elt = elts[_C];
+ if (opts.display && is_dom_element_hidden(elt)) continue;
+ var v$3 = elt.hasAttribute("data-v") ? elt.getAttribute("data-v") : elt.hasAttribute("v") ? elt.getAttribute("v") : htmldecode(elt.innerHTML);
+ var z$2 = elt.getAttribute("data-z") || elt.getAttribute("z");
+ for (midx = 0; midx < merges.length; ++midx) {
+ var m$3 = merges[midx];
+ if (m$3.s.c == C$2 + or_C && m$3.s.r < R$1 + or_R && R$1 + or_R <= m$3.e.r) {
+ C$2 = m$3.e.c + 1 - or_C;
+ midx = -1;
+ }
+ }
+ CS = +elt.getAttribute("colspan") || 1;
+ if ((RS = +elt.getAttribute("rowspan") || 1) > 1 || CS > 1) merges.push({
+ s: {
+ r: R$1 + or_R,
+ c: C$2 + or_C
+ },
+ e: {
+ r: R$1 + or_R + (RS || 1) - 1,
+ c: C$2 + or_C + (CS || 1) - 1
+ }
+ });
+ var o$10 = {
+ t: "s",
+ v: v$3
+ };
+ var _t = elt.getAttribute("data-t") || elt.getAttribute("t") || "";
+ if (v$3 != null) {
+ if (v$3.length == 0) o$10.t = _t || "z";
+ else if (opts.raw || v$3.trim().length == 0 || _t == "s") {} else if (_t == "e" && BErr[+v$3]) o$10 = {
+ t: "e",
+ v: +v$3,
+ w: BErr[+v$3]
+ };
+ else if (v$3 === "TRUE") o$10 = {
+ t: "b",
+ v: true
+ };
+ else if (v$3 === "FALSE") o$10 = {
+ t: "b",
+ v: false
+ };
+ else if (!isNaN(fuzzynum(v$3))) o$10 = {
+ t: "n",
+ v: fuzzynum(v$3)
+ };
+ else if (!isNaN(fuzzydate(v$3).getDate())) {
+ o$10 = {
+ t: "d",
+ v: parseDate(v$3)
+ };
+ if (opts.UTC) o$10.v = local_to_utc(o$10.v);
+ if (!opts.cellDates) o$10 = {
+ t: "n",
+ v: datenum(o$10.v)
+ };
+ o$10.z = opts.dateNF || table_fmt[14];
+ } else if (v$3.charCodeAt(0) == 35 && RBErr[v$3] != null) o$10 = {
+ t: "e",
+ v: RBErr[v$3],
+ w: v$3
+ };
+ }
+ if (o$10.z === undefined && z$2 != null) o$10.z = z$2;
+ var l$3 = "", Aelts = elt.getElementsByTagName("A");
+ if (Aelts && Aelts.length) {
+ for (var Aelti = 0; Aelti < Aelts.length; ++Aelti) if (Aelts[Aelti].hasAttribute("href")) {
+ l$3 = Aelts[Aelti].getAttribute("href");
+ if (l$3.charAt(0) != "#") break;
+ }
+ }
+ if (l$3 && l$3.charAt(0) != "#" && l$3.slice(0, 11).toLowerCase() != "javascript:") o$10.l = { Target: l$3 };
+ if (dense) {
+ if (!ws["!data"][R$1 + or_R]) ws["!data"][R$1 + or_R] = [];
+ ws["!data"][R$1 + or_R][C$2 + or_C] = o$10;
+ } else ws[encode_cell({
+ c: C$2 + or_C,
+ r: R$1 + or_R
+ })] = o$10;
+ if (range.e.c < C$2 + or_C) range.e.c = C$2 + or_C;
+ C$2 += CS;
+ }
+ ++R$1;
+ }
+ if (merges.length) ws["!merges"] = (ws["!merges"] || []).concat(merges);
+ range.e.r = Math.max(range.e.r, R$1 - 1 + or_R);
+ ws["!ref"] = encode_range(range);
+ if (R$1 >= sheetRows) ws["!fullref"] = encode_range((range.e.r = rows.length - _R + R$1 - 1 + or_R, range));
+ return ws;
+}
+function parse_dom_table(table, _opts) {
+ var opts = _opts || {};
+ var ws = {};
+ if (opts.dense) ws["!data"] = [];
+ return sheet_add_dom(ws, table, _opts);
+}
+function table_to_book(table, opts) {
+ var o$10 = sheet_to_workbook(parse_dom_table(table, opts), opts);
+ return o$10;
+}
+function is_dom_element_hidden(element) {
+ var display = "";
+ var get_computed_style = get_get_computed_style_function(element);
+ if (get_computed_style) display = get_computed_style(element).getPropertyValue("display");
+ if (!display) display = element.style && element.style.display;
+ return display === "none";
+}
+function get_get_computed_style_function(element) {
+ if (element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === "function") return element.ownerDocument.defaultView.getComputedStyle;
+ if (typeof getComputedStyle === "function") return getComputedStyle;
+ return null;
+}
+function parse_text_p(text$2) {
+ var fixed = text$2.replace(/[\t\r\n]/g, " ").trim().replace(/ +/g, " ").replace(//g, " ").replace(//g, function($$, $1) {
+ return Array(parseInt($1, 10) + 1).join(" ");
+ }).replace(/]*\/>/g, " ").replace(//g, "\n");
+ var v$3 = unescapexml(fixed.replace(/<[^<>]*>/g, ""));
+ return [v$3];
+}
+function parse_ods_styles(d$5, _opts, _nfm) {
+ var number_format_map = _nfm || {};
+ var str = xlml_normalize(d$5);
+ xlmlregex.lastIndex = 0;
+ str = remove_doctype(str_remove_ng(str, ""));
+ var Rn, NFtag, NF = "", tNF = "", y$3, etpos = 0, tidx = -1, infmt = false, payload = "";
+ while (Rn = xlmlregex.exec(str)) {
+ switch (Rn[3] = Rn[3].replace(/_[\s\S]*$/, "")) {
+ case "number-style":
+ case "currency-style":
+ case "percentage-style":
+ case "date-style":
+ case "time-style":
+ case "text-style":
+ if (Rn[1] === "/") {
+ infmt = false;
+ if (NFtag["truncate-on-overflow"] == "false") {
+ if (NF.match(/h/)) NF = NF.replace(/h+/, "[$&]");
+ else if (NF.match(/m/)) NF = NF.replace(/m+/, "[$&]");
+ else if (NF.match(/s/)) NF = NF.replace(/s+/, "[$&]");
+ }
+ number_format_map[NFtag.name] = NF;
+ NF = "";
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ infmt = true;
+ NF = "";
+ NFtag = parsexmltag(Rn[0], false);
+ }
+ break;
+ case "boolean-style":
+ if (Rn[1] === "/") {
+ infmt = false;
+ number_format_map[NFtag.name] = "General";
+ NF = "";
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ infmt = true;
+ NF = "";
+ NFtag = parsexmltag(Rn[0], false);
+ }
+ break;
+ case "boolean":
+ NF += "General";
+ break;
+ case "text":
+ if (Rn[1] === "/") {
+ payload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);
+ if (payload == "%" && NFtag[0] == "=0") NF = number_format_map[y$3["apply-style-name"]] + ";" + NF;
+ else console.error("ODS number format may be incorrect: " + y$3["condition"]);
+ break;
+ case "number":
+ if (Rn[1] === "/") break;
+ y$3 = parsexmltag(Rn[0], false);
+ tNF = "";
+ tNF += fill("0", +y$3["min-integer-digits"] || 1);
+ if (parsexmlbool(y$3["grouping"])) tNF = commaify(fill("#", Math.max(0, 4 - tNF.length)) + tNF);
+ if (+y$3["min-decimal-places"] || +y$3["decimal-places"]) tNF += ".";
+ if (+y$3["min-decimal-places"]) tNF += fill("0", +y$3["min-decimal-places"] || 1);
+ if (+y$3["decimal-places"] - (+y$3["min-decimal-places"] || 0)) tNF += fill("0", +y$3["decimal-places"] - (+y$3["min-decimal-places"] || 0));
+ NF += tNF;
+ break;
+ case "embedded-text":
+ if (Rn[1] === "/") {
+ if (etpos == 0) NF += "\"" + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/"/g, "\"\"") + "\"";
+ else NF = NF.slice(0, etpos) + "\"" + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/"/g, "\"\"") + "\"" + NF.slice(etpos);
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ tidx = xlmlregex.lastIndex;
+ etpos = -+parsexmltag(Rn[0], false)["position"] || 0;
+ }
+ break;
+ }
+ }
+ return number_format_map;
+}
+function parse_content_xml(d$5, _opts, _nfm) {
+ var opts = _opts || {};
+ if (DENSE != null && opts.dense == null) opts.dense = DENSE;
+ var str = xlml_normalize(d$5);
+ var state$1 = [], tmp;
+ var tag;
+ var nfidx, NF = "", pidx = 0;
+ var sheetag;
+ var rowtag;
+ var Sheets = {}, SheetNames = [];
+ var ws = {};
+ if (opts.dense) ws["!data"] = [];
+ var Rn, q$2;
+ var ctag = { value: "" }, ctag2 = {};
+ var textp = "", textpidx = 0, textptag, oldtextp = "", oldtextpidx = 0;
+ var textR = [], oldtextR = [];
+ var R$1 = -1, C$2 = -1, range = {
+ s: {
+ r: 1e6,
+ c: 1e7
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var row_ol = 0;
+ var number_format_map = _nfm || {}, styles$1 = {};
+ var merges = [], mrange = {}, mR = 0, mC = 0;
+ var rowinfo = [], rowpeat = 1, colpeat = 1;
+ var arrayf = [];
+ var WB = {
+ Names: [],
+ WBProps: {}
+ };
+ var atag = {};
+ var _Ref = ["", ""];
+ var comments = [], comment = {};
+ var creator = "", creatoridx = 0;
+ var isstub = false, intable = false;
+ var i$7 = 0;
+ xlmlregex.lastIndex = 0;
+ str = remove_doctype(str_remove_ng(str, ""));
+ while (Rn = xlmlregex.exec(str)) switch (Rn[3] = Rn[3].replace(/_[\s\S]*$/, "")) {
+ case "table":
+ case "工作表":
+ if (Rn[1] === "/") {
+ if (range.e.c >= range.s.c && range.e.r >= range.s.r) ws["!ref"] = encode_range(range);
+ else ws["!ref"] = "A1:A1";
+ if (opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {
+ ws["!fullref"] = ws["!ref"];
+ range.e.r = opts.sheetRows - 1;
+ ws["!ref"] = encode_range(range);
+ }
+ if (merges.length) ws["!merges"] = merges;
+ if (rowinfo.length) ws["!rows"] = rowinfo;
+ sheetag.name = sheetag["名称"] || sheetag.name;
+ if (typeof JSON !== "undefined") JSON.stringify(sheetag);
+ SheetNames.push(sheetag.name);
+ Sheets[sheetag.name] = ws;
+ intable = false;
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ sheetag = parsexmltag(Rn[0], false);
+ R$1 = C$2 = -1;
+ range.s.r = range.s.c = 1e7;
+ range.e.r = range.e.c = 0;
+ ws = {};
+ if (opts.dense) ws["!data"] = [];
+ merges = [];
+ rowinfo = [];
+ intable = true;
+ }
+ break;
+ case "table-row-group":
+ if (Rn[1] === "/") --row_ol;
+ else ++row_ol;
+ break;
+ case "table-row":
+ case "行":
+ if (Rn[1] === "/") {
+ R$1 += rowpeat;
+ rowpeat = 1;
+ break;
+ }
+ rowtag = parsexmltag(Rn[0], false);
+ if (rowtag["行号"]) R$1 = rowtag["行号"] - 1;
+ else if (R$1 == -1) R$1 = 0;
+ rowpeat = +rowtag["number-rows-repeated"] || 1;
+ if (rowpeat < 10) {
+ for (i$7 = 0; i$7 < rowpeat; ++i$7) if (row_ol > 0) rowinfo[R$1 + i$7] = { level: row_ol };
+ }
+ C$2 = -1;
+ break;
+ case "covered-table-cell":
+ if (Rn[1] !== "/") {
+ ++C$2;
+ ctag = parsexmltag(Rn[0], false);
+ colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10) || 1;
+ if (opts.sheetStubs) {
+ while (colpeat-- > 0) {
+ if (opts.dense) {
+ if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
+ ws["!data"][R$1][C$2] = { t: "z" };
+ } else ws[encode_cell({
+ r: R$1,
+ c: C$2
+ })] = { t: "z" };
+ ++C$2;
+ }
+ --C$2;
+ } else C$2 += colpeat - 1;
+ }
+ textp = "";
+ textR = [];
+ break;
+ case "table-cell":
+ case "数据":
+ if (Rn[0].charAt(Rn[0].length - 2) === "/") {
+ ++C$2;
+ ctag = parsexmltag(Rn[0], false);
+ colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10) || 1;
+ q$2 = {
+ t: "z",
+ v: null
+ };
+ if (ctag.formula && opts.cellFormula != false) q$2.f = ods_to_csf_formula(unescapexml(ctag.formula));
+ if (ctag["style-name"] && styles$1[ctag["style-name"]]) q$2.z = styles$1[ctag["style-name"]];
+ if ((ctag["数据类型"] || ctag["value-type"]) == "string") {
+ q$2.t = "s";
+ q$2.v = unescapexml(ctag["string-value"] || "");
+ if (opts.dense) {
+ if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
+ ws["!data"][R$1][C$2] = q$2;
+ } else {
+ ws[encode_col(C$2) + encode_row(R$1)] = q$2;
+ }
+ }
+ C$2 += colpeat - 1;
+ } else if (Rn[1] !== "/") {
+ ++C$2;
+ textp = oldtextp = "";
+ textpidx = oldtextpidx = 0;
+ textR = [];
+ oldtextR = [];
+ colpeat = 1;
+ var rptR = rowpeat ? R$1 + rowpeat - 1 : R$1;
+ if (C$2 > range.e.c) range.e.c = C$2;
+ if (C$2 < range.s.c) range.s.c = C$2;
+ if (R$1 < range.s.r) range.s.r = R$1;
+ if (rptR > range.e.r) range.e.r = rptR;
+ ctag = parsexmltag(Rn[0], false);
+ ctag2 = parsexmltagraw(Rn[0], true);
+ comments = [];
+ comment = {};
+ q$2 = {
+ t: ctag["数据类型"] || ctag["value-type"],
+ v: null
+ };
+ if (ctag["style-name"] && styles$1[ctag["style-name"]]) q$2.z = styles$1[ctag["style-name"]];
+ if (opts.cellFormula) {
+ if (ctag.formula) ctag.formula = unescapexml(ctag.formula);
+ if (ctag["number-matrix-columns-spanned"] && ctag["number-matrix-rows-spanned"]) {
+ mR = parseInt(ctag["number-matrix-rows-spanned"], 10) || 0;
+ mC = parseInt(ctag["number-matrix-columns-spanned"], 10) || 0;
+ mrange = {
+ s: {
+ r: R$1,
+ c: C$2
+ },
+ e: {
+ r: R$1 + mR - 1,
+ c: C$2 + mC - 1
+ }
+ };
+ q$2.F = encode_range(mrange);
+ arrayf.push([mrange, q$2.F]);
+ }
+ if (ctag.formula) q$2.f = ods_to_csf_formula(ctag.formula);
+ else for (i$7 = 0; i$7 < arrayf.length; ++i$7) if (R$1 >= arrayf[i$7][0].s.r && R$1 <= arrayf[i$7][0].e.r) {
+ if (C$2 >= arrayf[i$7][0].s.c && C$2 <= arrayf[i$7][0].e.c) q$2.F = arrayf[i$7][1];
+ }
+ }
+ if (ctag["number-columns-spanned"] || ctag["number-rows-spanned"]) {
+ mR = parseInt(ctag["number-rows-spanned"] || "1", 10) || 1;
+ mC = parseInt(ctag["number-columns-spanned"] || "1", 10) || 1;
+ if (mR * mC > 1) {
+ mrange = {
+ s: {
+ r: R$1,
+ c: C$2
+ },
+ e: {
+ r: R$1 + mR - 1,
+ c: C$2 + mC - 1
+ }
+ };
+ merges.push(mrange);
+ }
+ }
+ if (ctag["number-columns-repeated"]) colpeat = parseInt(ctag["number-columns-repeated"], 10);
+ switch (q$2.t) {
+ case "boolean":
+ q$2.t = "b";
+ q$2.v = parsexmlbool(ctag["boolean-value"]) || +ctag["boolean-value"] >= 1;
+ break;
+ case "float":
+ q$2.t = "n";
+ q$2.v = parseFloat(ctag.value);
+ if (opts.cellDates && q$2.z && fmt_is_date(q$2.z)) {
+ q$2.v = numdate(q$2.v + (WB.WBProps.date1904 ? 1462 : 0));
+ q$2.t = typeof q$2.v == "number" ? "n" : "d";
+ }
+ break;
+ case "percentage":
+ q$2.t = "n";
+ q$2.v = parseFloat(ctag.value);
+ break;
+ case "currency":
+ q$2.t = "n";
+ q$2.v = parseFloat(ctag.value);
+ break;
+ case "date":
+ q$2.t = "d";
+ q$2.v = parseDate(ctag["date-value"], WB.WBProps.date1904);
+ if (!opts.cellDates) {
+ q$2.t = "n";
+ q$2.v = datenum(q$2.v, WB.WBProps.date1904);
+ }
+ if (!q$2.z) q$2.z = "m/d/yy";
+ break;
+ case "time":
+ q$2.t = "n";
+ q$2.v = parse_isodur(ctag["time-value"]) / 86400;
+ if (opts.cellDates) {
+ q$2.v = numdate(q$2.v);
+ q$2.t = typeof q$2.v == "number" ? "n" : "d";
+ }
+ if (!q$2.z) q$2.z = "HH:MM:SS";
+ break;
+ case "number":
+ q$2.t = "n";
+ q$2.v = parseFloat(ctag["数据数值"]);
+ break;
+ default: if (q$2.t === "string" || q$2.t === "text" || !q$2.t) {
+ q$2.t = "s";
+ if (ctag["string-value"] != null) {
+ textp = unescapexml(ctag["string-value"]);
+ textR = [];
+ }
+ } else throw new Error("Unsupported value type " + q$2.t);
+ }
+ } else {
+ isstub = false;
+ if (ctag2["calcext:value-type"] == "error" && RBErr[textp] != null) {
+ q$2.t = "e";
+ q$2.w = textp;
+ q$2.v = RBErr[textp];
+ }
+ if (q$2.t === "s") {
+ q$2.v = textp || "";
+ if (textR.length) q$2.R = textR;
+ isstub = textpidx == 0;
+ }
+ if (atag.Target) q$2.l = atag;
+ if (comments.length > 0) {
+ q$2.c = comments;
+ comments = [];
+ }
+ if (textp && opts.cellText !== false) q$2.w = textp;
+ if (isstub) {
+ q$2.t = "z";
+ delete q$2.v;
+ }
+ if (!isstub || opts.sheetStubs) {
+ if (!(opts.sheetRows && opts.sheetRows <= R$1)) {
+ for (var rpt = 0; rpt < rowpeat; ++rpt) {
+ colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10);
+ if (opts.dense) {
+ if (!ws["!data"][R$1 + rpt]) ws["!data"][R$1 + rpt] = [];
+ ws["!data"][R$1 + rpt][C$2] = rpt == 0 ? q$2 : dup(q$2);
+ while (--colpeat > 0) ws["!data"][R$1 + rpt][C$2 + colpeat] = dup(q$2);
+ } else {
+ ws[encode_cell({
+ r: R$1 + rpt,
+ c: C$2
+ })] = q$2;
+ while (--colpeat > 0) ws[encode_cell({
+ r: R$1 + rpt,
+ c: C$2 + colpeat
+ })] = dup(q$2);
+ }
+ if (range.e.c <= C$2) range.e.c = C$2;
+ }
+ }
+ }
+ colpeat = parseInt(ctag["number-columns-repeated"] || "1", 10);
+ C$2 += colpeat - 1;
+ colpeat = 0;
+ q$2 = {};
+ textp = "";
+ textR = [];
+ }
+ atag = {};
+ break;
+ case "document":
+ case "document-content":
+ case "电子表格文档":
+ case "spreadsheet":
+ case "主体":
+ case "scripts":
+ case "styles":
+ case "font-face-decls":
+ case "master-styles":
+ if (Rn[1] === "/") {
+ if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], true]);
+ break;
+ case "annotation":
+ if (Rn[1] === "/") {
+ if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
+ comment.t = textp;
+ if (textR.length) comment.R = textR;
+ comment.a = creator;
+ comments.push(comment);
+ textp = oldtextp;
+ textpidx = oldtextpidx;
+ textR = oldtextR;
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ state$1.push([Rn[3], false]);
+ var annotag = parsexmltag(Rn[0], true);
+ if (!(annotag["display"] && parsexmlbool(annotag["display"]))) comments.hidden = true;
+ oldtextp = textp;
+ oldtextpidx = textpidx;
+ oldtextR = textR;
+ textp = "";
+ textpidx = 0;
+ textR = [];
+ }
+ creator = "";
+ creatoridx = 0;
+ break;
+ case "creator":
+ if (Rn[1] === "/") {
+ creator = str.slice(creatoridx, Rn.index);
+ } else creatoridx = Rn.index + Rn[0].length;
+ break;
+ case "meta":
+ case "元数据":
+ case "settings":
+ case "config-item-set":
+ case "config-item-map-indexed":
+ case "config-item-map-entry":
+ case "config-item-map-named":
+ case "shapes":
+ case "frame":
+ case "text-box":
+ case "image":
+ case "data-pilot-tables":
+ case "list-style":
+ case "form":
+ case "dde-links":
+ case "event-listeners":
+ case "chart":
+ if (Rn[1] === "/") {
+ if ((tmp = state$1.pop())[0] !== Rn[3]) throw "Bad state: " + tmp;
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") state$1.push([Rn[3], false]);
+ textp = "";
+ textpidx = 0;
+ textR = [];
+ break;
+ case "scientific-number":
+ case "currency-symbol":
+ case "fill-character": break;
+ case "text-style":
+ case "boolean-style":
+ case "number-style":
+ case "currency-style":
+ case "percentage-style":
+ case "date-style":
+ case "time-style":
+ if (Rn[1] === "/") {
+ var xlmlidx = xlmlregex.lastIndex;
+ parse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);
+ xlmlregex.lastIndex = xlmlidx;
+ } else if (Rn[0].charAt(Rn[0].length - 2) !== "/") {
+ nfidx = xlmlregex.lastIndex - Rn[0].length;
+ }
+ break;
+ case "script": break;
+ case "libraries": break;
+ case "automatic-styles": break;
+ case "default-style":
+ case "page-layout": break;
+ case "style":
+ {
+ var styletag = parsexmltag(Rn[0], false);
+ if (styletag["family"] == "table-cell" && number_format_map[styletag["data-style-name"]]) styles$1[styletag["name"]] = number_format_map[styletag["data-style-name"]];
+ }
+ break;
+ case "map": break;
+ case "font-face": break;
+ case "paragraph-properties": break;
+ case "table-properties": break;
+ case "table-column-properties": break;
+ case "table-row-properties": break;
+ case "table-cell-properties": break;
+ case "number": break;
+ case "fraction": break;
+ case "day":
+ case "month":
+ case "year":
+ case "era":
+ case "day-of-week":
+ case "week-of-year":
+ case "quarter":
+ case "hours":
+ case "minutes":
+ case "seconds":
+ case "am-pm": break;
+ case "boolean": break;
+ case "text":
+ if (Rn[0].slice(-2) === "/>") break;
+ else if (Rn[1] === "/") switch (state$1[state$1.length - 1][0]) {
+ case "number-style":
+ case "date-style":
+ case "time-style":
+ NF += str.slice(pidx, Rn.index);
+ break;
+ }
+ else pidx = Rn.index + Rn[0].length;
+ break;
+ case "named-range":
+ tag = parsexmltag(Rn[0], false);
+ _Ref = ods_to_csf_3D(tag["cell-range-address"]);
+ var nrange = {
+ Name: tag.name,
+ Ref: _Ref[0] + "!" + _Ref[1]
+ };
+ if (intable) nrange.Sheet = SheetNames.length;
+ WB.Names.push(nrange);
+ break;
+ case "text-content": break;
+ case "text-properties": break;
+ case "embedded-text": break;
+ case "body":
+ case "电子表格": break;
+ case "forms": break;
+ case "table-column": break;
+ case "table-header-rows": break;
+ case "table-rows": break;
+ case "table-column-group": break;
+ case "table-header-columns": break;
+ case "table-columns": break;
+ case "null-date":
+ tag = parsexmltag(Rn[0], false);
+ switch (tag["date-value"]) {
+ case "1904-01-01":
+ WB.WBProps.date1904 = true;
+ break;
+ }
+ break;
+ case "graphic-properties": break;
+ case "calculation-settings": break;
+ case "named-expressions": break;
+ case "label-range": break;
+ case "label-ranges": break;
+ case "named-expression": break;
+ case "sort": break;
+ case "sort-by": break;
+ case "sort-groups": break;
+ case "tab": break;
+ case "line-break": break;
+ case "span": break;
+ case "p":
+ case "文本串":
+ if (["master-styles"].indexOf(state$1[state$1.length - 1][0]) > -1) break;
+ if (Rn[1] === "/" && (!ctag || !ctag["string-value"])) {
+ var ptp = parse_text_p(str.slice(textpidx, Rn.index), textptag);
+ textp = (textp.length > 0 ? textp + "\n" : "") + ptp[0];
+ } else if (Rn[0].slice(-2) == "/>") {
+ textp += "\n";
+ } else {
+ textptag = parsexmltag(Rn[0], false);
+ textpidx = Rn.index + Rn[0].length;
+ }
+ break;
+ case "s": break;
+ case "database-range":
+ if (Rn[1] === "/") break;
+ try {
+ _Ref = ods_to_csf_3D(parsexmltag(Rn[0])["target-range-address"]);
+ Sheets[_Ref[0]]["!autofilter"] = { ref: _Ref[1] };
+ } catch (e$10) {}
+ break;
+ case "date": break;
+ case "object": break;
+ case "title":
+ case "标题": break;
+ case "desc": break;
+ case "binary-data": break;
+ case "table-source": break;
+ case "scenario": break;
+ case "iteration": break;
+ case "content-validations": break;
+ case "content-validation": break;
+ case "help-message": break;
+ case "error-message": break;
+ case "database-ranges": break;
+ case "filter": break;
+ case "filter-and": break;
+ case "filter-or": break;
+ case "filter-condition": break;
+ case "filter-set-item": break;
+ case "list-level-style-bullet": break;
+ case "list-level-style-number": break;
+ case "list-level-properties": break;
+ case "sender-firstname":
+ case "sender-lastname":
+ case "sender-initials":
+ case "sender-title":
+ case "sender-position":
+ case "sender-email":
+ case "sender-phone-private":
+ case "sender-fax":
+ case "sender-company":
+ case "sender-phone-work":
+ case "sender-street":
+ case "sender-city":
+ case "sender-postal-code":
+ case "sender-country":
+ case "sender-state-or-province":
+ case "author-name":
+ case "author-initials":
+ case "chapter":
+ case "file-name":
+ case "template-name":
+ case "sheet-name": break;
+ case "event-listener": break;
+ case "initial-creator":
+ case "creation-date":
+ case "print-date":
+ case "generator":
+ case "document-statistic":
+ case "user-defined":
+ case "editing-duration":
+ case "editing-cycles": break;
+ case "config-item": break;
+ case "page-number": break;
+ case "page-count": break;
+ case "time": break;
+ case "cell-range-source": break;
+ case "detective": break;
+ case "operation": break;
+ case "highlighted-range": break;
+ case "data-pilot-table":
+ case "source-cell-range":
+ case "source-service":
+ case "data-pilot-field":
+ case "data-pilot-level":
+ case "data-pilot-subtotals":
+ case "data-pilot-subtotal":
+ case "data-pilot-members":
+ case "data-pilot-member":
+ case "data-pilot-display-info":
+ case "data-pilot-sort-info":
+ case "data-pilot-layout-info":
+ case "data-pilot-field-reference":
+ case "data-pilot-groups":
+ case "data-pilot-group":
+ case "data-pilot-group-member": break;
+ case "rect": break;
+ case "dde-connection-decls":
+ case "dde-connection-decl":
+ case "dde-link":
+ case "dde-source": break;
+ case "properties": break;
+ case "property": break;
+ case "a":
+ if (Rn[1] !== "/") {
+ atag = parsexmltag(Rn[0], false);
+ if (!atag.href) break;
+ atag.Target = unescapexml(atag.href);
+ delete atag.href;
+ if (atag.Target.charAt(0) == "#" && atag.Target.indexOf(".") > -1) {
+ _Ref = ods_to_csf_3D(atag.Target.slice(1));
+ atag.Target = "#" + _Ref[0] + "!" + _Ref[1];
+ } else if (atag.Target.match(/^\.\.[\\\/]/)) atag.Target = atag.Target.slice(3);
+ }
+ break;
+ case "table-protection": break;
+ case "data-pilot-grand-total": break;
+ case "office-document-common-attrs": break;
+ default: switch (Rn[2]) {
+ case "dc:":
+ case "calcext:":
+ case "loext:":
+ case "ooo:":
+ case "chartooo:":
+ case "draw:":
+ case "style:":
+ case "chart:":
+ case "form:":
+ case "uof:":
+ case "表:":
+ case "字:": break;
+ default: if (opts.WTF) throw new Error(Rn);
+ }
+ }
+ var out = {
+ Sheets,
+ SheetNames,
+ Workbook: WB
+ };
+ if (opts.bookSheets) delete out.Sheets;
+ return out;
+}
+function parse_ods(zip, opts) {
+ opts = opts || {};
+ if (safegetzipfile(zip, "META-INF/manifest.xml")) parse_manifest(getzipdata(zip, "META-INF/manifest.xml"), opts);
+ var styles$1 = getzipstr(zip, "styles.xml");
+ var Styles = styles$1 && parse_ods_styles(utf8read(styles$1), opts);
+ var content = getzipstr(zip, "content.xml");
+ if (!content) throw new Error("Missing content.xml in ODS / UOF file");
+ var wb = parse_content_xml(utf8read(content), opts, Styles);
+ if (safegetzipfile(zip, "meta.xml")) wb.Props = parse_core_props(getzipdata(zip, "meta.xml"));
+ wb.bookType = "ods";
+ return wb;
+}
+function parse_fods(data, opts) {
+ var wb = parse_content_xml(data, opts);
+ wb.bookType = "fods";
+ return wb;
+}
+function write_number_format_ods(nf, nfidx) {
+ var type = "number", payload = "", nopts = { "style:name": nfidx }, c$7 = "", i$7 = 0;
+ nf = nf.replace(/"[$]"/g, "$");
+ j: {
+ if (nf.indexOf(";") > -1) {
+ console.error("Unsupported ODS Style Map exported. Using first branch of " + nf);
+ nf = nf.slice(0, nf.indexOf(";"));
+ }
+ if (nf == "@") {
+ type = "text";
+ payload = "";
+ break j;
+ }
+ if (nf.indexOf(/\$/) > -1) {
+ type = "currency";
+ }
+ if (nf[i$7] == "\"") {
+ c$7 = "";
+ while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
+ --i$7;
+ if (nf[i$7 + 1] == "*") {
+ i$7++;
+ payload += "" + escapexml(c$7.replace(/""/g, "\"")) + "";
+ } else {
+ payload += "" + escapexml(c$7.replace(/""/g, "\"")) + "";
+ }
+ nf = nf.slice(i$7 + 1);
+ i$7 = 0;
+ }
+ var t$6 = nf.match(/# (\?+)\/(\?+)/);
+ if (t$6) {
+ payload += writextag("number:fraction", null, {
+ "number:min-integer-digits": 0,
+ "number:min-numerator-digits": t$6[1].length,
+ "number:max-denominator-value": Math.max(+t$6[1].replace(/./g, "9"), +t$6[2].replace(/./g, "9"))
+ });
+ break j;
+ }
+ if (t$6 = nf.match(/# (\?+)\/(\d+)/)) {
+ payload += writextag("number:fraction", null, {
+ "number:min-integer-digits": 0,
+ "number:min-numerator-digits": t$6[1].length,
+ "number:denominator-value": +t$6[2]
+ });
+ break j;
+ }
+ if (t$6 = nf.match(/\b(\d+)(|\.\d+)%/)) {
+ type = "percentage";
+ payload += writextag("number:number", null, {
+ "number:decimal-places": t$6[2] && t$6.length - 1 || 0,
+ "number:min-decimal-places": t$6[2] && t$6.length - 1 || 0,
+ "number:min-integer-digits": t$6[1].length
+ }) + "%";
+ break j;
+ }
+ var has_time = false;
+ if ([
+ "y",
+ "m",
+ "d"
+ ].indexOf(nf[0]) > -1) {
+ type = "date";
+ k: for (; i$7 < nf.length; ++i$7) switch (c$7 = nf[i$7].toLowerCase()) {
+ case "h":
+ case "s":
+ has_time = true;
+ --i$7;
+ break k;
+ case "m": l: for (var h$5 = i$7 + 1; h$5 < nf.length; ++h$5) switch (nf[h$5]) {
+ case "y":
+ case "d": break l;
+ case "h":
+ case "s":
+ has_time = true;
+ --i$7;
+ break k;
+ }
+ case "y":
+ case "d":
+ while ((nf[++i$7] || "").toLowerCase() == c$7[0]) c$7 += c$7[0];
+ --i$7;
+ switch (c$7) {
+ case "y":
+ case "yy":
+ payload += "";
+ break;
+ case "yyy":
+ case "yyyy":
+ payload += "";
+ break;
+ case "mmmmm": console.error("ODS has no equivalent of format |mmmmm|");
+ case "m":
+ case "mm":
+ case "mmm":
+ case "mmmm":
+ payload += "= 3 ? "true" : "false") + "\"/>";
+ break;
+ case "d":
+ case "dd":
+ payload += "";
+ break;
+ case "ddd":
+ case "dddd":
+ payload += "";
+ break;
+ }
+ break;
+ case "\"":
+ while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
+ --i$7;
+ payload += "" + escapexml(c$7.slice(1).replace(/""/g, "\"")) + "";
+ break;
+ case "\\":
+ c$7 = nf[++i$7];
+ payload += "" + escapexml(c$7) + "";
+ break;
+ case "/":
+ case ":":
+ payload += "" + escapexml(c$7) + "";
+ break;
+ default: console.error("unrecognized character " + c$7 + " in ODF format " + nf);
+ }
+ if (!has_time) break j;
+ nf = nf.slice(i$7 + 1);
+ i$7 = 0;
+ }
+ if (nf.match(/^\[?[hms]/)) {
+ if (type == "number") type = "time";
+ if (nf.match(/\[/)) {
+ nf = nf.replace(/[\[\]]/g, "");
+ nopts["number:truncate-on-overflow"] = "false";
+ }
+ for (; i$7 < nf.length; ++i$7) switch (c$7 = nf[i$7].toLowerCase()) {
+ case "h":
+ case "m":
+ case "s":
+ while ((nf[++i$7] || "").toLowerCase() == c$7[0]) c$7 += c$7[0];
+ --i$7;
+ switch (c$7) {
+ case "h":
+ case "hh":
+ payload += "";
+ break;
+ case "m":
+ case "mm":
+ payload += "";
+ break;
+ case "s":
+ case "ss":
+ if (nf[i$7 + 1] == ".") do {
+ c$7 += nf[i$7 + 1];
+ ++i$7;
+ } while (nf[i$7 + 1] == "0");
+ payload += "";
+ break;
+ }
+ break;
+ case "\"":
+ while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
+ --i$7;
+ payload += "" + escapexml(c$7.slice(1).replace(/""/g, "\"")) + "";
+ break;
+ case "/":
+ case ":":
+ payload += "" + escapexml(c$7) + "";
+ break;
+ case "a":
+ if (nf.slice(i$7, i$7 + 3).toLowerCase() == "a/p") {
+ payload += "";
+ i$7 += 2;
+ break;
+ }
+ if (nf.slice(i$7, i$7 + 5).toLowerCase() == "am/pm") {
+ payload += "";
+ i$7 += 4;
+ break;
+ }
+ default: console.error("unrecognized character " + c$7 + " in ODF format " + nf);
+ }
+ break j;
+ }
+ if (nf.indexOf(/\$/) > -1) {
+ type = "currency";
+ }
+ if (nf[0] == "$") {
+ payload += "$";
+ nf = nf.slice(1);
+ i$7 = 0;
+ }
+ i$7 = 0;
+ if (nf[i$7] == "\"") {
+ while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
+ --i$7;
+ if (nf[i$7 + 1] == "*") {
+ i$7++;
+ payload += "" + escapexml(c$7.replace(/""/g, "\"")) + "";
+ } else {
+ payload += "" + escapexml(c$7.replace(/""/g, "\"")) + "";
+ }
+ nf = nf.slice(i$7 + 1);
+ i$7 = 0;
+ }
+ var np = nf.match(/([#0][0#,]*)(\.[0#]*|)(E[+]?0*|)/i);
+ if (!np || !np[0]) console.error("Could not find numeric part of " + nf);
+ else {
+ var base = np[1].replace(/,/g, "");
+ payload += " -1 ? " number:grouping=\"true\"" : "") + (np[2] && " number:decimal-places=\"" + (np[2].length - 1) + "\"" || " number:decimal-places=\"0\"") + (np[3] && np[3].indexOf("+") > -1 ? " number:forced-exponent-sign=\"true\"" : "") + (np[3] ? " number:min-exponent-digits=\"" + np[3].match(/0+/)[0].length + "\"" : "") + ">" + "";
+ i$7 = np.index + np[0].length;
+ }
+ if (nf[i$7] == "\"") {
+ c$7 = "";
+ while (nf[++i$7] != "\"" || nf[++i$7] == "\"") c$7 += nf[i$7];
+ --i$7;
+ payload += "" + escapexml(c$7.replace(/""/g, "\"")) + "";
+ }
+ }
+ if (!payload) {
+ console.error("Could not generate ODS number format for |" + nf + "|");
+ return "";
+ }
+ return writextag("number:" + type + "-style", payload, nopts);
+}
+function write_names_ods(Names, SheetNames, idx) {
+ var scoped = [];
+ for (var namei = 0; namei < Names.length; ++namei) {
+ var name = Names[namei];
+ if (!name) continue;
+ if (name.Sheet == (idx == -1 ? null : idx)) scoped.push(name);
+ }
+ if (!scoped.length) return "";
+ return " \n" + scoped.map(function(name$1) {
+ var odsref = (idx == -1 ? "$" : "") + csf_to_ods_3D(name$1.Ref);
+ return " " + writextag("table:named-range", null, {
+ "table:name": name$1.Name,
+ "table:cell-range-address": odsref,
+ "table:base-cell-address": odsref.replace(/[\.][^\.]*$/, ".$A$1")
+ });
+ }).join("\n") + "\n \n";
+}
+function write_ods(wb, opts) {
+ if (opts.bookType == "fods") return write_content_ods(wb, opts);
+ var zip = zip_new();
+ var f$4 = "";
+ var manifest = [];
+ var rdf = [];
+ f$4 = "mimetype";
+ zip_add_file(zip, f$4, "application/vnd.oasis.opendocument.spreadsheet");
+ f$4 = "content.xml";
+ zip_add_file(zip, f$4, write_content_ods(wb, opts));
+ manifest.push([f$4, "text/xml"]);
+ rdf.push([f$4, "ContentFile"]);
+ f$4 = "styles.xml";
+ zip_add_file(zip, f$4, write_styles_ods(wb, opts));
+ manifest.push([f$4, "text/xml"]);
+ rdf.push([f$4, "StylesFile"]);
+ f$4 = "meta.xml";
+ zip_add_file(zip, f$4, XML_HEADER + write_meta_ods());
+ manifest.push([f$4, "text/xml"]);
+ rdf.push([f$4, "MetadataFile"]);
+ f$4 = "manifest.rdf";
+ zip_add_file(zip, f$4, write_rdf(rdf));
+ manifest.push([f$4, "application/rdf+xml"]);
+ f$4 = "META-INF/manifest.xml";
+ zip_add_file(zip, f$4, write_manifest(manifest));
+ return zip;
+}
+function u8_to_dataview(array) {
+ return new DataView(array.buffer, array.byteOffset, array.byteLength);
+}
+function u8str(u8) {
+ return typeof TextDecoder != "undefined" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));
+}
+function stru8(str) {
+ return typeof TextEncoder != "undefined" ? new TextEncoder().encode(str) : s2a(utf8write(str));
+}
+function u8concat(u8a) {
+ var len = 0;
+ for (var i$7 = 0; i$7 < u8a.length; ++i$7) len += u8a[i$7].length;
+ var out = new Uint8Array(len);
+ var off = 0;
+ for (i$7 = 0; i$7 < u8a.length; ++i$7) {
+ var u8 = u8a[i$7], L$2 = u8.length;
+ if (L$2 < 250) {
+ for (var j$2 = 0; j$2 < L$2; ++j$2) out[off++] = u8[j$2];
+ } else {
+ out.set(u8, off);
+ off += L$2;
+ }
+ }
+ return out;
+}
+function popcnt(x$2) {
+ x$2 -= x$2 >> 1 & 1431655765;
+ x$2 = (x$2 & 858993459) + (x$2 >> 2 & 858993459);
+ return (x$2 + (x$2 >> 4) & 252645135) * 16843009 >>> 24;
+}
+function readDecimal128LE(buf, offset) {
+ var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;
+ var mantissa = buf[offset + 14] & 1;
+ for (var j$2 = offset + 13; j$2 >= offset; --j$2) mantissa = mantissa * 256 + buf[j$2];
+ return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);
+}
+function writeDecimal128LE(buf, offset, value) {
+ var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;
+ var mantissa = value / Math.pow(10, exp - 6176);
+ buf[offset + 15] |= exp >> 7;
+ buf[offset + 14] |= (exp & 127) << 1;
+ for (var i$7 = 0; mantissa >= 1; ++i$7, mantissa /= 256) buf[offset + i$7] = mantissa & 255;
+ buf[offset + 15] |= value >= 0 ? 0 : 128;
+}
+function parse_varint49(buf, ptr) {
+ var l$3 = ptr.l;
+ var usz = buf[l$3] & 127;
+ varint: if (buf[l$3++] >= 128) {
+ usz |= (buf[l$3] & 127) << 7;
+ if (buf[l$3++] < 128) break varint;
+ usz |= (buf[l$3] & 127) << 14;
+ if (buf[l$3++] < 128) break varint;
+ usz |= (buf[l$3] & 127) << 21;
+ if (buf[l$3++] < 128) break varint;
+ usz += (buf[l$3] & 127) * Math.pow(2, 28);
+ ++l$3;
+ if (buf[l$3++] < 128) break varint;
+ usz += (buf[l$3] & 127) * Math.pow(2, 35);
+ ++l$3;
+ if (buf[l$3++] < 128) break varint;
+ usz += (buf[l$3] & 127) * Math.pow(2, 42);
+ ++l$3;
+ if (buf[l$3++] < 128) break varint;
+ }
+ ptr.l = l$3;
+ return usz;
+}
+function write_varint49(v$3) {
+ var usz = new Uint8Array(7);
+ usz[0] = v$3 & 127;
+ var L$2 = 1;
+ sz: if (v$3 > 127) {
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 >> 7 & 127;
+ ++L$2;
+ if (v$3 <= 16383) break sz;
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 >> 14 & 127;
+ ++L$2;
+ if (v$3 <= 2097151) break sz;
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 >> 21 & 127;
+ ++L$2;
+ if (v$3 <= 268435455) break sz;
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 / 256 >>> 21 & 127;
+ ++L$2;
+ if (v$3 <= 34359738367) break sz;
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 / 65536 >>> 21 & 127;
+ ++L$2;
+ if (v$3 <= 4398046511103) break sz;
+ usz[L$2 - 1] |= 128;
+ usz[L$2] = v$3 / 16777216 >>> 21 & 127;
+ ++L$2;
+ }
+ return usz[subarray](0, L$2);
+}
+function parse_packed_varints(buf) {
+ var ptr = { l: 0 };
+ var out = [];
+ while (ptr.l < buf.length) out.push(parse_varint49(buf, ptr));
+ return out;
+}
+function write_packed_varints(nums) {
+ return u8concat(nums.map(function(x$2) {
+ return write_varint49(x$2);
+ }));
+}
+function varint_to_i32(buf) {
+ var l$3 = 0, i32 = buf[l$3] & 127;
+ if (buf[l$3++] < 128) return i32;
+ i32 |= (buf[l$3] & 127) << 7;
+ if (buf[l$3++] < 128) return i32;
+ i32 |= (buf[l$3] & 127) << 14;
+ if (buf[l$3++] < 128) return i32;
+ i32 |= (buf[l$3] & 127) << 21;
+ if (buf[l$3++] < 128) return i32;
+ i32 |= (buf[l$3] & 15) << 28;
+ return i32;
+}
+function varint_to_u64(buf) {
+ var l$3 = 0, lo = buf[l$3] & 127, hi = 0;
+ varint: if (buf[l$3++] >= 128) {
+ lo |= (buf[l$3] & 127) << 7;
+ if (buf[l$3++] < 128) break varint;
+ lo |= (buf[l$3] & 127) << 14;
+ if (buf[l$3++] < 128) break varint;
+ lo |= (buf[l$3] & 127) << 21;
+ if (buf[l$3++] < 128) break varint;
+ lo |= (buf[l$3] & 127) << 28;
+ hi = buf[l$3] >> 4 & 7;
+ if (buf[l$3++] < 128) break varint;
+ hi |= (buf[l$3] & 127) << 3;
+ if (buf[l$3++] < 128) break varint;
+ hi |= (buf[l$3] & 127) << 10;
+ if (buf[l$3++] < 128) break varint;
+ hi |= (buf[l$3] & 127) << 17;
+ if (buf[l$3++] < 128) break varint;
+ hi |= (buf[l$3] & 127) << 24;
+ if (buf[l$3++] < 128) break varint;
+ hi |= (buf[l$3] & 127) << 31;
+ }
+ return [lo >>> 0, hi >>> 0];
+}
+function parse_shallow(buf) {
+ var out = [], ptr = { l: 0 };
+ while (ptr.l < buf.length) {
+ var off = ptr.l;
+ var num = parse_varint49(buf, ptr);
+ var type = num & 7;
+ num = num / 8 | 0;
+ var data;
+ var l$3 = ptr.l;
+ switch (type) {
+ case 0:
+ {
+ while (buf[l$3++] >= 128);
+ data = buf[subarray](ptr.l, l$3);
+ ptr.l = l$3;
+ }
+ break;
+ case 1:
+ {
+ data = buf[subarray](l$3, l$3 + 8);
+ ptr.l = l$3 + 8;
+ }
+ break;
+ case 2:
+ {
+ var len = parse_varint49(buf, ptr);
+ data = buf[subarray](ptr.l, ptr.l + len);
+ ptr.l += len;
+ }
+ break;
+ case 5:
+ {
+ data = buf[subarray](l$3, l$3 + 4);
+ ptr.l = l$3 + 4;
+ }
+ break;
+ default: throw new Error("PB Type ".concat(type, " for Field ").concat(num, " at offset ").concat(off));
+ }
+ var v$3 = {
+ data,
+ type
+ };
+ if (out[num] == null) out[num] = [];
+ out[num].push(v$3);
+ }
+ return out;
+}
+function write_shallow(proto) {
+ var out = [];
+ proto.forEach(function(field, idx) {
+ if (idx == 0) return;
+ field.forEach(function(item) {
+ if (!item.data) return;
+ out.push(write_varint49(idx * 8 + item.type));
+ if (item.type == 2) out.push(write_varint49(item.data.length));
+ out.push(item.data);
+ });
+ });
+ return u8concat(out);
+}
+function mappa(data, cb) {
+ return (data == null ? void 0 : data.map(function(d$5) {
+ return cb(d$5.data);
+ })) || [];
+}
+function parse_iwa_file(buf) {
+ var _a;
+ var out = [], ptr = { l: 0 };
+ while (ptr.l < buf.length) {
+ var len = parse_varint49(buf, ptr);
+ var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));
+ ptr.l += len;
+ var res = {
+ id: varint_to_i32(ai[1][0].data),
+ messages: []
+ };
+ ai[2].forEach(function(b$3) {
+ var mi = parse_shallow(b$3.data);
+ var fl = varint_to_i32(mi[3][0].data);
+ res.messages.push({
+ meta: mi,
+ data: buf[subarray](ptr.l, ptr.l + fl)
+ });
+ ptr.l += fl;
+ });
+ if ((_a = ai[3]) == null ? void 0 : _a[0]) res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;
+ out.push(res);
+ }
+ return out;
+}
+function write_iwa_file(ias) {
+ var bufs = [];
+ ias.forEach(function(ia) {
+ var ai = [
+ [],
+ [{
+ data: write_varint49(ia.id),
+ type: 0
+ }],
+ []
+ ];
+ if (ia.merge != null) ai[3] = [{
+ data: write_varint49(+!!ia.merge),
+ type: 0
+ }];
+ var midata = [];
+ ia.messages.forEach(function(mi) {
+ midata.push(mi.data);
+ mi.meta[3] = [{
+ type: 0,
+ data: write_varint49(mi.data.length)
+ }];
+ ai[2].push({
+ data: write_shallow(mi.meta),
+ type: 2
+ });
+ });
+ var aipayload = write_shallow(ai);
+ bufs.push(write_varint49(aipayload.length));
+ bufs.push(aipayload);
+ midata.forEach(function(mid) {
+ return bufs.push(mid);
+ });
+ });
+ return u8concat(bufs);
+}
+function parse_snappy_chunk(type, buf) {
+ if (type != 0) throw new Error("Unexpected Snappy chunk type ".concat(type));
+ var ptr = { l: 0 };
+ var usz = parse_varint49(buf, ptr);
+ var chunks = [];
+ var l$3 = ptr.l;
+ while (l$3 < buf.length) {
+ var tag = buf[l$3] & 3;
+ if (tag == 0) {
+ var len = buf[l$3++] >> 2;
+ if (len < 60) ++len;
+ else {
+ var c$7 = len - 59;
+ len = buf[l$3];
+ if (c$7 > 1) len |= buf[l$3 + 1] << 8;
+ if (c$7 > 2) len |= buf[l$3 + 2] << 16;
+ if (c$7 > 3) len |= buf[l$3 + 3] << 24;
+ len >>>= 0;
+ len++;
+ l$3 += c$7;
+ }
+ chunks.push(buf[subarray](l$3, l$3 + len));
+ l$3 += len;
+ continue;
+ } else {
+ var offset = 0, length = 0;
+ if (tag == 1) {
+ length = (buf[l$3] >> 2 & 7) + 4;
+ offset = (buf[l$3++] & 224) << 3;
+ offset |= buf[l$3++];
+ } else {
+ length = (buf[l$3++] >> 2) + 1;
+ if (tag == 2) {
+ offset = buf[l$3] | buf[l$3 + 1] << 8;
+ l$3 += 2;
+ } else {
+ offset = (buf[l$3] | buf[l$3 + 1] << 8 | buf[l$3 + 2] << 16 | buf[l$3 + 3] << 24) >>> 0;
+ l$3 += 4;
+ }
+ }
+ if (offset == 0) throw new Error("Invalid offset 0");
+ var j$2 = chunks.length - 1, off = offset;
+ while (j$2 >= 0 && off >= chunks[j$2].length) {
+ off -= chunks[j$2].length;
+ --j$2;
+ }
+ if (j$2 < 0) {
+ if (off == 0) off = chunks[j$2 = 0].length;
+ else throw new Error("Invalid offset beyond length");
+ }
+ if (length < off) chunks.push(chunks[j$2][subarray](chunks[j$2].length - off, chunks[j$2].length - off + length));
+ else {
+ if (off > 0) {
+ chunks.push(chunks[j$2][subarray](chunks[j$2].length - off));
+ length -= off;
+ }
+ ++j$2;
+ while (length >= chunks[j$2].length) {
+ chunks.push(chunks[j$2]);
+ length -= chunks[j$2].length;
+ ++j$2;
+ }
+ if (length) chunks.push(chunks[j$2][subarray](0, length));
+ }
+ if (chunks.length > 25) chunks = [u8concat(chunks)];
+ }
+ }
+ var clen = 0;
+ for (var u8i = 0; u8i < chunks.length; ++u8i) clen += chunks[u8i].length;
+ if (clen != usz) throw new Error("Unexpected length: ".concat(clen, " != ").concat(usz));
+ return chunks;
+}
+function decompress_iwa_file(buf) {
+ if (Array.isArray(buf)) buf = new Uint8Array(buf);
+ var out = [];
+ var l$3 = 0;
+ while (l$3 < buf.length) {
+ var t$6 = buf[l$3++];
+ var len = buf[l$3] | buf[l$3 + 1] << 8 | buf[l$3 + 2] << 16;
+ l$3 += 3;
+ out.push.apply(out, parse_snappy_chunk(t$6, buf[subarray](l$3, l$3 + len)));
+ l$3 += len;
+ }
+ if (l$3 !== buf.length) throw new Error("data is not a valid framed stream!");
+ return out.length == 1 ? out[0] : u8concat(out);
+}
+function compress_iwa_file(buf) {
+ var out = [];
+ var l$3 = 0;
+ while (l$3 < buf.length) {
+ var c$7 = Math.min(buf.length - l$3, 268435455);
+ var frame = new Uint8Array(4);
+ out.push(frame);
+ var usz = write_varint49(c$7);
+ var L$2 = usz.length;
+ out.push(usz);
+ if (c$7 <= 60) {
+ L$2++;
+ out.push(new Uint8Array([c$7 - 1 << 2]));
+ } else if (c$7 <= 256) {
+ L$2 += 2;
+ out.push(new Uint8Array([240, c$7 - 1 & 255]));
+ } else if (c$7 <= 65536) {
+ L$2 += 3;
+ out.push(new Uint8Array([
+ 244,
+ c$7 - 1 & 255,
+ c$7 - 1 >> 8 & 255
+ ]));
+ } else if (c$7 <= 16777216) {
+ L$2 += 4;
+ out.push(new Uint8Array([
+ 248,
+ c$7 - 1 & 255,
+ c$7 - 1 >> 8 & 255,
+ c$7 - 1 >> 16 & 255
+ ]));
+ } else if (c$7 <= 4294967296) {
+ L$2 += 5;
+ out.push(new Uint8Array([
+ 252,
+ c$7 - 1 & 255,
+ c$7 - 1 >> 8 & 255,
+ c$7 - 1 >> 16 & 255,
+ c$7 - 1 >>> 24 & 255
+ ]));
+ }
+ out.push(buf[subarray](l$3, l$3 + c$7));
+ L$2 += c$7;
+ frame[0] = 0;
+ frame[1] = L$2 & 255;
+ frame[2] = L$2 >> 8 & 255;
+ frame[3] = L$2 >> 16 & 255;
+ l$3 += c$7;
+ }
+ return u8concat(out);
+}
+function numbers_format_cell(cell, t$6, flags, ofmt, nfmt) {
+ var _a, _b, _c, _d;
+ var ctype = t$6 & 255, ver = t$6 >> 8;
+ var fmt = ver >= 5 ? nfmt : ofmt;
+ dur: if (flags & (ver > 4 ? 8 : 4) && cell.t == "n" && ctype == 7) {
+ var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;
+ if (dstyle == -1) break dur;
+ var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;
+ var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;
+ var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;
+ var d$5 = cell.v, dd = d$5;
+ autodur: if (auto) {
+ if (d$5 == 0) {
+ dmin = dmax = 2;
+ break autodur;
+ }
+ if (d$5 >= 604800) dmin = 1;
+ else if (d$5 >= 86400) dmin = 2;
+ else if (d$5 >= 3600) dmin = 4;
+ else if (d$5 >= 60) dmin = 8;
+ else if (d$5 >= 1) dmin = 16;
+ else dmin = 32;
+ if (Math.floor(d$5) != d$5) dmax = 32;
+ else if (d$5 % 60) dmax = 16;
+ else if (d$5 % 3600) dmax = 8;
+ else if (d$5 % 86400) dmax = 4;
+ else if (d$5 % 604800) dmax = 2;
+ if (dmax < dmin) dmax = dmin;
+ }
+ if (dmin == -1 || dmax == -1) break dur;
+ var dstr = [], zstr = [];
+ if (dmin == 1) {
+ dd = d$5 / 604800;
+ if (dmax == 1) {
+ zstr.push("d\"d\"");
+ } else {
+ dd |= 0;
+ d$5 -= 604800 * dd;
+ }
+ dstr.push(dd + (dstyle == 2 ? " week" + (dd == 1 ? "" : "s") : dstyle == 1 ? "w" : ""));
+ }
+ if (dmin <= 2 && dmax >= 2) {
+ dd = d$5 / 86400;
+ if (dmax > 2) {
+ dd |= 0;
+ d$5 -= 86400 * dd;
+ }
+ zstr.push("d\"d\"");
+ dstr.push(dd + (dstyle == 2 ? " day" + (dd == 1 ? "" : "s") : dstyle == 1 ? "d" : ""));
+ }
+ if (dmin <= 4 && dmax >= 4) {
+ dd = d$5 / 3600;
+ if (dmax > 4) {
+ dd |= 0;
+ d$5 -= 3600 * dd;
+ }
+ zstr.push((dmin >= 4 ? "[h]" : "h") + "\"h\"");
+ dstr.push(dd + (dstyle == 2 ? " hour" + (dd == 1 ? "" : "s") : dstyle == 1 ? "h" : ""));
+ }
+ if (dmin <= 8 && dmax >= 8) {
+ dd = d$5 / 60;
+ if (dmax > 8) {
+ dd |= 0;
+ d$5 -= 60 * dd;
+ }
+ zstr.push((dmin >= 8 ? "[m]" : "m") + "\"m\"");
+ if (dstyle == 0) dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? "" : "0") + dd);
+ else dstr.push(dd + (dstyle == 2 ? " minute" + (dd == 1 ? "" : "s") : dstyle == 1 ? "m" : ""));
+ }
+ if (dmin <= 16 && dmax >= 16) {
+ dd = d$5;
+ if (dmax > 16) {
+ dd |= 0;
+ d$5 -= dd;
+ }
+ zstr.push((dmin >= 16 ? "[s]" : "s") + "\"s\"");
+ if (dstyle == 0) dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? "" : "0") + dd);
+ else dstr.push(dd + (dstyle == 2 ? " second" + (dd == 1 ? "" : "s") : dstyle == 1 ? "s" : ""));
+ }
+ if (dmax >= 32) {
+ dd = Math.round(1e3 * d$5);
+ if (dmin < 32) zstr.push(".000\"ms\"");
+ if (dstyle == 0) dstr.push((dd >= 100 ? "" : dd >= 10 ? "0" : "00") + dd);
+ else dstr.push(dd + (dstyle == 2 ? " millisecond" + (dd == 1 ? "" : "s") : dstyle == 1 ? "ms" : ""));
+ }
+ cell.w = dstr.join(dstyle == 0 ? ":" : " ");
+ cell.z = zstr.join(dstyle == 0 ? "\":\"" : " ");
+ if (dstyle == 0) cell.w = cell.w.replace(/:(\d\d\d)$/, ".$1");
+ }
+}
+function parse_old_storage(buf, lut, v$3, opts) {
+ var dv = u8_to_dataview(buf);
+ var flags = dv.getUint32(4, true);
+ var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1));
+ var doff = v$3 > 1 ? 12 : 8;
+ if (flags & 2) {
+ zidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ doff += popcnt(flags & (v$3 > 1 ? 3468 : 396)) * 4;
+ if (flags & 512) {
+ ridx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ doff += popcnt(flags & (v$3 > 1 ? 12288 : 4096)) * 4;
+ if (flags & 16) {
+ sidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ if (flags & 32) {
+ ieee = dv.getFloat64(doff, true);
+ doff += 8;
+ }
+ if (flags & 64) {
+ dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);
+ doff += 8;
+ }
+ if (v$3 > 1) {
+ flags = dv.getUint32(8, true) >>> 16;
+ if (flags & 255) {
+ if (zidx == -1) zidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ }
+ var ret;
+ var t$6 = buf[v$3 >= 4 ? 1 : 2];
+ switch (t$6) {
+ case 0: return void 0;
+ case 2:
+ ret = {
+ t: "n",
+ v: ieee
+ };
+ break;
+ case 3:
+ ret = {
+ t: "s",
+ v: lut.sst[sidx]
+ };
+ break;
+ case 5:
+ {
+ if (opts == null ? void 0 : opts.cellDates) ret = {
+ t: "d",
+ v: dt
+ };
+ else ret = {
+ t: "n",
+ v: dc / 86400 + 35430,
+ z: table_fmt[14]
+ };
+ }
+ break;
+ case 6:
+ ret = {
+ t: "b",
+ v: ieee > 0
+ };
+ break;
+ case 7:
+ ret = {
+ t: "n",
+ v: ieee
+ };
+ break;
+ case 8:
+ ret = {
+ t: "e",
+ v: 0
+ };
+ break;
+ case 9:
+ {
+ if (ridx > -1) {
+ var rts = lut.rsst[ridx];
+ ret = {
+ t: "s",
+ v: rts.v
+ };
+ if (rts.l) ret.l = { Target: rts.l };
+ } else throw new Error("Unsupported cell type ".concat(buf[subarray](0, 4)));
+ }
+ break;
+ default: throw new Error("Unsupported cell type ".concat(buf[subarray](0, 4)));
+ }
+ if (zidx > -1) numbers_format_cell(ret, t$6 | v$3 << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);
+ if (t$6 == 7) ret.v /= 86400;
+ return ret;
+}
+function parse_new_storage(buf, lut, opts) {
+ var dv = u8_to_dataview(buf);
+ var flags = dv.getUint32(4, true);
+ var fields = dv.getUint32(8, true);
+ var doff = 12;
+ var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1)), eidx = -1, fidx = -1;
+ if (fields & 1) {
+ d128 = readDecimal128LE(buf, doff);
+ doff += 16;
+ }
+ if (fields & 2) {
+ ieee = dv.getFloat64(doff, true);
+ doff += 8;
+ }
+ if (fields & 4) {
+ dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);
+ doff += 8;
+ }
+ if (fields & 8) {
+ sidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ if (fields & 16) {
+ ridx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ doff += popcnt(fields & 480) * 4;
+ if (fields & 512) {
+ fidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ doff += popcnt(fields & 1024) * 4;
+ if (fields & 2048) {
+ eidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ var ret;
+ var t$6 = buf[1];
+ switch (t$6) {
+ case 0:
+ ret = { t: "z" };
+ break;
+ case 2:
+ ret = {
+ t: "n",
+ v: d128
+ };
+ break;
+ case 3:
+ ret = {
+ t: "s",
+ v: lut.sst[sidx]
+ };
+ break;
+ case 5:
+ {
+ if (opts == null ? void 0 : opts.cellDates) ret = {
+ t: "d",
+ v: dt
+ };
+ else ret = {
+ t: "n",
+ v: dc / 86400 + 35430,
+ z: table_fmt[14]
+ };
+ }
+ break;
+ case 6:
+ ret = {
+ t: "b",
+ v: ieee > 0
+ };
+ break;
+ case 7:
+ ret = {
+ t: "n",
+ v: ieee
+ };
+ break;
+ case 8:
+ ret = {
+ t: "e",
+ v: 0
+ };
+ break;
+ case 9:
+ {
+ if (ridx > -1) {
+ var rts = lut.rsst[ridx];
+ ret = {
+ t: "s",
+ v: rts.v
+ };
+ if (rts.l) ret.l = { Target: rts.l };
+ } else throw new Error("Unsupported cell type ".concat(buf[1], " : ").concat(fields & 31, " : ").concat(buf[subarray](0, 4)));
+ }
+ break;
+ case 10:
+ ret = {
+ t: "n",
+ v: d128
+ };
+ break;
+ default: throw new Error("Unsupported cell type ".concat(buf[1], " : ").concat(fields & 31, " : ").concat(buf[subarray](0, 4)));
+ }
+ doff += popcnt(fields & 4096) * 4;
+ if (fields & 516096) {
+ if (zidx == -1) zidx = dv.getUint32(doff, true);
+ doff += 4;
+ }
+ if (fields & 524288) {
+ var cmntidx = dv.getUint32(doff, true);
+ doff += 4;
+ if (lut.cmnt[cmntidx]) ret.c = iwa_to_s5s_comment(lut.cmnt[cmntidx]);
+ }
+ if (zidx > -1) numbers_format_cell(ret, t$6 | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);
+ if (t$6 == 7) ret.v /= 86400;
+ return ret;
+}
+function write_new_storage(cell, lut) {
+ var out = new Uint8Array(32), dv = u8_to_dataview(out), l$3 = 12, fields = 0;
+ out[0] = 5;
+ switch (cell.t) {
+ case "n":
+ if (cell.z && fmt_is_date(cell.z)) {
+ out[1] = 5;
+ dv.setFloat64(l$3, (numdate(cell.v + 1462).getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
+ fields |= 4;
+ l$3 += 8;
+ break;
+ } else {
+ out[1] = 2;
+ writeDecimal128LE(out, l$3, cell.v);
+ fields |= 1;
+ l$3 += 16;
+ }
+ break;
+ case "b":
+ out[1] = 6;
+ dv.setFloat64(l$3, cell.v ? 1 : 0, true);
+ fields |= 2;
+ l$3 += 8;
+ break;
+ case "s":
+ {
+ var s$5 = cell.v == null ? "" : String(cell.v);
+ if (cell.l) {
+ var irsst = lut.rsst.findIndex(function(v$3) {
+ var _a;
+ return v$3.v == s$5 && v$3.l == ((_a = cell.l) == null ? void 0 : _a.Target);
+ });
+ if (irsst == -1) lut.rsst[irsst = lut.rsst.length] = {
+ v: s$5,
+ l: cell.l.Target
+ };
+ out[1] = 9;
+ dv.setUint32(l$3, irsst, true);
+ fields |= 16;
+ l$3 += 4;
+ } else {
+ var isst = lut.sst.indexOf(s$5);
+ if (isst == -1) lut.sst[isst = lut.sst.length] = s$5;
+ out[1] = 3;
+ dv.setUint32(l$3, isst, true);
+ fields |= 8;
+ l$3 += 4;
+ }
+ }
+ break;
+ case "d":
+ out[1] = 5;
+ dv.setFloat64(l$3, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
+ fields |= 4;
+ l$3 += 8;
+ break;
+ case "z":
+ out[1] = 0;
+ break;
+ default: throw "unsupported cell type " + cell.t;
+ }
+ if (cell.c) {
+ lut.cmnt.push(s5s_to_iwa_comment(cell.c));
+ dv.setUint32(l$3, lut.cmnt.length - 1, true);
+ fields |= 524288;
+ l$3 += 4;
+ }
+ dv.setUint32(8, fields, true);
+ return out[subarray](0, l$3);
+}
+function write_old_storage(cell, lut) {
+ var out = new Uint8Array(32), dv = u8_to_dataview(out), l$3 = 12, fields = 0, s$5 = "";
+ out[0] = 4;
+ switch (cell.t) {
+ case "n": break;
+ case "b": break;
+ case "s":
+ {
+ s$5 = cell.v == null ? "" : String(cell.v);
+ if (cell.l) {
+ var irsst = lut.rsst.findIndex(function(v$3) {
+ var _a;
+ return v$3.v == s$5 && v$3.l == ((_a = cell.l) == null ? void 0 : _a.Target);
+ });
+ if (irsst == -1) lut.rsst[irsst = lut.rsst.length] = {
+ v: s$5,
+ l: cell.l.Target
+ };
+ out[1] = 9;
+ dv.setUint32(l$3, irsst, true);
+ fields |= 512;
+ l$3 += 4;
+ } else {}
+ }
+ break;
+ case "d": break;
+ case "e": break;
+ case "z": break;
+ default: throw "unsupported cell type " + cell.t;
+ }
+ if (cell.c) {
+ dv.setUint32(l$3, lut.cmnt.length - 1, true);
+ fields |= 4096;
+ l$3 += 4;
+ }
+ switch (cell.t) {
+ case "n":
+ out[1] = 2;
+ dv.setFloat64(l$3, cell.v, true);
+ fields |= 32;
+ l$3 += 8;
+ break;
+ case "b":
+ out[1] = 6;
+ dv.setFloat64(l$3, cell.v ? 1 : 0, true);
+ fields |= 32;
+ l$3 += 8;
+ break;
+ case "s":
+ {
+ s$5 = cell.v == null ? "" : String(cell.v);
+ if (cell.l) {} else {
+ var isst = lut.sst.indexOf(s$5);
+ if (isst == -1) lut.sst[isst = lut.sst.length] = s$5;
+ out[1] = 3;
+ dv.setUint32(l$3, isst, true);
+ fields |= 16;
+ l$3 += 4;
+ }
+ }
+ break;
+ case "d":
+ out[1] = 5;
+ dv.setFloat64(l$3, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);
+ fields |= 64;
+ l$3 += 8;
+ break;
+ case "z":
+ out[1] = 0;
+ break;
+ default: throw "unsupported cell type " + cell.t;
+ }
+ dv.setUint32(8, fields, true);
+ return out[subarray](0, l$3);
+}
+function parse_cell_storage(buf, lut, opts) {
+ switch (buf[0]) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4: return parse_old_storage(buf, lut, buf[0], opts);
+ case 5: return parse_new_storage(buf, lut, opts);
+ default: throw new Error("Unsupported payload version ".concat(buf[0]));
+ }
+}
+function parse_TSP_Reference(buf) {
+ var pb = parse_shallow(buf);
+ return varint_to_i32(pb[1][0].data);
+}
+function write_TSP_Reference(idx) {
+ return write_shallow([[], [{
+ type: 0,
+ data: write_varint49(idx)
+ }]]);
+}
+function numbers_add_oref(iwa, ref) {
+ var _a;
+ var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];
+ var orefidx = orefs.indexOf(ref);
+ if (orefidx == -1) {
+ orefs.push(ref);
+ iwa.messages[0].meta[5] = [{
+ type: 2,
+ data: write_packed_varints(orefs)
+ }];
+ }
+}
+function numbers_del_oref(iwa, ref) {
+ var _a;
+ var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];
+ iwa.messages[0].meta[5] = [{
+ type: 2,
+ data: write_packed_varints(orefs.filter(function(r$10) {
+ return r$10 != ref;
+ }))
+ }];
+}
+function parse_TST_TableDataList(M$3, root) {
+ var pb = parse_shallow(root.data);
+ var type = varint_to_i32(pb[1][0].data);
+ var entries = pb[3];
+ var data = [];
+ (entries || []).forEach(function(entry) {
+ var _a, _b;
+ var le$1 = parse_shallow(entry.data);
+ if (!le$1[1]) return;
+ var key = varint_to_i32(le$1[1][0].data) >>> 0;
+ switch (type) {
+ case 1:
+ data[key] = u8str(le$1[3][0].data);
+ break;
+ case 8:
+ {
+ var rt = M$3[parse_TSP_Reference(le$1[9][0].data)][0];
+ var rtp = parse_shallow(rt.data);
+ var rtpref = M$3[parse_TSP_Reference(rtp[1][0].data)][0];
+ var mtype = varint_to_i32(rtpref.meta[1][0].data);
+ if (mtype != 2001) throw new Error("2000 unexpected reference to ".concat(mtype));
+ var tswpsa = parse_shallow(rtpref.data);
+ var richtext = { v: tswpsa[3].map(function(x$2) {
+ return u8str(x$2.data);
+ }).join("") };
+ data[key] = richtext;
+ sfields: if ((_a = tswpsa == null ? void 0 : tswpsa[11]) == null ? void 0 : _a[0]) {
+ var smartfields = (_b = parse_shallow(tswpsa[11][0].data)) == null ? void 0 : _b[1];
+ if (!smartfields) break sfields;
+ smartfields.forEach(function(sf) {
+ var _a2, _b2, _c;
+ var attr = parse_shallow(sf.data);
+ if ((_a2 = attr[2]) == null ? void 0 : _a2[0]) {
+ var obj = M$3[parse_TSP_Reference((_b2 = attr[2]) == null ? void 0 : _b2[0].data)][0];
+ var objtype = varint_to_i32(obj.meta[1][0].data);
+ switch (objtype) {
+ case 2032:
+ var hlink = parse_shallow(obj.data);
+ if (((_c = hlink == null ? void 0 : hlink[2]) == null ? void 0 : _c[0]) && !richtext.l) richtext.l = u8str(hlink[2][0].data);
+ break;
+ case 2039: break;
+ default: console.log("unrecognized ObjectAttribute type ".concat(objtype));
+ }
+ }
+ });
+ }
+ }
+ break;
+ case 2:
+ data[key] = parse_shallow(le$1[6][0].data);
+ break;
+ case 3:
+ data[key] = parse_shallow(le$1[5][0].data);
+ break;
+ case 10:
+ {
+ var cs = M$3[parse_TSP_Reference(le$1[10][0].data)][0];
+ data[key] = parse_TSD_CommentStorageArchive(M$3, cs.data);
+ }
+ break;
+ default: throw type;
+ }
+ });
+ return data;
+}
+function parse_TST_TileRowInfo(u8, type) {
+ var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j, _k, _l, _m, _n;
+ var pb = parse_shallow(u8);
+ var R$1 = varint_to_i32(pb[1][0].data) >>> 0;
+ var cnt = varint_to_i32(pb[2][0].data) >>> 0;
+ var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;
+ var used_storage_u8, used_storage;
+ if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {
+ used_storage_u8 = (_f = (_e$1 = pb[7]) == null ? void 0 : _e$1[0]) == null ? void 0 : _f.data;
+ used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;
+ } else if (((_j = (_i$1 = pb[4]) == null ? void 0 : _i$1[0]) == null ? void 0 : _j.data) && type != 1) {
+ used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;
+ used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;
+ } else throw "NUMBERS Tile missing ".concat(type, " cell storage");
+ var width = wide_offsets ? 4 : 1;
+ var used_storage_offsets = u8_to_dataview(used_storage_u8);
+ var offsets = [];
+ for (var C$2 = 0; C$2 < used_storage_u8.length / 2; ++C$2) {
+ var off = used_storage_offsets.getUint16(C$2 * 2, true);
+ if (off < 65535) offsets.push([C$2, off]);
+ }
+ if (offsets.length != cnt) throw "Expected ".concat(cnt, " cells, found ").concat(offsets.length);
+ var cells = [];
+ for (C$2 = 0; C$2 < offsets.length - 1; ++C$2) cells[offsets[C$2][0]] = used_storage[subarray](offsets[C$2][1] * width, offsets[C$2 + 1][1] * width);
+ if (offsets.length >= 1) cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);
+ return {
+ R: R$1,
+ cells
+ };
+}
+function parse_TST_Tile(M$3, root) {
+ var _a;
+ var pb = parse_shallow(root.data);
+ var storage = -1;
+ if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {
+ if (varint_to_i32(pb[7][0].data) >>> 0) storage = 1;
+ else storage = 0;
+ }
+ var ri = mappa(pb[5], function(u8) {
+ return parse_TST_TileRowInfo(u8, storage);
+ });
+ return {
+ nrows: varint_to_i32(pb[4][0].data) >>> 0,
+ data: ri.reduce(function(acc, x$2) {
+ if (!acc[x$2.R]) acc[x$2.R] = [];
+ x$2.cells.forEach(function(cell, C$2) {
+ if (acc[x$2.R][C$2]) throw new Error("Duplicate cell r=".concat(x$2.R, " c=").concat(C$2));
+ acc[x$2.R][C$2] = cell;
+ });
+ return acc;
+ }, [])
+ };
+}
+function parse_TSD_CommentStorageArchive(M$3, data) {
+ var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j;
+ var out = {
+ t: "",
+ a: ""
+ };
+ var csp$1 = parse_shallow(data);
+ if ((_b = (_a = csp$1 == null ? void 0 : csp$1[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) out.t = u8str((_d = (_c = csp$1 == null ? void 0 : csp$1[1]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) || "";
+ if ((_f = (_e$1 = csp$1 == null ? void 0 : csp$1[3]) == null ? void 0 : _e$1[0]) == null ? void 0 : _f.data) {
+ var as = M$3[parse_TSP_Reference((_h = (_g = csp$1 == null ? void 0 : csp$1[3]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data)][0];
+ var asp = parse_shallow(as.data);
+ if ((_j = (_i$1 = asp[1]) == null ? void 0 : _i$1[0]) == null ? void 0 : _j.data) out.a = u8str(asp[1][0].data);
+ }
+ if (csp$1 == null ? void 0 : csp$1[4]) {
+ out.replies = [];
+ csp$1[4].forEach(function(pi) {
+ var cs = M$3[parse_TSP_Reference(pi.data)][0];
+ out.replies.push(parse_TSD_CommentStorageArchive(M$3, cs.data));
+ });
+ }
+ return out;
+}
+function iwa_to_s5s_comment(iwa) {
+ var out = [];
+ out.push({
+ t: iwa.t || "",
+ a: iwa.a,
+ T: iwa.replies && iwa.replies.length > 0
+ });
+ if (iwa.replies) iwa.replies.forEach(function(reply) {
+ out.push({
+ t: reply.t || "",
+ a: reply.a,
+ T: true
+ });
+ });
+ return out;
+}
+function s5s_to_iwa_comment(s5s) {
+ var out = {
+ a: "",
+ t: "",
+ replies: []
+ };
+ for (var i$7 = 0; i$7 < s5s.length; ++i$7) {
+ if (i$7 == 0) {
+ out.a = s5s[i$7].a;
+ out.t = s5s[i$7].t;
+ } else {
+ out.replies.push({
+ a: s5s[i$7].a,
+ t: s5s[i$7].t
+ });
+ }
+ }
+ return out;
+}
+function parse_TST_TableModelArchive(M$3, root, ws, opts) {
+ var _a, _b, _c, _d, _e$1, _f, _g, _h, _i$1, _j, _k, _l, _m, _n;
+ var pb = parse_shallow(root.data);
+ var range = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;
+ if (range.e.r < 0) throw new Error("Invalid row varint ".concat(pb[6][0].data));
+ range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;
+ if (range.e.c < 0) throw new Error("Invalid col varint ".concat(pb[7][0].data));
+ ws["!ref"] = encode_range(range);
+ var dense = ws["!data"] != null, dws = ws;
+ var store = parse_shallow(pb[4][0].data);
+ var lut = numbers_lut_new();
+ if ((_a = store[4]) == null ? void 0 : _a[0]) lut.sst = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[4][0].data)][0]);
+ if ((_b = store[6]) == null ? void 0 : _b[0]) lut.fmla = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[6][0].data)][0]);
+ if ((_c = store[11]) == null ? void 0 : _c[0]) lut.ofmt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[11][0].data)][0]);
+ if ((_d = store[12]) == null ? void 0 : _d[0]) lut.ferr = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[12][0].data)][0]);
+ if ((_e$1 = store[17]) == null ? void 0 : _e$1[0]) lut.rsst = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[17][0].data)][0]);
+ if ((_f = store[19]) == null ? void 0 : _f[0]) lut.cmnt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[19][0].data)][0]);
+ if ((_g = store[22]) == null ? void 0 : _g[0]) lut.nfmt = parse_TST_TableDataList(M$3, M$3[parse_TSP_Reference(store[22][0].data)][0]);
+ var tile = parse_shallow(store[3][0].data);
+ var _R = 0;
+ if (!((_h = store[9]) == null ? void 0 : _h[0])) throw "NUMBERS file missing row tree";
+ var rtt = parse_shallow(store[9][0].data)[1].map(function(p$3) {
+ return parse_shallow(p$3.data);
+ });
+ rtt.forEach(function(kv) {
+ _R = varint_to_i32(kv[1][0].data);
+ var tidx = varint_to_i32(kv[2][0].data);
+ var t$6 = tile[1][tidx];
+ if (!t$6) throw "NUMBERS missing tile " + tidx;
+ var tl = parse_shallow(t$6.data);
+ var ref2 = M$3[parse_TSP_Reference(tl[2][0].data)][0];
+ var mtype2 = varint_to_i32(ref2.meta[1][0].data);
+ if (mtype2 != 6002) throw new Error("6001 unexpected reference to ".concat(mtype2));
+ var _tile = parse_TST_Tile(M$3, ref2);
+ _tile.data.forEach(function(row, R$1) {
+ row.forEach(function(buf, C$2) {
+ var res = parse_cell_storage(buf, lut, opts);
+ if (res) {
+ if (dense) {
+ if (!dws["!data"][_R + R$1]) dws["!data"][_R + R$1] = [];
+ dws["!data"][_R + R$1][C$2] = res;
+ } else {
+ ws[encode_col(C$2) + encode_row(_R + R$1)] = res;
+ }
+ }
+ });
+ });
+ _R += _tile.nrows;
+ });
+ if ((_i$1 = store[13]) == null ? void 0 : _i$1[0]) {
+ var ref = M$3[parse_TSP_Reference(store[13][0].data)][0];
+ var mtype = varint_to_i32(ref.meta[1][0].data);
+ if (mtype != 6144) throw new Error("Expected merge type 6144, found ".concat(mtype));
+ ws["!merges"] = (_j = parse_shallow(ref.data)) == null ? void 0 : _j[1].map(function(pi) {
+ var merge = parse_shallow(pi.data);
+ var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);
+ return {
+ s: {
+ r: origin.getUint16(0, true),
+ c: origin.getUint16(2, true)
+ },
+ e: {
+ r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,
+ c: origin.getUint16(2, true) + size.getUint16(2, true) - 1
+ }
+ };
+ });
+ }
+ if (!((_k = ws["!merges"]) == null ? void 0 : _k.length) && ((_l = pb[47]) == null ? void 0 : _l[0])) {
+ var merge_owner = parse_shallow(pb[47][0].data);
+ if ((_m = merge_owner[2]) == null ? void 0 : _m[0]) {
+ var formula_store = parse_shallow(merge_owner[2][0].data);
+ if ((_n = formula_store[3]) == null ? void 0 : _n[0]) {
+ ws["!merges"] = mappa(formula_store[3], function(u$4) {
+ var _a2, _b2, _c2, _d2, _e2;
+ var formula_pair = parse_shallow(u$4);
+ var formula = parse_shallow(formula_pair[2][0].data);
+ var AST_node_array = parse_shallow(formula[1][0].data);
+ if (!((_a2 = AST_node_array[1]) == null ? void 0 : _a2[0])) return;
+ var AST_node0 = parse_shallow(AST_node_array[1][0].data);
+ var AST_node_type = varint_to_i32(AST_node0[1][0].data);
+ if (AST_node_type != 67) return;
+ var AST_colon_tract = parse_shallow(AST_node0[40][0].data);
+ if (!((_b2 = AST_colon_tract[3]) == null ? void 0 : _b2[0]) || !((_c2 = AST_colon_tract[4]) == null ? void 0 : _c2[0])) return;
+ var colrange = parse_shallow(AST_colon_tract[3][0].data);
+ var rowrange = parse_shallow(AST_colon_tract[4][0].data);
+ var c$7 = varint_to_i32(colrange[1][0].data);
+ var C$2 = ((_d2 = colrange[2]) == null ? void 0 : _d2[0]) ? varint_to_i32(colrange[2][0].data) : c$7;
+ var r$10 = varint_to_i32(rowrange[1][0].data);
+ var R$1 = ((_e2 = rowrange[2]) == null ? void 0 : _e2[0]) ? varint_to_i32(rowrange[2][0].data) : r$10;
+ return {
+ s: {
+ r: r$10,
+ c: c$7
+ },
+ e: {
+ r: R$1,
+ c: C$2
+ }
+ };
+ }).filter(function(x$2) {
+ return x$2 != null;
+ });
+ }
+ }
+ }
+}
+function parse_TST_TableInfoArchive(M$3, root, opts) {
+ var pb = parse_shallow(root.data);
+ var out = { "!ref": "A1" };
+ if (opts == null ? void 0 : opts.dense) out["!data"] = [];
+ var tableref = M$3[parse_TSP_Reference(pb[2][0].data)];
+ var mtype = varint_to_i32(tableref[0].meta[1][0].data);
+ if (mtype != 6001) throw new Error("6000 unexpected reference to ".concat(mtype));
+ parse_TST_TableModelArchive(M$3, tableref[0], out, opts);
+ return out;
+}
+function parse_TN_SheetArchive(M$3, root, opts) {
+ var _a;
+ var pb = parse_shallow(root.data);
+ var out = {
+ name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : "",
+ sheets: []
+ };
+ var shapeoffs = mappa(pb[2], parse_TSP_Reference);
+ shapeoffs.forEach(function(off) {
+ M$3[off].forEach(function(m$3) {
+ var mtype = varint_to_i32(m$3.meta[1][0].data);
+ if (mtype == 6e3) out.sheets.push(parse_TST_TableInfoArchive(M$3, m$3, opts));
+ });
+ });
+ return out;
+}
+function parse_TN_DocumentArchive(M$3, root, opts) {
+ var _a;
+ var out = book_new();
+ out.Workbook = { WBProps: { date1904: true } };
+ var pb = parse_shallow(root.data);
+ if ((_a = pb[2]) == null ? void 0 : _a[0]) throw new Error("Keynote presentations are not supported");
+ var sheetoffs = mappa(pb[1], parse_TSP_Reference);
+ sheetoffs.forEach(function(off) {
+ M$3[off].forEach(function(m$3) {
+ var mtype = varint_to_i32(m$3.meta[1][0].data);
+ if (mtype == 2) {
+ var root2 = parse_TN_SheetArchive(M$3, m$3, opts);
+ root2.sheets.forEach(function(sheet, idx) {
+ book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + "_" + idx, true);
+ });
+ }
+ });
+ });
+ if (out.SheetNames.length == 0) throw new Error("Empty NUMBERS file");
+ out.bookType = "numbers";
+ return out;
+}
+function parse_numbers_iwa(cfb, opts) {
+ var _a, _b, _c, _d, _e$1, _f, _g;
+ var M$3 = {}, indices = [];
+ cfb.FullPaths.forEach(function(p$3) {
+ if (p$3.match(/\.iwpv2/)) throw new Error("Unsupported password protection");
+ });
+ cfb.FileIndex.forEach(function(s$5) {
+ if (!s$5.name.match(/\.iwa$/)) return;
+ if (s$5.content[0] != 0) return;
+ var o$10;
+ try {
+ o$10 = decompress_iwa_file(s$5.content);
+ } catch (e$10) {
+ return console.log("?? " + s$5.content.length + " " + (e$10.message || e$10));
+ }
+ var packets;
+ try {
+ packets = parse_iwa_file(o$10);
+ } catch (e$10) {
+ return console.log("## " + (e$10.message || e$10));
+ }
+ packets.forEach(function(packet) {
+ M$3[packet.id] = packet.messages;
+ indices.push(packet.id);
+ });
+ });
+ if (!indices.length) throw new Error("File has no messages");
+ if (((_c = (_b = (_a = M$3 == null ? void 0 : M$3[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M$3[1][0].meta[1][0].data) == 1e4) throw new Error("Pages documents are not supported");
+ var docroot = ((_g = (_f = (_e$1 = (_d = M$3 == null ? void 0 : M$3[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e$1.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M$3[1][0].meta[1][0].data) == 1 && M$3[1][0];
+ if (!docroot) indices.forEach(function(idx) {
+ M$3[idx].forEach(function(iwam) {
+ var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;
+ if (mtype == 1) {
+ if (!docroot) docroot = iwam;
+ else throw new Error("Document has multiple roots");
+ }
+ });
+ });
+ if (!docroot) throw new Error("Cannot find Document root");
+ return parse_TN_DocumentArchive(M$3, docroot, opts);
+}
+function write_TST_TileRowInfo(data, lut, wide) {
+ var _a, _b, _c;
+ var tri = [
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([])
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array(Array.from({ length: 510 }, function() {
+ return 255;
+ }))
+ }],
+ [{
+ type: 0,
+ data: write_varint49(5)
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([])
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array(Array.from({ length: 510 }, function() {
+ return 255;
+ }))
+ }],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }]
+ ];
+ if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0])) throw "Mutation only works on post-BNC storages!";
+ var cnt = 0;
+ if (tri[7][0].data.length < 2 * data.length) {
+ var new_7 = new Uint8Array(2 * data.length);
+ new_7.set(tri[7][0].data);
+ tri[7][0].data = new_7;
+ }
+ if (tri[4][0].data.length < 2 * data.length) {
+ var new_4 = new Uint8Array(2 * data.length);
+ new_4.set(tri[4][0].data);
+ tri[4][0].data = new_4;
+ }
+ var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];
+ var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];
+ var width = wide ? 4 : 1;
+ for (var C$2 = 0; C$2 < data.length; ++C$2) {
+ if (data[C$2] == null || data[C$2].t == "z" && !((_c = data[C$2].c) == null ? void 0 : _c.length) || data[C$2].t == "e") {
+ dv.setUint16(C$2 * 2, 65535, true);
+ _dv.setUint16(C$2 * 2, 65535);
+ continue;
+ }
+ dv.setUint16(C$2 * 2, last_offset / width, true);
+ _dv.setUint16(C$2 * 2, _last_offset / width, true);
+ var celload, _celload;
+ switch (data[C$2].t) {
+ case "d":
+ if (data[C$2].v instanceof Date) {
+ celload = write_new_storage(data[C$2], lut);
+ _celload = write_old_storage(data[C$2], lut);
+ break;
+ }
+ celload = write_new_storage(data[C$2], lut);
+ _celload = write_old_storage(data[C$2], lut);
+ break;
+ case "s":
+ case "n":
+ case "b":
+ case "z":
+ celload = write_new_storage(data[C$2], lut);
+ _celload = write_old_storage(data[C$2], lut);
+ break;
+ default: throw new Error("Unsupported value " + data[C$2]);
+ }
+ cell_storage.push(celload);
+ last_offset += celload.length;
+ {
+ _cell_storage.push(_celload);
+ _last_offset += _celload.length;
+ }
+ ++cnt;
+ }
+ tri[2][0].data = write_varint49(cnt);
+ tri[5][0].data = write_varint49(5);
+ for (; C$2 < tri[7][0].data.length / 2; ++C$2) {
+ dv.setUint16(C$2 * 2, 65535, true);
+ _dv.setUint16(C$2 * 2, 65535, true);
+ }
+ tri[6][0].data = u8concat(cell_storage);
+ tri[3][0].data = u8concat(_cell_storage);
+ tri[8] = [{
+ type: 0,
+ data: write_varint49(wide ? 1 : 0)
+ }];
+ return tri;
+}
+function write_iwam(type, payload) {
+ return {
+ meta: [[], [{
+ type: 0,
+ data: write_varint49(type)
+ }]],
+ data: payload
+ };
+}
+function get_unique_msgid(dep, dependents) {
+ if (!dependents.last) dependents.last = 927262;
+ for (var i$7 = dependents.last; i$7 < 2e6; ++i$7) if (!dependents[i$7]) {
+ dependents[dependents.last = i$7] = dep;
+ return i$7;
+ }
+ throw new Error("Too many messages");
+}
+function build_numbers_deps(cfb) {
+ var dependents = {};
+ var indices = [];
+ cfb.FileIndex.map(function(fi, idx) {
+ return [fi, cfb.FullPaths[idx]];
+ }).forEach(function(row) {
+ var fi = row[0], fp = row[1];
+ if (fi.type != 2) return;
+ if (!fi.name.match(/\.iwa/)) return;
+ if (fi.content[0] != 0) return;
+ parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {
+ indices.push(packet.id);
+ dependents[packet.id] = {
+ deps: [],
+ location: fp,
+ type: varint_to_i32(packet.messages[0].meta[1][0].data)
+ };
+ });
+ });
+ cfb.FileIndex.forEach(function(fi) {
+ if (!fi.name.match(/\.iwa/)) return;
+ if (fi.content[0] != 0) return;
+ parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {
+ ia.messages.forEach(function(mess) {
+ [5, 6].forEach(function(f$4) {
+ if (!mess.meta[f$4]) return;
+ mess.meta[f$4].forEach(function(x$2) {
+ dependents[ia.id].deps.push(varint_to_i32(x$2.data));
+ });
+ });
+ });
+ });
+ });
+ return dependents;
+}
+function write_TSP_Color_RGB(r$10, g$1, b$3) {
+ return write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }],
+ [],
+ [{
+ type: 5,
+ data: new Uint8Array(Float32Array.from([r$10 / 255]).buffer)
+ }],
+ [{
+ type: 5,
+ data: new Uint8Array(Float32Array.from([g$1 / 255]).buffer)
+ }],
+ [{
+ type: 5,
+ data: new Uint8Array(Float32Array.from([b$3 / 255]).buffer)
+ }],
+ [{
+ type: 5,
+ data: new Uint8Array(Float32Array.from([1]).buffer)
+ }],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }]
+ ]);
+}
+function get_author_color(n$9) {
+ switch (n$9) {
+ case 0: return write_TSP_Color_RGB(99, 222, 171);
+ case 1: return write_TSP_Color_RGB(162, 197, 240);
+ case 2: return write_TSP_Color_RGB(255, 189, 189);
+ }
+ return write_TSP_Color_RGB(Math.random() * 255, Math.random() * 255, Math.random() * 255);
+}
+function write_numbers_iwa(wb, opts) {
+ if (!opts || !opts.numbers) throw new Error("Must pass a `numbers` option -- check the README");
+ var cfb = CFB.read(opts.numbers, { type: "base64" });
+ var deps = build_numbers_deps(cfb);
+ var docroot = numbers_iwa_find(cfb, deps, 1);
+ if (docroot == null) throw "Could not find message ".concat(1, " in Numbers template");
+ var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);
+ if (sheetrefs.length > 1) throw new Error("Template NUMBERS file must have exactly one sheet");
+ wb.SheetNames.forEach(function(name, idx) {
+ if (idx >= 1) {
+ numbers_add_ws(cfb, deps, idx + 1);
+ docroot = numbers_iwa_find(cfb, deps, 1);
+ sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);
+ }
+ write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);
+ });
+ return cfb;
+}
+function numbers_iwa_doit(cfb, deps, id, cb) {
+ var entry = CFB.find(cfb, deps[id].location);
+ if (!entry) throw "Could not find ".concat(deps[id].location, " in Numbers template");
+ var x$2 = parse_iwa_file(decompress_iwa_file(entry.content));
+ var ainfo = x$2.find(function(packet) {
+ return packet.id == id;
+ });
+ cb(ainfo, x$2);
+ entry.content = compress_iwa_file(write_iwa_file(x$2));
+ entry.size = entry.content.length;
+}
+function numbers_iwa_find(cfb, deps, id) {
+ var entry = CFB.find(cfb, deps[id].location);
+ if (!entry) throw "Could not find ".concat(deps[id].location, " in Numbers template");
+ var x$2 = parse_iwa_file(decompress_iwa_file(entry.content));
+ var ainfo = x$2.find(function(packet) {
+ return packet.id == id;
+ });
+ return ainfo;
+}
+function numbers_add_meta(mlist, newid, newloc) {
+ mlist[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(newid)
+ }],
+ [{
+ type: 2,
+ data: stru8(newloc.replace(/-[\s\S]*$/, ""))
+ }],
+ [{
+ type: 2,
+ data: stru8(newloc)
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }]
+ ])
+ });
+ mlist[1] = [{
+ type: 0,
+ data: write_varint49(Math.max(newid + 1, varint_to_i32(mlist[1][0].data)))
+ }];
+}
+function numbers_add_msg(cfb, type, msg, path$1, deps, id) {
+ if (!id) id = get_unique_msgid({
+ deps: [],
+ location: "",
+ type
+ }, deps);
+ var loc = "".concat(path$1, "-").concat(id, ".iwa");
+ deps[id].location = "Root Entry" + loc;
+ CFB.utils.cfb_add(cfb, loc, compress_iwa_file(write_iwa_file([{
+ id,
+ messages: [write_iwam(type, write_shallow(msg))]
+ }])));
+ var newloc = loc.replace(/^[\/]/, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_add_meta(mlist, id || 0, newloc);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ return id;
+}
+function numbers_meta_add_dep(mlist, deps, id, dep) {
+ var loc = deps[id].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
+ var parentidx = mlist[3].findIndex(function(m$3) {
+ var _a, _b;
+ var mm = parse_shallow(m$3.data);
+ if ((_a = mm[3]) == null ? void 0 : _a[0]) return u8str(mm[3][0].data) == loc;
+ if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc) return true;
+ return false;
+ });
+ var parent = parse_shallow(mlist[3][parentidx].data);
+ if (!parent[6]) parent[6] = [];
+ (Array.isArray(dep) ? dep : [dep]).forEach(function(dep2) {
+ parent[6].push({
+ type: 2,
+ data: write_shallow([[], [{
+ type: 0,
+ data: write_varint49(dep2)
+ }]])
+ });
+ });
+ mlist[3][parentidx].data = write_shallow(parent);
+}
+function numbers_meta_del_dep(mlist, deps, id, dep) {
+ var loc = deps[id].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
+ var parentidx = mlist[3].findIndex(function(m$3) {
+ var _a, _b;
+ var mm = parse_shallow(m$3.data);
+ if ((_a = mm[3]) == null ? void 0 : _a[0]) return u8str(mm[3][0].data) == loc;
+ if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc) return true;
+ return false;
+ });
+ var parent = parse_shallow(mlist[3][parentidx].data);
+ if (!parent[6]) parent[6] = [];
+ parent[6] = parent[6].filter(function(m$3) {
+ return varint_to_i32(parse_shallow(m$3.data)[1][0].data) != dep;
+ });
+ mlist[3][parentidx].data = write_shallow(parent);
+}
+function numbers_add_ws(cfb, deps, wsidx) {
+ var sheetref = -1, newsheetref = -1;
+ var remap = {};
+ numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {
+ var doc = parse_shallow(docroot.messages[0].data);
+ sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);
+ newsheetref = get_unique_msgid({
+ deps: [1],
+ location: deps[sheetref].location,
+ type: 2
+ }, deps);
+ remap[sheetref] = newsheetref;
+ numbers_add_oref(docroot, newsheetref);
+ doc[1].push({
+ type: 2,
+ data: write_TSP_Reference(newsheetref)
+ });
+ var sheet = numbers_iwa_find(cfb, deps, sheetref);
+ sheet.id = newsheetref;
+ if (deps[1].location == deps[newsheetref].location) arch.push(sheet);
+ else numbers_iwa_doit(cfb, deps, newsheetref, function(_$2, x$2) {
+ return x$2.push(sheet);
+ });
+ docroot.messages[0].data = write_shallow(doc);
+ });
+ var tiaref = -1;
+ numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {
+ var sa = parse_shallow(sheetroot.messages[0].data);
+ for (var i$7 = 3; i$7 <= 69; ++i$7) delete sa[i$7];
+ var drawables = mappa(sa[2], parse_TSP_Reference);
+ drawables.forEach(function(n$9) {
+ return numbers_del_oref(sheetroot, n$9);
+ });
+ tiaref = get_unique_msgid({
+ deps: [newsheetref],
+ location: deps[drawables[0]].location,
+ type: deps[drawables[0]].type
+ }, deps);
+ numbers_add_oref(sheetroot, tiaref);
+ remap[drawables[0]] = tiaref;
+ sa[2] = [{
+ type: 2,
+ data: write_TSP_Reference(tiaref)
+ }];
+ var tia = numbers_iwa_find(cfb, deps, drawables[0]);
+ tia.id = tiaref;
+ if (deps[drawables[0]].location == deps[newsheetref].location) arch.push(tia);
+ else {
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_meta_add_dep(mlist, deps, newsheetref, tiaref);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ numbers_iwa_doit(cfb, deps, tiaref, function(_$2, x$2) {
+ return x$2.push(tia);
+ });
+ }
+ sheetroot.messages[0].data = write_shallow(sa);
+ });
+ var tmaref = -1;
+ numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {
+ var tia = parse_shallow(tiaroot.messages[0].data);
+ var da = parse_shallow(tia[1][0].data);
+ for (var i$7 = 3; i$7 <= 69; ++i$7) delete da[i$7];
+ var dap = parse_TSP_Reference(da[2][0].data);
+ da[2][0].data = write_TSP_Reference(remap[dap]);
+ tia[1][0].data = write_shallow(da);
+ var oldtmaref = parse_TSP_Reference(tia[2][0].data);
+ numbers_del_oref(tiaroot, oldtmaref);
+ tmaref = get_unique_msgid({
+ deps: [tiaref],
+ location: deps[oldtmaref].location,
+ type: deps[oldtmaref].type
+ }, deps);
+ numbers_add_oref(tiaroot, tmaref);
+ remap[oldtmaref] = tmaref;
+ tia[2][0].data = write_TSP_Reference(tmaref);
+ var tma = numbers_iwa_find(cfb, deps, oldtmaref);
+ tma.id = tmaref;
+ if (deps[tiaref].location == deps[tmaref].location) arch.push(tma);
+ else numbers_iwa_doit(cfb, deps, tmaref, function(_$2, x$2) {
+ return x$2.push(tma);
+ });
+ tiaroot.messages[0].data = write_shallow(tia);
+ });
+ numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {
+ var _a, _b;
+ var tma = parse_shallow(tmaroot.messages[0].data);
+ var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, "-".concat(("0000" + wsidx.toString(16)).slice(-4)));
+ tma[1][0].data = stru8(new_uuid);
+ [
+ 12,
+ 13,
+ 29,
+ 31,
+ 32,
+ 33,
+ 39,
+ 44,
+ 47,
+ 81,
+ 82,
+ 84
+ ].forEach(function(n$9) {
+ return delete tma[n$9];
+ });
+ if (tma[45]) {
+ var srrta = parse_shallow(tma[45][0].data);
+ var ref = parse_TSP_Reference(srrta[1][0].data);
+ numbers_del_oref(tmaroot, ref);
+ delete tma[45];
+ }
+ if (tma[70]) {
+ var hsoa = parse_shallow(tma[70][0].data);
+ (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {
+ var hsa = parse_shallow(item.data);
+ [2, 3].map(function(n$9) {
+ return hsa[n$9][0];
+ }).forEach(function(hseadata) {
+ var hsea = parse_shallow(hseadata.data);
+ if (!hsea[8]) return;
+ var ref2 = parse_TSP_Reference(hsea[8][0].data);
+ numbers_del_oref(tmaroot, ref2);
+ });
+ });
+ delete tma[70];
+ }
+ [
+ 46,
+ 30,
+ 34,
+ 35,
+ 36,
+ 38,
+ 48,
+ 49,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89
+ ].forEach(function(n$9) {
+ if (!tma[n$9]) return;
+ var ref2 = parse_TSP_Reference(tma[n$9][0].data);
+ delete tma[n$9];
+ numbers_del_oref(tmaroot, ref2);
+ });
+ var store = parse_shallow(tma[4][0].data);
+ {
+ [
+ 2,
+ 4,
+ 5,
+ 6,
+ 11,
+ 12,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22
+ ].forEach(function(n$9) {
+ var _a2;
+ if (!((_a2 = store[n$9]) == null ? void 0 : _a2[0])) return;
+ var oldref = parse_TSP_Reference(store[n$9][0].data);
+ var newref = get_unique_msgid({
+ deps: [tmaref],
+ location: deps[oldref].location,
+ type: deps[oldref].type
+ }, deps);
+ numbers_del_oref(tmaroot, oldref);
+ numbers_add_oref(tmaroot, newref);
+ remap[oldref] = newref;
+ var msg = numbers_iwa_find(cfb, deps, oldref);
+ msg.id = newref;
+ if (deps[oldref].location == deps[tmaref].location) arch.push(msg);
+ else {
+ deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());
+ if (deps[newref].location == deps[oldref].location) deps[newref].location = deps[newref].location.replace(/\.iwa/, "-".concat(newref, ".iwa"));
+ CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));
+ var newloc = deps[newref].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_add_meta(mlist, newref, newloc);
+ numbers_meta_add_dep(mlist, deps, tmaref, newref);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ }
+ store[n$9][0].data = write_TSP_Reference(newref);
+ });
+ var row_headers = parse_shallow(store[1][0].data);
+ {
+ (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {
+ var oldref = parse_TSP_Reference(tspref.data);
+ var newref = get_unique_msgid({
+ deps: [tmaref],
+ location: deps[oldref].location,
+ type: deps[oldref].type
+ }, deps);
+ numbers_del_oref(tmaroot, oldref);
+ numbers_add_oref(tmaroot, newref);
+ remap[oldref] = newref;
+ var msg = numbers_iwa_find(cfb, deps, oldref);
+ msg.id = newref;
+ if (deps[oldref].location == deps[tmaref].location) {
+ arch.push(msg);
+ } else {
+ deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());
+ if (deps[newref].location == deps[oldref].location) deps[newref].location = deps[newref].location.replace(/\.iwa/, "-".concat(newref, ".iwa"));
+ CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));
+ var newloc = deps[newref].location.replace(/^Root Entry\//, "").replace(/^Index\//, "").replace(/\.iwa$/, "");
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_add_meta(mlist, newref, newloc);
+ numbers_meta_add_dep(mlist, deps, tmaref, newref);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ }
+ tspref.data = write_TSP_Reference(newref);
+ });
+ }
+ store[1][0].data = write_shallow(row_headers);
+ var tiles = parse_shallow(store[3][0].data);
+ {
+ tiles[1].forEach(function(t$6) {
+ var tst = parse_shallow(t$6.data);
+ var oldtileref = parse_TSP_Reference(tst[2][0].data);
+ var newtileref = remap[oldtileref];
+ if (!remap[oldtileref]) {
+ newtileref = get_unique_msgid({
+ deps: [tmaref],
+ location: "",
+ type: deps[oldtileref].type
+ }, deps);
+ deps[newtileref].location = "Root Entry/Index/Tables/Tile-".concat(newtileref, ".iwa");
+ remap[oldtileref] = newtileref;
+ var oldtile = numbers_iwa_find(cfb, deps, oldtileref);
+ oldtile.id = newtileref;
+ numbers_del_oref(tmaroot, oldtileref);
+ numbers_add_oref(tmaroot, newtileref);
+ CFB.utils.cfb_add(cfb, "/Index/Tables/Tile-".concat(newtileref, ".iwa"), compress_iwa_file(write_iwa_file([oldtile])));
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ mlist[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(newtileref)
+ }],
+ [{
+ type: 2,
+ data: stru8("Tables/Tile")
+ }],
+ [{
+ type: 2,
+ data: stru8("Tables/Tile-".concat(newtileref))
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }]
+ ])
+ });
+ mlist[1] = [{
+ type: 0,
+ data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data)))
+ }];
+ numbers_meta_add_dep(mlist, deps, tmaref, newtileref);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ }
+ tst[2][0].data = write_TSP_Reference(newtileref);
+ t$6.data = write_shallow(tst);
+ });
+ }
+ store[3][0].data = write_shallow(tiles);
+ }
+ tma[4][0].data = write_shallow(store);
+ tmaroot.messages[0].data = write_shallow(tma);
+ });
+}
+function write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {
+ var drawables = [];
+ numbers_iwa_doit(cfb, deps, rootref, function(docroot) {
+ var sheetref = parse_shallow(docroot.messages[0].data);
+ {
+ sheetref[1] = [{
+ type: 2,
+ data: stru8(wsname)
+ }];
+ drawables = mappa(sheetref[2], parse_TSP_Reference);
+ }
+ docroot.messages[0].data = write_shallow(sheetref);
+ });
+ var tia = numbers_iwa_find(cfb, deps, drawables[0]);
+ var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);
+ numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x$2) {
+ return write_numbers_tma(cfb, deps, ws, docroot, x$2, tmaref);
+ });
+}
+function write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {
+ if (!ws["!ref"]) throw new Error("Cannot export empty sheet to NUMBERS");
+ var range = decode_range(ws["!ref"]);
+ range.s.r = range.s.c = 0;
+ var trunc = false;
+ if (range.e.c > 999) {
+ trunc = true;
+ range.e.c = 999;
+ }
+ if (range.e.r > 999999) {
+ trunc = true;
+ range.e.r = 999999;
+ }
+ if (trunc) console.error("Truncating to ".concat(encode_range(range)));
+ var data = [];
+ if (ws["!data"]) data = ws["!data"];
+ else {
+ var colstr = [];
+ for (var _C = 0; _C <= range.e.c; ++_C) colstr[_C] = encode_col(_C);
+ for (var R_ = 0; R_ <= range.e.r; ++R_) {
+ data[R_] = [];
+ var _R = "" + (R_ + 1);
+ for (_C = 0; _C <= range.e.c; ++_C) {
+ var _cell = ws[colstr[_C] + _R];
+ if (!_cell) continue;
+ data[R_][_C] = _cell;
+ }
+ }
+ }
+ var LUT = {
+ cmnt: [{
+ a: "~54ee77S~",
+ t: "... the people who are crazy enough to think they can change the world, are the ones who do."
+ }],
+ ferr: [],
+ fmla: [],
+ nfmt: [],
+ ofmt: [],
+ rsst: [{
+ v: "~54ee77S~",
+ l: "https://sheetjs.com/"
+ }],
+ sst: ["~Sh33tJ5~"]
+ };
+ var pb = parse_shallow(tmaroot.messages[0].data);
+ {
+ pb[6][0].data = write_varint49(range.e.r + 1);
+ pb[7][0].data = write_varint49(range.e.c + 1);
+ delete pb[46];
+ var store = parse_shallow(pb[4][0].data);
+ {
+ var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);
+ numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {
+ var _a;
+ var base_bucket = parse_shallow(rowhead.messages[0].data);
+ if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0]) for (var R2 = 0; R2 < data.length; ++R2) {
+ var _bucket = parse_shallow(base_bucket[2][0].data);
+ _bucket[1][0].data = write_varint49(R2);
+ _bucket[4][0].data = write_varint49(data[R2].length);
+ base_bucket[2][R2] = {
+ type: base_bucket[2][0].type,
+ data: write_shallow(_bucket)
+ };
+ }
+ rowhead.messages[0].data = write_shallow(base_bucket);
+ });
+ var col_header_ref = parse_TSP_Reference(store[2][0].data);
+ numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {
+ var base_bucket = parse_shallow(colhead.messages[0].data);
+ for (var C$2 = 0; C$2 <= range.e.c; ++C$2) {
+ var _bucket = parse_shallow(base_bucket[2][0].data);
+ _bucket[1][0].data = write_varint49(C$2);
+ _bucket[4][0].data = write_varint49(range.e.r + 1);
+ base_bucket[2][C$2] = {
+ type: base_bucket[2][0].type,
+ data: write_shallow(_bucket)
+ };
+ }
+ colhead.messages[0].data = write_shallow(base_bucket);
+ });
+ var rbtree = parse_shallow(store[9][0].data);
+ rbtree[1] = [];
+ var tilestore = parse_shallow(store[3][0].data);
+ {
+ var tstride = 256;
+ tilestore[2] = [{
+ type: 0,
+ data: write_varint49(tstride)
+ }];
+ var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);
+ var save_token = function() {
+ var metadata = numbers_iwa_find(cfb, deps, 2);
+ var mlist = parse_shallow(metadata.messages[0].data);
+ var mlst = mlist[3].filter(function(m$3) {
+ return varint_to_i32(parse_shallow(m$3.data)[1][0].data) == tileref;
+ });
+ return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;
+ }();
+ {
+ CFB.utils.cfb_del(cfb, deps[tileref].location);
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ mlist[3] = mlist[3].filter(function(m$3) {
+ return varint_to_i32(parse_shallow(m$3.data)[1][0].data) != tileref;
+ });
+ numbers_meta_del_dep(mlist, deps, tmaref, tileref);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ numbers_del_oref(tmaroot, tileref);
+ }
+ tilestore[1] = [];
+ var ntiles = Math.ceil((range.e.r + 1) / tstride);
+ for (var tidx = 0; tidx < ntiles; ++tidx) {
+ var newtileid = get_unique_msgid({
+ deps: [],
+ location: "",
+ type: 6002
+ }, deps);
+ deps[newtileid].location = "Root Entry/Index/Tables/Tile-".concat(newtileid, ".iwa");
+ var tiledata = [
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride))
+ }],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(5)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(USE_WIDE_ROWS ? 1 : 0)
+ }]
+ ];
+ for (var R$1 = tidx * tstride; R$1 <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R$1) {
+ var tilerow = write_TST_TileRowInfo(data[R$1], LUT, USE_WIDE_ROWS);
+ tilerow[1][0].data = write_varint49(R$1 - tidx * tstride);
+ tiledata[5].push({
+ data: write_shallow(tilerow),
+ type: 2
+ });
+ }
+ tilestore[1].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(tidx)
+ }],
+ [{
+ type: 2,
+ data: write_TSP_Reference(newtileid)
+ }]
+ ])
+ });
+ var newtile = {
+ id: newtileid,
+ messages: [write_iwam(6002, write_shallow(tiledata))]
+ };
+ var tilecontent = compress_iwa_file(write_iwa_file([newtile]));
+ CFB.utils.cfb_add(cfb, "/Index/Tables/Tile-".concat(newtileid, ".iwa"), tilecontent);
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ mlist[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(newtileid)
+ }],
+ [{
+ type: 2,
+ data: stru8("Tables/Tile")
+ }],
+ [{
+ type: 2,
+ data: stru8("Tables/Tile-".concat(newtileid))
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 2,
+ 0,
+ 0
+ ])
+ }],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(save_token)
+ }]
+ ])
+ });
+ mlist[1] = [{
+ type: 0,
+ data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data)))
+ }];
+ numbers_meta_add_dep(mlist, deps, tmaref, newtileid);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ numbers_add_oref(tmaroot, newtileid);
+ rbtree[1].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(tidx * tstride)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(tidx)
+ }]
+ ])
+ });
+ }
+ }
+ store[3][0].data = write_shallow(tilestore);
+ store[9][0].data = write_shallow(rbtree);
+ store[10] = [{
+ type: 2,
+ data: new Uint8Array([])
+ }];
+ if (ws["!merges"]) {
+ var mergeid = get_unique_msgid({
+ type: 6144,
+ deps: [tmaref],
+ location: deps[tmaref].location
+ }, deps);
+ tmafile.push({
+ id: mergeid,
+ messages: [write_iwam(6144, write_shallow([[], ws["!merges"].map(function(m$3) {
+ return {
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 2,
+ data: write_shallow([[], [{
+ type: 5,
+ data: new Uint8Array(new Uint16Array([m$3.s.r, m$3.s.c]).buffer)
+ }]])
+ }],
+ [{
+ type: 2,
+ data: write_shallow([[], [{
+ type: 5,
+ data: new Uint8Array(new Uint16Array([m$3.e.r - m$3.s.r + 1, m$3.e.c - m$3.s.c + 1]).buffer)
+ }]])
+ }]
+ ])
+ };
+ })]))]
+ });
+ store[13] = [{
+ type: 2,
+ data: write_TSP_Reference(mergeid)
+ }];
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_meta_add_dep(mlist, deps, tmaref, mergeid);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ numbers_add_oref(tmaroot, mergeid);
+ } else delete store[13];
+ var sstref = parse_TSP_Reference(store[4][0].data);
+ numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {
+ var sstdata = parse_shallow(sstroot.messages[0].data);
+ {
+ sstdata[3] = [];
+ LUT.sst.forEach(function(str, i$7) {
+ if (i$7 == 0) return;
+ sstdata[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(i$7)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }],
+ [{
+ type: 2,
+ data: stru8(str)
+ }]
+ ])
+ });
+ });
+ }
+ sstroot.messages[0].data = write_shallow(sstdata);
+ });
+ var rsstref = parse_TSP_Reference(store[17][0].data);
+ numbers_iwa_doit(cfb, deps, rsstref, function(rsstroot) {
+ var rsstdata = parse_shallow(rsstroot.messages[0].data);
+ rsstdata[3] = [];
+ var style_indices = [
+ 904980,
+ 903835,
+ 903815,
+ 903845
+ ];
+ LUT.rsst.forEach(function(rsst, i$7) {
+ if (i$7 == 0) return;
+ var tswpsa = [
+ [],
+ [{
+ type: 0,
+ data: new Uint8Array([5])
+ }],
+ [],
+ [{
+ type: 2,
+ data: stru8(rsst.v)
+ }]
+ ];
+ tswpsa[10] = [{
+ type: 0,
+ data: new Uint8Array([1])
+ }];
+ tswpsa[19] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 6,
+ 8,
+ 0,
+ 18,
+ 2,
+ 101,
+ 110
+ ])
+ }];
+ tswpsa[5] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 8,
+ 8,
+ 0,
+ 18,
+ 4,
+ 8,
+ 155,
+ 149,
+ 55
+ ])
+ }];
+ tswpsa[2] = [{
+ type: 2,
+ data: new Uint8Array([
+ 8,
+ 148,
+ 158,
+ 55
+ ])
+ }];
+ tswpsa[6] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 6,
+ 8,
+ 0,
+ 16,
+ 0,
+ 24,
+ 0
+ ])
+ }];
+ tswpsa[7] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 8,
+ 8,
+ 0,
+ 18,
+ 4,
+ 8,
+ 135,
+ 149,
+ 55
+ ])
+ }];
+ tswpsa[8] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 8,
+ 8,
+ 0,
+ 18,
+ 4,
+ 8,
+ 165,
+ 149,
+ 55
+ ])
+ }];
+ tswpsa[14] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 6,
+ 8,
+ 0,
+ 16,
+ 0,
+ 24,
+ 0
+ ])
+ }];
+ tswpsa[24] = [{
+ type: 2,
+ data: new Uint8Array([
+ 10,
+ 6,
+ 8,
+ 0,
+ 16,
+ 0,
+ 24,
+ 0
+ ])
+ }];
+ var tswpsaid = get_unique_msgid({
+ deps: [],
+ location: "",
+ type: 2001
+ }, deps);
+ var tswpsarefs = [];
+ if (rsst.l) {
+ var newhlinkid = numbers_add_msg(cfb, 2032, [
+ [],
+ [],
+ [{
+ type: 2,
+ data: stru8(rsst.l)
+ }]
+ ], "/Index/Tables/DataList", deps);
+ tswpsa[11] = [];
+ var smartfield = [[], []];
+ if (!smartfield[1]) smartfield[1] = [];
+ smartfield[1].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }],
+ [{
+ type: 2,
+ data: write_TSP_Reference(newhlinkid)
+ }]
+ ])
+ });
+ tswpsa[11][0] = {
+ type: 2,
+ data: write_shallow(smartfield)
+ };
+ tswpsarefs.push(newhlinkid);
+ }
+ numbers_add_msg(cfb, 2001, tswpsa, "/Index/Tables/DataList", deps, tswpsaid);
+ numbers_iwa_doit(cfb, deps, tswpsaid, function(iwa) {
+ style_indices.forEach(function(ref) {
+ return numbers_add_oref(iwa, ref);
+ });
+ tswpsarefs.forEach(function(ref) {
+ return numbers_add_oref(iwa, ref);
+ });
+ });
+ var rtpaid = numbers_add_msg(cfb, 6218, [
+ [],
+ [{
+ type: 2,
+ data: write_TSP_Reference(tswpsaid)
+ }],
+ [],
+ [{
+ type: 2,
+ data: new Uint8Array([
+ 13,
+ 255,
+ 255,
+ 255,
+ 0,
+ 18,
+ 10,
+ 16,
+ 255,
+ 255,
+ 1,
+ 24,
+ 255,
+ 255,
+ 255,
+ 255,
+ 7
+ ])
+ }]
+ ], "/Index/Tables/DataList", deps);
+ numbers_iwa_doit(cfb, deps, rtpaid, function(iwa) {
+ return numbers_add_oref(iwa, tswpsaid);
+ });
+ rsstdata[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(i$7)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 2,
+ data: write_TSP_Reference(rtpaid)
+ }]
+ ])
+ });
+ numbers_add_oref(rsstroot, rtpaid);
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_meta_add_dep(mlist, deps, rsstref, rtpaid);
+ numbers_meta_add_dep(mlist, deps, rtpaid, tswpsaid);
+ numbers_meta_add_dep(mlist, deps, tswpsaid, tswpsarefs);
+ numbers_meta_add_dep(mlist, deps, tswpsaid, style_indices);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ });
+ rsstroot.messages[0].data = write_shallow(rsstdata);
+ });
+ if (LUT.cmnt.length > 1) {
+ var cmntref = parse_TSP_Reference(store[19][0].data);
+ var authors = {}, iauthor = 0;
+ numbers_iwa_doit(cfb, deps, cmntref, function(cmntroot) {
+ var cmntdata = parse_shallow(cmntroot.messages[0].data);
+ {
+ cmntdata[3] = [];
+ LUT.cmnt.forEach(function(cc, i$7) {
+ if (i$7 == 0) return;
+ var replies = [];
+ if (cc.replies) cc.replies.forEach(function(c$7) {
+ if (!authors[c$7.a || ""]) authors[c$7.a || ""] = numbers_add_msg(cfb, 212, [
+ [],
+ [{
+ type: 2,
+ data: stru8(c$7.a || "")
+ }],
+ [{
+ type: 2,
+ data: get_author_color(++iauthor)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }]
+ ], "/Index/Tables/DataList", deps);
+ var aaaid2 = authors[c$7.a || ""];
+ var csaid2 = numbers_add_msg(cfb, 3056, [
+ [],
+ [{
+ type: 2,
+ data: stru8(c$7.t || "")
+ }],
+ [{
+ type: 2,
+ data: write_shallow([[], [{
+ type: 1,
+ data: new Uint8Array([
+ 0,
+ 0,
+ 0,
+ 128,
+ 116,
+ 109,
+ 182,
+ 65
+ ])
+ }]])
+ }],
+ [{
+ type: 2,
+ data: write_TSP_Reference(aaaid2)
+ }]
+ ], "/Index/Tables/DataList", deps);
+ numbers_iwa_doit(cfb, deps, csaid2, function(iwa) {
+ return numbers_add_oref(iwa, aaaid2);
+ });
+ replies.push(csaid2);
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_meta_add_dep(mlist, deps, csaid2, aaaid2);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ });
+ if (!authors[cc.a || ""]) authors[cc.a || ""] = numbers_add_msg(cfb, 212, [
+ [],
+ [{
+ type: 2,
+ data: stru8(cc.a || "")
+ }],
+ [{
+ type: 2,
+ data: get_author_color(++iauthor)
+ }],
+ [],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }]
+ ], "/Index/Tables/DataList", deps);
+ var aaaid = authors[cc.a || ""];
+ var csaid = numbers_add_msg(cfb, 3056, [
+ [],
+ [{
+ type: 2,
+ data: stru8(cc.t || "")
+ }],
+ [{
+ type: 2,
+ data: write_shallow([[], [{
+ type: 1,
+ data: new Uint8Array([
+ 0,
+ 0,
+ 0,
+ 128,
+ 116,
+ 109,
+ 182,
+ 65
+ ])
+ }]])
+ }],
+ [{
+ type: 2,
+ data: write_TSP_Reference(aaaid)
+ }],
+ replies.map(function(r$10) {
+ return {
+ type: 2,
+ data: write_TSP_Reference(r$10)
+ };
+ }),
+ [{
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(i$7)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(0)
+ }]
+ ])
+ }]
+ ], "/Index/Tables/DataList", deps);
+ numbers_iwa_doit(cfb, deps, csaid, function(iwa) {
+ numbers_add_oref(iwa, aaaid);
+ replies.forEach(function(r$10) {
+ return numbers_add_oref(iwa, r$10);
+ });
+ });
+ cmntdata[3].push({
+ type: 2,
+ data: write_shallow([
+ [],
+ [{
+ type: 0,
+ data: write_varint49(i$7)
+ }],
+ [{
+ type: 0,
+ data: write_varint49(1)
+ }],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [],
+ [{
+ type: 2,
+ data: write_TSP_Reference(csaid)
+ }]
+ ])
+ });
+ numbers_add_oref(cmntroot, csaid);
+ numbers_iwa_doit(cfb, deps, 2, function(ai) {
+ var mlist = parse_shallow(ai.messages[0].data);
+ numbers_meta_add_dep(mlist, deps, cmntref, csaid);
+ numbers_meta_add_dep(mlist, deps, csaid, aaaid);
+ if (replies.length) numbers_meta_add_dep(mlist, deps, csaid, replies);
+ ai.messages[0].data = write_shallow(mlist);
+ });
+ });
+ }
+ cmntdata[2][0].data = write_varint49(LUT.cmnt.length + 1);
+ cmntroot.messages[0].data = write_shallow(cmntdata);
+ });
+ }
+ }
+ pb[4][0].data = write_shallow(store);
+ }
+ tmaroot.messages[0].data = write_shallow(pb);
+}
+function fix_opts_func(defaults) {
+ return function fix_opts(opts) {
+ for (var i$7 = 0; i$7 != defaults.length; ++i$7) {
+ var d$5 = defaults[i$7];
+ if (opts[d$5[0]] === undefined) opts[d$5[0]] = d$5[1];
+ if (d$5[2] === "n") opts[d$5[0]] = Number(opts[d$5[0]]);
+ }
+ };
+}
+function fix_read_opts(opts) {
+ fix_opts_func([
+ ["cellNF", false],
+ ["cellHTML", true],
+ ["cellFormula", true],
+ ["cellStyles", false],
+ ["cellText", true],
+ ["cellDates", false],
+ ["sheetStubs", false],
+ [
+ "sheetRows",
+ 0,
+ "n"
+ ],
+ ["bookDeps", false],
+ ["bookSheets", false],
+ ["bookProps", false],
+ ["bookFiles", false],
+ ["bookVBA", false],
+ ["password", ""],
+ ["WTF", false]
+ ])(opts);
+}
+function fix_write_opts(opts) {
+ fix_opts_func([
+ ["cellDates", false],
+ ["bookSST", false],
+ ["bookType", "xlsx"],
+ ["compression", false],
+ ["WTF", false]
+ ])(opts);
+}
+function get_sheet_type(n$9) {
+ if (RELS.WS.indexOf(n$9) > -1) return "sheet";
+ if (RELS.CS && n$9 == RELS.CS) return "chart";
+ if (RELS.DS && n$9 == RELS.DS) return "dialog";
+ if (RELS.MS && n$9 == RELS.MS) return "macro";
+ return n$9 && n$9.length ? n$9 : "sheet";
+}
+function safe_parse_wbrels(wbrels, sheets) {
+ if (!wbrels) return 0;
+ try {
+ wbrels = sheets.map(function pwbr(w$2) {
+ if (!w$2.id) w$2.id = w$2.strRelID;
+ return [
+ w$2.name,
+ wbrels["!id"][w$2.id].Target,
+ get_sheet_type(wbrels["!id"][w$2.id].Type)
+ ];
+ });
+ } catch (e$10) {
+ return null;
+ }
+ return !wbrels || wbrels.length === 0 ? null : wbrels;
+}
+function parse_sheet_legacy_drawing(sheet, type, zip, path$1, idx, opts, wb, comments) {
+ if (!sheet || !sheet["!legdrawel"]) return;
+ var dfile = resolve_path(sheet["!legdrawel"].Target, path$1);
+ var draw = getzipstr(zip, dfile, true);
+ if (draw) parse_vml(utf8read(draw), sheet, comments || []);
+}
+function safe_parse_sheet(zip, path$1, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles$1) {
+ try {
+ sheetRels[sheet] = parse_rels(getzipstr(zip, relsPath, true), path$1);
+ var data = getzipdata(zip, path$1);
+ var _ws;
+ switch (stype) {
+ case "sheet":
+ _ws = parse_ws(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
+ break;
+ case "chart":
+ _ws = parse_cs(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
+ if (!_ws || !_ws["!drawel"]) break;
+ var dfile = resolve_path(_ws["!drawel"].Target, path$1);
+ var drelsp = get_rels_path(dfile);
+ var draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));
+ var chartp = resolve_path(draw, dfile);
+ var crelsp = get_rels_path(chartp);
+ _ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);
+ break;
+ case "macro":
+ _ws = parse_ms(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
+ break;
+ case "dialog":
+ _ws = parse_ds(data, path$1, idx, opts, sheetRels[sheet], wb, themes, styles$1);
+ break;
+ default: throw new Error("Unrecognized sheet type " + stype);
+ }
+ sheets[sheet] = _ws;
+ var comments = [], tcomments = [];
+ if (sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n$9) {
+ var dfile$1 = "";
+ if (sheetRels[sheet][n$9].Type == RELS.CMNT) {
+ dfile$1 = resolve_path(sheetRels[sheet][n$9].Target, path$1);
+ comments = parse_cmnt(getzipdata(zip, dfile$1, true), dfile$1, opts);
+ if (!comments || !comments.length) return;
+ sheet_insert_comments(_ws, comments, false);
+ }
+ if (sheetRels[sheet][n$9].Type == RELS.TCMNT) {
+ dfile$1 = resolve_path(sheetRels[sheet][n$9].Target, path$1);
+ tcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile$1, true), opts));
+ }
+ });
+ if (tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);
+ parse_sheet_legacy_drawing(_ws, stype, zip, path$1, idx, opts, wb, comments);
+ } catch (e$10) {
+ if (opts.WTF) throw e$10;
+ }
+}
+function strip_front_slash(x$2) {
+ return x$2.charAt(0) == "/" ? x$2.slice(1) : x$2;
+}
+function parse_zip(zip, opts) {
+ make_ssf();
+ opts = opts || {};
+ fix_read_opts(opts);
+ if (safegetzipfile(zip, "META-INF/manifest.xml")) return parse_ods(zip, opts);
+ if (safegetzipfile(zip, "objectdata.xml")) return parse_ods(zip, opts);
+ if (safegetzipfile(zip, "Index/Document.iwa")) {
+ if (typeof Uint8Array == "undefined") throw new Error("NUMBERS file parsing requires Uint8Array support");
+ if (typeof parse_numbers_iwa != "undefined") {
+ if (zip.FileIndex) return parse_numbers_iwa(zip, opts);
+ var _zip = CFB.utils.cfb_new();
+ zipentries(zip).forEach(function(e$10) {
+ zip_add_file(_zip, e$10, getzipbin(zip, e$10));
+ });
+ return parse_numbers_iwa(_zip, opts);
+ }
+ throw new Error("Unsupported NUMBERS file");
+ }
+ if (!safegetzipfile(zip, "[Content_Types].xml")) {
+ if (safegetzipfile(zip, "index.xml.gz")) throw new Error("Unsupported NUMBERS 08 file");
+ if (safegetzipfile(zip, "index.xml")) throw new Error("Unsupported NUMBERS 09 file");
+ var index_zip = CFB.find(zip, "Index.zip");
+ if (index_zip) {
+ opts = dup(opts);
+ delete opts.type;
+ if (typeof index_zip.content == "string") opts.type = "binary";
+ if (typeof Bun !== "undefined" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);
+ return readSync(index_zip.content, opts);
+ }
+ throw new Error("Unsupported ZIP file");
+ }
+ var entries = zipentries(zip);
+ var dir = parse_ct(getzipstr(zip, "[Content_Types].xml"));
+ var xlsb = false;
+ var sheets, binname;
+ if (dir.workbooks.length === 0) {
+ binname = "xl/workbook.xml";
+ if (getzipdata(zip, binname, true)) dir.workbooks.push(binname);
+ }
+ if (dir.workbooks.length === 0) {
+ binname = "xl/workbook.bin";
+ if (!getzipdata(zip, binname, true)) throw new Error("Could not find workbook");
+ dir.workbooks.push(binname);
+ xlsb = true;
+ }
+ if (dir.workbooks[0].slice(-3) == "bin") xlsb = true;
+ var themes = {};
+ var styles$1 = {};
+ if (!opts.bookSheets && !opts.bookProps) {
+ strs = [];
+ if (dir.sst) try {
+ strs = parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts);
+ } catch (e$10) {
+ if (opts.WTF) throw e$10;
+ }
+ if (opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\//, ""), true) || "", opts);
+ if (dir.style) styles$1 = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);
+ }
+ dir.links.map(function(link) {
+ try {
+ var rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);
+ return parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);
+ } catch (e$10) {}
+ });
+ var wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);
+ var props = {}, propdata = "";
+ if (dir.coreprops.length) {
+ propdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);
+ if (propdata) props = parse_core_props(propdata);
+ if (dir.extprops.length !== 0) {
+ propdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);
+ if (propdata) parse_ext_props(propdata, props, opts);
+ }
+ }
+ var custprops = {};
+ if (!opts.bookSheets || opts.bookProps) {
+ if (dir.custprops.length !== 0) {
+ propdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);
+ if (propdata) custprops = parse_cust_props(propdata, opts);
+ }
+ }
+ var out = {};
+ if (opts.bookSheets || opts.bookProps) {
+ if (wb.Sheets) sheets = wb.Sheets.map(function pluck(x$2) {
+ return x$2.name;
+ });
+ else if (props.Worksheets && props.SheetNames.length > 0) sheets = props.SheetNames;
+ if (opts.bookProps) {
+ out.Props = props;
+ out.Custprops = custprops;
+ }
+ if (opts.bookSheets && typeof sheets !== "undefined") out.SheetNames = sheets;
+ if (opts.bookSheets ? out.SheetNames : opts.bookProps) return out;
+ }
+ sheets = {};
+ var deps = {};
+ if (opts.bookDeps && dir.calcchain) deps = parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)), dir.calcchain, opts);
+ var i$7 = 0;
+ var sheetRels = {};
+ var path$1, relsPath;
+ {
+ var wbsheets = wb.Sheets;
+ props.Worksheets = wbsheets.length;
+ props.SheetNames = [];
+ for (var j$2 = 0; j$2 != wbsheets.length; ++j$2) {
+ props.SheetNames[j$2] = wbsheets[j$2].name;
+ }
+ }
+ var wbext = xlsb ? "bin" : "xml";
+ var wbrelsi = dir.workbooks[0].lastIndexOf("/");
+ var wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi + 1) + "_rels/" + dir.workbooks[0].slice(wbrelsi + 1) + ".rels").replace(/^\//, "");
+ if (!safegetzipfile(zip, wbrelsfile)) wbrelsfile = "xl/_rels/workbook." + wbext + ".rels";
+ var wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, "s5s"));
+ if ((dir.metadata || []).length >= 1) {
+ opts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])), dir.metadata[0], opts);
+ }
+ if ((dir.people || []).length >= 1) {
+ opts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])), opts);
+ }
+ if (wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);
+ var nmode = getzipdata(zip, "xl/worksheets/sheet.xml", true) ? 1 : 0;
+ wsloop: for (i$7 = 0; i$7 != props.Worksheets; ++i$7) {
+ var stype = "sheet";
+ if (wbrels && wbrels[i$7]) {
+ path$1 = "xl/" + wbrels[i$7][1].replace(/[\/]?xl\//, "");
+ if (!safegetzipfile(zip, path$1)) path$1 = wbrels[i$7][1];
+ if (!safegetzipfile(zip, path$1)) path$1 = wbrelsfile.replace(/_rels\/[\S\s]*$/, "") + wbrels[i$7][1];
+ stype = wbrels[i$7][2];
+ } else {
+ path$1 = "xl/worksheets/sheet" + (i$7 + 1 - nmode) + "." + wbext;
+ path$1 = path$1.replace(/sheet0\./, "sheet.");
+ }
+ relsPath = path$1.replace(/^(.*)(\/)([^\/]*)$/, "$1/_rels/$3.rels");
+ if (opts && opts.sheets != null) switch (typeof opts.sheets) {
+ case "number":
+ if (i$7 != opts.sheets) continue wsloop;
+ break;
+ case "string":
+ if (props.SheetNames[i$7].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop;
+ break;
+ default: if (Array.isArray && Array.isArray(opts.sheets)) {
+ var snjseen = false;
+ for (var snj = 0; snj != opts.sheets.length; ++snj) {
+ if (typeof opts.sheets[snj] == "number" && opts.sheets[snj] == i$7) snjseen = 1;
+ if (typeof opts.sheets[snj] == "string" && opts.sheets[snj].toLowerCase() == props.SheetNames[i$7].toLowerCase()) snjseen = 1;
+ }
+ if (!snjseen) continue wsloop;
+ }
+ }
+ safe_parse_sheet(zip, path$1, relsPath, props.SheetNames[i$7], i$7, sheetRels, sheets, stype, opts, wb, themes, styles$1);
+ }
+ out = {
+ Directory: dir,
+ Workbook: wb,
+ Props: props,
+ Custprops: custprops,
+ Deps: deps,
+ Sheets: sheets,
+ SheetNames: props.SheetNames,
+ Strings: strs,
+ Styles: styles$1,
+ Themes: themes,
+ SSF: dup(table_fmt)
+ };
+ if (opts && opts.bookFiles) {
+ if (zip.files) {
+ out.keys = entries;
+ out.files = zip.files;
+ } else {
+ out.keys = [];
+ out.files = {};
+ zip.FullPaths.forEach(function(p$3, idx) {
+ p$3 = p$3.replace(/^Root Entry[\/]/, "");
+ out.keys.push(p$3);
+ out.files[p$3] = zip.FileIndex[idx];
+ });
+ }
+ }
+ if (opts && opts.bookVBA) {
+ if (dir.vba.length > 0) out.vbaraw = getzipdata(zip, strip_front_slash(dir.vba[0]), true);
+ else if (dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, "xl/vbaProject.bin", true);
+ }
+ out.bookType = xlsb ? "xlsb" : "xlsx";
+ return out;
+}
+function parse_xlsxcfb(cfb, _opts) {
+ var opts = _opts || {};
+ var f$4 = "Workbook", data = CFB.find(cfb, f$4);
+ try {
+ f$4 = "/!DataSpaces/Version";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ parse_DataSpaceVersionInfo(data.content);
+ f$4 = "/!DataSpaces/DataSpaceMap";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ var dsm = parse_DataSpaceMap(data.content);
+ if (dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== "StrongEncryptionDataSpace" || dsm[0].comps[0].v !== "EncryptedPackage") throw new Error("ECMA-376 Encrypted file bad " + f$4);
+ f$4 = "/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ var seds = parse_DataSpaceDefinition(data.content);
+ if (seds.length != 1 || seds[0] != "StrongEncryptionTransform") throw new Error("ECMA-376 Encrypted file bad " + f$4);
+ f$4 = "/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ parse_Primary(data.content);
+ } catch (e$10) {}
+ f$4 = "/EncryptionInfo";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ var einfo = parse_EncryptionInfo(data.content);
+ f$4 = "/EncryptedPackage";
+ data = CFB.find(cfb, f$4);
+ if (!data || !data.content) throw new Error("ECMA-376 Encrypted file missing " + f$4);
+ if (einfo[0] == 4 && typeof decrypt_agile !== "undefined") return decrypt_agile(einfo[1], data.content, opts.password || "", opts);
+ if (einfo[0] == 2 && typeof decrypt_std76 !== "undefined") return decrypt_std76(einfo[1], data.content, opts.password || "", opts);
+ throw new Error("File is password-protected");
+}
+function write_zip_xlsb(wb, opts) {
+ if (wb && !wb.SSF) {
+ wb.SSF = dup(table_fmt);
+ }
+ if (wb && wb.SSF) {
+ make_ssf();
+ SSF_load_table(wb.SSF);
+ opts.revssf = evert_num(wb.SSF);
+ opts.revssf[wb.SSF[65535]] = 0;
+ opts.ssf = wb.SSF;
+ }
+ opts.rels = {};
+ opts.wbrels = {};
+ opts.Strings = [];
+ opts.Strings.Count = 0;
+ opts.Strings.Unique = 0;
+ if (browser_has_Map) opts.revStrings = new Map();
+ else {
+ opts.revStrings = {};
+ opts.revStrings.foo = [];
+ delete opts.revStrings.foo;
+ }
+ var wbext = "bin";
+ var vbafmt = true;
+ var ct = new_ct();
+ fix_write_opts(opts = opts || {});
+ var zip = zip_new();
+ var f$4 = "", rId = 0;
+ opts.cellXfs = [];
+ get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
+ if (!wb.Props) wb.Props = {};
+ f$4 = "docProps/core.xml";
+ zip_add_file(zip, f$4, write_core_props(wb.Props, opts));
+ ct.coreprops.push(f$4);
+ add_rels(opts.rels, 2, f$4, RELS.CORE_PROPS);
+ f$4 = "docProps/app.xml";
+ if (wb.Props && wb.Props.SheetNames) {} else if (!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;
+ else {
+ var _sn = [];
+ for (var _i$1 = 0; _i$1 < wb.SheetNames.length; ++_i$1) if ((wb.Workbook.Sheets[_i$1] || {}).Hidden != 2) _sn.push(wb.SheetNames[_i$1]);
+ wb.Props.SheetNames = _sn;
+ }
+ wb.Props.Worksheets = wb.Props.SheetNames.length;
+ zip_add_file(zip, f$4, write_ext_props(wb.Props, opts));
+ ct.extprops.push(f$4);
+ add_rels(opts.rels, 3, f$4, RELS.EXT_PROPS);
+ if (wb.Custprops !== wb.Props && keys(wb.Custprops || {}).length > 0) {
+ f$4 = "docProps/custom.xml";
+ zip_add_file(zip, f$4, write_cust_props(wb.Custprops, opts));
+ ct.custprops.push(f$4);
+ add_rels(opts.rels, 4, f$4, RELS.CUST_PROPS);
+ }
+ var people = ["SheetJ5"];
+ opts.tcid = 0;
+ for (rId = 1; rId <= wb.SheetNames.length; ++rId) {
+ var wsrels = { "!id": {} };
+ var ws = wb.Sheets[wb.SheetNames[rId - 1]];
+ var _type = (ws || {})["!type"] || "sheet";
+ switch (_type) {
+ case "chart":
+ default:
+ f$4 = "xl/worksheets/sheet" + rId + "." + wbext;
+ zip_add_file(zip, f$4, write_ws_bin(rId - 1, opts, wb, wsrels));
+ ct.sheets.push(f$4);
+ add_rels(opts.wbrels, -1, "worksheets/sheet" + rId + "." + wbext, RELS.WS[0]);
+ }
+ if (ws) {
+ var comments = ws["!comments"];
+ var need_vml = false;
+ var cf = "";
+ if (comments && comments.length > 0) {
+ var needtc = false;
+ comments.forEach(function(carr) {
+ carr[1].forEach(function(c$7) {
+ if (c$7.T == true) needtc = true;
+ });
+ });
+ if (needtc) {
+ cf = "xl/threadedComments/threadedComment" + rId + ".xml";
+ zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
+ ct.threadedcomments.push(cf);
+ add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
+ }
+ cf = "xl/comments" + rId + "." + wbext;
+ zip_add_file(zip, cf, write_comments_bin(comments, opts));
+ ct.comments.push(cf);
+ add_rels(wsrels, -1, "../comments" + rId + "." + wbext, RELS.CMNT);
+ need_vml = true;
+ }
+ if (ws["!legacy"]) {
+ if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
+ }
+ delete ws["!comments"];
+ delete ws["!legacy"];
+ }
+ if (wsrels["!id"].rId1) zip_add_file(zip, get_rels_path(f$4), write_rels(wsrels));
+ }
+ if (opts.Strings != null && opts.Strings.length > 0) {
+ f$4 = "xl/sharedStrings." + wbext;
+ zip_add_file(zip, f$4, write_sst_bin(opts.Strings, opts));
+ ct.strs.push(f$4);
+ add_rels(opts.wbrels, -1, "sharedStrings." + wbext, RELS.SST);
+ }
+ f$4 = "xl/workbook." + wbext;
+ zip_add_file(zip, f$4, write_wb_bin(wb, opts));
+ ct.workbooks.push(f$4);
+ add_rels(opts.rels, 1, f$4, RELS.WB);
+ f$4 = "xl/theme/theme1.xml";
+ var ww = write_theme(wb.Themes, opts);
+ zip_add_file(zip, f$4, ww);
+ ct.themes.push(f$4);
+ add_rels(opts.wbrels, -1, "theme/theme1.xml", RELS.THEME);
+ f$4 = "xl/styles." + wbext;
+ zip_add_file(zip, f$4, write_sty_bin(wb, opts));
+ ct.styles.push(f$4);
+ add_rels(opts.wbrels, -1, "styles." + wbext, RELS.STY);
+ if (wb.vbaraw && vbafmt) {
+ f$4 = "xl/vbaProject.bin";
+ zip_add_file(zip, f$4, wb.vbaraw);
+ ct.vba.push(f$4);
+ add_rels(opts.wbrels, -1, "vbaProject.bin", RELS.VBA);
+ }
+ f$4 = "xl/metadata." + wbext;
+ zip_add_file(zip, f$4, write_xlmeta_bin());
+ ct.metadata.push(f$4);
+ add_rels(opts.wbrels, -1, "metadata." + wbext, RELS.XLMETA);
+ if (people.length > 1) {
+ f$4 = "xl/persons/person.xml";
+ zip_add_file(zip, f$4, write_people_xml(people, opts));
+ ct.people.push(f$4);
+ add_rels(opts.wbrels, -1, "persons/person.xml", RELS.PEOPLE);
+ }
+ zip_add_file(zip, "[Content_Types].xml", write_ct(ct, opts));
+ zip_add_file(zip, "_rels/.rels", write_rels(opts.rels));
+ zip_add_file(zip, "xl/_rels/workbook." + wbext + ".rels", write_rels(opts.wbrels));
+ delete opts.revssf;
+ delete opts.ssf;
+ return zip;
+}
+function write_zip_xlsx(wb, opts) {
+ if (wb && !wb.SSF) {
+ wb.SSF = dup(table_fmt);
+ }
+ if (wb && wb.SSF) {
+ make_ssf();
+ SSF_load_table(wb.SSF);
+ opts.revssf = evert_num(wb.SSF);
+ opts.revssf[wb.SSF[65535]] = 0;
+ opts.ssf = wb.SSF;
+ }
+ opts.rels = {};
+ opts.wbrels = {};
+ opts.Strings = [];
+ opts.Strings.Count = 0;
+ opts.Strings.Unique = 0;
+ if (browser_has_Map) opts.revStrings = new Map();
+ else {
+ opts.revStrings = {};
+ opts.revStrings.foo = [];
+ delete opts.revStrings.foo;
+ }
+ var wbext = "xml";
+ var vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;
+ var ct = new_ct();
+ fix_write_opts(opts = opts || {});
+ var zip = zip_new();
+ var f$4 = "", rId = 0;
+ opts.cellXfs = [];
+ get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
+ if (!wb.Props) wb.Props = {};
+ f$4 = "docProps/core.xml";
+ zip_add_file(zip, f$4, write_core_props(wb.Props, opts));
+ ct.coreprops.push(f$4);
+ add_rels(opts.rels, 2, f$4, RELS.CORE_PROPS);
+ f$4 = "docProps/app.xml";
+ if (wb.Props && wb.Props.SheetNames) {} else if (!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;
+ else {
+ var _sn = [];
+ for (var _i$1 = 0; _i$1 < wb.SheetNames.length; ++_i$1) if ((wb.Workbook.Sheets[_i$1] || {}).Hidden != 2) _sn.push(wb.SheetNames[_i$1]);
+ wb.Props.SheetNames = _sn;
+ }
+ wb.Props.Worksheets = wb.Props.SheetNames.length;
+ zip_add_file(zip, f$4, write_ext_props(wb.Props, opts));
+ ct.extprops.push(f$4);
+ add_rels(opts.rels, 3, f$4, RELS.EXT_PROPS);
+ if (wb.Custprops !== wb.Props && keys(wb.Custprops || {}).length > 0) {
+ f$4 = "docProps/custom.xml";
+ zip_add_file(zip, f$4, write_cust_props(wb.Custprops, opts));
+ ct.custprops.push(f$4);
+ add_rels(opts.rels, 4, f$4, RELS.CUST_PROPS);
+ }
+ var people = ["SheetJ5"];
+ opts.tcid = 0;
+ for (rId = 1; rId <= wb.SheetNames.length; ++rId) {
+ var wsrels = { "!id": {} };
+ var ws = wb.Sheets[wb.SheetNames[rId - 1]];
+ var _type = (ws || {})["!type"] || "sheet";
+ switch (_type) {
+ case "chart":
+ default:
+ f$4 = "xl/worksheets/sheet" + rId + "." + wbext;
+ zip_add_file(zip, f$4, write_ws_xml(rId - 1, opts, wb, wsrels));
+ ct.sheets.push(f$4);
+ add_rels(opts.wbrels, -1, "worksheets/sheet" + rId + "." + wbext, RELS.WS[0]);
+ }
+ if (ws) {
+ var comments = ws["!comments"];
+ var need_vml = false;
+ var cf = "";
+ if (comments && comments.length > 0) {
+ var needtc = false;
+ comments.forEach(function(carr) {
+ carr[1].forEach(function(c$7) {
+ if (c$7.T == true) needtc = true;
+ });
+ });
+ if (needtc) {
+ cf = "xl/threadedComments/threadedComment" + rId + ".xml";
+ zip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));
+ ct.threadedcomments.push(cf);
+ add_rels(wsrels, -1, "../threadedComments/threadedComment" + rId + ".xml", RELS.TCMNT);
+ }
+ cf = "xl/comments" + rId + "." + wbext;
+ zip_add_file(zip, cf, write_comments_xml(comments, opts));
+ ct.comments.push(cf);
+ add_rels(wsrels, -1, "../comments" + rId + "." + wbext, RELS.CMNT);
+ need_vml = true;
+ }
+ if (ws["!legacy"]) {
+ if (need_vml) zip_add_file(zip, "xl/drawings/vmlDrawing" + rId + ".vml", write_vml(rId, ws["!comments"]));
+ }
+ delete ws["!comments"];
+ delete ws["!legacy"];
+ }
+ if (wsrels["!id"].rId1) zip_add_file(zip, get_rels_path(f$4), write_rels(wsrels));
+ }
+ if (opts.Strings != null && opts.Strings.length > 0) {
+ f$4 = "xl/sharedStrings." + wbext;
+ zip_add_file(zip, f$4, write_sst_xml(opts.Strings, opts));
+ ct.strs.push(f$4);
+ add_rels(opts.wbrels, -1, "sharedStrings." + wbext, RELS.SST);
+ }
+ f$4 = "xl/workbook." + wbext;
+ zip_add_file(zip, f$4, write_wb_xml(wb, opts));
+ ct.workbooks.push(f$4);
+ add_rels(opts.rels, 1, f$4, RELS.WB);
+ f$4 = "xl/theme/theme1.xml";
+ zip_add_file(zip, f$4, write_theme(wb.Themes, opts));
+ ct.themes.push(f$4);
+ add_rels(opts.wbrels, -1, "theme/theme1.xml", RELS.THEME);
+ f$4 = "xl/styles." + wbext;
+ zip_add_file(zip, f$4, write_sty_xml(wb, opts));
+ ct.styles.push(f$4);
+ add_rels(opts.wbrels, -1, "styles." + wbext, RELS.STY);
+ if (wb.vbaraw && vbafmt) {
+ f$4 = "xl/vbaProject.bin";
+ zip_add_file(zip, f$4, wb.vbaraw);
+ ct.vba.push(f$4);
+ add_rels(opts.wbrels, -1, "vbaProject.bin", RELS.VBA);
+ }
+ f$4 = "xl/metadata." + wbext;
+ zip_add_file(zip, f$4, write_xlmeta_xml());
+ ct.metadata.push(f$4);
+ add_rels(opts.wbrels, -1, "metadata." + wbext, RELS.XLMETA);
+ if (people.length > 1) {
+ f$4 = "xl/persons/person.xml";
+ zip_add_file(zip, f$4, write_people_xml(people, opts));
+ ct.people.push(f$4);
+ add_rels(opts.wbrels, -1, "persons/person.xml", RELS.PEOPLE);
+ }
+ zip_add_file(zip, "[Content_Types].xml", write_ct(ct, opts));
+ zip_add_file(zip, "_rels/.rels", write_rels(opts.rels));
+ zip_add_file(zip, "xl/_rels/workbook." + wbext + ".rels", write_rels(opts.wbrels));
+ delete opts.revssf;
+ delete opts.ssf;
+ return zip;
+}
+function firstbyte(f$4, o$10) {
+ var x$2 = "";
+ switch ((o$10 || {}).type || "base64") {
+ case "buffer": return [
+ f$4[0],
+ f$4[1],
+ f$4[2],
+ f$4[3],
+ f$4[4],
+ f$4[5],
+ f$4[6],
+ f$4[7]
+ ];
+ case "base64":
+ x$2 = Base64_decode(f$4.slice(0, 12));
+ break;
+ case "binary":
+ x$2 = f$4;
+ break;
+ case "array": return [
+ f$4[0],
+ f$4[1],
+ f$4[2],
+ f$4[3],
+ f$4[4],
+ f$4[5],
+ f$4[6],
+ f$4[7]
+ ];
+ default: throw new Error("Unrecognized type " + (o$10 && o$10.type || "undefined"));
+ }
+ return [
+ x$2.charCodeAt(0),
+ x$2.charCodeAt(1),
+ x$2.charCodeAt(2),
+ x$2.charCodeAt(3),
+ x$2.charCodeAt(4),
+ x$2.charCodeAt(5),
+ x$2.charCodeAt(6),
+ x$2.charCodeAt(7)
+ ];
+}
+function read_cfb(cfb, opts) {
+ if (CFB.find(cfb, "EncryptedPackage")) return parse_xlsxcfb(cfb, opts);
+ return parse_xlscfb(cfb, opts);
+}
+function read_zip(data, opts) {
+ var zip, d$5 = data;
+ var o$10 = opts || {};
+ if (!o$10.type) o$10.type = has_buf && Buffer.isBuffer(data) ? "buffer" : "base64";
+ zip = zip_read(d$5, o$10);
+ return parse_zip(zip, o$10);
+}
+function read_plaintext(data, o$10) {
+ var i$7 = 0;
+ main: while (i$7 < data.length) switch (data.charCodeAt(i$7)) {
+ case 10:
+ case 13:
+ case 32:
+ ++i$7;
+ break;
+ case 60: return parse_xlml(data.slice(i$7), o$10);
+ default: break main;
+ }
+ return PRN.to_workbook(data, o$10);
+}
+function read_plaintext_raw(data, o$10) {
+ var str = "", bytes = firstbyte(data, o$10);
+ switch (o$10.type) {
+ case "base64":
+ str = Base64_decode(data);
+ break;
+ case "binary":
+ str = data;
+ break;
+ case "buffer":
+ str = data.toString("binary");
+ break;
+ case "array":
+ str = cc2str(data);
+ break;
+ default: throw new Error("Unrecognized type " + o$10.type);
+ }
+ if (bytes[0] == 239 && bytes[1] == 187 && bytes[2] == 191) str = utf8read(str);
+ o$10.type = "binary";
+ return read_plaintext(str, o$10);
+}
+function read_utf16(data, o$10) {
+ var d$5 = data;
+ if (o$10.type == "base64") d$5 = Base64_decode(d$5);
+ if (typeof ArrayBuffer !== "undefined" && data instanceof ArrayBuffer) d$5 = new Uint8Array(data);
+ d$5 = typeof $cptable !== "undefined" ? $cptable.utils.decode(1200, d$5.slice(2), "str") : has_buf && Buffer.isBuffer(data) ? data.slice(2).toString("utf16le") : typeof Uint8Array !== "undefined" && d$5 instanceof Uint8Array ? typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le").decode(d$5.slice(2)) : utf16lereadu(d$5.slice(2)) : utf16leread(d$5.slice(2));
+ o$10.type = "binary";
+ return read_plaintext(d$5, o$10);
+}
+function bstrify(data) {
+ return !data.match(/[^\x00-\x7F]/) ? data : utf8write(data);
+}
+function read_prn(data, d$5, o$10, str) {
+ if (str) {
+ o$10.type = "string";
+ return PRN.to_workbook(data, o$10);
+ }
+ return PRN.to_workbook(d$5, o$10);
+}
+function readSync(data, opts) {
+ reset_cp();
+ var o$10 = opts || {};
+ if (o$10.codepage && typeof $cptable === "undefined") console.error("Codepage tables are not loaded. Non-ASCII characters may not give expected results");
+ if (typeof ArrayBuffer !== "undefined" && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o$10 = dup(o$10), o$10.type = "array", o$10));
+ if (typeof Int8Array !== "undefined" && data instanceof Int8Array) return readSync(new Uint8Array(data.buffer, data.byteOffset, data.length), o$10);
+ if (typeof Uint8Array !== "undefined" && data instanceof Uint8Array && !o$10.type) o$10.type = typeof Deno !== "undefined" ? "buffer" : "array";
+ var d$5 = data, n$9 = [
+ 0,
+ 0,
+ 0,
+ 0
+ ], str = false;
+ if (o$10.cellStyles) {
+ o$10.cellNF = true;
+ o$10.sheetStubs = true;
+ }
+ _ssfopts = {};
+ if (o$10.dateNF) _ssfopts.dateNF = o$10.dateNF;
+ if (!o$10.type) o$10.type = has_buf && Buffer.isBuffer(data) ? "buffer" : "base64";
+ if (o$10.type == "file") {
+ o$10.type = has_buf ? "buffer" : "binary";
+ d$5 = read_binary(data);
+ if (typeof Uint8Array !== "undefined" && !has_buf) o$10.type = "array";
+ }
+ if (o$10.type == "string") {
+ str = true;
+ o$10.type = "binary";
+ o$10.codepage = 65001;
+ d$5 = bstrify(data);
+ }
+ if (o$10.type == "array" && typeof Uint8Array !== "undefined" && data instanceof Uint8Array && typeof ArrayBuffer !== "undefined") {
+ var ab = new ArrayBuffer(3), vu = new Uint8Array(ab);
+ vu.foo = "bar";
+ if (!vu.foo) {
+ o$10 = dup(o$10);
+ o$10.type = "array";
+ return readSync(ab2a(d$5), o$10);
+ }
+ }
+ switch ((n$9 = firstbyte(d$5, o$10))[0]) {
+ case 208:
+ if (n$9[1] === 207 && n$9[2] === 17 && n$9[3] === 224 && n$9[4] === 161 && n$9[5] === 177 && n$9[6] === 26 && n$9[7] === 225) return read_cfb(CFB.read(d$5, o$10), o$10);
+ break;
+ case 9:
+ if (n$9[1] <= 8) return parse_xlscfb(d$5, o$10);
+ break;
+ case 60: return parse_xlml(d$5, o$10);
+ case 73:
+ if (n$9[1] === 73 && n$9[2] === 42 && n$9[3] === 0) throw new Error("TIFF Image File is not a spreadsheet");
+ if (n$9[1] === 68) return read_wb_ID(d$5, o$10);
+ break;
+ case 84:
+ if (n$9[1] === 65 && n$9[2] === 66 && n$9[3] === 76) return DIF.to_workbook(d$5, o$10);
+ break;
+ case 80: return n$9[1] === 75 && n$9[2] < 9 && n$9[3] < 9 ? read_zip(d$5, o$10) : read_prn(data, d$5, o$10, str);
+ case 239: return n$9[3] === 60 ? parse_xlml(d$5, o$10) : read_prn(data, d$5, o$10, str);
+ case 255:
+ if (n$9[1] === 254) {
+ return read_utf16(d$5, o$10);
+ } else if (n$9[1] === 0 && n$9[2] === 2 && n$9[3] === 0) return WK_.to_workbook(d$5, o$10);
+ break;
+ case 0:
+ if (n$9[1] === 0) {
+ if (n$9[2] >= 2 && n$9[3] === 0) return WK_.to_workbook(d$5, o$10);
+ if (n$9[2] === 0 && (n$9[3] === 8 || n$9[3] === 9)) return WK_.to_workbook(d$5, o$10);
+ }
+ break;
+ case 3:
+ case 131:
+ case 139:
+ case 140: return DBF.to_workbook(d$5, o$10);
+ case 123:
+ if (n$9[1] === 92 && n$9[2] === 114 && n$9[3] === 116) return rtf_to_workbook(d$5, o$10);
+ break;
+ case 10:
+ case 13:
+ case 32: return read_plaintext_raw(d$5, o$10);
+ case 137:
+ if (n$9[1] === 80 && n$9[2] === 78 && n$9[3] === 71) throw new Error("PNG Image File is not a spreadsheet");
+ break;
+ case 8:
+ if (n$9[1] === 231) throw new Error("Unsupported Multiplan 1.x file!");
+ break;
+ case 12:
+ if (n$9[1] === 236) throw new Error("Unsupported Multiplan 2.x file!");
+ if (n$9[1] === 237) throw new Error("Unsupported Multiplan 3.x file!");
+ break;
+ }
+ if (DBF_SUPPORTED_VERSIONS.indexOf(n$9[0]) > -1 && n$9[2] <= 12 && n$9[3] <= 31) return DBF.to_workbook(d$5, o$10);
+ return read_prn(data, d$5, o$10, str);
+}
+function readFileSync(filename, opts) {
+ var o$10 = opts || {};
+ o$10.type = "file";
+ return readSync(filename, o$10);
+}
+function write_cfb_ctr(cfb, o$10) {
+ switch (o$10.type) {
+ case "base64":
+ case "binary": break;
+ case "buffer":
+ case "array":
+ o$10.type = "";
+ break;
+ case "file": return write_dl(o$10.file, CFB.write(cfb, { type: has_buf ? "buffer" : "" }));
+ case "string": throw new Error("'string' output type invalid for '" + o$10.bookType + "' files");
+ default: throw new Error("Unrecognized type " + o$10.type);
+ }
+ return CFB.write(cfb, o$10);
+}
+function write_zip(wb, opts) {
+ switch (opts.bookType) {
+ case "ods": return write_ods(wb, opts);
+ case "numbers": return write_numbers_iwa(wb, opts);
+ case "xlsb": return write_zip_xlsb(wb, opts);
+ default: return write_zip_xlsx(wb, opts);
+ }
+}
+function write_zip_type(wb, opts) {
+ var o$10 = dup(opts || {});
+ var z$2 = write_zip(wb, o$10);
+ return write_zip_denouement(z$2, o$10);
+}
+function write_zip_typeXLSX(wb, opts) {
+ var o$10 = dup(opts || {});
+ var z$2 = write_zip_xlsx(wb, o$10);
+ return write_zip_denouement(z$2, o$10);
+}
+function write_zip_denouement(z$2, o$10) {
+ var oopts = {};
+ var ftype = has_buf ? "nodebuffer" : typeof Uint8Array !== "undefined" ? "array" : "string";
+ if (o$10.compression) oopts.compression = "DEFLATE";
+ if (o$10.password) oopts.type = ftype;
+ else switch (o$10.type) {
+ case "base64":
+ oopts.type = "base64";
+ break;
+ case "binary":
+ oopts.type = "string";
+ break;
+ case "string": throw new Error("'string' output type invalid for '" + o$10.bookType + "' files");
+ case "buffer":
+ case "file":
+ oopts.type = ftype;
+ break;
+ default: throw new Error("Unrecognized type " + o$10.type);
+ }
+ var out = z$2.FullPaths ? CFB.write(z$2, {
+ fileType: "zip",
+ type: {
+ "nodebuffer": "buffer",
+ "string": "binary"
+ }[oopts.type] || oopts.type,
+ compression: !!o$10.compression
+ }) : z$2.generate(oopts);
+ if (typeof Deno !== "undefined") {
+ if (typeof out == "string") {
+ if (o$10.type == "binary" || o$10.type == "base64") return out;
+ out = new Uint8Array(s2ab(out));
+ }
+ }
+ if (o$10.password && typeof encrypt_agile !== "undefined") return write_cfb_ctr(encrypt_agile(out, o$10.password), o$10);
+ if (o$10.type === "file") return write_dl(o$10.file, out);
+ return o$10.type == "string" ? utf8read(out) : out;
+}
+function write_cfb_type(wb, opts) {
+ var o$10 = opts || {};
+ var cfb = write_xlscfb(wb, o$10);
+ return write_cfb_ctr(cfb, o$10);
+}
+function write_string_type(out, opts, bom) {
+ if (!bom) bom = "";
+ var o$10 = bom + out;
+ switch (opts.type) {
+ case "base64": return Base64_encode(utf8write(o$10));
+ case "binary": return utf8write(o$10);
+ case "string": return out;
+ case "file": return write_dl(opts.file, o$10, "utf8");
+ case "buffer": {
+ if (has_buf) return Buffer_from(o$10, "utf8");
+ else if (typeof TextEncoder !== "undefined") return new TextEncoder().encode(o$10);
+ else return write_string_type(o$10, { type: "binary" }).split("").map(function(c$7) {
+ return c$7.charCodeAt(0);
+ });
+ }
+ }
+ throw new Error("Unrecognized type " + opts.type);
+}
+function write_stxt_type(out, opts) {
+ switch (opts.type) {
+ case "base64": return Base64_encode_pass(out);
+ case "binary": return out;
+ case "string": return out;
+ case "file": return write_dl(opts.file, out, "binary");
+ case "buffer": {
+ if (has_buf) return Buffer_from(out, "binary");
+ else return out.split("").map(function(c$7) {
+ return c$7.charCodeAt(0);
+ });
+ }
+ }
+ throw new Error("Unrecognized type " + opts.type);
+}
+function write_binary_type(out, opts) {
+ switch (opts.type) {
+ case "string":
+ case "base64":
+ case "binary":
+ var bstr = "";
+ for (var i$7 = 0; i$7 < out.length; ++i$7) bstr += String.fromCharCode(out[i$7]);
+ return opts.type == "base64" ? Base64_encode(bstr) : opts.type == "string" ? utf8read(bstr) : bstr;
+ case "file": return write_dl(opts.file, out);
+ case "buffer": return out;
+ default: throw new Error("Unrecognized type " + opts.type);
+ }
+}
+function writeSyncXLSX(wb, opts) {
+ reset_cp();
+ check_wb(wb);
+ var o$10 = dup(opts || {});
+ if (o$10.cellStyles) {
+ o$10.cellNF = true;
+ o$10.sheetStubs = true;
+ }
+ if (o$10.type == "array") {
+ o$10.type = "binary";
+ var out = writeSyncXLSX(wb, o$10);
+ o$10.type = "array";
+ return s2ab(out);
+ }
+ return write_zip_typeXLSX(wb, o$10);
+}
+function writeSync(wb, opts) {
+ reset_cp();
+ check_wb(wb);
+ var o$10 = dup(opts || {});
+ if (o$10.cellStyles) {
+ o$10.cellNF = true;
+ o$10.sheetStubs = true;
+ }
+ if (o$10.type == "array") {
+ o$10.type = "binary";
+ var out = writeSync(wb, o$10);
+ o$10.type = "array";
+ return s2ab(out);
+ }
+ var idx = 0;
+ if (o$10.sheet) {
+ if (typeof o$10.sheet == "number") idx = o$10.sheet;
+ else idx = wb.SheetNames.indexOf(o$10.sheet);
+ if (!wb.SheetNames[idx]) throw new Error("Sheet not found: " + o$10.sheet + " : " + typeof o$10.sheet);
+ }
+ switch (o$10.bookType || "xlsb") {
+ case "xml":
+ case "xlml": return write_string_type(write_xlml(wb, o$10), o$10);
+ case "slk":
+ case "sylk": return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10, wb), o$10);
+ case "htm":
+ case "html": return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "txt": return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "csv": return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o$10), o$10, "");
+ case "dif": return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "dbf": return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "prn": return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "rtf": return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "eth": return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "fods": return write_string_type(write_ods(wb, o$10), o$10);
+ case "wk1": return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o$10), o$10);
+ case "wk3": return write_binary_type(WK_.book_to_wk3(wb, o$10), o$10);
+ case "biff2": if (!o$10.biff) o$10.biff = 2;
+ case "biff3": if (!o$10.biff) o$10.biff = 3;
+ case "biff4":
+ if (!o$10.biff) o$10.biff = 4;
+ return write_binary_type(write_biff_buf(wb, o$10), o$10);
+ case "biff5": if (!o$10.biff) o$10.biff = 5;
+ case "biff8":
+ case "xla":
+ case "xls":
+ if (!o$10.biff) o$10.biff = 8;
+ return write_cfb_type(wb, o$10);
+ case "xlsx":
+ case "xlsm":
+ case "xlam":
+ case "xlsb":
+ case "numbers":
+ case "ods": return write_zip_type(wb, o$10);
+ default: throw new Error("Unrecognized bookType |" + o$10.bookType + "|");
+ }
+}
+function resolve_book_type(o$10) {
+ if (o$10.bookType) return;
+ var _BT = {
+ "xls": "biff8",
+ "htm": "html",
+ "slk": "sylk",
+ "socialcalc": "eth",
+ "Sh33tJS": "WTF"
+ };
+ var ext = o$10.file.slice(o$10.file.lastIndexOf(".")).toLowerCase();
+ if (ext.match(/^\.[a-z]+$/)) o$10.bookType = ext.slice(1);
+ o$10.bookType = _BT[o$10.bookType] || o$10.bookType;
+}
+function writeFileSync(wb, filename, opts) {
+ var o$10 = opts || {};
+ o$10.type = "file";
+ o$10.file = filename;
+ resolve_book_type(o$10);
+ return writeSync(wb, o$10);
+}
+function writeFileSyncXLSX(wb, filename, opts) {
+ var o$10 = opts || {};
+ o$10.type = "file";
+ o$10.file = filename;
+ resolve_book_type(o$10);
+ return writeSyncXLSX(wb, o$10);
+}
+function writeFileAsync(filename, wb, opts, cb) {
+ var o$10 = opts || {};
+ o$10.type = "file";
+ o$10.file = filename;
+ resolve_book_type(o$10);
+ o$10.type = "buffer";
+ var _cb = cb;
+ if (!(_cb instanceof Function)) _cb = opts;
+ return _fs.writeFile(filename, writeSync(wb, o$10), _cb);
+}
+function make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10) {
+ var rr = encode_row(R$1);
+ var defval = o$10.defval, raw = o$10.raw || !Object.prototype.hasOwnProperty.call(o$10, "raw");
+ var isempty = true, dense = sheet["!data"] != null;
+ var row = header === 1 ? [] : {};
+ if (header !== 1) {
+ if (Object.defineProperty) try {
+ Object.defineProperty(row, "__rowNum__", {
+ value: R$1,
+ enumerable: false
+ });
+ } catch (e$10) {
+ row.__rowNum__ = R$1;
+ }
+ else row.__rowNum__ = R$1;
+ }
+ if (!dense || sheet["!data"][R$1]) for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ var val$1 = dense ? (sheet["!data"][R$1] || [])[C$2] : sheet[cols[C$2] + rr];
+ if (val$1 == null || val$1.t === undefined) {
+ if (defval === undefined) continue;
+ if (hdr[C$2] != null) {
+ row[hdr[C$2]] = defval;
+ }
+ continue;
+ }
+ var v$3 = val$1.v;
+ switch (val$1.t) {
+ case "z":
+ if (v$3 == null) break;
+ continue;
+ case "e":
+ v$3 = v$3 == 0 ? null : void 0;
+ break;
+ case "s":
+ case "b":
+ case "n":
+ if (!val$1.z || !fmt_is_date(val$1.z)) break;
+ v$3 = numdate(v$3);
+ if (typeof v$3 == "number") break;
+ case "d":
+ if (!(o$10 && (o$10.UTC || o$10.raw === false))) v$3 = utc_to_local(new Date(v$3));
+ break;
+ default: throw new Error("unrecognized type " + val$1.t);
+ }
+ if (hdr[C$2] != null) {
+ if (v$3 == null) {
+ if (val$1.t == "e" && v$3 === null) row[hdr[C$2]] = null;
+ else if (defval !== undefined) row[hdr[C$2]] = defval;
+ else if (raw && v$3 === null) row[hdr[C$2]] = null;
+ else continue;
+ } else {
+ row[hdr[C$2]] = (val$1.t === "n" && typeof o$10.rawNumbers === "boolean" ? o$10.rawNumbers : raw) ? v$3 : format_cell(val$1, v$3, o$10);
+ }
+ if (v$3 != null) isempty = false;
+ }
+ }
+ return {
+ row,
+ isempty
+ };
+}
+function sheet_to_json(sheet, opts) {
+ if (sheet == null || sheet["!ref"] == null) return [];
+ var val$1 = {
+ t: "n",
+ v: 0
+ }, header = 0, offset = 1, hdr = [], v$3 = 0, vv = "";
+ var r$10 = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var o$10 = opts || {};
+ var range = o$10.range != null ? o$10.range : sheet["!ref"];
+ if (o$10.header === 1) header = 1;
+ else if (o$10.header === "A") header = 2;
+ else if (Array.isArray(o$10.header)) header = 3;
+ else if (o$10.header == null) header = 0;
+ switch (typeof range) {
+ case "string":
+ r$10 = safe_decode_range(range);
+ break;
+ case "number":
+ r$10 = safe_decode_range(sheet["!ref"]);
+ r$10.s.r = range;
+ break;
+ default: r$10 = range;
+ }
+ if (header > 0) offset = 0;
+ var rr = encode_row(r$10.s.r);
+ var cols = [];
+ var out = [];
+ var outi = 0, counter = 0;
+ var dense = sheet["!data"] != null;
+ var R$1 = r$10.s.r, C$2 = 0;
+ var header_cnt = {};
+ if (dense && !sheet["!data"][R$1]) sheet["!data"][R$1] = [];
+ var colinfo = o$10.skipHidden && sheet["!cols"] || [];
+ var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ if ((colinfo[C$2] || {}).hidden) continue;
+ cols[C$2] = encode_col(C$2);
+ val$1 = dense ? sheet["!data"][R$1][C$2] : sheet[cols[C$2] + rr];
+ switch (header) {
+ case 1:
+ hdr[C$2] = C$2 - r$10.s.c;
+ break;
+ case 2:
+ hdr[C$2] = cols[C$2];
+ break;
+ case 3:
+ hdr[C$2] = o$10.header[C$2 - r$10.s.c];
+ break;
+ default:
+ if (val$1 == null) val$1 = {
+ w: "__EMPTY",
+ t: "s"
+ };
+ vv = v$3 = format_cell(val$1, null, o$10);
+ counter = header_cnt[v$3] || 0;
+ if (!counter) header_cnt[v$3] = 1;
+ else {
+ do {
+ vv = v$3 + "_" + counter++;
+ } while (header_cnt[vv]);
+ header_cnt[v$3] = counter;
+ header_cnt[vv] = 1;
+ }
+ hdr[C$2] = vv;
+ }
+ }
+ for (R$1 = r$10.s.r + offset; R$1 <= r$10.e.r; ++R$1) {
+ if ((rowinfo[R$1] || {}).hidden) continue;
+ var row = make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10);
+ if (row.isempty === false || (header === 1 ? o$10.blankrows !== false : !!o$10.blankrows)) out[outi++] = row.row;
+ }
+ out.length = outi;
+ return out;
+}
+function make_csv_row(sheet, r$10, R$1, cols, fs, rs, FS, w$2, o$10) {
+ var isempty = true;
+ var row = [], txt = "", rr = encode_row(R$1);
+ var dense = sheet["!data"] != null;
+ var datarow = dense && sheet["!data"][R$1] || [];
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ if (!cols[C$2]) continue;
+ var val$1 = dense ? datarow[C$2] : sheet[cols[C$2] + rr];
+ if (val$1 == null) txt = "";
+ else if (val$1.v != null) {
+ isempty = false;
+ txt = "" + (o$10.rawNumbers && val$1.t == "n" ? val$1.v : format_cell(val$1, null, o$10));
+ for (var i$7 = 0, cc = 0; i$7 !== txt.length; ++i$7) if ((cc = txt.charCodeAt(i$7)) === fs || cc === rs || cc === 34 || o$10.forceQuotes) {
+ txt = "\"" + txt.replace(qreg, "\"\"") + "\"";
+ break;
+ }
+ if (txt == "ID" && w$2 == 0 && row.length == 0) txt = "\"ID\"";
+ } else if (val$1.f != null && !val$1.F) {
+ isempty = false;
+ txt = "=" + val$1.f;
+ if (txt.indexOf(",") >= 0) txt = "\"" + txt.replace(qreg, "\"\"") + "\"";
+ } else txt = "";
+ row.push(txt);
+ }
+ if (o$10.strip) while (row[row.length - 1] === "") --row.length;
+ if (o$10.blankrows === false && isempty) return null;
+ return row.join(FS);
+}
+function sheet_to_csv(sheet, opts) {
+ var out = [];
+ var o$10 = opts == null ? {} : opts;
+ if (sheet == null || sheet["!ref"] == null) return "";
+ var r$10 = safe_decode_range(sheet["!ref"]);
+ var FS = o$10.FS !== undefined ? o$10.FS : ",", fs = FS.charCodeAt(0);
+ var RS = o$10.RS !== undefined ? o$10.RS : "\n", rs = RS.charCodeAt(0);
+ var row = "", cols = [];
+ var colinfo = o$10.skipHidden && sheet["!cols"] || [];
+ var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) if (!(colinfo[C$2] || {}).hidden) cols[C$2] = encode_col(C$2);
+ var w$2 = 0;
+ for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ if ((rowinfo[R$1] || {}).hidden) continue;
+ row = make_csv_row(sheet, r$10, R$1, cols, fs, rs, FS, w$2, o$10);
+ if (row == null) {
+ continue;
+ }
+ if (row || o$10.blankrows !== false) out.push((w$2++ ? RS : "") + row);
+ }
+ return out.join("");
+}
+function sheet_to_txt(sheet, opts) {
+ if (!opts) opts = {};
+ opts.FS = " ";
+ opts.RS = "\n";
+ var s$5 = sheet_to_csv(sheet, opts);
+ if (typeof $cptable == "undefined" || opts.type == "string") return s$5;
+ var o$10 = $cptable.utils.encode(1200, s$5, "str");
+ return String.fromCharCode(255) + String.fromCharCode(254) + o$10;
+}
+function sheet_to_formulae(sheet, opts) {
+ var y$3 = "", x$2, val$1 = "";
+ if (sheet == null || sheet["!ref"] == null) return [];
+ var r$10 = safe_decode_range(sheet["!ref"]), rr = "", cols = [], C$2;
+ var cmds = [];
+ var dense = sheet["!data"] != null;
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) cols[C$2] = encode_col(C$2);
+ for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ rr = encode_row(R$1);
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ y$3 = cols[C$2] + rr;
+ x$2 = dense ? (sheet["!data"][R$1] || [])[C$2] : sheet[y$3];
+ val$1 = "";
+ if (x$2 === undefined) continue;
+ else if (x$2.F != null) {
+ y$3 = x$2.F;
+ if (!x$2.f) continue;
+ val$1 = x$2.f;
+ if (y$3.indexOf(":") == -1) y$3 = y$3 + ":" + y$3;
+ }
+ if (x$2.f != null) val$1 = x$2.f;
+ else if (opts && opts.values === false) continue;
+ else if (x$2.t == "z") continue;
+ else if (x$2.t == "n" && x$2.v != null) val$1 = "" + x$2.v;
+ else if (x$2.t == "b") val$1 = x$2.v ? "TRUE" : "FALSE";
+ else if (x$2.w !== undefined) val$1 = "'" + x$2.w;
+ else if (x$2.v === undefined) continue;
+ else if (x$2.t == "s") val$1 = "'" + x$2.v;
+ else val$1 = "" + x$2.v;
+ cmds[cmds.length] = y$3 + "=" + val$1;
+ }
+ }
+ return cmds;
+}
+function sheet_add_json(_ws, js, opts) {
+ var o$10 = opts || {};
+ var dense = _ws ? _ws["!data"] != null : o$10.dense;
+ if (DENSE != null && dense == null) dense = DENSE;
+ var offset = +!o$10.skipHeader;
+ var ws = _ws || {};
+ if (!_ws && dense) ws["!data"] = [];
+ var _R = 0, _C = 0;
+ if (ws && o$10.origin != null) {
+ if (typeof o$10.origin == "number") _R = o$10.origin;
+ else {
+ var _origin = typeof o$10.origin == "string" ? decode_cell(o$10.origin) : o$10.origin;
+ _R = _origin.r;
+ _C = _origin.c;
+ }
+ }
+ var range = {
+ s: {
+ c: 0,
+ r: 0
+ },
+ e: {
+ c: _C,
+ r: _R + js.length - 1 + offset
+ }
+ };
+ if (ws["!ref"]) {
+ var _range = safe_decode_range(ws["!ref"]);
+ range.e.c = Math.max(range.e.c, _range.e.c);
+ range.e.r = Math.max(range.e.r, _range.e.r);
+ if (_R == -1) {
+ _R = _range.e.r + 1;
+ range.e.r = _R + js.length - 1 + offset;
+ }
+ } else {
+ if (_R == -1) {
+ _R = 0;
+ range.e.r = js.length - 1 + offset;
+ }
+ }
+ var hdr = o$10.header || [], C$2 = 0;
+ var ROW = [];
+ js.forEach(function(JS, R$1) {
+ if (dense && !ws["!data"][_R + R$1 + offset]) ws["!data"][_R + R$1 + offset] = [];
+ if (dense) ROW = ws["!data"][_R + R$1 + offset];
+ keys(JS).forEach(function(k$2) {
+ if ((C$2 = hdr.indexOf(k$2)) == -1) hdr[C$2 = hdr.length] = k$2;
+ var v$3 = JS[k$2];
+ var t$6 = "z";
+ var z$2 = "";
+ var ref = dense ? "" : encode_col(_C + C$2) + encode_row(_R + R$1 + offset);
+ var cell = dense ? ROW[_C + C$2] : ws[ref];
+ if (v$3 && typeof v$3 === "object" && !(v$3 instanceof Date)) {
+ if (dense) ROW[_C + C$2] = v$3;
+ else ws[ref] = v$3;
+ } else {
+ if (typeof v$3 == "number") t$6 = "n";
+ else if (typeof v$3 == "boolean") t$6 = "b";
+ else if (typeof v$3 == "string") t$6 = "s";
+ else if (v$3 instanceof Date) {
+ t$6 = "d";
+ if (!o$10.UTC) v$3 = local_to_utc(v$3);
+ if (!o$10.cellDates) {
+ t$6 = "n";
+ v$3 = datenum(v$3);
+ }
+ z$2 = cell != null && cell.z && fmt_is_date(cell.z) ? cell.z : o$10.dateNF || table_fmt[14];
+ } else if (v$3 === null && o$10.nullError) {
+ t$6 = "e";
+ v$3 = 0;
+ }
+ if (!cell) {
+ if (!dense) ws[ref] = cell = {
+ t: t$6,
+ v: v$3
+ };
+ else ROW[_C + C$2] = cell = {
+ t: t$6,
+ v: v$3
+ };
+ } else {
+ cell.t = t$6;
+ cell.v = v$3;
+ delete cell.w;
+ delete cell.R;
+ if (z$2) cell.z = z$2;
+ }
+ if (z$2) cell.z = z$2;
+ }
+ });
+ });
+ range.e.c = Math.max(range.e.c, _C + hdr.length - 1);
+ var __R = encode_row(_R);
+ if (dense && !ws["!data"][_R]) ws["!data"][_R] = [];
+ if (offset) for (C$2 = 0; C$2 < hdr.length; ++C$2) {
+ if (dense) ws["!data"][_R][C$2 + _C] = {
+ t: "s",
+ v: hdr[C$2]
+ };
+ else ws[encode_col(C$2 + _C) + __R] = {
+ t: "s",
+ v: hdr[C$2]
+ };
+ }
+ ws["!ref"] = encode_range(range);
+ return ws;
+}
+function json_to_sheet(js, opts) {
+ return sheet_add_json(null, js, opts);
+}
+function ws_get_cell_stub(ws, R$1, C$2) {
+ if (typeof R$1 == "string") {
+ if (ws["!data"] != null) {
+ var RC = decode_cell(R$1);
+ if (!ws["!data"][RC.r]) ws["!data"][RC.r] = [];
+ return ws["!data"][RC.r][RC.c] || (ws["!data"][RC.r][RC.c] = { t: "z" });
+ }
+ return ws[R$1] || (ws[R$1] = { t: "z" });
+ }
+ if (typeof R$1 != "number") return ws_get_cell_stub(ws, encode_cell(R$1));
+ return ws_get_cell_stub(ws, encode_col(C$2 || 0) + encode_row(R$1));
+}
+function wb_sheet_idx(wb, sh) {
+ if (typeof sh == "number") {
+ if (sh >= 0 && wb.SheetNames.length > sh) return sh;
+ throw new Error("Cannot find sheet # " + sh);
+ } else if (typeof sh == "string") {
+ var idx = wb.SheetNames.indexOf(sh);
+ if (idx > -1) return idx;
+ throw new Error("Cannot find sheet name |" + sh + "|");
+ } else throw new Error("Cannot find sheet |" + sh + "|");
+}
+function book_new(ws, wsname) {
+ var wb = {
+ SheetNames: [],
+ Sheets: {}
+ };
+ if (ws) book_append_sheet(wb, ws, wsname || "Sheet1");
+ return wb;
+}
+function book_append_sheet(wb, ws, name, roll) {
+ var i$7 = 1;
+ if (!name) {
+ for (; i$7 <= 65535; ++i$7, name = undefined) if (wb.SheetNames.indexOf(name = "Sheet" + i$7) == -1) break;
+ }
+ if (!name || wb.SheetNames.length >= 65535) throw new Error("Too many worksheets");
+ if (roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {
+ var m$3 = name.match(/\d+$/);
+ i$7 = m$3 && +m$3[0] || 0;
+ var root = m$3 && name.slice(0, m$3.index) || name;
+ for (++i$7; i$7 <= 65535; ++i$7) if (wb.SheetNames.indexOf(name = root + i$7) == -1) break;
+ }
+ check_ws_name(name);
+ if (wb.SheetNames.indexOf(name) >= 0) throw new Error("Worksheet with name |" + name + "| already exists!");
+ wb.SheetNames.push(name);
+ wb.Sheets[name] = ws;
+ return name;
+}
+function book_set_sheet_visibility(wb, sh, vis) {
+ if (!wb.Workbook) wb.Workbook = {};
+ if (!wb.Workbook.Sheets) wb.Workbook.Sheets = [];
+ var idx = wb_sheet_idx(wb, sh);
+ if (!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};
+ switch (vis) {
+ case 0:
+ case 1:
+ case 2: break;
+ default: throw new Error("Bad sheet visibility setting " + vis);
+ }
+ wb.Workbook.Sheets[idx].Hidden = vis;
+}
+function cell_set_number_format(cell, fmt) {
+ cell.z = fmt;
+ return cell;
+}
+function cell_set_hyperlink(cell, target, tooltip) {
+ if (!target) {
+ delete cell.l;
+ } else {
+ cell.l = { Target: target };
+ if (tooltip) cell.l.Tooltip = tooltip;
+ }
+ return cell;
+}
+function cell_set_internal_link(cell, range, tooltip) {
+ return cell_set_hyperlink(cell, "#" + range, tooltip);
+}
+function cell_add_comment(cell, text$2, author) {
+ if (!cell.c) cell.c = [];
+ cell.c.push({
+ t: text$2,
+ a: author || "SheetJS"
+ });
+}
+function sheet_set_array_formula(ws, range, formula, dynamic) {
+ var rng = typeof range != "string" ? range : safe_decode_range(range);
+ var rngstr = typeof range == "string" ? range : encode_range(range);
+ for (var R$1 = rng.s.r; R$1 <= rng.e.r; ++R$1) for (var C$2 = rng.s.c; C$2 <= rng.e.c; ++C$2) {
+ var cell = ws_get_cell_stub(ws, R$1, C$2);
+ cell.t = "n";
+ cell.F = rngstr;
+ delete cell.v;
+ if (R$1 == rng.s.r && C$2 == rng.s.c) {
+ cell.f = formula;
+ if (dynamic) cell.D = true;
+ }
+ }
+ var wsr = decode_range(ws["!ref"]);
+ if (wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;
+ if (wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;
+ if (wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;
+ if (wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;
+ ws["!ref"] = encode_range(wsr);
+ return ws;
+}
+function set_readable(R$1) {
+ _Readable = R$1;
+}
+function write_csv_stream(sheet, opts) {
+ var stream = _Readable();
+ var o$10 = opts == null ? {} : opts;
+ if (sheet == null || sheet["!ref"] == null) {
+ stream.push(null);
+ return stream;
+ }
+ var r$10 = safe_decode_range(sheet["!ref"]);
+ var FS = o$10.FS !== undefined ? o$10.FS : ",", fs = FS.charCodeAt(0);
+ var RS = o$10.RS !== undefined ? o$10.RS : "\n", rs = RS.charCodeAt(0);
+ var row = "", cols = [];
+ var colinfo = o$10.skipHidden && sheet["!cols"] || [];
+ var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) if (!(colinfo[C$2] || {}).hidden) cols[C$2] = encode_col(C$2);
+ var R$1 = r$10.s.r;
+ var BOM = false, w$2 = 0;
+ stream._read = function() {
+ if (!BOM) {
+ BOM = true;
+ return stream.push("");
+ }
+ while (R$1 <= r$10.e.r) {
+ ++R$1;
+ if ((rowinfo[R$1 - 1] || {}).hidden) continue;
+ row = make_csv_row(sheet, r$10, R$1 - 1, cols, fs, rs, FS, w$2, o$10);
+ if (row != null) {
+ if (row || o$10.blankrows !== false) return stream.push((w$2++ ? RS : "") + row);
+ }
+ }
+ return stream.push(null);
+ };
+ return stream;
+}
+function write_html_stream(ws, opts) {
+ var stream = _Readable();
+ var o$10 = opts || {};
+ var header = o$10.header != null ? o$10.header : HTML_BEGIN;
+ var footer = o$10.footer != null ? o$10.footer : HTML_END;
+ stream.push(header);
+ var r$10 = decode_range(ws["!ref"]);
+ stream.push(make_html_preamble(ws, r$10, o$10));
+ var R$1 = r$10.s.r;
+ var end = false;
+ stream._read = function() {
+ if (R$1 > r$10.e.r) {
+ if (!end) {
+ end = true;
+ stream.push("
" + footer);
+ }
+ return stream.push(null);
+ }
+ while (R$1 <= r$10.e.r) {
+ stream.push(make_html_row(ws, r$10, R$1, o$10));
+ ++R$1;
+ break;
+ }
+ };
+ return stream;
+}
+function write_json_stream(sheet, opts) {
+ var stream = _Readable({ objectMode: true });
+ if (sheet == null || sheet["!ref"] == null) {
+ stream.push(null);
+ return stream;
+ }
+ var val$1 = {
+ t: "n",
+ v: 0
+ }, header = 0, offset = 1, hdr = [], v$3 = 0, vv = "";
+ var r$10 = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var o$10 = opts || {};
+ var range = o$10.range != null ? o$10.range : sheet["!ref"];
+ if (o$10.header === 1) header = 1;
+ else if (o$10.header === "A") header = 2;
+ else if (Array.isArray(o$10.header)) header = 3;
+ switch (typeof range) {
+ case "string":
+ r$10 = safe_decode_range(range);
+ break;
+ case "number":
+ r$10 = safe_decode_range(sheet["!ref"]);
+ r$10.s.r = range;
+ break;
+ default: r$10 = range;
+ }
+ if (header > 0) offset = 0;
+ var rr = encode_row(r$10.s.r);
+ var cols = [];
+ var counter = 0;
+ var dense = sheet["!data"] != null;
+ var R$1 = r$10.s.r, C$2 = 0;
+ var header_cnt = {};
+ if (dense && !sheet["!data"][R$1]) sheet["!data"][R$1] = [];
+ var colinfo = o$10.skipHidden && sheet["!cols"] || [];
+ var rowinfo = o$10.skipHidden && sheet["!rows"] || [];
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ if ((colinfo[C$2] || {}).hidden) continue;
+ cols[C$2] = encode_col(C$2);
+ val$1 = dense ? sheet["!data"][R$1][C$2] : sheet[cols[C$2] + rr];
+ switch (header) {
+ case 1:
+ hdr[C$2] = C$2 - r$10.s.c;
+ break;
+ case 2:
+ hdr[C$2] = cols[C$2];
+ break;
+ case 3:
+ hdr[C$2] = o$10.header[C$2 - r$10.s.c];
+ break;
+ default:
+ if (val$1 == null) val$1 = {
+ w: "__EMPTY",
+ t: "s"
+ };
+ vv = v$3 = format_cell(val$1, null, o$10);
+ counter = header_cnt[v$3] || 0;
+ if (!counter) header_cnt[v$3] = 1;
+ else {
+ do {
+ vv = v$3 + "_" + counter++;
+ } while (header_cnt[vv]);
+ header_cnt[v$3] = counter;
+ header_cnt[vv] = 1;
+ }
+ hdr[C$2] = vv;
+ }
+ }
+ R$1 = r$10.s.r + offset;
+ stream._read = function() {
+ while (R$1 <= r$10.e.r) {
+ if ((rowinfo[R$1 - 1] || {}).hidden) continue;
+ var row = make_json_row(sheet, r$10, R$1, cols, header, hdr, o$10);
+ ++R$1;
+ if (row.isempty === false || (header === 1 ? o$10.blankrows !== false : !!o$10.blankrows)) {
+ stream.push(row.row);
+ return;
+ }
+ }
+ return stream.push(null);
+ };
+ return stream;
+}
+function write_xlml_stream(wb, o$10) {
+ var stream = _Readable();
+ var opts = o$10 == null ? {} : o$10;
+ var stride = +opts.stride || 10;
+ if (!wb.SSF) wb.SSF = dup(table_fmt);
+ if (wb.SSF) {
+ make_ssf();
+ SSF_load_table(wb.SSF);
+ opts.revssf = evert_num(wb.SSF);
+ opts.revssf[wb.SSF[65535]] = 0;
+ opts.ssf = wb.SSF;
+ opts.cellXfs = [];
+ get_cell_style(opts.cellXfs, {}, { revssf: { "General": 0 } });
+ }
+ wb.SheetNames.forEach(function(n$9) {
+ var ws$1 = wb.Sheets[n$9];
+ if (!ws$1 || !ws$1["!ref"]) return;
+ var range$1 = decode_range(ws$1["!ref"]);
+ var dense$1 = ws$1["!data"] != null;
+ var ddata = dense$1 ? ws$1["!data"] : [];
+ var addr$1 = {
+ r: 0,
+ c: 0
+ };
+ for (var R$2 = range$1.s.r; R$2 <= range$1.e.r; ++R$2) {
+ addr$1.r = R$2;
+ if (dense$1 && !ddata[R$2]) continue;
+ for (var C$2 = range$1.s.c; C$2 <= range$1.e.c; ++C$2) {
+ addr$1.c = C$2;
+ var cell = dense$1 ? ddata[R$2][C$2] : ws$1[encode_col(C$2) + encode_row(R$2)];
+ if (!cell) continue;
+ if (cell.t == "d" && cell.z == null) {
+ cell = dup(cell);
+ cell.z = table_fmt[14];
+ }
+ void get_cell_style(opts.cellXfs, cell, opts);
+ }
+ }
+ });
+ var sty = write_sty_xlml(wb, opts);
+ var stage = 0, wsidx = 0, ws = wb.Sheets[wb.SheetNames[wsidx]], range = safe_decode_range(ws), R$1 = -1, T$3 = false;
+ var marr = [], mi = 0, dense = false, darr = [], addr = {
+ r: 0,
+ c: 0
+ };
+ stream._read = function() {
+ switch (stage) {
+ case 0:
+ {
+ stage = 1;
+ stream.push(XML_HEADER);
+ stream.push("");
+ }
+ break;
+ case 1:
+ {
+ stage = 2;
+ stream.push(write_props_xlml(wb, opts));
+ stream.push(write_wb_xlml(wb, opts));
+ }
+ break;
+ case 2:
+ {
+ stage = 3;
+ stream.push(sty);
+ stream.push(write_names_xlml(wb, opts));
+ }
+ break;
+ case 3:
+ {
+ T$3 = false;
+ if (wsidx >= wb.SheetNames.length) {
+ stage = -1;
+ stream.push("");
+ break;
+ }
+ stream.push("");
+ ws = wb.Sheets[wb.SheetNames[wsidx]];
+ if (!ws) {
+ stream.push("");
+ return void ++wsidx;
+ }
+ var names = write_ws_xlml_names(ws, opts, wsidx, wb);
+ if (names.length) stream.push("" + names + "");
+ if (!ws["!ref"]) return stage = 5;
+ range = safe_decode_range(ws["!ref"]);
+ R$1 = range.s.r;
+ stage = 4;
+ }
+ break;
+ case 4:
+ {
+ if (R$1 < 0 || R$1 > range.e.r) {
+ if (T$3) stream.push("
");
+ return void (stage = 5);
+ }
+ if (R$1 <= range.s.r) {
+ if (ws["!cols"]) ws["!cols"].forEach(function(n$9, i$7) {
+ process_col(n$9);
+ var w$2 = !!n$9.width;
+ var p$3 = col_obj_w(i$7, n$9);
+ var k$2 = { "ss:Index": i$7 + 1 };
+ if (w$2) k$2["ss:Width"] = width2px(p$3.width);
+ if (n$9.hidden) k$2["ss:Hidden"] = "1";
+ if (!T$3) {
+ T$3 = true;
+ stream.push("");
+ }
+ stream.push(writextag("Column", null, k$2));
+ });
+ dense = ws["!data"] != null;
+ if (dense) darr = ws["!data"];
+ addr.r = addr.c = 0;
+ }
+ for (var cnt = 0; R$1 <= range.e.r && cnt < stride; ++R$1, ++cnt) {
+ var row = [write_ws_xlml_row(R$1, (ws["!rows"] || [])[R$1])];
+ addr.r = R$1;
+ if (!(dense && !darr[R$1])) for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ addr.c = C$2;
+ var skip = false;
+ for (mi = 0; mi != marr.length; ++mi) {
+ if (marr[mi].s.c > C$2) continue;
+ if (marr[mi].s.r > R$1) continue;
+ if (marr[mi].e.c < C$2) continue;
+ if (marr[mi].e.r < R$1) continue;
+ if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
+ break;
+ }
+ if (skip) continue;
+ var ref = encode_col(C$2) + encode_row(R$1), cell = dense ? darr[R$1][C$2] : ws[ref];
+ row.push(write_ws_xlml_cell(cell, ref, ws, opts, wsidx, wb, addr));
+ }
+ row.push("");
+ if (!T$3) {
+ T$3 = true;
+ stream.push("");
+ }
+ stream.push(row.join(""));
+ }
+ }
+ break;
+ case 5: {
+ stream.push(write_ws_xlml_wsopts(ws, opts, wsidx, wb));
+ if (ws && ws["!autofilter"]) stream.push("");
+ stream.push("");
+ wsidx++;
+ R$1 = -1;
+ return void (stage = 3);
+ }
+ case -1:
+ {
+ stage = -2;
+ stream.push("");
+ }
+ break;
+ case -2:
+ stream.push(null);
+ break;
+ }
+ };
+ return stream;
+}
+var XLSX, current_codepage, current_ansi, $cptable, VALID_ANSI, CS2CP, set_ansi, set_cp, debom, _getchar, _getansi, DENSE, DIF_XL, Base64_map, has_buf, Buffer_from, buf_utf16le, s2a, bconcat, chr0, chr1, p2_32, days, months, table_fmt, SSF_default_map, SSF_default_str, pct1, frac1, dec1, closeparen, phone, SSF_abstime, cfregex2, SSF, SSFImplicit, dateNFregex, bad_formats, CRC32, CFB, _fs, dnthresh, dnthresh1, dnthresh2, pdre1, pdre2, pdre3, FDRE1, FDRE2, FDISO, utc_append_works, lower_months, split_regex, xml_boundary, str_match_xml_ns, str_match_xml_ns_g, str_remove_xml_ns_g, str_match_xml_ig, XML_HEADER, attregexg, tagregex1, tagregex2, tagregex, nsregex, nsregex2, encodings, rencoding, unescapexml, decregex, charegex, htmlcharegex, xlml_fixstr, utf8corpus, utf8read, utf8write, htmldecode, vtvregex, vtmregex, wtregex, xlmlregex, XMLNS, XMLNS_main, XLMLNS, ___toBuffer, __toBuffer, ___utf16le, __utf16le, ___hexlify, __hexlify, ___utf8, __utf8, ___lpstr, __lpstr, ___cpstr, __cpstr, ___lpwstr, __lpwstr, ___lpp4, __lpp4, ___8lpp4, __8lpp4, ___double, __double, is_buf, __readUInt8, __readUInt16LE, __readInt16LE, __readUInt32LE, __readInt32LE, __readInt32BE, __writeUInt32LE, __writeInt32LE, __writeUInt16LE, parse_BrtCommentText, parse_XLSBCodeName, write_XLSBCodeName, parse_XLNameWideString, parse_RelID, write_RelID, parse_UncheckedRfX, write_UncheckedRfX, VT_I2, VT_I4, VT_BOOL, VT_VARIANT, VT_UI4, VT_FILETIME, VT_BLOB, VT_CF, VT_VECTOR_VARIANT, VT_VECTOR_LPSTR, VT_STRING, VT_USTR, VT_CUSTOM, DocSummaryPIDDSI, SummaryPIDSI, CountryEnum, XLSFillPattern, _XLSIcv, XLSIcv, BErr, RBErr, XLSLblBuiltIn, ct2type, CT_LIST, RELS, CT_ODS, CORE_PROPS, EXT_PROPS, PseudoPropsPairs, custregex, XLMLDocPropsMap, evert_XLMLDPM, XLSPSSkip, parse_Ref, FtTab, parse_BIFF2Format, write_BIFF4XF, parse_XLHeaderFooter, parse_BIFF5OT, parse_Blank, parse_Scl, parse_String, DBF_SUPPORTED_VERSIONS, DBF, SYLK, DIF, ETH, PRN, WK_, parse_rs, rs_to_html, sitregex, sirregex, sstr1, sstr2, straywsregex, write_BrtSSTItem, crypto_CreateXorArray_Method1, crypto_DecryptData_Method1, crypto_MakeXorDecryptor, DEF_MDW, MAX_MDW, MIN_MDW, MDW, DEF_PPI, PPI, XLMLPatternTypeMap, cellXF_uint, cellXF_bool, parse_sty_xml, XLSBFillPTNames, rev_XLSBFillPTNames, parse_BrtFill, parse_BrtBorder, XLSXThemeClrScheme, parse_BrtCommentAuthor, CT_VBA, VBAFMTS, rc_to_a1, crefregex, a1_to_rc, parse_PtgMemErr, parse_PtgMemNoMem, parse_PtgTbl, parse_PtgElfCol, parse_PtgElfColS, parse_PtgElfColSV, parse_PtgElfColV, parse_PtgElfRadical, parse_PtgElfRadicalLel, parse_PtgElfRadicalS, parse_PtgElfRw, parse_PtgElfRwV, PtgListRT, PtgTypes, PtgDupes, Ptg18, Ptg19, PtgBinOp, parse_XLSBArrayParsedFormula, parse_XLSBCellParsedFormula, parse_XLSBNameParsedFormula, parse_XLSBSharedParsedFormula, write_XLSBNameParsedFormula, Cetab, Ftab, FtabArgc, strs, _ssfopts, browser_has_Map, mergecregex, hlinkregex, dimregex, colregex, afregex, marginregex, sheetprregex, sheetprot_deffalse, sheetprot_deftrue, sviewregex, parse_ws_xml_data, parse_BrtWsDim, write_BrtWsDim, parse_BrtMergeCell, write_BrtMergeCell, BrtMarginKeys, WBPropsDef, WBViewDef, SheetDef, CalcPrDef, badchars, wbnsregex, attregexg2, attregex2, XLMLFormatMap, CONTINUE_RT, PSCLSID, XLSBRecordEnum, XLSRecordEnum, b8oid, b8ocnts, HTML_BEGIN, HTML_END, write_styles_ods, write_content_ods, subarray, numbers_lut_new, USE_WIDE_ROWS, qreg, utils$1, _Readable, __stream, version$3, xlsx_default;
+var init_xlsx = __esmMin((() => {
+ XLSX = {};
+ XLSX.version = "0.20.3";
+ current_codepage = 1200, current_ansi = 1252;
+ ;
+ VALID_ANSI = [
+ 874,
+ 932,
+ 936,
+ 949,
+ 950,
+ 1250,
+ 1251,
+ 1252,
+ 1253,
+ 1254,
+ 1255,
+ 1256,
+ 1257,
+ 1258,
+ 1e4
+ ];
+ CS2CP = {
+ 0: 1252,
+ 1: 65001,
+ 2: 65001,
+ 77: 1e4,
+ 128: 932,
+ 129: 949,
+ 130: 1361,
+ 134: 936,
+ 136: 950,
+ 161: 1253,
+ 162: 1254,
+ 163: 1258,
+ 177: 1255,
+ 178: 1256,
+ 186: 1257,
+ 204: 1251,
+ 222: 874,
+ 238: 1250,
+ 255: 1252,
+ 69: 6969
+ };
+ set_ansi = function(cp) {
+ if (VALID_ANSI.indexOf(cp) == -1) return;
+ current_ansi = CS2CP[0] = cp;
+ };
+ set_cp = function(cp) {
+ current_codepage = cp;
+ set_ansi(cp);
+ };
+ debom = function(data) {
+ var c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);
+ if (c1 == 255 && c2 == 254) return utf16leread(data.slice(2));
+ if (c1 == 254 && c2 == 255) return utf16beread(data.slice(2));
+ if (c1 == 65279) return data.slice(1);
+ return data;
+ };
+ _getchar = function _gc1(x$2) {
+ return String.fromCharCode(x$2);
+ };
+ _getansi = function _ga1(x$2) {
+ return String.fromCharCode(x$2);
+ };
+ DENSE = null;
+ DIF_XL = true;
+ Base64_map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+ has_buf = /* @__PURE__ */ (function() {
+ return typeof Buffer !== "undefined" && typeof process !== "undefined" && typeof process.versions !== "undefined" && !!process.versions.node;
+ })();
+ Buffer_from = /* @__PURE__ */ (function() {
+ if (typeof Buffer !== "undefined") {
+ var nbfs = !Buffer.from;
+ if (!nbfs) try {
+ Buffer.from("foo", "utf8");
+ } catch (e$10) {
+ nbfs = true;
+ }
+ return nbfs ? function(buf, enc) {
+ return enc ? new Buffer(buf, enc) : new Buffer(buf);
+ } : Buffer.from.bind(Buffer);
+ }
+ return function() {};
+ })();
+ buf_utf16le = /* @__PURE__ */ (function() {
+ if (typeof Buffer === "undefined") return false;
+ var x$2 = Buffer_from([65, 0]);
+ if (!x$2) return false;
+ var o$10 = x$2.toString("utf16le");
+ return o$10.length == 1;
+ })();
+ s2a = function s2a$1(s$5) {
+ if (has_buf) return Buffer_from(s$5, "binary");
+ return s$5.split("").map(function(x$2) {
+ return x$2.charCodeAt(0) & 255;
+ });
+ };
+ bconcat = has_buf ? function(bufs) {
+ return Buffer.concat(bufs.map(function(buf) {
+ return Buffer.isBuffer(buf) ? buf : Buffer_from(buf);
+ }));
+ } : function(bufs) {
+ if (typeof Uint8Array !== "undefined") {
+ var i$7 = 0, maxlen = 0;
+ for (i$7 = 0; i$7 < bufs.length; ++i$7) maxlen += bufs[i$7].length;
+ var o$10 = new Uint8Array(maxlen);
+ var len = 0;
+ for (i$7 = 0, maxlen = 0; i$7 < bufs.length; maxlen += len, ++i$7) {
+ len = bufs[i$7].length;
+ if (bufs[i$7] instanceof Uint8Array) o$10.set(bufs[i$7], maxlen);
+ else if (typeof bufs[i$7] == "string") o$10.set(new Uint8Array(s2a(bufs[i$7])), maxlen);
+ else o$10.set(new Uint8Array(bufs[i$7]), maxlen);
+ }
+ return o$10;
+ }
+ return [].concat.apply([], bufs.map(function(buf) {
+ return Array.isArray(buf) ? buf : [].slice.call(buf);
+ }));
+ };
+ chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/g;
+ p2_32 = /* @__PURE__ */ Math.pow(2, 32);
+ days = [
+ ["Sun", "Sunday"],
+ ["Mon", "Monday"],
+ ["Tue", "Tuesday"],
+ ["Wed", "Wednesday"],
+ ["Thu", "Thursday"],
+ ["Fri", "Friday"],
+ ["Sat", "Saturday"]
+ ];
+ months = [
+ [
+ "J",
+ "Jan",
+ "January"
+ ],
+ [
+ "F",
+ "Feb",
+ "February"
+ ],
+ [
+ "M",
+ "Mar",
+ "March"
+ ],
+ [
+ "A",
+ "Apr",
+ "April"
+ ],
+ [
+ "M",
+ "May",
+ "May"
+ ],
+ [
+ "J",
+ "Jun",
+ "June"
+ ],
+ [
+ "J",
+ "Jul",
+ "July"
+ ],
+ [
+ "A",
+ "Aug",
+ "August"
+ ],
+ [
+ "S",
+ "Sep",
+ "September"
+ ],
+ [
+ "O",
+ "Oct",
+ "October"
+ ],
+ [
+ "N",
+ "Nov",
+ "November"
+ ],
+ [
+ "D",
+ "Dec",
+ "December"
+ ]
+ ];
+ table_fmt = {
+ 0: "General",
+ 1: "0",
+ 2: "0.00",
+ 3: "#,##0",
+ 4: "#,##0.00",
+ 9: "0%",
+ 10: "0.00%",
+ 11: "0.00E+00",
+ 12: "# ?/?",
+ 13: "# ??/??",
+ 14: "m/d/yy",
+ 15: "d-mmm-yy",
+ 16: "d-mmm",
+ 17: "mmm-yy",
+ 18: "h:mm AM/PM",
+ 19: "h:mm:ss AM/PM",
+ 20: "h:mm",
+ 21: "h:mm:ss",
+ 22: "m/d/yy h:mm",
+ 37: "#,##0 ;(#,##0)",
+ 38: "#,##0 ;[Red](#,##0)",
+ 39: "#,##0.00;(#,##0.00)",
+ 40: "#,##0.00;[Red](#,##0.00)",
+ 45: "mm:ss",
+ 46: "[h]:mm:ss",
+ 47: "mmss.0",
+ 48: "##0.0E+0",
+ 49: "@",
+ 56: "\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \""
+ };
+ SSF_default_map = {
+ 5: 37,
+ 6: 38,
+ 7: 39,
+ 8: 40,
+ 23: 0,
+ 24: 0,
+ 25: 0,
+ 26: 0,
+ 27: 14,
+ 28: 14,
+ 29: 14,
+ 30: 14,
+ 31: 14,
+ 50: 14,
+ 51: 14,
+ 52: 14,
+ 53: 14,
+ 54: 14,
+ 55: 14,
+ 56: 14,
+ 57: 14,
+ 58: 14,
+ 59: 1,
+ 60: 2,
+ 61: 3,
+ 62: 4,
+ 67: 9,
+ 68: 10,
+ 69: 12,
+ 70: 13,
+ 71: 14,
+ 72: 14,
+ 73: 15,
+ 74: 16,
+ 75: 17,
+ 76: 20,
+ 77: 21,
+ 78: 22,
+ 79: 45,
+ 80: 46,
+ 81: 47,
+ 82: 0
+ };
+ SSF_default_str = {
+ 5: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
+ 63: "\"$\"#,##0_);\\(\"$\"#,##0\\)",
+ 6: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
+ 64: "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
+ 7: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
+ 65: "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
+ 8: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
+ 66: "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
+ 41: "_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)",
+ 42: "_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)",
+ 43: "_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)",
+ 44: "_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)"
+ };
+ pct1 = /%/g;
+ frac1 = /# (\?+)( ?)\/( ?)(\d+)/;
+ dec1 = /^#*0*\.([0#]+)/;
+ closeparen = /\)[^)]*[0#]/;
+ phone = /\(###\) ###\\?-####/;
+ SSF_abstime = /\[[HhMmSs\u0E0A\u0E19\u0E17]*\]/;
+ cfregex2 = /\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;
+ SSF = {
+ format: SSF_format,
+ load: SSF_load,
+ _table: table_fmt,
+ load_table: SSF_load_table,
+ parse_date_code: SSF_parse_date_code,
+ is_date: fmt_is_date,
+ get_table: function get_table() {
+ return SSF._table = table_fmt;
+ }
+ };
+ SSFImplicit = {
+ "5": "\"$\"#,##0_);\\(\"$\"#,##0\\)",
+ "6": "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
+ "7": "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
+ "8": "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
+ "23": "General",
+ "24": "General",
+ "25": "General",
+ "26": "General",
+ "27": "m/d/yy",
+ "28": "m/d/yy",
+ "29": "m/d/yy",
+ "30": "m/d/yy",
+ "31": "m/d/yy",
+ "32": "h:mm:ss",
+ "33": "h:mm:ss",
+ "34": "h:mm:ss",
+ "35": "h:mm:ss",
+ "36": "m/d/yy",
+ "41": "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)",
+ "42": "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)",
+ "43": "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)",
+ "44": "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)",
+ "50": "m/d/yy",
+ "51": "m/d/yy",
+ "52": "m/d/yy",
+ "53": "m/d/yy",
+ "54": "m/d/yy",
+ "55": "m/d/yy",
+ "56": "m/d/yy",
+ "57": "m/d/yy",
+ "58": "m/d/yy",
+ "59": "0",
+ "60": "0.00",
+ "61": "#,##0",
+ "62": "#,##0.00",
+ "63": "\"$\"#,##0_);\\(\"$\"#,##0\\)",
+ "64": "\"$\"#,##0_);[Red]\\(\"$\"#,##0\\)",
+ "65": "\"$\"#,##0.00_);\\(\"$\"#,##0.00\\)",
+ "66": "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)",
+ "67": "0%",
+ "68": "0.00%",
+ "69": "# ?/?",
+ "70": "# ??/??",
+ "71": "m/d/yy",
+ "72": "m/d/yy",
+ "73": "d-mmm-yy",
+ "74": "d-mmm",
+ "75": "mmm-yy",
+ "76": "h:mm",
+ "77": "h:mm:ss",
+ "78": "m/d/yy h:mm",
+ "79": "mm:ss",
+ "80": "[h]:mm:ss",
+ "81": "mmss.0"
+ };
+ dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;
+ bad_formats = { "d.m": "d\\.m" };
+ CRC32 = /* @__PURE__ */ (function() {
+ var CRC32$1 = {};
+ CRC32$1.version = "1.2.0";
+ function signed_crc_table() {
+ var c$7 = 0, table = new Array(256);
+ for (var n$9 = 0; n$9 != 256; ++n$9) {
+ c$7 = n$9;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ c$7 = c$7 & 1 ? -306674912 ^ c$7 >>> 1 : c$7 >>> 1;
+ table[n$9] = c$7;
+ }
+ return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;
+ }
+ var T0 = signed_crc_table();
+ function slice_by_16_tables(T$3) {
+ var c$7 = 0, v$3 = 0, n$9 = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096);
+ for (n$9 = 0; n$9 != 256; ++n$9) table[n$9] = T$3[n$9];
+ for (n$9 = 0; n$9 != 256; ++n$9) {
+ v$3 = T$3[n$9];
+ for (c$7 = 256 + n$9; c$7 < 4096; c$7 += 256) v$3 = table[c$7] = v$3 >>> 8 ^ T$3[v$3 & 255];
+ }
+ var out = [];
+ for (n$9 = 1; n$9 != 16; ++n$9) out[n$9 - 1] = typeof Int32Array !== "undefined" && typeof table.subarray == "function" ? table.subarray(n$9 * 256, n$9 * 256 + 256) : table.slice(n$9 * 256, n$9 * 256 + 256);
+ return out;
+ }
+ var TT = slice_by_16_tables(T0);
+ var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];
+ var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];
+ var Tb = TT[10], Tc$1 = TT[11], Td = TT[12], Te$1 = TT[13], Tf = TT[14];
+ function crc32_bstr(bstr, seed) {
+ var C$2 = seed ^ -1;
+ for (var i$7 = 0, L$2 = bstr.length; i$7 < L$2;) C$2 = C$2 >>> 8 ^ T0[(C$2 ^ bstr.charCodeAt(i$7++)) & 255];
+ return ~C$2;
+ }
+ function crc32_buf(B$2, seed) {
+ var C$2 = seed ^ -1, L$2 = B$2.length - 15, i$7 = 0;
+ for (; i$7 < L$2;) C$2 = Tf[B$2[i$7++] ^ C$2 & 255] ^ Te$1[B$2[i$7++] ^ C$2 >> 8 & 255] ^ Td[B$2[i$7++] ^ C$2 >> 16 & 255] ^ Tc$1[B$2[i$7++] ^ C$2 >>> 24] ^ Tb[B$2[i$7++]] ^ Ta[B$2[i$7++]] ^ T9[B$2[i$7++]] ^ T8[B$2[i$7++]] ^ T7[B$2[i$7++]] ^ T6[B$2[i$7++]] ^ T5[B$2[i$7++]] ^ T4[B$2[i$7++]] ^ T3[B$2[i$7++]] ^ T2[B$2[i$7++]] ^ T1[B$2[i$7++]] ^ T0[B$2[i$7++]];
+ L$2 += 15;
+ while (i$7 < L$2) C$2 = C$2 >>> 8 ^ T0[(C$2 ^ B$2[i$7++]) & 255];
+ return ~C$2;
+ }
+ function crc32_str(str, seed) {
+ var C$2 = seed ^ -1;
+ for (var i$7 = 0, L$2 = str.length, c$7 = 0, d$5 = 0; i$7 < L$2;) {
+ c$7 = str.charCodeAt(i$7++);
+ if (c$7 < 128) {
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ c$7) & 255];
+ } else if (c$7 < 2048) {
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (192 | c$7 >> 6 & 31)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 & 63)) & 255];
+ } else if (c$7 >= 55296 && c$7 < 57344) {
+ c$7 = (c$7 & 1023) + 64;
+ d$5 = str.charCodeAt(i$7++) & 1023;
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (240 | c$7 >> 8 & 7)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 >> 2 & 63)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | d$5 >> 6 & 15 | (c$7 & 3) << 4)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | d$5 & 63)) & 255];
+ } else {
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (224 | c$7 >> 12 & 15)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 >> 6 & 63)) & 255];
+ C$2 = C$2 >>> 8 ^ T0[(C$2 ^ (128 | c$7 & 63)) & 255];
+ }
+ }
+ return ~C$2;
+ }
+ CRC32$1.table = T0;
+ CRC32$1.bstr = crc32_bstr;
+ CRC32$1.buf = crc32_buf;
+ CRC32$1.str = crc32_str;
+ return CRC32$1;
+ })();
+ CFB = /* @__PURE__ */ (function _CFB() {
+ var exports$1 = {};
+ exports$1.version = "1.2.2";
+ function namecmp(l$3, r$10) {
+ var L$2 = l$3.split("/"), R$1 = r$10.split("/");
+ for (var i$8 = 0, c$7 = 0, Z$1 = Math.min(L$2.length, R$1.length); i$8 < Z$1; ++i$8) {
+ if (c$7 = L$2[i$8].length - R$1[i$8].length) return c$7;
+ if (L$2[i$8] != R$1[i$8]) return L$2[i$8] < R$1[i$8] ? -1 : 1;
+ }
+ return L$2.length - R$1.length;
+ }
+ function dirname(p$3) {
+ if (p$3.charAt(p$3.length - 1) == "/") return p$3.slice(0, -1).indexOf("/") === -1 ? p$3 : dirname(p$3.slice(0, -1));
+ var c$7 = p$3.lastIndexOf("/");
+ return c$7 === -1 ? p$3 : p$3.slice(0, c$7 + 1);
+ }
+ function filename(p$3) {
+ if (p$3.charAt(p$3.length - 1) == "/") return filename(p$3.slice(0, -1));
+ var c$7 = p$3.lastIndexOf("/");
+ return c$7 === -1 ? p$3 : p$3.slice(c$7 + 1);
+ }
+ function write_dos_date(buf, date) {
+ if (typeof date === "string") date = new Date(date);
+ var hms = date.getHours();
+ hms = hms << 6 | date.getMinutes();
+ hms = hms << 5 | date.getSeconds() >>> 1;
+ buf.write_shift(2, hms);
+ var ymd = date.getFullYear() - 1980;
+ ymd = ymd << 4 | date.getMonth() + 1;
+ ymd = ymd << 5 | date.getDate();
+ buf.write_shift(2, ymd);
+ }
+ function parse_dos_date(buf) {
+ var hms = buf.read_shift(2) & 65535;
+ var ymd = buf.read_shift(2) & 65535;
+ var val$1 = new Date();
+ var d$5 = ymd & 31;
+ ymd >>>= 5;
+ var m$3 = ymd & 15;
+ ymd >>>= 4;
+ val$1.setMilliseconds(0);
+ val$1.setFullYear(ymd + 1980);
+ val$1.setMonth(m$3 - 1);
+ val$1.setDate(d$5);
+ var S$4 = hms & 31;
+ hms >>>= 5;
+ var M$3 = hms & 63;
+ hms >>>= 6;
+ val$1.setHours(hms);
+ val$1.setMinutes(M$3);
+ val$1.setSeconds(S$4 << 1);
+ return val$1;
+ }
+ function parse_extra_field(blob) {
+ prep_blob(blob, 0);
+ var o$10 = {};
+ var flags = 0;
+ while (blob.l <= blob.length - 4) {
+ var type = blob.read_shift(2);
+ var sz = blob.read_shift(2), tgt = blob.l + sz;
+ var p$3 = {};
+ switch (type) {
+ case 21589:
+ {
+ flags = blob.read_shift(1);
+ if (flags & 1) p$3.mtime = blob.read_shift(4);
+ if (sz > 5) {
+ if (flags & 2) p$3.atime = blob.read_shift(4);
+ if (flags & 4) p$3.ctime = blob.read_shift(4);
+ }
+ if (p$3.mtime) p$3.mt = new Date(p$3.mtime * 1e3);
+ }
+ break;
+ case 1:
+ {
+ var sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);
+ p$3.usz = sz2 * Math.pow(2, 32) + sz1;
+ sz1 = blob.read_shift(4);
+ sz2 = blob.read_shift(4);
+ p$3.csz = sz2 * Math.pow(2, 32) + sz1;
+ }
+ break;
+ }
+ blob.l = tgt;
+ o$10[type] = p$3;
+ }
+ return o$10;
+ }
+ var fs;
+ function get_fs() {
+ return fs || (fs = _fs);
+ }
+ function parse(file, options) {
+ if (file[0] == 80 && file[1] == 75) return parse_zip$1(file, options);
+ if ((file[0] | 32) == 109 && (file[1] | 32) == 105) return parse_mad(file, options);
+ if (file.length < 512) throw new Error("CFB file size " + file.length + " < 512");
+ var mver = 3;
+ var ssz = 512;
+ var nmfs = 0;
+ var difat_sec_cnt = 0;
+ var dir_start = 0;
+ var minifat_start = 0;
+ var difat_start = 0;
+ var fat_addrs = [];
+ var blob = file.slice(0, 512);
+ prep_blob(blob, 0);
+ var mv = check_get_mver(blob);
+ mver = mv[0];
+ switch (mver) {
+ case 3:
+ ssz = 512;
+ break;
+ case 4:
+ ssz = 4096;
+ break;
+ case 0: if (mv[1] == 0) return parse_zip$1(file, options);
+ default: throw new Error("Major Version: Expected 3 or 4 saw " + mver);
+ }
+ if (ssz !== 512) {
+ blob = file.slice(0, ssz);
+ prep_blob(blob, 28);
+ }
+ var header = file.slice(0, ssz);
+ check_shifts(blob, mver);
+ var dir_cnt = blob.read_shift(4, "i");
+ if (mver === 3 && dir_cnt !== 0) throw new Error("# Directory Sectors: Expected 0 saw " + dir_cnt);
+ blob.l += 4;
+ dir_start = blob.read_shift(4, "i");
+ blob.l += 4;
+ blob.chk("00100000", "Mini Stream Cutoff Size: ");
+ minifat_start = blob.read_shift(4, "i");
+ nmfs = blob.read_shift(4, "i");
+ difat_start = blob.read_shift(4, "i");
+ difat_sec_cnt = blob.read_shift(4, "i");
+ for (var q$3 = -1, j$2 = 0; j$2 < 109; ++j$2) {
+ q$3 = blob.read_shift(4, "i");
+ if (q$3 < 0) break;
+ fat_addrs[j$2] = q$3;
+ }
+ /** Break the file up into sectors */
+ var sectors = sectorify(file, ssz);
+ sleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);
+ /** Chains */
+ var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);
+ if (dir_start < sector_list.length) sector_list[dir_start].name = "!Directory";
+ if (nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT";
+ sector_list[fat_addrs[0]].name = "!FAT";
+ sector_list.fat_addrs = fat_addrs;
+ sector_list.ssz = ssz;
+ var files = {}, Paths = [], FileIndex = [], FullPaths = [];
+ read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);
+ build_full_paths(FileIndex, FullPaths, Paths);
+ Paths.shift();
+ var o$10 = {
+ FileIndex,
+ FullPaths
+ };
+ if (options && options.raw) o$10.raw = {
+ header,
+ sectors
+ };
+ return o$10;
+ }
+ function check_get_mver(blob) {
+ if (blob[blob.l] == 80 && blob[blob.l + 1] == 75) return [0, 0];
+ blob.chk(HEADER_SIGNATURE, "Header Signature: ");
+ blob.l += 16;
+ var mver = blob.read_shift(2, "u");
+ return [blob.read_shift(2, "u"), mver];
+ }
+ function check_shifts(blob, mver) {
+ var shift = 9;
+ blob.l += 2;
+ switch (shift = blob.read_shift(2)) {
+ case 9:
+ if (mver != 3) throw new Error("Sector Shift: Expected 9 saw " + shift);
+ break;
+ case 12:
+ if (mver != 4) throw new Error("Sector Shift: Expected 12 saw " + shift);
+ break;
+ default: throw new Error("Sector Shift: Expected 9 or 12 saw " + shift);
+ }
+ blob.chk("0600", "Mini Sector Shift: ");
+ blob.chk("000000000000", "Reserved: ");
+ }
+ /** Break the file up into sectors */
+ function sectorify(file, ssz) {
+ var nsectors = Math.ceil(file.length / ssz) - 1;
+ var sectors = [];
+ for (var i$8 = 1; i$8 < nsectors; ++i$8) sectors[i$8 - 1] = file.slice(i$8 * ssz, (i$8 + 1) * ssz);
+ sectors[nsectors - 1] = file.slice(nsectors * ssz);
+ return sectors;
+ }
+ function build_full_paths(FI, FP, Paths) {
+ var i$8 = 0, L$2 = 0, R$1 = 0, C$2 = 0, j$2 = 0, pl = Paths.length;
+ var dad = [], q$3 = [];
+ for (; i$8 < pl; ++i$8) {
+ dad[i$8] = q$3[i$8] = i$8;
+ FP[i$8] = Paths[i$8];
+ }
+ for (; j$2 < q$3.length; ++j$2) {
+ i$8 = q$3[j$2];
+ L$2 = FI[i$8].L;
+ R$1 = FI[i$8].R;
+ C$2 = FI[i$8].C;
+ if (dad[i$8] === i$8) {
+ if (L$2 !== -1 && dad[L$2] !== L$2) dad[i$8] = dad[L$2];
+ if (R$1 !== -1 && dad[R$1] !== R$1) dad[i$8] = dad[R$1];
+ }
+ if (C$2 !== -1) dad[C$2] = i$8;
+ if (L$2 !== -1 && i$8 != dad[i$8]) {
+ dad[L$2] = dad[i$8];
+ if (q$3.lastIndexOf(L$2) < j$2) q$3.push(L$2);
+ }
+ if (R$1 !== -1 && i$8 != dad[i$8]) {
+ dad[R$1] = dad[i$8];
+ if (q$3.lastIndexOf(R$1) < j$2) q$3.push(R$1);
+ }
+ }
+ for (i$8 = 1; i$8 < pl; ++i$8) if (dad[i$8] === i$8) {
+ if (R$1 !== -1 && dad[R$1] !== R$1) dad[i$8] = dad[R$1];
+ else if (L$2 !== -1 && dad[L$2] !== L$2) dad[i$8] = dad[L$2];
+ }
+ for (i$8 = 1; i$8 < pl; ++i$8) {
+ if (FI[i$8].type === 0) continue;
+ j$2 = i$8;
+ if (j$2 != dad[j$2]) do {
+ j$2 = dad[j$2];
+ FP[i$8] = FP[j$2] + "/" + FP[i$8];
+ } while (j$2 !== 0 && -1 !== dad[j$2] && j$2 != dad[j$2]);
+ dad[i$8] = -1;
+ }
+ FP[0] += "/";
+ for (i$8 = 1; i$8 < pl; ++i$8) {
+ if (FI[i$8].type !== 2) FP[i$8] += "/";
+ }
+ }
+ function get_mfat_entry(entry, payload, mini) {
+ var start = entry.start, size = entry.size;
+ var o$10 = [];
+ var idx = start;
+ while (mini && size > 0 && idx >= 0) {
+ o$10.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));
+ size -= MSSZ;
+ idx = __readInt32LE(mini, idx * 4);
+ }
+ if (o$10.length === 0) return new_buf(0);
+ return bconcat(o$10).slice(0, entry.size);
+ }
+ /** Chase down the rest of the DIFAT chain to build a comprehensive list
+ DIFAT chains by storing the next sector number as the last 32 bits */
+ function sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {
+ var q$3 = ENDOFCHAIN;
+ if (idx === ENDOFCHAIN) {
+ if (cnt !== 0) throw new Error("DIFAT chain shorter than expected");
+ } else if (idx !== -1) {
+ var sector = sectors[idx], m$3 = (ssz >>> 2) - 1;
+ if (!sector) return;
+ for (var i$8 = 0; i$8 < m$3; ++i$8) {
+ if ((q$3 = __readInt32LE(sector, i$8 * 4)) === ENDOFCHAIN) break;
+ fat_addrs.push(q$3);
+ }
+ if (cnt >= 1) sleuth_fat(__readInt32LE(sector, ssz - 4), cnt - 1, sectors, ssz, fat_addrs);
+ }
+ }
+ /** Follow the linked list of sectors for a given starting point */
+ function get_sector_list(sectors, start, fat_addrs, ssz, chkd) {
+ var buf = [], buf_chain = [];
+ if (!chkd) chkd = [];
+ var modulus = ssz - 1, j$2 = 0, jj = 0;
+ for (j$2 = start; j$2 >= 0;) {
+ chkd[j$2] = true;
+ buf[buf.length] = j$2;
+ buf_chain.push(sectors[j$2]);
+ var addr = fat_addrs[Math.floor(j$2 * 4 / ssz)];
+ jj = j$2 * 4 & modulus;
+ if (ssz < 4 + jj) throw new Error("FAT boundary crossed: " + j$2 + " 4 " + ssz);
+ if (!sectors[addr]) break;
+ j$2 = __readInt32LE(sectors[addr], jj);
+ }
+ return {
+ nodes: buf,
+ data: __toBuffer([buf_chain])
+ };
+ }
+ /** Chase down the sector linked lists */
+ function make_sector_list(sectors, dir_start, fat_addrs, ssz) {
+ var sl = sectors.length, sector_list = [];
+ var chkd = [], buf = [], buf_chain = [];
+ var modulus = ssz - 1, i$8 = 0, j$2 = 0, k$2 = 0, jj = 0;
+ for (i$8 = 0; i$8 < sl; ++i$8) {
+ buf = [];
+ k$2 = i$8 + dir_start;
+ if (k$2 >= sl) k$2 -= sl;
+ if (chkd[k$2]) continue;
+ buf_chain = [];
+ var seen = [];
+ for (j$2 = k$2; j$2 >= 0;) {
+ seen[j$2] = true;
+ chkd[j$2] = true;
+ buf[buf.length] = j$2;
+ buf_chain.push(sectors[j$2]);
+ var addr = fat_addrs[Math.floor(j$2 * 4 / ssz)];
+ jj = j$2 * 4 & modulus;
+ if (ssz < 4 + jj) throw new Error("FAT boundary crossed: " + j$2 + " 4 " + ssz);
+ if (!sectors[addr]) break;
+ j$2 = __readInt32LE(sectors[addr], jj);
+ if (seen[j$2]) break;
+ }
+ sector_list[k$2] = {
+ nodes: buf,
+ data: __toBuffer([buf_chain])
+ };
+ }
+ return sector_list;
+ }
+ function read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {
+ var minifat_store = 0, pl = Paths.length ? 2 : 0;
+ var sector = sector_list[dir_start].data;
+ var i$8 = 0, namelen = 0, name;
+ for (; i$8 < sector.length; i$8 += 128) {
+ var blob = sector.slice(i$8, i$8 + 128);
+ prep_blob(blob, 64);
+ namelen = blob.read_shift(2);
+ name = __utf16le(blob, 0, namelen - pl);
+ Paths.push(name);
+ var o$10 = {
+ name,
+ type: blob.read_shift(1),
+ color: blob.read_shift(1),
+ L: blob.read_shift(4, "i"),
+ R: blob.read_shift(4, "i"),
+ C: blob.read_shift(4, "i"),
+ clsid: blob.read_shift(16),
+ state: blob.read_shift(4, "i"),
+ start: 0,
+ size: 0
+ };
+ var ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);
+ if (ctime !== 0) o$10.ct = read_date(blob, blob.l - 8);
+ var mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);
+ if (mtime !== 0) o$10.mt = read_date(blob, blob.l - 8);
+ o$10.start = blob.read_shift(4, "i");
+ o$10.size = blob.read_shift(4, "i");
+ if (o$10.size < 0 && o$10.start < 0) {
+ o$10.size = o$10.type = 0;
+ o$10.start = ENDOFCHAIN;
+ o$10.name = "";
+ }
+ if (o$10.type === 5) {
+ minifat_store = o$10.start;
+ if (nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = "!StreamData";
+ } else if (o$10.size >= 4096) {
+ o$10.storage = "fat";
+ if (sector_list[o$10.start] === undefined) sector_list[o$10.start] = get_sector_list(sectors, o$10.start, sector_list.fat_addrs, sector_list.ssz);
+ sector_list[o$10.start].name = o$10.name;
+ o$10.content = sector_list[o$10.start].data.slice(0, o$10.size);
+ } else {
+ o$10.storage = "minifat";
+ if (o$10.size < 0) o$10.size = 0;
+ else if (minifat_store !== ENDOFCHAIN && o$10.start !== ENDOFCHAIN && sector_list[minifat_store]) {
+ o$10.content = get_mfat_entry(o$10, sector_list[minifat_store].data, (sector_list[mini] || {}).data);
+ }
+ }
+ if (o$10.content) prep_blob(o$10.content, 0);
+ files[name] = o$10;
+ FileIndex.push(o$10);
+ }
+ }
+ function read_date(blob, offset) {
+ return new Date((__readUInt32LE(blob, offset + 4) / 1e7 * Math.pow(2, 32) + __readUInt32LE(blob, offset) / 1e7 - 11644473600) * 1e3);
+ }
+ function read_file(filename$1, options) {
+ get_fs();
+ return parse(fs.readFileSync(filename$1), options);
+ }
+ function read(blob, options) {
+ var type = options && options.type;
+ if (!type) {
+ if (has_buf && Buffer.isBuffer(blob)) type = "buffer";
+ }
+ switch (type || "base64") {
+ case "file": return read_file(blob, options);
+ case "base64": return parse(s2a(Base64_decode(blob)), options);
+ case "binary": return parse(s2a(blob), options);
+ }
+ return parse(blob, options);
+ }
+ function init_cfb(cfb, opts) {
+ var o$10 = opts || {}, root = o$10.root || "Root Entry";
+ if (!cfb.FullPaths) cfb.FullPaths = [];
+ if (!cfb.FileIndex) cfb.FileIndex = [];
+ if (cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error("inconsistent CFB structure");
+ if (cfb.FullPaths.length === 0) {
+ cfb.FullPaths[0] = root + "/";
+ cfb.FileIndex[0] = {
+ name: root,
+ type: 5
+ };
+ }
+ if (o$10.CLSID) cfb.FileIndex[0].clsid = o$10.CLSID;
+ seed_cfb(cfb);
+ }
+ function seed_cfb(cfb) {
+ var nm = "Sh33tJ5";
+ if (CFB.find(cfb, "/" + nm)) return;
+ var p$3 = new_buf(4);
+ p$3[0] = 55;
+ p$3[1] = p$3[3] = 50;
+ p$3[2] = 54;
+ cfb.FileIndex.push({
+ name: nm,
+ type: 2,
+ content: p$3,
+ size: 4,
+ L: 69,
+ R: 69,
+ C: 69
+ });
+ cfb.FullPaths.push(cfb.FullPaths[0] + nm);
+ rebuild_cfb(cfb);
+ }
+ function rebuild_cfb(cfb, f$4) {
+ init_cfb(cfb);
+ var gc = false, s$5 = false;
+ for (var i$8 = cfb.FullPaths.length - 1; i$8 >= 0; --i$8) {
+ var _file = cfb.FileIndex[i$8];
+ switch (_file.type) {
+ case 0:
+ if (s$5) gc = true;
+ else {
+ cfb.FileIndex.pop();
+ cfb.FullPaths.pop();
+ }
+ break;
+ case 1:
+ case 2:
+ case 5:
+ s$5 = true;
+ if (isNaN(_file.R * _file.L * _file.C)) gc = true;
+ if (_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;
+ break;
+ default:
+ gc = true;
+ break;
+ }
+ }
+ if (!gc && !f$4) return;
+ var now = new Date(1987, 1, 19), j$2 = 0;
+ var fullPaths = Object.create ? Object.create(null) : {};
+ var data = [];
+ for (i$8 = 0; i$8 < cfb.FullPaths.length; ++i$8) {
+ fullPaths[cfb.FullPaths[i$8]] = true;
+ if (cfb.FileIndex[i$8].type === 0) continue;
+ data.push([cfb.FullPaths[i$8], cfb.FileIndex[i$8]]);
+ }
+ for (i$8 = 0; i$8 < data.length; ++i$8) {
+ var dad = dirname(data[i$8][0]);
+ s$5 = fullPaths[dad];
+ while (!s$5) {
+ while (dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);
+ data.push([dad, {
+ name: filename(dad).replace("/", ""),
+ type: 1,
+ clsid: HEADER_CLSID,
+ ct: now,
+ mt: now,
+ content: null
+ }]);
+ fullPaths[dad] = true;
+ dad = dirname(data[i$8][0]);
+ s$5 = fullPaths[dad];
+ }
+ }
+ data.sort(function(x$2, y$3) {
+ return namecmp(x$2[0], y$3[0]);
+ });
+ cfb.FullPaths = [];
+ cfb.FileIndex = [];
+ for (i$8 = 0; i$8 < data.length; ++i$8) {
+ cfb.FullPaths[i$8] = data[i$8][0];
+ cfb.FileIndex[i$8] = data[i$8][1];
+ }
+ for (i$8 = 0; i$8 < data.length; ++i$8) {
+ var elt = cfb.FileIndex[i$8];
+ var nm = cfb.FullPaths[i$8];
+ elt.name = filename(nm).replace("/", "");
+ elt.L = elt.R = elt.C = -(elt.color = 1);
+ elt.size = elt.content ? elt.content.length : 0;
+ elt.start = 0;
+ elt.clsid = elt.clsid || HEADER_CLSID;
+ if (i$8 === 0) {
+ elt.C = data.length > 1 ? 1 : -1;
+ elt.size = 0;
+ elt.type = 5;
+ } else if (nm.slice(-1) == "/") {
+ for (j$2 = i$8 + 1; j$2 < data.length; ++j$2) if (dirname(cfb.FullPaths[j$2]) == nm) break;
+ elt.C = j$2 >= data.length ? -1 : j$2;
+ for (j$2 = i$8 + 1; j$2 < data.length; ++j$2) if (dirname(cfb.FullPaths[j$2]) == dirname(nm)) break;
+ elt.R = j$2 >= data.length ? -1 : j$2;
+ elt.type = 1;
+ } else {
+ if (dirname(cfb.FullPaths[i$8 + 1] || "") == dirname(nm)) elt.R = i$8 + 1;
+ elt.type = 2;
+ }
+ }
+ }
+ function _write(cfb, options) {
+ var _opts = options || {};
+ if (_opts.fileType == "mad") return write_mad(cfb, _opts);
+ rebuild_cfb(cfb);
+ switch (_opts.fileType) {
+ case "zip": return write_zip$1(cfb, _opts);
+ }
+ var L$2 = (function(cfb$1) {
+ var mini_size = 0, fat_size = 0;
+ for (var i$9 = 0; i$9 < cfb$1.FileIndex.length; ++i$9) {
+ var file$1 = cfb$1.FileIndex[i$9];
+ if (!file$1.content) continue;
+ var flen$1 = file$1.content.length;
+ if (flen$1 > 0) {
+ if (flen$1 < 4096) mini_size += flen$1 + 63 >> 6;
+ else fat_size += flen$1 + 511 >> 9;
+ }
+ }
+ var dir_cnt = cfb$1.FullPaths.length + 3 >> 2;
+ var mini_cnt = mini_size + 7 >> 3;
+ var mfat_cnt = mini_size + 127 >> 7;
+ var fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;
+ var fat_cnt = fat_base + 127 >> 7;
+ var difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt - 109) / 127);
+ while (fat_base + fat_cnt + difat_cnt + 127 >> 7 > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt - 109) / 127);
+ var L$3 = [
+ 1,
+ difat_cnt,
+ fat_cnt,
+ mfat_cnt,
+ dir_cnt,
+ fat_size,
+ mini_size,
+ 0
+ ];
+ cfb$1.FileIndex[0].size = mini_size << 6;
+ L$3[7] = (cfb$1.FileIndex[0].start = L$3[0] + L$3[1] + L$3[2] + L$3[3] + L$3[4] + L$3[5]) + (L$3[6] + 7 >> 3);
+ return L$3;
+ })(cfb);
+ var o$10 = new_buf(L$2[7] << 9);
+ var i$8 = 0, T$3 = 0;
+ {
+ for (i$8 = 0; i$8 < 8; ++i$8) o$10.write_shift(1, HEADER_SIG[i$8]);
+ for (i$8 = 0; i$8 < 8; ++i$8) o$10.write_shift(2, 0);
+ o$10.write_shift(2, 62);
+ o$10.write_shift(2, 3);
+ o$10.write_shift(2, 65534);
+ o$10.write_shift(2, 9);
+ o$10.write_shift(2, 6);
+ for (i$8 = 0; i$8 < 3; ++i$8) o$10.write_shift(2, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, L$2[2]);
+ o$10.write_shift(4, L$2[0] + L$2[1] + L$2[2] + L$2[3] - 1);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 1 << 12);
+ o$10.write_shift(4, L$2[3] ? L$2[0] + L$2[1] + L$2[2] - 1 : ENDOFCHAIN);
+ o$10.write_shift(4, L$2[3]);
+ o$10.write_shift(-4, L$2[1] ? L$2[0] - 1 : ENDOFCHAIN);
+ o$10.write_shift(4, L$2[1]);
+ for (i$8 = 0; i$8 < 109; ++i$8) o$10.write_shift(-4, i$8 < L$2[2] ? L$2[1] + i$8 : -1);
+ }
+ if (L$2[1]) {
+ for (T$3 = 0; T$3 < L$2[1]; ++T$3) {
+ for (; i$8 < 236 + T$3 * 127; ++i$8) o$10.write_shift(-4, i$8 < L$2[2] ? L$2[1] + i$8 : -1);
+ o$10.write_shift(-4, T$3 === L$2[1] - 1 ? ENDOFCHAIN : T$3 + 1);
+ }
+ }
+ var chainit = function(w$2) {
+ for (T$3 += w$2; i$8 < T$3 - 1; ++i$8) o$10.write_shift(-4, i$8 + 1);
+ if (w$2) {
+ ++i$8;
+ o$10.write_shift(-4, ENDOFCHAIN);
+ }
+ };
+ T$3 = i$8 = 0;
+ for (T$3 += L$2[1]; i$8 < T$3; ++i$8) o$10.write_shift(-4, consts.DIFSECT);
+ for (T$3 += L$2[2]; i$8 < T$3; ++i$8) o$10.write_shift(-4, consts.FATSECT);
+ chainit(L$2[3]);
+ chainit(L$2[4]);
+ var j$2 = 0, flen = 0;
+ var file = cfb.FileIndex[0];
+ for (; j$2 < cfb.FileIndex.length; ++j$2) {
+ file = cfb.FileIndex[j$2];
+ if (!file.content) continue;
+ flen = file.content.length;
+ if (flen < 4096) continue;
+ file.start = T$3;
+ chainit(flen + 511 >> 9);
+ }
+ chainit(L$2[6] + 7 >> 3);
+ while (o$10.l & 511) o$10.write_shift(-4, consts.ENDOFCHAIN);
+ T$3 = i$8 = 0;
+ for (j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) {
+ file = cfb.FileIndex[j$2];
+ if (!file.content) continue;
+ flen = file.content.length;
+ if (!flen || flen >= 4096) continue;
+ file.start = T$3;
+ chainit(flen + 63 >> 6);
+ }
+ while (o$10.l & 511) o$10.write_shift(-4, consts.ENDOFCHAIN);
+ for (i$8 = 0; i$8 < L$2[4] << 2; ++i$8) {
+ var nm = cfb.FullPaths[i$8];
+ if (!nm || nm.length === 0) {
+ for (j$2 = 0; j$2 < 17; ++j$2) o$10.write_shift(4, 0);
+ for (j$2 = 0; j$2 < 3; ++j$2) o$10.write_shift(4, -1);
+ for (j$2 = 0; j$2 < 12; ++j$2) o$10.write_shift(4, 0);
+ continue;
+ }
+ file = cfb.FileIndex[i$8];
+ if (i$8 === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;
+ var _nm = i$8 === 0 && _opts.root || file.name;
+ if (_nm.length > 31) {
+ console.error("Name " + _nm + " will be truncated to " + _nm.slice(0, 31));
+ _nm = _nm.slice(0, 31);
+ }
+ flen = 2 * (_nm.length + 1);
+ o$10.write_shift(64, _nm, "utf16le");
+ o$10.write_shift(2, flen);
+ o$10.write_shift(1, file.type);
+ o$10.write_shift(1, file.color);
+ o$10.write_shift(-4, file.L);
+ o$10.write_shift(-4, file.R);
+ o$10.write_shift(-4, file.C);
+ if (!file.clsid) for (j$2 = 0; j$2 < 4; ++j$2) o$10.write_shift(4, 0);
+ else o$10.write_shift(16, file.clsid, "hex");
+ o$10.write_shift(4, file.state || 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, file.start);
+ o$10.write_shift(4, file.size);
+ o$10.write_shift(4, 0);
+ }
+ for (i$8 = 1; i$8 < cfb.FileIndex.length; ++i$8) {
+ file = cfb.FileIndex[i$8];
+ if (file.size >= 4096) {
+ o$10.l = file.start + 1 << 9;
+ if (has_buf && Buffer.isBuffer(file.content)) {
+ file.content.copy(o$10, o$10.l, 0, file.size);
+ o$10.l += file.size + 511 & -512;
+ } else {
+ for (j$2 = 0; j$2 < file.size; ++j$2) o$10.write_shift(1, file.content[j$2]);
+ for (; j$2 & 511; ++j$2) o$10.write_shift(1, 0);
+ }
+ }
+ }
+ for (i$8 = 1; i$8 < cfb.FileIndex.length; ++i$8) {
+ file = cfb.FileIndex[i$8];
+ if (file.size > 0 && file.size < 4096) {
+ if (has_buf && Buffer.isBuffer(file.content)) {
+ file.content.copy(o$10, o$10.l, 0, file.size);
+ o$10.l += file.size + 63 & -64;
+ } else {
+ for (j$2 = 0; j$2 < file.size; ++j$2) o$10.write_shift(1, file.content[j$2]);
+ for (; j$2 & 63; ++j$2) o$10.write_shift(1, 0);
+ }
+ }
+ }
+ if (has_buf) {
+ o$10.l = o$10.length;
+ } else {
+ while (o$10.l < o$10.length) o$10.write_shift(1, 0);
+ }
+ return o$10;
+ }
+ function find(cfb, path$1) {
+ var UCFullPaths = cfb.FullPaths.map(function(x$2) {
+ return x$2.toUpperCase();
+ });
+ var UCPaths = UCFullPaths.map(function(x$2) {
+ var y$3 = x$2.split("/");
+ return y$3[y$3.length - (x$2.slice(-1) == "/" ? 2 : 1)];
+ });
+ var k$2 = false;
+ if (path$1.charCodeAt(0) === 47) {
+ k$2 = true;
+ path$1 = UCFullPaths[0].slice(0, -1) + path$1;
+ } else k$2 = path$1.indexOf("/") !== -1;
+ var UCPath = path$1.toUpperCase();
+ var w$2 = k$2 === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);
+ if (w$2 !== -1) return cfb.FileIndex[w$2];
+ var m$3 = !UCPath.match(chr1);
+ UCPath = UCPath.replace(chr0, "");
+ if (m$3) UCPath = UCPath.replace(chr1, "!");
+ for (w$2 = 0; w$2 < UCFullPaths.length; ++w$2) {
+ if ((m$3 ? UCFullPaths[w$2].replace(chr1, "!") : UCFullPaths[w$2]).replace(chr0, "") == UCPath) return cfb.FileIndex[w$2];
+ if ((m$3 ? UCPaths[w$2].replace(chr1, "!") : UCPaths[w$2]).replace(chr0, "") == UCPath) return cfb.FileIndex[w$2];
+ }
+ return null;
+ }
+ /** CFB Constants */
+ var MSSZ = 64;
+ var ENDOFCHAIN = -2;
+ var HEADER_SIGNATURE = "d0cf11e0a1b11ae1";
+ var HEADER_SIG = [
+ 208,
+ 207,
+ 17,
+ 224,
+ 161,
+ 177,
+ 26,
+ 225
+ ];
+ var HEADER_CLSID = "00000000000000000000000000000000";
+ var consts = {
+ MAXREGSECT: -6,
+ DIFSECT: -4,
+ FATSECT: -3,
+ ENDOFCHAIN,
+ FREESECT: -1,
+ HEADER_SIGNATURE,
+ HEADER_MINOR_VERSION: "3e00",
+ MAXREGSID: -6,
+ NOSTREAM: -1,
+ HEADER_CLSID,
+ EntryTypes: [
+ "unknown",
+ "storage",
+ "stream",
+ "lockbytes",
+ "property",
+ "root"
+ ]
+ };
+ function write_file(cfb, filename$1, options) {
+ get_fs();
+ var o$10 = _write(cfb, options);
+ fs.writeFileSync(filename$1, o$10);
+ }
+ function a2s$1(o$10) {
+ var out = new Array(o$10.length);
+ for (var i$8 = 0; i$8 < o$10.length; ++i$8) out[i$8] = String.fromCharCode(o$10[i$8]);
+ return out.join("");
+ }
+ function write(cfb, options) {
+ var o$10 = _write(cfb, options);
+ switch (options && options.type || "buffer") {
+ case "file":
+ get_fs();
+ fs.writeFileSync(options.filename, o$10);
+ return o$10;
+ case "binary": return typeof o$10 == "string" ? o$10 : a2s$1(o$10);
+ case "base64": return Base64_encode(typeof o$10 == "string" ? o$10 : a2s$1(o$10));
+ case "buffer": if (has_buf) return Buffer.isBuffer(o$10) ? o$10 : Buffer_from(o$10);
+ case "array": return typeof o$10 == "string" ? s2a(o$10) : o$10;
+ }
+ return o$10;
+ }
+ var _zlib;
+ function use_zlib(zlib) {
+ try {
+ var InflateRaw = zlib.InflateRaw;
+ var InflRaw = new InflateRaw();
+ InflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);
+ if (InflRaw.bytesRead) _zlib = zlib;
+ else throw new Error("zlib does not expose bytesRead");
+ } catch (e$10) {
+ console.error("cannot use native zlib: " + (e$10.message || e$10));
+ }
+ }
+ function _inflateRawSync(payload, usz) {
+ if (!_zlib) return _inflate(payload, usz);
+ var InflateRaw = _zlib.InflateRaw;
+ var InflRaw = new InflateRaw();
+ var out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);
+ payload.l += InflRaw.bytesRead;
+ return out;
+ }
+ function _deflateRawSync(payload) {
+ return _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);
+ }
+ var CLEN_ORDER = [
+ 16,
+ 17,
+ 18,
+ 0,
+ 8,
+ 7,
+ 9,
+ 6,
+ 10,
+ 5,
+ 11,
+ 4,
+ 12,
+ 3,
+ 13,
+ 2,
+ 14,
+ 1,
+ 15
+ ];
+ var LEN_LN = [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 13,
+ 15,
+ 17,
+ 19,
+ 23,
+ 27,
+ 31,
+ 35,
+ 43,
+ 51,
+ 59,
+ 67,
+ 83,
+ 99,
+ 115,
+ 131,
+ 163,
+ 195,
+ 227,
+ 258
+ ];
+ var DST_LN = [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 9,
+ 13,
+ 17,
+ 25,
+ 33,
+ 49,
+ 65,
+ 97,
+ 129,
+ 193,
+ 257,
+ 385,
+ 513,
+ 769,
+ 1025,
+ 1537,
+ 2049,
+ 3073,
+ 4097,
+ 6145,
+ 8193,
+ 12289,
+ 16385,
+ 24577
+ ];
+ function bit_swap_8(n$9) {
+ var t$6 = (n$9 << 1 | n$9 << 11) & 139536 | (n$9 << 5 | n$9 << 15) & 558144;
+ return (t$6 >> 16 | t$6 >> 8 | t$6) & 255;
+ }
+ var use_typed_arrays = typeof Uint8Array !== "undefined";
+ var bitswap8 = use_typed_arrays ? new Uint8Array(1 << 8) : [];
+ for (var q$2 = 0; q$2 < 1 << 8; ++q$2) bitswap8[q$2] = bit_swap_8(q$2);
+ function bit_swap_n(n$9, b$3) {
+ var rev = bitswap8[n$9 & 255];
+ if (b$3 <= 8) return rev >>> 8 - b$3;
+ rev = rev << 8 | bitswap8[n$9 >> 8 & 255];
+ if (b$3 <= 16) return rev >>> 16 - b$3;
+ rev = rev << 8 | bitswap8[n$9 >> 16 & 255];
+ return rev >>> 24 - b$3;
+ }
+ function read_bits_2(buf, bl) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ return (buf[h$5] | (w$2 <= 6 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 3;
+ }
+ function read_bits_3(buf, bl) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ return (buf[h$5] | (w$2 <= 5 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 7;
+ }
+ function read_bits_4(buf, bl) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ return (buf[h$5] | (w$2 <= 4 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 15;
+ }
+ function read_bits_5(buf, bl) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ return (buf[h$5] | (w$2 <= 3 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 31;
+ }
+ function read_bits_7(buf, bl) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ return (buf[h$5] | (w$2 <= 1 ? 0 : buf[h$5 + 1] << 8)) >>> w$2 & 127;
+ }
+ function read_bits_n(buf, bl, n$9) {
+ var w$2 = bl & 7, h$5 = bl >>> 3, f$4 = (1 << n$9) - 1;
+ var v$3 = buf[h$5] >>> w$2;
+ if (n$9 < 8 - w$2) return v$3 & f$4;
+ v$3 |= buf[h$5 + 1] << 8 - w$2;
+ if (n$9 < 16 - w$2) return v$3 & f$4;
+ v$3 |= buf[h$5 + 2] << 16 - w$2;
+ if (n$9 < 24 - w$2) return v$3 & f$4;
+ v$3 |= buf[h$5 + 3] << 24 - w$2;
+ return v$3 & f$4;
+ }
+ function write_bits_3(buf, bl, v$3) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ if (w$2 <= 5) buf[h$5] |= (v$3 & 7) << w$2;
+ else {
+ buf[h$5] |= v$3 << w$2 & 255;
+ buf[h$5 + 1] = (v$3 & 7) >> 8 - w$2;
+ }
+ return bl + 3;
+ }
+ function write_bits_1(buf, bl, v$3) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ v$3 = (v$3 & 1) << w$2;
+ buf[h$5] |= v$3;
+ return bl + 1;
+ }
+ function write_bits_8(buf, bl, v$3) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ v$3 <<= w$2;
+ buf[h$5] |= v$3 & 255;
+ v$3 >>>= 8;
+ buf[h$5 + 1] = v$3;
+ return bl + 8;
+ }
+ function write_bits_16(buf, bl, v$3) {
+ var w$2 = bl & 7, h$5 = bl >>> 3;
+ v$3 <<= w$2;
+ buf[h$5] |= v$3 & 255;
+ v$3 >>>= 8;
+ buf[h$5 + 1] = v$3 & 255;
+ buf[h$5 + 2] = v$3 >>> 8;
+ return bl + 16;
+ }
+ function realloc(b$3, sz) {
+ var L$2 = b$3.length, M$3 = 2 * L$2 > sz ? 2 * L$2 : sz + 5, i$8 = 0;
+ if (L$2 >= sz) return b$3;
+ if (has_buf) {
+ var o$10 = new_unsafe_buf(M$3);
+ if (b$3.copy) b$3.copy(o$10);
+ else for (; i$8 < b$3.length; ++i$8) o$10[i$8] = b$3[i$8];
+ return o$10;
+ } else if (use_typed_arrays) {
+ var a$2 = new Uint8Array(M$3);
+ if (a$2.set) a$2.set(b$3);
+ else for (; i$8 < L$2; ++i$8) a$2[i$8] = b$3[i$8];
+ return a$2;
+ }
+ b$3.length = M$3;
+ return b$3;
+ }
+ function zero_fill_array(n$9) {
+ var o$10 = new Array(n$9);
+ for (var i$8 = 0; i$8 < n$9; ++i$8) o$10[i$8] = 0;
+ return o$10;
+ }
+ function build_tree(clens, cmap, MAX) {
+ var maxlen = 1, w$2 = 0, i$8 = 0, j$2 = 0, ccode = 0, L$2 = clens.length;
+ var bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);
+ for (i$8 = 0; i$8 < 32; ++i$8) bl_count[i$8] = 0;
+ for (i$8 = L$2; i$8 < MAX; ++i$8) clens[i$8] = 0;
+ L$2 = clens.length;
+ var ctree = use_typed_arrays ? new Uint16Array(L$2) : zero_fill_array(L$2);
+ for (i$8 = 0; i$8 < L$2; ++i$8) {
+ bl_count[w$2 = clens[i$8]]++;
+ if (maxlen < w$2) maxlen = w$2;
+ ctree[i$8] = 0;
+ }
+ bl_count[0] = 0;
+ for (i$8 = 1; i$8 <= maxlen; ++i$8) bl_count[i$8 + 16] = ccode = ccode + bl_count[i$8 - 1] << 1;
+ for (i$8 = 0; i$8 < L$2; ++i$8) {
+ ccode = clens[i$8];
+ if (ccode != 0) ctree[i$8] = bl_count[ccode + 16]++;
+ }
+ var cleni = 0;
+ for (i$8 = 0; i$8 < L$2; ++i$8) {
+ cleni = clens[i$8];
+ if (cleni != 0) {
+ ccode = bit_swap_n(ctree[i$8], maxlen) >> maxlen - cleni;
+ for (j$2 = (1 << maxlen + 4 - cleni) - 1; j$2 >= 0; --j$2) cmap[ccode | j$2 << cleni] = cleni & 15 | i$8 << 4;
+ }
+ }
+ return maxlen;
+ }
+ var fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);
+ var fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);
+ if (!use_typed_arrays) {
+ for (var i$7 = 0; i$7 < 512; ++i$7) fix_lmap[i$7] = 0;
+ for (i$7 = 0; i$7 < 32; ++i$7) fix_dmap[i$7] = 0;
+ }
+ (function() {
+ var dlens = [];
+ var i$8 = 0;
+ for (; i$8 < 32; i$8++) dlens.push(5);
+ build_tree(dlens, fix_dmap, 32);
+ var clens = [];
+ i$8 = 0;
+ for (; i$8 <= 143; i$8++) clens.push(8);
+ for (; i$8 <= 255; i$8++) clens.push(9);
+ for (; i$8 <= 279; i$8++) clens.push(7);
+ for (; i$8 <= 287; i$8++) clens.push(8);
+ build_tree(clens, fix_lmap, 288);
+ })();
+ var _deflateRaw = /* @__PURE__ */ (function _deflateRawIIFE() {
+ var DST_LN_RE = use_typed_arrays ? new Uint8Array(32768) : [];
+ var j$2 = 0, k$2 = 0;
+ for (; j$2 < DST_LN.length - 1; ++j$2) {
+ for (; k$2 < DST_LN[j$2 + 1]; ++k$2) DST_LN_RE[k$2] = j$2;
+ }
+ for (; k$2 < 32768; ++k$2) DST_LN_RE[k$2] = 29;
+ var LEN_LN_RE = use_typed_arrays ? new Uint8Array(259) : [];
+ for (j$2 = 0, k$2 = 0; j$2 < LEN_LN.length - 1; ++j$2) {
+ for (; k$2 < LEN_LN[j$2 + 1]; ++k$2) LEN_LN_RE[k$2] = j$2;
+ }
+ function write_stored(data, out) {
+ var boff = 0;
+ while (boff < data.length) {
+ var L$2 = Math.min(65535, data.length - boff);
+ var h$5 = boff + L$2 == data.length;
+ out.write_shift(1, +h$5);
+ out.write_shift(2, L$2);
+ out.write_shift(2, ~L$2 & 65535);
+ while (L$2-- > 0) out[out.l++] = data[boff++];
+ }
+ return out.l;
+ }
+ function write_huff_fixed(data, out) {
+ var bl = 0;
+ var boff = 0;
+ var addrs = use_typed_arrays ? new Uint16Array(32768) : [];
+ while (boff < data.length) {
+ var L$2 = Math.min(65535, data.length - boff);
+ if (L$2 < 10) {
+ bl = write_bits_3(out, bl, +!!(boff + L$2 == data.length));
+ if (bl & 7) bl += 8 - (bl & 7);
+ out.l = bl / 8 | 0;
+ out.write_shift(2, L$2);
+ out.write_shift(2, ~L$2 & 65535);
+ while (L$2-- > 0) out[out.l++] = data[boff++];
+ bl = out.l * 8;
+ continue;
+ }
+ bl = write_bits_3(out, bl, +!!(boff + L$2 == data.length) + 2);
+ var hash = 0;
+ while (L$2-- > 0) {
+ var d$5 = data[boff];
+ hash = (hash << 5 ^ d$5) & 32767;
+ var match = -1, mlen = 0;
+ if (match = addrs[hash]) {
+ match |= boff & ~32767;
+ if (match > boff) match -= 32768;
+ if (match < boff) while (data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;
+ }
+ if (mlen > 2) {
+ d$5 = LEN_LN_RE[mlen];
+ if (d$5 <= 22) bl = write_bits_8(out, bl, bitswap8[d$5 + 1] >> 1) - 1;
+ else {
+ write_bits_8(out, bl, 3);
+ bl += 5;
+ write_bits_8(out, bl, bitswap8[d$5 - 23] >> 5);
+ bl += 3;
+ }
+ var len_eb = d$5 < 8 ? 0 : d$5 - 4 >> 2;
+ if (len_eb > 0) {
+ write_bits_16(out, bl, mlen - LEN_LN[d$5]);
+ bl += len_eb;
+ }
+ d$5 = DST_LN_RE[boff - match];
+ bl = write_bits_8(out, bl, bitswap8[d$5] >> 3);
+ bl -= 3;
+ var dst_eb = d$5 < 4 ? 0 : d$5 - 2 >> 1;
+ if (dst_eb > 0) {
+ write_bits_16(out, bl, boff - match - DST_LN[d$5]);
+ bl += dst_eb;
+ }
+ for (var q$3 = 0; q$3 < mlen; ++q$3) {
+ addrs[hash] = boff & 32767;
+ hash = (hash << 5 ^ data[boff]) & 32767;
+ ++boff;
+ }
+ L$2 -= mlen - 1;
+ } else {
+ if (d$5 <= 143) d$5 = d$5 + 48;
+ else bl = write_bits_1(out, bl, 1);
+ bl = write_bits_8(out, bl, bitswap8[d$5]);
+ addrs[hash] = boff & 32767;
+ ++boff;
+ }
+ }
+ bl = write_bits_8(out, bl, 0) - 1;
+ }
+ out.l = (bl + 7) / 8 | 0;
+ return out.l;
+ }
+ return function _deflateRaw$1(data, out) {
+ if (data.length < 8) return write_stored(data, out);
+ return write_huff_fixed(data, out);
+ };
+ })();
+ function _deflate(data) {
+ var buf = new_buf(50 + Math.floor(data.length * 1.1));
+ var off = _deflateRaw(data, buf);
+ return buf.slice(0, off);
+ }
+ var dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);
+ var dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);
+ var dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);
+ var dyn_len_1 = 1, dyn_len_2 = 1;
+ function dyn(data, boff) {
+ var _HLIT = read_bits_5(data, boff) + 257;
+ boff += 5;
+ var _HDIST = read_bits_5(data, boff) + 1;
+ boff += 5;
+ var _HCLEN = read_bits_4(data, boff) + 4;
+ boff += 4;
+ var w$2 = 0;
+ var clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);
+ var ctree = [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ];
+ var maxlen = 1;
+ var bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);
+ var next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);
+ var L$2 = clens.length;
+ for (var i$8 = 0; i$8 < _HCLEN; ++i$8) {
+ clens[CLEN_ORDER[i$8]] = w$2 = read_bits_3(data, boff);
+ if (maxlen < w$2) maxlen = w$2;
+ bl_count[w$2]++;
+ boff += 3;
+ }
+ var ccode = 0;
+ bl_count[0] = 0;
+ for (i$8 = 1; i$8 <= maxlen; ++i$8) next_code[i$8] = ccode = ccode + bl_count[i$8 - 1] << 1;
+ for (i$8 = 0; i$8 < L$2; ++i$8) if ((ccode = clens[i$8]) != 0) ctree[i$8] = next_code[ccode]++;
+ var cleni = 0;
+ for (i$8 = 0; i$8 < L$2; ++i$8) {
+ cleni = clens[i$8];
+ if (cleni != 0) {
+ ccode = bitswap8[ctree[i$8]] >> 8 - cleni;
+ for (var j$2 = (1 << 7 - cleni) - 1; j$2 >= 0; --j$2) dyn_cmap[ccode | j$2 << cleni] = cleni & 7 | i$8 << 3;
+ }
+ }
+ var hcodes = [];
+ maxlen = 1;
+ for (; hcodes.length < _HLIT + _HDIST;) {
+ ccode = dyn_cmap[read_bits_7(data, boff)];
+ boff += ccode & 7;
+ switch (ccode >>>= 3) {
+ case 16:
+ w$2 = 3 + read_bits_2(data, boff);
+ boff += 2;
+ ccode = hcodes[hcodes.length - 1];
+ while (w$2-- > 0) hcodes.push(ccode);
+ break;
+ case 17:
+ w$2 = 3 + read_bits_3(data, boff);
+ boff += 3;
+ while (w$2-- > 0) hcodes.push(0);
+ break;
+ case 18:
+ w$2 = 11 + read_bits_7(data, boff);
+ boff += 7;
+ while (w$2-- > 0) hcodes.push(0);
+ break;
+ default:
+ hcodes.push(ccode);
+ if (maxlen < ccode) maxlen = ccode;
+ break;
+ }
+ }
+ var h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);
+ for (i$8 = _HLIT; i$8 < 286; ++i$8) h1[i$8] = 0;
+ for (i$8 = _HDIST; i$8 < 30; ++i$8) h2[i$8] = 0;
+ dyn_len_1 = build_tree(h1, dyn_lmap, 286);
+ dyn_len_2 = build_tree(h2, dyn_dmap, 30);
+ return boff;
+ }
+ function inflate(data, usz) {
+ if (data[0] == 3 && !(data[1] & 3)) {
+ return [new_raw_buf(usz), 2];
+ }
+ var boff = 0;
+ var header = 0;
+ var outbuf = new_unsafe_buf(usz ? usz : 1 << 18);
+ var woff = 0;
+ var OL = outbuf.length >>> 0;
+ var max_len_1 = 0, max_len_2 = 0;
+ while ((header & 1) == 0) {
+ header = read_bits_3(data, boff);
+ boff += 3;
+ if (header >>> 1 == 0) {
+ if (boff & 7) boff += 8 - (boff & 7);
+ var sz = data[boff >>> 3] | data[(boff >>> 3) + 1] << 8;
+ boff += 32;
+ if (sz > 0) {
+ if (!usz && OL < woff + sz) {
+ outbuf = realloc(outbuf, woff + sz);
+ OL = outbuf.length;
+ }
+ while (sz-- > 0) {
+ outbuf[woff++] = data[boff >>> 3];
+ boff += 8;
+ }
+ }
+ continue;
+ } else if (header >> 1 == 1) {
+ max_len_1 = 9;
+ max_len_2 = 5;
+ } else {
+ boff = dyn(data, boff);
+ max_len_1 = dyn_len_1;
+ max_len_2 = dyn_len_2;
+ }
+ for (;;) {
+ if (!usz && OL < woff + 32767) {
+ outbuf = realloc(outbuf, woff + 32767);
+ OL = outbuf.length;
+ }
+ var bits = read_bits_n(data, boff, max_len_1);
+ var code = header >>> 1 == 1 ? fix_lmap[bits] : dyn_lmap[bits];
+ boff += code & 15;
+ code >>>= 4;
+ if ((code >>> 8 & 255) === 0) outbuf[woff++] = code;
+ else if (code == 256) break;
+ else {
+ code -= 257;
+ var len_eb = code < 8 ? 0 : code - 4 >> 2;
+ if (len_eb > 5) len_eb = 0;
+ var tgt = woff + LEN_LN[code];
+ if (len_eb > 0) {
+ tgt += read_bits_n(data, boff, len_eb);
+ boff += len_eb;
+ }
+ bits = read_bits_n(data, boff, max_len_2);
+ code = header >>> 1 == 1 ? fix_dmap[bits] : dyn_dmap[bits];
+ boff += code & 15;
+ code >>>= 4;
+ var dst_eb = code < 4 ? 0 : code - 2 >> 1;
+ var dst = DST_LN[code];
+ if (dst_eb > 0) {
+ dst += read_bits_n(data, boff, dst_eb);
+ boff += dst_eb;
+ }
+ if (!usz && OL < tgt) {
+ outbuf = realloc(outbuf, tgt + 100);
+ OL = outbuf.length;
+ }
+ while (woff < tgt) {
+ outbuf[woff] = outbuf[woff - dst];
+ ++woff;
+ }
+ }
+ }
+ }
+ if (usz) return [outbuf, boff + 7 >>> 3];
+ return [outbuf.slice(0, woff), boff + 7 >>> 3];
+ }
+ function _inflate(payload, usz) {
+ var data = payload.slice(payload.l || 0);
+ var out = inflate(data, usz);
+ payload.l += out[1];
+ return out[0];
+ }
+ function warn_or_throw(wrn, msg) {
+ if (wrn) {
+ if (typeof console !== "undefined") console.error(msg);
+ } else throw new Error(msg);
+ }
+ function parse_zip$1(file, options) {
+ var blob = file;
+ prep_blob(blob, 0);
+ var FileIndex = [], FullPaths = [];
+ var o$10 = {
+ FileIndex,
+ FullPaths
+ };
+ init_cfb(o$10, { root: options.root });
+ var i$8 = blob.length - 4;
+ while ((blob[i$8] != 80 || blob[i$8 + 1] != 75 || blob[i$8 + 2] != 5 || blob[i$8 + 3] != 6) && i$8 >= 0) --i$8;
+ blob.l = i$8 + 4;
+ blob.l += 4;
+ var fcnt = blob.read_shift(2);
+ blob.l += 6;
+ var start_cd = blob.read_shift(4);
+ blob.l = start_cd;
+ for (i$8 = 0; i$8 < fcnt; ++i$8) {
+ blob.l += 20;
+ var csz = blob.read_shift(4);
+ var usz = blob.read_shift(4);
+ var namelen = blob.read_shift(2);
+ var efsz = blob.read_shift(2);
+ var fcsz = blob.read_shift(2);
+ blob.l += 8;
+ var offset = blob.read_shift(4);
+ var EF = parse_extra_field(blob.slice(blob.l + namelen, blob.l + namelen + efsz));
+ blob.l += namelen + efsz + fcsz;
+ var L$2 = blob.l;
+ blob.l = offset + 4;
+ if (EF && EF[1]) {
+ if ((EF[1] || {}).usz) usz = EF[1].usz;
+ if ((EF[1] || {}).csz) csz = EF[1].csz;
+ }
+ parse_local_file(blob, csz, usz, o$10, EF);
+ blob.l = L$2;
+ }
+ return o$10;
+ }
+ function parse_local_file(blob, csz, usz, o$10, EF) {
+ blob.l += 2;
+ var flags = blob.read_shift(2);
+ var meth = blob.read_shift(2);
+ var date = parse_dos_date(blob);
+ if (flags & 8257) throw new Error("Unsupported ZIP encryption");
+ var crc32 = blob.read_shift(4);
+ var _csz = blob.read_shift(4);
+ var _usz = blob.read_shift(4);
+ var namelen = blob.read_shift(2);
+ var efsz = blob.read_shift(2);
+ var name = "";
+ for (var i$8 = 0; i$8 < namelen; ++i$8) name += String.fromCharCode(blob[blob.l++]);
+ if (efsz) {
+ var ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));
+ if ((ef[21589] || {}).mt) date = ef[21589].mt;
+ if ((ef[1] || {}).usz) _usz = ef[1].usz;
+ if ((ef[1] || {}).csz) _csz = ef[1].csz;
+ if (EF) {
+ if ((EF[21589] || {}).mt) date = EF[21589].mt;
+ if ((EF[1] || {}).usz) _usz = EF[1].usz;
+ if ((EF[1] || {}).csz) _csz = EF[1].csz;
+ }
+ }
+ blob.l += efsz;
+ var data = blob.slice(blob.l, blob.l + _csz);
+ switch (meth) {
+ case 8:
+ data = _inflateRawSync(blob, _usz);
+ break;
+ case 0:
+ blob.l += _csz;
+ break;
+ default: throw new Error("Unsupported ZIP Compression method " + meth);
+ }
+ var wrn = false;
+ if (flags & 8) {
+ crc32 = blob.read_shift(4);
+ if (crc32 == 134695760) {
+ crc32 = blob.read_shift(4);
+ wrn = true;
+ }
+ _csz = blob.read_shift(4);
+ _usz = blob.read_shift(4);
+ }
+ if (_csz != csz) warn_or_throw(wrn, "Bad compressed size: " + csz + " != " + _csz);
+ if (_usz != usz) warn_or_throw(wrn, "Bad uncompressed size: " + usz + " != " + _usz);
+ cfb_add(o$10, name, data, {
+ unsafe: true,
+ mt: date
+ });
+ }
+ function write_zip$1(cfb, options) {
+ var _opts = options || {};
+ var out = [], cdirs = [];
+ var o$10 = new_buf(1);
+ var method = _opts.compression ? 8 : 0, flags = 0;
+ var desc = false;
+ if (desc) flags |= 8;
+ var i$8 = 0, j$2 = 0;
+ var start_cd = 0, fcnt = 0;
+ var root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];
+ var crcs = [];
+ var sz_cd = 0;
+ for (i$8 = 1; i$8 < cfb.FullPaths.length; ++i$8) {
+ fp = cfb.FullPaths[i$8].slice(root.length);
+ fi = cfb.FileIndex[i$8];
+ if (!fi.size || !fi.content || Array.isArray(fi.content) && fi.content.length == 0 || fp == "Sh33tJ5") continue;
+ var start = start_cd;
+ var namebuf = new_buf(fp.length);
+ for (j$2 = 0; j$2 < fp.length; ++j$2) namebuf.write_shift(1, fp.charCodeAt(j$2) & 127);
+ namebuf = namebuf.slice(0, namebuf.l);
+ crcs[fcnt] = typeof fi.content == "string" ? CRC32.bstr(fi.content, 0) : CRC32.buf(fi.content, 0);
+ var outbuf = typeof fi.content == "string" ? s2a(fi.content) : fi.content;
+ if (method == 8) outbuf = _deflateRawSync(outbuf);
+ o$10 = new_buf(30);
+ o$10.write_shift(4, 67324752);
+ o$10.write_shift(2, 20);
+ o$10.write_shift(2, flags);
+ o$10.write_shift(2, method);
+ if (fi.mt) write_dos_date(o$10, fi.mt);
+ else o$10.write_shift(4, 0);
+ o$10.write_shift(-4, flags & 8 ? 0 : crcs[fcnt]);
+ o$10.write_shift(4, flags & 8 ? 0 : outbuf.length);
+ o$10.write_shift(4, flags & 8 ? 0 : fi.content.length);
+ o$10.write_shift(2, namebuf.length);
+ o$10.write_shift(2, 0);
+ start_cd += o$10.length;
+ out.push(o$10);
+ start_cd += namebuf.length;
+ out.push(namebuf);
+ start_cd += outbuf.length;
+ out.push(outbuf);
+ if (flags & 8) {
+ o$10 = new_buf(12);
+ o$10.write_shift(-4, crcs[fcnt]);
+ o$10.write_shift(4, outbuf.length);
+ o$10.write_shift(4, fi.content.length);
+ start_cd += o$10.l;
+ out.push(o$10);
+ }
+ o$10 = new_buf(46);
+ o$10.write_shift(4, 33639248);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, 20);
+ o$10.write_shift(2, flags);
+ o$10.write_shift(2, method);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(-4, crcs[fcnt]);
+ o$10.write_shift(4, outbuf.length);
+ o$10.write_shift(4, fi.content.length);
+ o$10.write_shift(2, namebuf.length);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, start);
+ sz_cd += o$10.l;
+ cdirs.push(o$10);
+ sz_cd += namebuf.length;
+ cdirs.push(namebuf);
+ ++fcnt;
+ }
+ o$10 = new_buf(22);
+ o$10.write_shift(4, 101010256);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, 0);
+ o$10.write_shift(2, fcnt);
+ o$10.write_shift(2, fcnt);
+ o$10.write_shift(4, sz_cd);
+ o$10.write_shift(4, start_cd);
+ o$10.write_shift(2, 0);
+ return bconcat([
+ bconcat(out),
+ bconcat(cdirs),
+ o$10
+ ]);
+ }
+ var ContentTypeMap = {
+ "htm": "text/html",
+ "xml": "text/xml",
+ "gif": "image/gif",
+ "jpg": "image/jpeg",
+ "png": "image/png",
+ "mso": "application/x-mso",
+ "thmx": "application/vnd.ms-officetheme",
+ "sh33tj5": "application/octet-stream"
+ };
+ function get_content_type(fi, fp) {
+ if (fi.ctype) return fi.ctype;
+ var ext = fi.name || "", m$3 = ext.match(/\.([^\.]+)$/);
+ if (m$3 && ContentTypeMap[m$3[1]]) return ContentTypeMap[m$3[1]];
+ if (fp) {
+ m$3 = (ext = fp).match(/[\.\\]([^\.\\])+$/);
+ if (m$3 && ContentTypeMap[m$3[1]]) return ContentTypeMap[m$3[1]];
+ }
+ return "application/octet-stream";
+ }
+ function write_base64_76(bstr) {
+ var data = Base64_encode(bstr);
+ var o$10 = [];
+ for (var i$8 = 0; i$8 < data.length; i$8 += 76) o$10.push(data.slice(i$8, i$8 + 76));
+ return o$10.join("\r\n") + "\r\n";
+ }
+ function write_quoted_printable(text$2) {
+ var encoded = text$2.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g, function(c$7) {
+ var w$2 = c$7.charCodeAt(0).toString(16).toUpperCase();
+ return "=" + (w$2.length == 1 ? "0" + w$2 : w$2);
+ });
+ encoded = encoded.replace(/ $/gm, "=20").replace(/\t$/gm, "=09");
+ if (encoded.charAt(0) == "\n") encoded = "=0D" + encoded.slice(1);
+ encoded = encoded.replace(/\r(?!\n)/gm, "=0D").replace(/\n\n/gm, "\n=0A").replace(/([^\r\n])\n/gm, "$1=0A");
+ var o$10 = [], split = encoded.split("\r\n");
+ for (var si = 0; si < split.length; ++si) {
+ var str = split[si];
+ if (str.length == 0) {
+ o$10.push("");
+ continue;
+ }
+ for (var i$8 = 0; i$8 < str.length;) {
+ var end = 76;
+ var tmp = str.slice(i$8, i$8 + end);
+ if (tmp.charAt(end - 1) == "=") end--;
+ else if (tmp.charAt(end - 2) == "=") end -= 2;
+ else if (tmp.charAt(end - 3) == "=") end -= 3;
+ tmp = str.slice(i$8, i$8 + end);
+ i$8 += end;
+ if (i$8 < str.length) tmp += "=";
+ o$10.push(tmp);
+ }
+ }
+ return o$10.join("\r\n");
+ }
+ function parse_quoted_printable(data) {
+ var o$10 = [];
+ for (var di = 0; di < data.length; ++di) {
+ var line = data[di];
+ while (di <= data.length && line.charAt(line.length - 1) == "=") line = line.slice(0, line.length - 1) + data[++di];
+ o$10.push(line);
+ }
+ for (var oi = 0; oi < o$10.length; ++oi) o$10[oi] = o$10[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) {
+ return String.fromCharCode(parseInt($$.slice(1), 16));
+ });
+ return s2a(o$10.join("\r\n"));
+ }
+ function parse_mime(cfb, data, root) {
+ var fname = "", cte = "", ctype = "", fdata;
+ var di = 0;
+ for (; di < 10; ++di) {
+ var line = data[di];
+ if (!line || line.match(/^\s*$/)) break;
+ var m$3 = line.match(/^([^:]*?):\s*([^\s].*)$/);
+ if (m$3) switch (m$3[1].toLowerCase()) {
+ case "content-location":
+ fname = m$3[2].trim();
+ break;
+ case "content-type":
+ ctype = m$3[2].trim();
+ break;
+ case "content-transfer-encoding":
+ cte = m$3[2].trim();
+ break;
+ }
+ }
+ ++di;
+ switch (cte.toLowerCase()) {
+ case "base64":
+ fdata = s2a(Base64_decode(data.slice(di).join("")));
+ break;
+ case "quoted-printable":
+ fdata = parse_quoted_printable(data.slice(di));
+ break;
+ default: throw new Error("Unsupported Content-Transfer-Encoding " + cte);
+ }
+ var file = cfb_add(cfb, fname.slice(root.length), fdata, { unsafe: true });
+ if (ctype) file.ctype = ctype;
+ }
+ function parse_mad(file, options) {
+ if (a2s$1(file.slice(0, 13)).toLowerCase() != "mime-version:") throw new Error("Unsupported MAD header");
+ var root = options && options.root || "";
+ var data = (has_buf && Buffer.isBuffer(file) ? file.toString("binary") : a2s$1(file)).split("\r\n");
+ var di = 0, row = "";
+ for (di = 0; di < data.length; ++di) {
+ row = data[di];
+ if (!/^Content-Location:/i.test(row)) continue;
+ row = row.slice(row.indexOf("file"));
+ if (!root) root = row.slice(0, row.lastIndexOf("/") + 1);
+ if (row.slice(0, root.length) == root) continue;
+ while (root.length > 0) {
+ root = root.slice(0, root.length - 1);
+ root = root.slice(0, root.lastIndexOf("/") + 1);
+ if (row.slice(0, root.length) == root) break;
+ }
+ }
+ var mboundary = (data[1] || "").match(/boundary="(.*?)"/);
+ if (!mboundary) throw new Error("MAD cannot find boundary");
+ var boundary = "--" + (mboundary[1] || "");
+ var FileIndex = [], FullPaths = [];
+ var o$10 = {
+ FileIndex,
+ FullPaths
+ };
+ init_cfb(o$10);
+ var start_di, fcnt = 0;
+ for (di = 0; di < data.length; ++di) {
+ var line = data[di];
+ if (line !== boundary && line !== boundary + "--") continue;
+ if (fcnt++) parse_mime(o$10, data.slice(start_di, di), root);
+ start_di = di;
+ }
+ return o$10;
+ }
+ function write_mad(cfb, options) {
+ var opts = options || {};
+ var boundary = opts.boundary || "SheetJS";
+ boundary = "------=" + boundary;
+ var out = [
+ "MIME-Version: 1.0",
+ "Content-Type: multipart/related; boundary=\"" + boundary.slice(2) + "\"",
+ "",
+ "",
+ ""
+ ];
+ var root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];
+ for (var i$8 = 1; i$8 < cfb.FullPaths.length; ++i$8) {
+ fp = cfb.FullPaths[i$8].slice(root.length);
+ fi = cfb.FileIndex[i$8];
+ if (!fi.size || !fi.content || fp == "Sh33tJ5") continue;
+ fp = fp.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF]/g, function(c$7) {
+ return "_x" + c$7.charCodeAt(0).toString(16) + "_";
+ }).replace(/[\u0080-\uFFFF]/g, function(u$4) {
+ return "_u" + u$4.charCodeAt(0).toString(16) + "_";
+ });
+ var ca = fi.content;
+ var cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString("binary") : a2s$1(ca);
+ var dispcnt = 0, L$2 = Math.min(1024, cstr.length), cc = 0;
+ for (var csl = 0; csl <= L$2; ++csl) if ((cc = cstr.charCodeAt(csl)) >= 32 && cc < 128) ++dispcnt;
+ var qp = dispcnt >= L$2 * 4 / 5;
+ out.push(boundary);
+ out.push("Content-Location: " + (opts.root || "file:///C:/SheetJS/") + fp);
+ out.push("Content-Transfer-Encoding: " + (qp ? "quoted-printable" : "base64"));
+ out.push("Content-Type: " + get_content_type(fi, fp));
+ out.push("");
+ out.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));
+ }
+ out.push(boundary + "--\r\n");
+ return out.join("\r\n");
+ }
+ function cfb_new(opts) {
+ var o$10 = {};
+ init_cfb(o$10, opts);
+ return o$10;
+ }
+ function cfb_add(cfb, name, content, opts) {
+ var unsafe = opts && opts.unsafe;
+ if (!unsafe) init_cfb(cfb);
+ var file = !unsafe && CFB.find(cfb, name);
+ if (!file) {
+ var fpath = cfb.FullPaths[0];
+ if (name.slice(0, fpath.length) == fpath) fpath = name;
+ else {
+ if (fpath.slice(-1) != "/") fpath += "/";
+ fpath = (fpath + name).replace("//", "/");
+ }
+ file = {
+ name: filename(name),
+ type: 2
+ };
+ cfb.FileIndex.push(file);
+ cfb.FullPaths.push(fpath);
+ if (!unsafe) CFB.utils.cfb_gc(cfb);
+ }
+ file.content = content;
+ file.size = content ? content.length : 0;
+ if (opts) {
+ if (opts.CLSID) file.clsid = opts.CLSID;
+ if (opts.mt) file.mt = opts.mt;
+ if (opts.ct) file.ct = opts.ct;
+ }
+ return file;
+ }
+ function cfb_del(cfb, name) {
+ init_cfb(cfb);
+ var file = CFB.find(cfb, name);
+ if (file) {
+ for (var j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) if (cfb.FileIndex[j$2] == file) {
+ cfb.FileIndex.splice(j$2, 1);
+ cfb.FullPaths.splice(j$2, 1);
+ return true;
+ }
+ }
+ return false;
+ }
+ function cfb_mov(cfb, old_name, new_name) {
+ init_cfb(cfb);
+ var file = CFB.find(cfb, old_name);
+ if (file) {
+ for (var j$2 = 0; j$2 < cfb.FileIndex.length; ++j$2) if (cfb.FileIndex[j$2] == file) {
+ cfb.FileIndex[j$2].name = filename(new_name);
+ cfb.FullPaths[j$2] = new_name;
+ return true;
+ }
+ }
+ return false;
+ }
+ function cfb_gc(cfb) {
+ rebuild_cfb(cfb, true);
+ }
+ exports$1.find = find;
+ exports$1.read = read;
+ exports$1.parse = parse;
+ exports$1.write = write;
+ exports$1.writeFile = write_file;
+ exports$1.utils = {
+ cfb_new,
+ cfb_add,
+ cfb_del,
+ cfb_mov,
+ cfb_gc,
+ ReadShift,
+ CheckField,
+ prep_blob,
+ bconcat,
+ use_zlib,
+ _deflateRaw: _deflate,
+ _inflateRaw: _inflate,
+ consts
+ };
+ return exports$1;
+ })();
+ ;
+ dnthresh = /* @__PURE__ */ Date.UTC(1899, 11, 30, 0, 0, 0);
+ dnthresh1 = /* @__PURE__ */ Date.UTC(1899, 11, 31, 0, 0, 0);
+ dnthresh2 = /* @__PURE__ */ Date.UTC(1904, 0, 1, 0, 0, 0);
+ pdre1 = /^(\d+):(\d+)(:\d+)?(\.\d+)?$/;
+ pdre2 = /^(\d+)-(\d+)-(\d+)$/;
+ pdre3 = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)?(\.\d+)?$/;
+ FDRE1 = /^(0?\d|1[0-2])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))\s+([ap])m?$/;
+ FDRE2 = /^([01]?\d|2[0-3])(?:|:([0-5]?\d)(?:|(\.\d+)(?:|:([0-5]?\d))|:([0-5]?\d)(|\.\d+)))$/;
+ FDISO = /^(\d+)-(\d+)-(\d+)[T ](\d+):(\d+)(:\d+)(\.\d+)?[Z]?$/;
+ utc_append_works = new Date("6/9/69 00:00 UTC").valueOf() == -177984e5;
+ lower_months = [
+ "january",
+ "february",
+ "march",
+ "april",
+ "may",
+ "june",
+ "july",
+ "august",
+ "september",
+ "october",
+ "november",
+ "december"
+ ];
+ split_regex = /* @__PURE__ */ (function() {
+ var safe_split_regex = "abacaba".split(/(:?b)/i).length == 5;
+ return function split_regex$1(str, re$1, def) {
+ if (safe_split_regex || typeof re$1 == "string") return str.split(re$1);
+ var p$3 = str.split(re$1), o$10 = [p$3[0]];
+ for (var i$7 = 1; i$7 < p$3.length; ++i$7) {
+ o$10.push(def);
+ o$10.push(p$3[i$7]);
+ }
+ return o$10;
+ };
+ })();
+ xml_boundary = {
+ " ": 1,
+ " ": 1,
+ "\r": 1,
+ "\n": 1,
+ ">": 1
+ };
+ str_match_xml_ns = /* @__PURE__ */ (function() {
+ var str_match_xml_ns_cache = {};
+ return function str_match_xml_ns$1(str, tag) {
+ var res = str_match_xml_ns_cache[tag];
+ if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("(?:\\w+:)?" + tag + ">", "g")];
+ res[0].lastIndex = res[1].lastIndex = 0;
+ var m$3 = res[0].exec(str);
+ if (!m$3) return null;
+ var si = m$3.index;
+ var sf = res[0].lastIndex;
+ res[1].lastIndex = res[0].lastIndex;
+ m$3 = res[1].exec(str);
+ if (!m$3) return null;
+ var ei = m$3.index;
+ var ef = res[1].lastIndex;
+ return [str.slice(si, ef), str.slice(sf, ei)];
+ };
+ })();
+ str_match_xml_ns_g = /* @__PURE__ */ (function() {
+ var str_match_xml_ns_cache = {};
+ return function str_match_xml_ns$1(str, tag) {
+ var out = [];
+ var res = str_match_xml_ns_cache[tag];
+ if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("(?:\\w+:)?" + tag + ">", "g")];
+ res[0].lastIndex = res[1].lastIndex = 0;
+ var m$3;
+ while (m$3 = res[0].exec(str)) {
+ var si = m$3.index;
+ res[1].lastIndex = res[0].lastIndex;
+ m$3 = res[1].exec(str);
+ if (!m$3) return null;
+ var ef = res[1].lastIndex;
+ out.push(str.slice(si, ef));
+ res[0].lastIndex = res[1].lastIndex;
+ }
+ return out.length == 0 ? null : out;
+ };
+ })();
+ str_remove_xml_ns_g = /* @__PURE__ */ (function() {
+ var str_remove_xml_ns_cache = {};
+ return function str_remove_xml_ns_g$1(str, tag) {
+ var out = [];
+ var res = str_remove_xml_ns_cache[tag];
+ if (!res) str_remove_xml_ns_cache[tag] = res = [new RegExp("<(?:\\w+:)?" + tag + "\\b[^<>]*>", "g"), new RegExp("(?:\\w+:)?" + tag + ">", "g")];
+ res[0].lastIndex = res[1].lastIndex = 0;
+ var m$3;
+ var si = 0, ef = 0;
+ while (m$3 = res[0].exec(str)) {
+ si = m$3.index;
+ out.push(str.slice(ef, si));
+ ef = si;
+ res[1].lastIndex = res[0].lastIndex;
+ m$3 = res[1].exec(str);
+ if (!m$3) return null;
+ ef = res[1].lastIndex;
+ res[0].lastIndex = res[1].lastIndex;
+ }
+ out.push(str.slice(ef));
+ return out.length == 0 ? "" : out.join("");
+ };
+ })();
+ str_match_xml_ig = /* @__PURE__ */ (function() {
+ var str_match_xml_ns_cache = {};
+ return function str_match_xml_ns$1(str, tag) {
+ var out = [];
+ var res = str_match_xml_ns_cache[tag];
+ if (!res) str_match_xml_ns_cache[tag] = res = [new RegExp("<" + tag + "\\b[^<>]*>", "ig"), new RegExp("" + tag + ">", "ig")];
+ res[0].lastIndex = res[1].lastIndex = 0;
+ var m$3;
+ while (m$3 = res[0].exec(str)) {
+ var si = m$3.index;
+ res[1].lastIndex = res[0].lastIndex;
+ m$3 = res[1].exec(str);
+ if (!m$3) return null;
+ var ef = res[1].lastIndex;
+ out.push(str.slice(si, ef));
+ res[0].lastIndex = res[1].lastIndex;
+ }
+ return out.length == 0 ? null : out;
+ };
+ })();
+ XML_HEADER = "\r\n";
+ attregexg = /\s([^"\s?>\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g;
+ tagregex1 = /<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?<>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'"<>\s=]+))*\s*[\/\?]?>/gm, tagregex2 = /<[^<>]*>/g;
+ tagregex = /* @__PURE__ */ XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;
+ nsregex = /<\w*:/, nsregex2 = /<(\/?)\w+:/;
+ encodings = {
+ """: "\"",
+ "'": "'",
+ ">": ">",
+ "<": "<",
+ "&": "&"
+ };
+ rencoding = /* @__PURE__ */ evert(encodings);
+ unescapexml = /* @__PURE__ */ (function() {
+ var encregex = /&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi, coderegex = /_x([\da-fA-F]{4})_/gi;
+ function raw_unescapexml(text$2) {
+ var s$5 = text$2 + "", i$7 = s$5.indexOf(" -1 ? 16 : 10)) || $$;
+ }).replace(coderegex, function(m$3, c$7) {
+ return String.fromCharCode(parseInt(c$7, 16));
+ });
+ var j$2 = s$5.indexOf("]]>");
+ return raw_unescapexml(s$5.slice(0, i$7)) + s$5.slice(i$7 + 9, j$2) + raw_unescapexml(s$5.slice(j$2 + 3));
+ }
+ return function unescapexml$1(text$2, xlsx) {
+ var out = raw_unescapexml(text$2);
+ return xlsx ? out.replace(/\r\n/g, "\n") : out;
+ };
+ })();
+ decregex = /[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f\uFFFE-\uFFFF]/g;
+ htmlcharegex = /[\u0000-\u001f]/g;
+ xlml_fixstr = /* @__PURE__ */ (function() {
+ var entregex = /(\d+);/g;
+ function entrepl($$, $1) {
+ return String.fromCharCode(parseInt($1, 10));
+ }
+ return function xlml_fixstr$1(str) {
+ return str.replace(entregex, entrepl);
+ };
+ })();
+ utf8corpus = "foo bar bazâð£";
+ utf8read = has_buf && (/* @__PURE__ */ utf8readc(utf8corpus) == /* @__PURE__ */ utf8reada(utf8corpus) && utf8readc || /* @__PURE__ */ utf8readb(utf8corpus) == /* @__PURE__ */ utf8reada(utf8corpus) && utf8readb) || utf8reada;
+ utf8write = has_buf ? function(data) {
+ return Buffer_from(data, "utf8").toString("binary");
+ } : function(orig) {
+ var out = [], i$7 = 0, c$7 = 0, d$5 = 0;
+ while (i$7 < orig.length) {
+ c$7 = orig.charCodeAt(i$7++);
+ switch (true) {
+ case c$7 < 128:
+ out.push(String.fromCharCode(c$7));
+ break;
+ case c$7 < 2048:
+ out.push(String.fromCharCode(192 + (c$7 >> 6)));
+ out.push(String.fromCharCode(128 + (c$7 & 63)));
+ break;
+ case c$7 >= 55296 && c$7 < 57344:
+ c$7 -= 55296;
+ d$5 = orig.charCodeAt(i$7++) - 56320 + (c$7 << 10);
+ out.push(String.fromCharCode(240 + (d$5 >> 18 & 7)));
+ out.push(String.fromCharCode(144 + (d$5 >> 12 & 63)));
+ out.push(String.fromCharCode(128 + (d$5 >> 6 & 63)));
+ out.push(String.fromCharCode(128 + (d$5 & 63)));
+ break;
+ default:
+ out.push(String.fromCharCode(224 + (c$7 >> 12)));
+ out.push(String.fromCharCode(128 + (c$7 >> 6 & 63)));
+ out.push(String.fromCharCode(128 + (c$7 & 63)));
+ }
+ }
+ return out.join("");
+ };
+ htmldecode = /* @__PURE__ */ (function() {
+ var entities = [
+ ["nbsp", " "],
+ ["middot", "·"],
+ ["quot", "\""],
+ ["apos", "'"],
+ ["gt", ">"],
+ ["lt", "<"],
+ ["amp", "&"]
+ ].map(function(x$2) {
+ return [new RegExp("&" + x$2[0] + ";", "ig"), x$2[1]];
+ });
+ return function htmldecode$1(str) {
+ var o$10 = str.replace(/^[\t\n\r ]+/, "").replace(/(^|[^\t\n\r ])[\t\n\r ]+$/, "$1").replace(/>\s+/g, ">").replace(/\b\s+/g, "\n").replace(/<[^<>]*>/g, "");
+ for (var i$7 = 0; i$7 < entities.length; ++i$7) o$10 = o$10.replace(entities[i$7][0], entities[i$7][1]);
+ return o$10;
+ };
+ })();
+ vtvregex = /<\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^<"'>]*)>([\s\S]*);
+ wtregex = /(^\s|\s$|\n)/;
+ xlmlregex = /<([\/]?)([^\s?>:\/"]+)(?:\s+[^<>=?"'\s]+="[^"]*?")*\s*[\/]?>/gm;
+ XMLNS = {
+ CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/metadata/core-properties",
+ CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",
+ EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",
+ CT: "http://schemas.openxmlformats.org/package/2006/content-types",
+ RELS: "http://schemas.openxmlformats.org/package/2006/relationships",
+ TCMNT: "http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments",
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "dcterms": "http://purl.org/dc/terms/",
+ "dcmitype": "http://purl.org/dc/dcmitype/",
+ "mx": "http://schemas.microsoft.com/office/mac/excel/2008/main",
+ "r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
+ "sjs": "http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",
+ "vt": "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",
+ "xsi": "http://www.w3.org/2001/XMLSchema-instance",
+ "xsd": "http://www.w3.org/2001/XMLSchema"
+ };
+ XMLNS_main = [
+ "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
+ "http://purl.oclc.org/ooxml/spreadsheetml/main",
+ "http://schemas.microsoft.com/office/excel/2006/main",
+ "http://schemas.microsoft.com/office/excel/2006/2"
+ ];
+ XLMLNS = {
+ "o": "urn:schemas-microsoft-com:office:office",
+ "x": "urn:schemas-microsoft-com:office:excel",
+ "ss": "urn:schemas-microsoft-com:office:spreadsheet",
+ "dt": "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882",
+ "mv": "http://macVmlSchemaUri",
+ "v": "urn:schemas-microsoft-com:vml",
+ "html": "http://www.w3.org/TR/REC-html40"
+ };
+ ___toBuffer = function(bufs) {
+ var x$2 = [], w$2 = 10240;
+ for (var i$7 = 0; i$7 < bufs[0].length; ++i$7) if (bufs[0][i$7]) for (var j$2 = 0, L$2 = bufs[0][i$7].length; j$2 < L$2; j$2 += w$2) x$2.push.apply(x$2, bufs[0][i$7].slice(j$2, j$2 + w$2));
+ return x$2;
+ };
+ __toBuffer = has_buf ? function(bufs) {
+ return bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0]) ? Buffer.concat(bufs[0].map(function(x$2) {
+ return Buffer.isBuffer(x$2) ? x$2 : Buffer_from(x$2);
+ })) : ___toBuffer(bufs);
+ } : ___toBuffer;
+ ___utf16le = function(b$3, s$5, e$10) {
+ var ss = [];
+ for (var i$7 = s$5; i$7 < e$10; i$7 += 2) ss.push(String.fromCharCode(__readUInt16LE(b$3, i$7)));
+ return ss.join("").replace(chr0, "");
+ };
+ __utf16le = has_buf ? function(b$3, s$5, e$10) {
+ if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___utf16le(b$3, s$5, e$10);
+ return b$3.toString("utf16le", s$5, e$10).replace(chr0, "");
+ } : ___utf16le;
+ ___hexlify = function(b$3, s$5, l$3) {
+ var ss = [];
+ for (var i$7 = s$5; i$7 < s$5 + l$3; ++i$7) ss.push(("0" + b$3[i$7].toString(16)).slice(-2));
+ return ss.join("");
+ };
+ __hexlify = has_buf ? function(b$3, s$5, l$3) {
+ return Buffer.isBuffer(b$3) ? b$3.toString("hex", s$5, s$5 + l$3) : ___hexlify(b$3, s$5, l$3);
+ } : ___hexlify;
+ ___utf8 = function(b$3, s$5, e$10) {
+ var ss = [];
+ for (var i$7 = s$5; i$7 < e$10; i$7++) ss.push(String.fromCharCode(__readUInt8(b$3, i$7)));
+ return ss.join("");
+ };
+ __utf8 = has_buf ? function utf8_b(b$3, s$5, e$10) {
+ return Buffer.isBuffer(b$3) ? b$3.toString("utf8", s$5, e$10) : ___utf8(b$3, s$5, e$10);
+ } : ___utf8;
+ ___lpstr = function(b$3, i$7) {
+ var len = __readUInt32LE(b$3, i$7);
+ return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
+ };
+ __lpstr = ___lpstr;
+ ___cpstr = function(b$3, i$7) {
+ var len = __readUInt32LE(b$3, i$7);
+ return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
+ };
+ __cpstr = ___cpstr;
+ ___lpwstr = function(b$3, i$7) {
+ var len = 2 * __readUInt32LE(b$3, i$7);
+ return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len - 1) : "";
+ };
+ __lpwstr = ___lpwstr;
+ ___lpp4 = function lpp4_(b$3, i$7) {
+ var len = __readUInt32LE(b$3, i$7);
+ return len > 0 ? __utf16le(b$3, i$7 + 4, i$7 + 4 + len) : "";
+ };
+ __lpp4 = ___lpp4;
+ ___8lpp4 = function(b$3, i$7) {
+ var len = __readUInt32LE(b$3, i$7);
+ return len > 0 ? __utf8(b$3, i$7 + 4, i$7 + 4 + len) : "";
+ };
+ __8lpp4 = ___8lpp4;
+ ___double = function(b$3, idx) {
+ return read_double_le(b$3, idx);
+ };
+ __double = ___double;
+ is_buf = function is_buf_a(a$2) {
+ return Array.isArray(a$2) || typeof Uint8Array !== "undefined" && a$2 instanceof Uint8Array;
+ };
+ if (has_buf) {
+ __lpstr = function lpstr_b(b$3, i$7) {
+ if (!Buffer.isBuffer(b$3)) return ___lpstr(b$3, i$7);
+ var len = b$3.readUInt32LE(i$7);
+ return len > 0 ? b$3.toString("utf8", i$7 + 4, i$7 + 4 + len - 1) : "";
+ };
+ __cpstr = function cpstr_b(b$3, i$7) {
+ if (!Buffer.isBuffer(b$3)) return ___cpstr(b$3, i$7);
+ var len = b$3.readUInt32LE(i$7);
+ return len > 0 ? b$3.toString("utf8", i$7 + 4, i$7 + 4 + len - 1) : "";
+ };
+ __lpwstr = function lpwstr_b(b$3, i$7) {
+ if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___lpwstr(b$3, i$7);
+ var len = 2 * b$3.readUInt32LE(i$7);
+ return b$3.toString("utf16le", i$7 + 4, i$7 + 4 + len - 1);
+ };
+ __lpp4 = function lpp4_b(b$3, i$7) {
+ if (!Buffer.isBuffer(b$3) || !buf_utf16le) return ___lpp4(b$3, i$7);
+ var len = b$3.readUInt32LE(i$7);
+ return b$3.toString("utf16le", i$7 + 4, i$7 + 4 + len);
+ };
+ __8lpp4 = function lpp4_8b(b$3, i$7) {
+ if (!Buffer.isBuffer(b$3)) return ___8lpp4(b$3, i$7);
+ var len = b$3.readUInt32LE(i$7);
+ return b$3.toString("utf8", i$7 + 4, i$7 + 4 + len);
+ };
+ __double = function double_(b$3, i$7) {
+ if (Buffer.isBuffer(b$3)) return b$3.readDoubleLE(i$7);
+ return ___double(b$3, i$7);
+ };
+ is_buf = function is_buf_b(a$2) {
+ return Buffer.isBuffer(a$2) || Array.isArray(a$2) || typeof Uint8Array !== "undefined" && a$2 instanceof Uint8Array;
+ };
+ }
+ if (typeof $cptable !== "undefined") cpdoit();
+ __readUInt8 = function(b$3, idx) {
+ return b$3[idx];
+ };
+ __readUInt16LE = function(b$3, idx) {
+ return b$3[idx + 1] * (1 << 8) + b$3[idx];
+ };
+ __readInt16LE = function(b$3, idx) {
+ var u$4 = b$3[idx + 1] * (1 << 8) + b$3[idx];
+ return u$4 < 32768 ? u$4 : (65535 - u$4 + 1) * -1;
+ };
+ __readUInt32LE = function(b$3, idx) {
+ return b$3[idx + 3] * (1 << 24) + (b$3[idx + 2] << 16) + (b$3[idx + 1] << 8) + b$3[idx];
+ };
+ __readInt32LE = function(b$3, idx) {
+ return b$3[idx + 3] << 24 | b$3[idx + 2] << 16 | b$3[idx + 1] << 8 | b$3[idx];
+ };
+ __readInt32BE = function(b$3, idx) {
+ return b$3[idx] << 24 | b$3[idx + 1] << 16 | b$3[idx + 2] << 8 | b$3[idx + 3];
+ };
+ __writeUInt32LE = function(b$3, val$1, idx) {
+ b$3[idx] = val$1 & 255;
+ b$3[idx + 1] = val$1 >>> 8 & 255;
+ b$3[idx + 2] = val$1 >>> 16 & 255;
+ b$3[idx + 3] = val$1 >>> 24 & 255;
+ };
+ __writeInt32LE = function(b$3, val$1, idx) {
+ b$3[idx] = val$1 & 255;
+ b$3[idx + 1] = val$1 >> 8 & 255;
+ b$3[idx + 2] = val$1 >> 16 & 255;
+ b$3[idx + 3] = val$1 >> 24 & 255;
+ };
+ __writeUInt16LE = function(b$3, val$1, idx) {
+ b$3[idx] = val$1 & 255;
+ b$3[idx + 1] = val$1 >>> 8 & 255;
+ };
+ parse_BrtCommentText = parse_RichStr;
+ parse_XLSBCodeName = parse_XLWideString;
+ write_XLSBCodeName = write_XLWideString;
+ parse_XLNameWideString = parse_XLWideString;
+ parse_RelID = parse_XLNullableWideString;
+ write_RelID = write_XLNullableWideString;
+ parse_UncheckedRfX = parse_RfX;
+ write_UncheckedRfX = write_RfX;
+ VT_I2 = 2;
+ VT_I4 = 3;
+ VT_BOOL = 11;
+ VT_VARIANT = 12;
+ VT_UI4 = 19;
+ VT_FILETIME = 64;
+ VT_BLOB = 65;
+ VT_CF = 71;
+ VT_VECTOR_VARIANT = 4108;
+ VT_VECTOR_LPSTR = 4126;
+ VT_STRING = 80;
+ VT_USTR = 81;
+ VT_CUSTOM = [VT_STRING, VT_USTR];
+ DocSummaryPIDDSI = {
+ 1: {
+ n: "CodePage",
+ t: VT_I2
+ },
+ 2: {
+ n: "Category",
+ t: VT_STRING
+ },
+ 3: {
+ n: "PresentationFormat",
+ t: VT_STRING
+ },
+ 4: {
+ n: "ByteCount",
+ t: VT_I4
+ },
+ 5: {
+ n: "LineCount",
+ t: VT_I4
+ },
+ 6: {
+ n: "ParagraphCount",
+ t: VT_I4
+ },
+ 7: {
+ n: "SlideCount",
+ t: VT_I4
+ },
+ 8: {
+ n: "NoteCount",
+ t: VT_I4
+ },
+ 9: {
+ n: "HiddenCount",
+ t: VT_I4
+ },
+ 10: {
+ n: "MultimediaClipCount",
+ t: VT_I4
+ },
+ 11: {
+ n: "ScaleCrop",
+ t: VT_BOOL
+ },
+ 12: {
+ n: "HeadingPairs",
+ t: VT_VECTOR_VARIANT
+ },
+ 13: {
+ n: "TitlesOfParts",
+ t: VT_VECTOR_LPSTR
+ },
+ 14: {
+ n: "Manager",
+ t: VT_STRING
+ },
+ 15: {
+ n: "Company",
+ t: VT_STRING
+ },
+ 16: {
+ n: "LinksUpToDate",
+ t: VT_BOOL
+ },
+ 17: {
+ n: "CharacterCount",
+ t: VT_I4
+ },
+ 19: {
+ n: "SharedDoc",
+ t: VT_BOOL
+ },
+ 22: {
+ n: "HyperlinksChanged",
+ t: VT_BOOL
+ },
+ 23: {
+ n: "AppVersion",
+ t: VT_I4,
+ p: "version"
+ },
+ 24: {
+ n: "DigSig",
+ t: VT_BLOB
+ },
+ 26: {
+ n: "ContentType",
+ t: VT_STRING
+ },
+ 27: {
+ n: "ContentStatus",
+ t: VT_STRING
+ },
+ 28: {
+ n: "Language",
+ t: VT_STRING
+ },
+ 29: {
+ n: "Version",
+ t: VT_STRING
+ },
+ 255: {},
+ 2147483648: {
+ n: "Locale",
+ t: VT_UI4
+ },
+ 2147483651: {
+ n: "Behavior",
+ t: VT_UI4
+ },
+ 1919054434: {}
+ };
+ SummaryPIDSI = {
+ 1: {
+ n: "CodePage",
+ t: VT_I2
+ },
+ 2: {
+ n: "Title",
+ t: VT_STRING
+ },
+ 3: {
+ n: "Subject",
+ t: VT_STRING
+ },
+ 4: {
+ n: "Author",
+ t: VT_STRING
+ },
+ 5: {
+ n: "Keywords",
+ t: VT_STRING
+ },
+ 6: {
+ n: "Comments",
+ t: VT_STRING
+ },
+ 7: {
+ n: "Template",
+ t: VT_STRING
+ },
+ 8: {
+ n: "LastAuthor",
+ t: VT_STRING
+ },
+ 9: {
+ n: "RevNumber",
+ t: VT_STRING
+ },
+ 10: {
+ n: "EditTime",
+ t: VT_FILETIME
+ },
+ 11: {
+ n: "LastPrinted",
+ t: VT_FILETIME
+ },
+ 12: {
+ n: "CreatedDate",
+ t: VT_FILETIME
+ },
+ 13: {
+ n: "ModifiedDate",
+ t: VT_FILETIME
+ },
+ 14: {
+ n: "PageCount",
+ t: VT_I4
+ },
+ 15: {
+ n: "WordCount",
+ t: VT_I4
+ },
+ 16: {
+ n: "CharCount",
+ t: VT_I4
+ },
+ 17: {
+ n: "Thumbnail",
+ t: VT_CF
+ },
+ 18: {
+ n: "Application",
+ t: VT_STRING
+ },
+ 19: {
+ n: "DocSecurity",
+ t: VT_I4
+ },
+ 255: {},
+ 2147483648: {
+ n: "Locale",
+ t: VT_UI4
+ },
+ 2147483651: {
+ n: "Behavior",
+ t: VT_UI4
+ },
+ 1919054434: {}
+ };
+ CountryEnum = {
+ 1: "US",
+ 2: "CA",
+ 3: "",
+ 7: "RU",
+ 20: "EG",
+ 30: "GR",
+ 31: "NL",
+ 32: "BE",
+ 33: "FR",
+ 34: "ES",
+ 36: "HU",
+ 39: "IT",
+ 41: "CH",
+ 43: "AT",
+ 44: "GB",
+ 45: "DK",
+ 46: "SE",
+ 47: "NO",
+ 48: "PL",
+ 49: "DE",
+ 52: "MX",
+ 55: "BR",
+ 61: "AU",
+ 64: "NZ",
+ 66: "TH",
+ 81: "JP",
+ 82: "KR",
+ 84: "VN",
+ 86: "CN",
+ 90: "TR",
+ 105: "JS",
+ 213: "DZ",
+ 216: "MA",
+ 218: "LY",
+ 351: "PT",
+ 354: "IS",
+ 358: "FI",
+ 420: "CZ",
+ 886: "TW",
+ 961: "LB",
+ 962: "JO",
+ 963: "SY",
+ 964: "IQ",
+ 965: "KW",
+ 966: "SA",
+ 971: "AE",
+ 972: "IL",
+ 974: "QA",
+ 981: "IR",
+ 65535: "US"
+ };
+ XLSFillPattern = [
+ null,
+ "solid",
+ "mediumGray",
+ "darkGray",
+ "lightGray",
+ "darkHorizontal",
+ "darkVertical",
+ "darkDown",
+ "darkUp",
+ "darkGrid",
+ "darkTrellis",
+ "lightHorizontal",
+ "lightVertical",
+ "lightDown",
+ "lightUp",
+ "lightGrid",
+ "lightTrellis",
+ "gray125",
+ "gray0625"
+ ];
+ _XLSIcv = /* @__PURE__ */ rgbify([
+ 0,
+ 16777215,
+ 16711680,
+ 65280,
+ 255,
+ 16776960,
+ 16711935,
+ 65535,
+ 0,
+ 16777215,
+ 16711680,
+ 65280,
+ 255,
+ 16776960,
+ 16711935,
+ 65535,
+ 8388608,
+ 32768,
+ 128,
+ 8421376,
+ 8388736,
+ 32896,
+ 12632256,
+ 8421504,
+ 10066431,
+ 10040166,
+ 16777164,
+ 13434879,
+ 6684774,
+ 16744576,
+ 26316,
+ 13421823,
+ 128,
+ 16711935,
+ 16776960,
+ 65535,
+ 8388736,
+ 8388608,
+ 32896,
+ 255,
+ 52479,
+ 13434879,
+ 13434828,
+ 16777113,
+ 10079487,
+ 16751052,
+ 13408767,
+ 16764057,
+ 3368703,
+ 3394764,
+ 10079232,
+ 16763904,
+ 16750848,
+ 16737792,
+ 6710937,
+ 9868950,
+ 13158,
+ 3381606,
+ 13056,
+ 3355392,
+ 10040064,
+ 10040166,
+ 3355545,
+ 3355443,
+ 0,
+ 16777215,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ]);
+ XLSIcv = /* @__PURE__ */ dup(_XLSIcv);
+ BErr = {
+ 0: "#NULL!",
+ 7: "#DIV/0!",
+ 15: "#VALUE!",
+ 23: "#REF!",
+ 29: "#NAME?",
+ 36: "#NUM!",
+ 42: "#N/A",
+ 43: "#GETTING_DATA",
+ 255: "#WTF?"
+ };
+ RBErr = {
+ "#NULL!": 0,
+ "#DIV/0!": 7,
+ "#VALUE!": 15,
+ "#REF!": 23,
+ "#NAME?": 29,
+ "#NUM!": 36,
+ "#N/A": 42,
+ "#GETTING_DATA": 43,
+ "#WTF?": 255
+ };
+ XLSLblBuiltIn = [
+ "_xlnm.Consolidate_Area",
+ "_xlnm.Auto_Open",
+ "_xlnm.Auto_Close",
+ "_xlnm.Extract",
+ "_xlnm.Database",
+ "_xlnm.Criteria",
+ "_xlnm.Print_Area",
+ "_xlnm.Print_Titles",
+ "_xlnm.Recorder",
+ "_xlnm.Data_Form",
+ "_xlnm.Auto_Activate",
+ "_xlnm.Auto_Deactivate",
+ "_xlnm.Sheet_Title",
+ "_xlnm._FilterDatabase"
+ ];
+ ct2type = {
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": "workbooks",
+ "application/vnd.ms-excel.sheet.macroEnabled.main+xml": "workbooks",
+ "application/vnd.ms-excel.sheet.binary.macroEnabled.main": "workbooks",
+ "application/vnd.ms-excel.addin.macroEnabled.main+xml": "workbooks",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": "workbooks",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": "sheets",
+ "application/vnd.ms-excel.worksheet": "sheets",
+ "application/vnd.ms-excel.binIndexWs": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": "charts",
+ "application/vnd.ms-excel.chartsheet": "charts",
+ "application/vnd.ms-excel.macrosheet+xml": "macros",
+ "application/vnd.ms-excel.macrosheet": "macros",
+ "application/vnd.ms-excel.intlmacrosheet": "TODO",
+ "application/vnd.ms-excel.binIndexMs": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": "dialogs",
+ "application/vnd.ms-excel.dialogsheet": "dialogs",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml": "strs",
+ "application/vnd.ms-excel.sharedStrings": "strs",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": "styles",
+ "application/vnd.ms-excel.styles": "styles",
+ "application/vnd.openxmlformats-package.core-properties+xml": "coreprops",
+ "application/vnd.openxmlformats-officedocument.custom-properties+xml": "custprops",
+ "application/vnd.openxmlformats-officedocument.extended-properties+xml": "extprops",
+ "application/vnd.openxmlformats-officedocument.customXmlProperties+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": "comments",
+ "application/vnd.ms-excel.comments": "comments",
+ "application/vnd.ms-excel.threadedcomments+xml": "threadedcomments",
+ "application/vnd.ms-excel.person+xml": "people",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml": "metadata",
+ "application/vnd.ms-excel.sheetMetadata": "metadata",
+ "application/vnd.ms-excel.pivotTable": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": "TODO",
+ "application/vnd.ms-office.chartcolorstyle+xml": "TODO",
+ "application/vnd.ms-office.chartstyle+xml": "TODO",
+ "application/vnd.ms-office.chartex+xml": "TODO",
+ "application/vnd.ms-excel.calcChain": "calcchains",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml": "calcchains",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings": "TODO",
+ "application/vnd.ms-office.activeX": "TODO",
+ "application/vnd.ms-office.activeX+xml": "TODO",
+ "application/vnd.ms-excel.attachedToolbars": "TODO",
+ "application/vnd.ms-excel.connections": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": "TODO",
+ "application/vnd.ms-excel.externalLink": "links",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml": "links",
+ "application/vnd.ms-excel.pivotCacheDefinition": "TODO",
+ "application/vnd.ms-excel.pivotCacheRecords": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml": "TODO",
+ "application/vnd.ms-excel.queryTable": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml": "TODO",
+ "application/vnd.ms-excel.userNames": "TODO",
+ "application/vnd.ms-excel.revisionHeaders": "TODO",
+ "application/vnd.ms-excel.revisionLog": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml": "TODO",
+ "application/vnd.ms-excel.tableSingleCells": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml": "TODO",
+ "application/vnd.ms-excel.slicer": "TODO",
+ "application/vnd.ms-excel.slicerCache": "TODO",
+ "application/vnd.ms-excel.slicer+xml": "TODO",
+ "application/vnd.ms-excel.slicerCache+xml": "TODO",
+ "application/vnd.ms-excel.wsSortMap": "TODO",
+ "application/vnd.ms-excel.table": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.theme+xml": "themes",
+ "application/vnd.openxmlformats-officedocument.themeOverride+xml": "TODO",
+ "application/vnd.ms-excel.Timeline+xml": "TODO",
+ "application/vnd.ms-excel.TimelineCache+xml": "TODO",
+ "application/vnd.ms-office.vbaProject": "vba",
+ "application/vnd.ms-office.vbaProjectSignature": "TODO",
+ "application/vnd.ms-office.volatileDependencies": "TODO",
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml": "TODO",
+ "application/vnd.ms-excel.controlproperties+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.model+data": "TODO",
+ "application/vnd.ms-excel.Survey+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawing+xml": "drawings",
+ "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml": "TODO",
+ "application/vnd.openxmlformats-officedocument.vmlDrawing": "TODO",
+ "application/vnd.openxmlformats-package.relationships+xml": "rels",
+ "application/vnd.openxmlformats-officedocument.oleObject": "TODO",
+ "image/png": "TODO",
+ "sheet": "js"
+ };
+ CT_LIST = {
+ workbooks: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
+ xlsm: "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
+ xlsb: "application/vnd.ms-excel.sheet.binary.macroEnabled.main",
+ xlam: "application/vnd.ms-excel.addin.macroEnabled.main+xml",
+ xltx: "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"
+ },
+ strs: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
+ xlsb: "application/vnd.ms-excel.sharedStrings"
+ },
+ comments: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
+ xlsb: "application/vnd.ms-excel.comments"
+ },
+ sheets: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
+ xlsb: "application/vnd.ms-excel.worksheet"
+ },
+ charts: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
+ xlsb: "application/vnd.ms-excel.chartsheet"
+ },
+ dialogs: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",
+ xlsb: "application/vnd.ms-excel.dialogsheet"
+ },
+ macros: {
+ xlsx: "application/vnd.ms-excel.macrosheet+xml",
+ xlsb: "application/vnd.ms-excel.macrosheet"
+ },
+ metadata: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
+ xlsb: "application/vnd.ms-excel.sheetMetadata"
+ },
+ styles: {
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
+ xlsb: "application/vnd.ms-excel.styles"
+ }
+ };
+ RELS = {
+ WB: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
+ SHEET: "http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
+ HLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
+ VML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",
+ XPATH: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",
+ XMISS: "http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",
+ XLINK: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",
+ CXML: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",
+ CXMLP: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",
+ CMNT: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments",
+ CORE_PROPS: "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties",
+ EXT_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties",
+ CUST_PROPS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties",
+ SST: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings",
+ STY: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
+ THEME: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
+ CHART: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",
+ CHARTEX: "http://schemas.microsoft.com/office/2014/relationships/chartEx",
+ CS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",
+ WS: ["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet", "http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"],
+ DS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",
+ MS: "http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet",
+ IMG: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",
+ DRAW: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing",
+ XLMETA: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata",
+ TCMNT: "http://schemas.microsoft.com/office/2017/10/relationships/threadedComment",
+ PEOPLE: "http://schemas.microsoft.com/office/2017/10/relationships/person",
+ CONN: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections",
+ VBA: "http://schemas.microsoft.com/office/2006/relationships/vbaProject"
+ };
+ CT_ODS = "application/vnd.oasis.opendocument.spreadsheet";
+ CORE_PROPS = [
+ ["cp:category", "Category"],
+ ["cp:contentStatus", "ContentStatus"],
+ ["cp:keywords", "Keywords"],
+ ["cp:lastModifiedBy", "LastAuthor"],
+ ["cp:lastPrinted", "LastPrinted"],
+ ["cp:revision", "RevNumber"],
+ ["cp:version", "Version"],
+ ["dc:creator", "Author"],
+ ["dc:description", "Comments"],
+ ["dc:identifier", "Identifier"],
+ ["dc:language", "Language"],
+ ["dc:subject", "Subject"],
+ ["dc:title", "Title"],
+ [
+ "dcterms:created",
+ "CreatedDate",
+ "date"
+ ],
+ [
+ "dcterms:modified",
+ "ModifiedDate",
+ "date"
+ ]
+ ];
+ EXT_PROPS = [
+ [
+ "Application",
+ "Application",
+ "string"
+ ],
+ [
+ "AppVersion",
+ "AppVersion",
+ "string"
+ ],
+ [
+ "Company",
+ "Company",
+ "string"
+ ],
+ [
+ "DocSecurity",
+ "DocSecurity",
+ "string"
+ ],
+ [
+ "Manager",
+ "Manager",
+ "string"
+ ],
+ [
+ "HyperlinksChanged",
+ "HyperlinksChanged",
+ "bool"
+ ],
+ [
+ "SharedDoc",
+ "SharedDoc",
+ "bool"
+ ],
+ [
+ "LinksUpToDate",
+ "LinksUpToDate",
+ "bool"
+ ],
+ [
+ "ScaleCrop",
+ "ScaleCrop",
+ "bool"
+ ],
+ [
+ "HeadingPairs",
+ "HeadingPairs",
+ "raw"
+ ],
+ [
+ "TitlesOfParts",
+ "TitlesOfParts",
+ "raw"
+ ]
+ ];
+ PseudoPropsPairs = [
+ "Worksheets",
+ "SheetNames",
+ "NamedRanges",
+ "DefinedNames",
+ "Chartsheets",
+ "ChartNames"
+ ];
+ custregex = /<[^<>]+>[^<]*/g;
+ XLMLDocPropsMap = {
+ Title: "Title",
+ Subject: "Subject",
+ Author: "Author",
+ Keywords: "Keywords",
+ Comments: "Description",
+ LastAuthor: "LastAuthor",
+ RevNumber: "Revision",
+ Application: "AppName",
+ LastPrinted: "LastPrinted",
+ CreatedDate: "Created",
+ ModifiedDate: "LastSaved",
+ Category: "Category",
+ Manager: "Manager",
+ Company: "Company",
+ AppVersion: "Version",
+ ContentStatus: "ContentStatus",
+ Identifier: "Identifier",
+ Language: "Language"
+ };
+ ;
+ XLSPSSkip = [
+ "CodePage",
+ "Thumbnail",
+ "_PID_LINKBASE",
+ "_PID_HLINKS",
+ "SystemIdentifier",
+ "FMTID"
+ ];
+ parse_Ref = parse_RefU;
+ FtTab = {
+ 0: parse_FtSkip,
+ 4: parse_FtSkip,
+ 5: parse_FtSkip,
+ 6: parse_FtSkip,
+ 7: parse_FtCf,
+ 8: parse_FtSkip,
+ 9: parse_FtSkip,
+ 10: parse_FtSkip,
+ 11: parse_FtSkip,
+ 12: parse_FtSkip,
+ 13: parse_FtNts,
+ 14: parse_FtSkip,
+ 15: parse_FtSkip,
+ 16: parse_FtSkip,
+ 17: parse_FtSkip,
+ 18: parse_FtSkip,
+ 19: parse_FtSkip,
+ 20: parse_FtSkip,
+ 21: parse_FtCmo
+ };
+ parse_BIFF2Format = parse_XLUnicodeString2;
+ write_BIFF4XF = write_BIFF3XF;
+ parse_XLHeaderFooter = parse_OptXLUnicodeString;
+ parse_BIFF5OT = { 8: function(blob, length) {
+ var tgt = blob.l + length;
+ blob.l += 10;
+ var cf = blob.read_shift(2);
+ blob.l += 4;
+ blob.l += 2;
+ blob.l += 2;
+ blob.l += 2;
+ blob.l += 4;
+ var cchName = blob.read_shift(1);
+ blob.l += cchName;
+ blob.l = tgt;
+ return { fmt: cf };
+ } };
+ parse_Blank = parse_XLSCell;
+ parse_Scl = parseuint16a;
+ parse_String = parse_XLUnicodeString;
+ DBF_SUPPORTED_VERSIONS = [
+ 2,
+ 3,
+ 48,
+ 49,
+ 131,
+ 139,
+ 140,
+ 245
+ ];
+ DBF = /* @__PURE__ */ (function() {
+ var dbf_codepage_map = {
+ 1: 437,
+ 2: 850,
+ 3: 1252,
+ 4: 1e4,
+ 100: 852,
+ 101: 866,
+ 102: 865,
+ 103: 861,
+ 104: 895,
+ 105: 620,
+ 106: 737,
+ 107: 857,
+ 120: 950,
+ 121: 949,
+ 122: 936,
+ 123: 932,
+ 124: 874,
+ 125: 1255,
+ 126: 1256,
+ 150: 10007,
+ 151: 10029,
+ 152: 10006,
+ 200: 1250,
+ 201: 1251,
+ 202: 1254,
+ 203: 1253,
+ 0: 20127,
+ 8: 865,
+ 9: 437,
+ 10: 850,
+ 11: 437,
+ 13: 437,
+ 14: 850,
+ 15: 437,
+ 16: 850,
+ 17: 437,
+ 18: 850,
+ 19: 932,
+ 20: 850,
+ 21: 437,
+ 22: 850,
+ 23: 865,
+ 24: 437,
+ 25: 437,
+ 26: 850,
+ 27: 437,
+ 28: 863,
+ 29: 850,
+ 31: 852,
+ 34: 852,
+ 35: 852,
+ 36: 860,
+ 37: 850,
+ 38: 866,
+ 55: 850,
+ 64: 852,
+ 77: 936,
+ 78: 949,
+ 79: 950,
+ 80: 874,
+ 87: 1252,
+ 88: 1252,
+ 89: 1252,
+ 108: 863,
+ 134: 737,
+ 135: 852,
+ 136: 857,
+ 204: 1257,
+ 255: 16969
+ };
+ var dbf_reverse_map = evert({
+ 1: 437,
+ 2: 850,
+ 3: 1252,
+ 4: 1e4,
+ 100: 852,
+ 101: 866,
+ 102: 865,
+ 103: 861,
+ 104: 895,
+ 105: 620,
+ 106: 737,
+ 107: 857,
+ 120: 950,
+ 121: 949,
+ 122: 936,
+ 123: 932,
+ 124: 874,
+ 125: 1255,
+ 126: 1256,
+ 150: 10007,
+ 151: 10029,
+ 152: 10006,
+ 200: 1250,
+ 201: 1251,
+ 202: 1254,
+ 203: 1253,
+ 0: 20127
+ });
+ function dbf_to_aoa(buf, opts) {
+ var out = [];
+ var d$5 = new_raw_buf(1);
+ switch (opts.type) {
+ case "base64":
+ d$5 = s2a(Base64_decode(buf));
+ break;
+ case "binary":
+ d$5 = s2a(buf);
+ break;
+ case "buffer":
+ case "array":
+ d$5 = buf;
+ break;
+ }
+ prep_blob(d$5, 0);
+ var ft = d$5.read_shift(1);
+ var memo = !!(ft & 136);
+ var vfp = false, l7 = false;
+ switch (ft) {
+ case 2: break;
+ case 3: break;
+ case 48:
+ vfp = true;
+ memo = true;
+ break;
+ case 49:
+ vfp = true;
+ memo = true;
+ break;
+ case 131: break;
+ case 139: break;
+ case 140:
+ l7 = true;
+ break;
+ case 245: break;
+ default: throw new Error("DBF Unsupported Version: " + ft.toString(16));
+ }
+ var nrow = 0, fpos = 521;
+ if (ft == 2) nrow = d$5.read_shift(2);
+ d$5.l += 3;
+ if (ft != 2) nrow = d$5.read_shift(4);
+ if (nrow > 1048576) nrow = 1e6;
+ if (ft != 2) fpos = d$5.read_shift(2);
+ var rlen = d$5.read_shift(2);
+ var current_cp = opts.codepage || 1252;
+ if (ft != 2) {
+ d$5.l += 16;
+ d$5.read_shift(1);
+ if (d$5[d$5.l] !== 0) current_cp = dbf_codepage_map[d$5[d$5.l]];
+ d$5.l += 1;
+ d$5.l += 2;
+ }
+ if (l7) d$5.l += 36;
+ var fields = [], field = {};
+ var hend = Math.min(d$5.length, ft == 2 ? 521 : fpos - 10 - (vfp ? 264 : 0));
+ var ww = l7 ? 32 : 11;
+ while (d$5.l < hend && d$5[d$5.l] != 13) {
+ field = {};
+ field.name = (typeof $cptable !== "undefined" ? $cptable.utils.decode(current_cp, d$5.slice(d$5.l, d$5.l + ww)) : a2s(d$5.slice(d$5.l, d$5.l + ww))).replace(/[\u0000\r\n][\S\s]*$/g, "");
+ d$5.l += ww;
+ field.type = String.fromCharCode(d$5.read_shift(1));
+ if (ft != 2 && !l7) field.offset = d$5.read_shift(4);
+ field.len = d$5.read_shift(1);
+ if (ft == 2) field.offset = d$5.read_shift(2);
+ field.dec = d$5.read_shift(1);
+ if (field.name.length) fields.push(field);
+ if (ft != 2) d$5.l += l7 ? 13 : 14;
+ switch (field.type) {
+ case "B":
+ if ((!vfp || field.len != 8) && opts.WTF) console.log("Skipping " + field.name + ":" + field.type);
+ break;
+ case "G":
+ case "P":
+ if (opts.WTF) console.log("Skipping " + field.name + ":" + field.type);
+ break;
+ case "+":
+ case "0":
+ case "@":
+ case "C":
+ case "D":
+ case "F":
+ case "I":
+ case "L":
+ case "M":
+ case "N":
+ case "O":
+ case "T":
+ case "Y": break;
+ default: throw new Error("Unknown Field Type: " + field.type);
+ }
+ }
+ if (d$5[d$5.l] !== 13) d$5.l = fpos - 1;
+ if (d$5.read_shift(1) !== 13) throw new Error("DBF Terminator not found " + d$5.l + " " + d$5[d$5.l]);
+ d$5.l = fpos;
+ var R$1 = 0, C$2 = 0;
+ out[0] = [];
+ for (C$2 = 0; C$2 != fields.length; ++C$2) out[0][C$2] = fields[C$2].name;
+ while (nrow-- > 0) {
+ if (d$5[d$5.l] === 42) {
+ d$5.l += rlen;
+ continue;
+ }
+ ++d$5.l;
+ out[++R$1] = [];
+ C$2 = 0;
+ for (C$2 = 0; C$2 != fields.length; ++C$2) {
+ var dd = d$5.slice(d$5.l, d$5.l + fields[C$2].len);
+ d$5.l += fields[C$2].len;
+ prep_blob(dd, 0);
+ var s$5 = typeof $cptable !== "undefined" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);
+ switch (fields[C$2].type) {
+ case "C":
+ if (s$5.trim().length) out[R$1][C$2] = s$5.replace(/([^\s])\s+$/, "$1");
+ break;
+ case "D":
+ if (s$5.length === 8) {
+ out[R$1][C$2] = new Date(Date.UTC(+s$5.slice(0, 4), +s$5.slice(4, 6) - 1, +s$5.slice(6, 8), 0, 0, 0, 0));
+ if (!(opts && opts.UTC)) {
+ out[R$1][C$2] = utc_to_local(out[R$1][C$2]);
+ }
+ } else out[R$1][C$2] = s$5;
+ break;
+ case "F":
+ out[R$1][C$2] = parseFloat(s$5.trim());
+ break;
+ case "+":
+ case "I":
+ out[R$1][C$2] = l7 ? dd.read_shift(-4, "i") ^ 2147483648 : dd.read_shift(4, "i");
+ break;
+ case "L":
+ switch (s$5.trim().toUpperCase()) {
+ case "Y":
+ case "T":
+ out[R$1][C$2] = true;
+ break;
+ case "N":
+ case "F":
+ out[R$1][C$2] = false;
+ break;
+ case "":
+ case "\0":
+ case "?": break;
+ default: throw new Error("DBF Unrecognized L:|" + s$5 + "|");
+ }
+ break;
+ case "M":
+ if (!memo) throw new Error("DBF Unexpected MEMO for type " + ft.toString(16));
+ out[R$1][C$2] = "##MEMO##" + (l7 ? parseInt(s$5.trim(), 10) : dd.read_shift(4));
+ break;
+ case "N":
+ s$5 = s$5.replace(/\u0000/g, "").trim();
+ if (s$5 && s$5 != ".") out[R$1][C$2] = +s$5 || 0;
+ break;
+ case "@":
+ out[R$1][C$2] = new Date(dd.read_shift(-8, "f") - 621356832e5);
+ break;
+ case "T":
+ {
+ var hi = dd.read_shift(4), lo = dd.read_shift(4);
+ if (hi == 0 && lo == 0) break;
+ out[R$1][C$2] = new Date((hi - 2440588) * 864e5 + lo);
+ if (!(opts && opts.UTC)) out[R$1][C$2] = utc_to_local(out[R$1][C$2]);
+ }
+ break;
+ case "Y":
+ out[R$1][C$2] = dd.read_shift(4, "i") / 1e4 + dd.read_shift(4, "i") / 1e4 * Math.pow(2, 32);
+ break;
+ case "O":
+ out[R$1][C$2] = -dd.read_shift(-8, "f");
+ break;
+ case "B": if (vfp && fields[C$2].len == 8) {
+ out[R$1][C$2] = dd.read_shift(8, "f");
+ break;
+ }
+ case "G":
+ case "P":
+ dd.l += fields[C$2].len;
+ break;
+ case "0": if (fields[C$2].name === "_NullFlags") break;
+ default: throw new Error("DBF Unsupported data type " + fields[C$2].type);
+ }
+ }
+ }
+ if (ft != 2) {
+ if (d$5.l < d$5.length && d$5[d$5.l++] != 26) throw new Error("DBF EOF Marker missing " + (d$5.l - 1) + " of " + d$5.length + " " + d$5[d$5.l - 1].toString(16));
+ }
+ if (opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);
+ opts.DBF = fields;
+ return out;
+ }
+ function dbf_to_sheet(buf, opts) {
+ var o$10 = opts || {};
+ if (!o$10.dateNF) o$10.dateNF = "yyyymmdd";
+ var ws = aoa_to_sheet(dbf_to_aoa(buf, o$10), o$10);
+ ws["!cols"] = o$10.DBF.map(function(field) {
+ return {
+ wch: field.len,
+ DBF: field
+ };
+ });
+ delete o$10.DBF;
+ return ws;
+ }
+ function dbf_to_workbook(buf, opts) {
+ try {
+ var o$10 = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);
+ o$10.bookType = "dbf";
+ return o$10;
+ } catch (e$10) {
+ if (opts && opts.WTF) throw e$10;
+ }
+ return {
+ SheetNames: [],
+ Sheets: {}
+ };
+ }
+ var _RLEN = {
+ "B": 8,
+ "C": 250,
+ "L": 1,
+ "D": 8,
+ "?": 0,
+ "": 0
+ };
+ function sheet_to_dbf(ws, opts) {
+ if (!ws["!ref"]) throw new Error("Cannot export empty sheet to DBF");
+ var o$10 = opts || {};
+ var old_cp = current_codepage;
+ if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
+ if (o$10.type == "string") throw new Error("Cannot write DBF to JS string");
+ var ba = buf_array();
+ var aoa = sheet_to_json(ws, {
+ header: 1,
+ raw: true,
+ cellDates: true
+ });
+ var headers = aoa[0], data = aoa.slice(1), cols = ws["!cols"] || [];
+ var i$7 = 0, j$2 = 0, hcnt = 0, rlen = 1;
+ for (i$7 = 0; i$7 < headers.length; ++i$7) {
+ if (((cols[i$7] || {}).DBF || {}).name) {
+ headers[i$7] = cols[i$7].DBF.name;
+ ++hcnt;
+ continue;
+ }
+ if (headers[i$7] == null) continue;
+ ++hcnt;
+ if (typeof headers[i$7] === "number") headers[i$7] = headers[i$7].toString(10);
+ if (typeof headers[i$7] !== "string") throw new Error("DBF Invalid column name " + headers[i$7] + " |" + typeof headers[i$7] + "|");
+ if (headers.indexOf(headers[i$7]) !== i$7) {
+ for (j$2 = 0; j$2 < 1024; ++j$2) if (headers.indexOf(headers[i$7] + "_" + j$2) == -1) {
+ headers[i$7] += "_" + j$2;
+ break;
+ }
+ }
+ }
+ var range = safe_decode_range(ws["!ref"]);
+ var coltypes = [];
+ var colwidths = [];
+ var coldecimals = [];
+ for (i$7 = 0; i$7 <= range.e.c - range.s.c; ++i$7) {
+ var guess = "", _guess = "", maxlen = 0;
+ var col = [];
+ for (j$2 = 0; j$2 < data.length; ++j$2) {
+ if (data[j$2][i$7] != null) col.push(data[j$2][i$7]);
+ }
+ if (col.length == 0 || headers[i$7] == null) {
+ coltypes[i$7] = "?";
+ continue;
+ }
+ for (j$2 = 0; j$2 < col.length; ++j$2) {
+ switch (typeof col[j$2]) {
+ case "number":
+ _guess = "B";
+ break;
+ case "string":
+ _guess = "C";
+ break;
+ case "boolean":
+ _guess = "L";
+ break;
+ case "object":
+ _guess = col[j$2] instanceof Date ? "D" : "C";
+ break;
+ default: _guess = "C";
+ }
+ maxlen = Math.max(maxlen, (typeof $cptable !== "undefined" && typeof col[j$2] == "string" ? $cptable.utils.encode(current_ansi, col[j$2]) : String(col[j$2])).length);
+ guess = guess && guess != _guess ? "C" : _guess;
+ }
+ if (maxlen > 250) maxlen = 250;
+ _guess = ((cols[i$7] || {}).DBF || {}).type;
+ if (_guess == "C") {
+ if (cols[i$7].DBF.len > maxlen) maxlen = cols[i$7].DBF.len;
+ }
+ if (guess == "B" && _guess == "N") {
+ guess = "N";
+ coldecimals[i$7] = cols[i$7].DBF.dec;
+ maxlen = cols[i$7].DBF.len;
+ }
+ colwidths[i$7] = guess == "C" || _guess == "N" ? maxlen : _RLEN[guess] || 0;
+ rlen += colwidths[i$7];
+ coltypes[i$7] = guess;
+ }
+ var h$5 = ba.next(32);
+ h$5.write_shift(4, 318902576);
+ h$5.write_shift(4, data.length);
+ h$5.write_shift(2, 296 + 32 * hcnt);
+ h$5.write_shift(2, rlen);
+ for (i$7 = 0; i$7 < 4; ++i$7) h$5.write_shift(4, 0);
+ var cp = +dbf_reverse_map[current_codepage] || 3;
+ h$5.write_shift(4, 0 | cp << 8);
+ if (dbf_codepage_map[cp] != +o$10.codepage) {
+ if (o$10.codepage) console.error("DBF Unsupported codepage " + current_codepage + ", using 1252");
+ current_codepage = 1252;
+ }
+ for (i$7 = 0, j$2 = 0; i$7 < headers.length; ++i$7) {
+ if (headers[i$7] == null) continue;
+ var hf = ba.next(32);
+ var _f = (headers[i$7].slice(-10) + "\0\0\0\0\0\0\0\0\0\0\0").slice(0, 11);
+ hf.write_shift(1, _f, "sbcs");
+ hf.write_shift(1, coltypes[i$7] == "?" ? "C" : coltypes[i$7], "sbcs");
+ hf.write_shift(4, j$2);
+ hf.write_shift(1, colwidths[i$7] || _RLEN[coltypes[i$7]] || 0);
+ hf.write_shift(1, coldecimals[i$7] || 0);
+ hf.write_shift(1, 2);
+ hf.write_shift(4, 0);
+ hf.write_shift(1, 0);
+ hf.write_shift(4, 0);
+ hf.write_shift(4, 0);
+ j$2 += colwidths[i$7] || _RLEN[coltypes[i$7]] || 0;
+ }
+ var hb = ba.next(264);
+ hb.write_shift(4, 13);
+ for (i$7 = 0; i$7 < 65; ++i$7) hb.write_shift(4, 0);
+ for (i$7 = 0; i$7 < data.length; ++i$7) {
+ var rout = ba.next(rlen);
+ rout.write_shift(1, 0);
+ for (j$2 = 0; j$2 < headers.length; ++j$2) {
+ if (headers[j$2] == null) continue;
+ switch (coltypes[j$2]) {
+ case "L":
+ rout.write_shift(1, data[i$7][j$2] == null ? 63 : data[i$7][j$2] ? 84 : 70);
+ break;
+ case "B":
+ rout.write_shift(8, data[i$7][j$2] || 0, "f");
+ break;
+ case "N":
+ var _n = "0";
+ if (typeof data[i$7][j$2] == "number") _n = data[i$7][j$2].toFixed(coldecimals[j$2] || 0);
+ if (_n.length > colwidths[j$2]) _n = _n.slice(0, colwidths[j$2]);
+ for (hcnt = 0; hcnt < colwidths[j$2] - _n.length; ++hcnt) rout.write_shift(1, 32);
+ rout.write_shift(1, _n, "sbcs");
+ break;
+ case "D":
+ if (!data[i$7][j$2]) rout.write_shift(8, "00000000", "sbcs");
+ else {
+ rout.write_shift(4, ("0000" + data[i$7][j$2].getFullYear()).slice(-4), "sbcs");
+ rout.write_shift(2, ("00" + (data[i$7][j$2].getMonth() + 1)).slice(-2), "sbcs");
+ rout.write_shift(2, ("00" + data[i$7][j$2].getDate()).slice(-2), "sbcs");
+ }
+ break;
+ case "C":
+ var _l = rout.l;
+ var _s = String(data[i$7][j$2] != null ? data[i$7][j$2] : "").slice(0, colwidths[j$2]);
+ rout.write_shift(1, _s, "cpstr");
+ _l += colwidths[j$2] - rout.l;
+ for (hcnt = 0; hcnt < _l; ++hcnt) rout.write_shift(1, 32);
+ break;
+ }
+ }
+ }
+ current_codepage = old_cp;
+ ba.next(1).write_shift(1, 26);
+ return ba.end();
+ }
+ return {
+ to_workbook: dbf_to_workbook,
+ to_sheet: dbf_to_sheet,
+ from_sheet: sheet_to_dbf
+ };
+ })();
+ SYLK = /* @__PURE__ */ (function() {
+ var sylk_escapes = {
+ AA: "À",
+ BA: "Á",
+ CA: "Â",
+ DA: 195,
+ HA: "Ä",
+ JA: 197,
+ AE: "È",
+ BE: "É",
+ CE: "Ê",
+ HE: "Ë",
+ AI: "Ì",
+ BI: "Í",
+ CI: "Î",
+ HI: "Ï",
+ AO: "Ò",
+ BO: "Ó",
+ CO: "Ô",
+ DO: 213,
+ HO: "Ö",
+ AU: "Ù",
+ BU: "Ú",
+ CU: "Û",
+ HU: "Ü",
+ Aa: "à",
+ Ba: "á",
+ Ca: "â",
+ Da: 227,
+ Ha: "ä",
+ Ja: 229,
+ Ae: "è",
+ Be: "é",
+ Ce: "ê",
+ He: "ë",
+ Ai: "ì",
+ Bi: "í",
+ Ci: "î",
+ Hi: "ï",
+ Ao: "ò",
+ Bo: "ó",
+ Co: "ô",
+ Do: 245,
+ Ho: "ö",
+ Au: "ù",
+ Bu: "ú",
+ Cu: "û",
+ Hu: "ü",
+ KC: "Ç",
+ Kc: "ç",
+ q: "æ",
+ z: "œ",
+ a: "Æ",
+ j: "Œ",
+ DN: 209,
+ Dn: 241,
+ Hy: 255,
+ S: 169,
+ c: 170,
+ R: 174,
+ "B ": 180,
+ 0: 176,
+ 1: 177,
+ 2: 178,
+ 3: 179,
+ 5: 181,
+ 6: 182,
+ 7: 183,
+ Q: 185,
+ k: 186,
+ b: 208,
+ i: 216,
+ l: 222,
+ s: 240,
+ y: 248,
+ "!": 161,
+ "\"": 162,
+ "#": 163,
+ "(": 164,
+ "%": 165,
+ "'": 167,
+ "H ": 168,
+ "+": 171,
+ ";": 187,
+ "<": 188,
+ "=": 189,
+ ">": 190,
+ "?": 191,
+ "{": 223
+ };
+ var sylk_char_regex = new RegExp("\x1BN(" + keys(sylk_escapes).join("|").replace(/\|\|\|/, "|\\||").replace(/([?()+])/g, "\\$1").replace("{", "\\{") + "|\\|)", "gm");
+ try {
+ sylk_char_regex = new RegExp("\x1BN(" + keys(sylk_escapes).join("|").replace(/\|\|\|/, "|\\||").replace(/([?()+])/g, "\\$1") + "|\\|)", "gm");
+ } catch (e$10) {}
+ var sylk_char_fn = function(_$2, $1) {
+ var o$10 = sylk_escapes[$1];
+ return typeof o$10 == "number" ? _getansi(o$10) : o$10;
+ };
+ var decode_sylk_char = function($$, $1, $2) {
+ var newcc = $1.charCodeAt(0) - 32 << 4 | $2.charCodeAt(0) - 48;
+ return newcc == 59 ? $$ : _getansi(newcc);
+ };
+ sylk_escapes["|"] = 254;
+ var encode_sylk_str = function($$) {
+ return $$.replace(/\n/g, "\x1B :").replace(/\r/g, "\x1B =");
+ };
+ function sylk_to_aoa(d$5, opts) {
+ switch (opts.type) {
+ case "base64": return sylk_to_aoa_str(Base64_decode(d$5), opts);
+ case "binary": return sylk_to_aoa_str(d$5, opts);
+ case "buffer": return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5), opts);
+ case "array": return sylk_to_aoa_str(cc2str(d$5), opts);
+ }
+ throw new Error("Unrecognized type " + opts.type);
+ }
+ function sylk_to_aoa_str(str, opts) {
+ var records = str.split(/[\n\r]+/), R$1 = -1, C$2 = -1, ri = 0, rj = 0, arr = [];
+ var formats = [];
+ var next_cell_format = null;
+ var sht = {}, rowinfo = [], colinfo = [], cw = [];
+ var Mval = 0, j$2;
+ var wb = { Workbook: {
+ WBProps: {},
+ Names: []
+ } };
+ if (+opts.codepage >= 0) set_cp(+opts.codepage);
+ for (; ri !== records.length; ++ri) {
+ Mval = 0;
+ var rstr = records[ri].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);
+ var record = rstr.replace(/;;/g, "\0").split(";").map(function(x$2) {
+ return x$2.replace(/\u0000/g, ";");
+ });
+ var RT = record[0], val$1;
+ if (rstr.length > 0) switch (RT) {
+ case "ID": break;
+ case "E": break;
+ case "B": break;
+ case "O":
+ for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
+ case "V":
+ {
+ var d1904 = parseInt(record[rj].slice(1), 10);
+ if (d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;
+ }
+ break;
+ }
+ break;
+ case "W": break;
+ case "P":
+ switch (record[1].charAt(0)) {
+ case "P":
+ formats.push(rstr.slice(3).replace(/;;/g, ";"));
+ break;
+ }
+ break;
+ case "NN":
+ {
+ var nn = { Sheet: 0 };
+ for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
+ case "N":
+ nn.Name = record[rj].slice(1);
+ break;
+ case "E":
+ nn.Ref = (opts && opts.sheet || "Sheet1") + "!" + rc_to_a1(record[rj].slice(1));
+ break;
+ }
+ wb.Workbook.Names.push(nn);
+ }
+ break;
+ case "C":
+ var C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1, formula = "", cell_t = "z";
+ var cmnt = "";
+ for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
+ case "A":
+ cmnt = record[rj].slice(1);
+ break;
+ case "X":
+ C$2 = parseInt(record[rj].slice(1), 10) - 1;
+ C_seen_X = true;
+ break;
+ case "Y":
+ R$1 = parseInt(record[rj].slice(1), 10) - 1;
+ if (!C_seen_X) C$2 = 0;
+ for (j$2 = arr.length; j$2 <= R$1; ++j$2) arr[j$2] = [];
+ break;
+ case "K":
+ val$1 = record[rj].slice(1);
+ if (val$1.charAt(0) === "\"") {
+ val$1 = val$1.slice(1, val$1.length - 1);
+ cell_t = "s";
+ } else if (val$1 === "TRUE" || val$1 === "FALSE") {
+ val$1 = val$1 === "TRUE";
+ cell_t = "b";
+ } else if (val$1.charAt(0) == "#" && RBErr[val$1] != null) {
+ cell_t = "e";
+ val$1 = RBErr[val$1];
+ } else if (!isNaN(fuzzynum(val$1))) {
+ val$1 = fuzzynum(val$1);
+ cell_t = "n";
+ if (next_cell_format !== null && fmt_is_date(next_cell_format) && opts.cellDates) {
+ val$1 = numdate(wb.Workbook.WBProps.date1904 ? val$1 + 1462 : val$1);
+ cell_t = typeof val$1 == "number" ? "n" : "d";
+ }
+ }
+ if (typeof $cptable !== "undefined" && typeof val$1 == "string" && (opts || {}).type != "string" && (opts || {}).codepage) val$1 = $cptable.utils.decode(opts.codepage, val$1);
+ C_seen_K = true;
+ break;
+ case "E":
+ C_seen_E = true;
+ formula = rc_to_a1(record[rj].slice(1), {
+ r: R$1,
+ c: C$2
+ });
+ break;
+ case "S":
+ C_seen_S = true;
+ break;
+ case "G": break;
+ case "R":
+ _R = parseInt(record[rj].slice(1), 10) - 1;
+ break;
+ case "C":
+ _C = parseInt(record[rj].slice(1), 10) - 1;
+ break;
+ default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
+ }
+ if (C_seen_K) {
+ if (!arr[R$1][C$2]) arr[R$1][C$2] = {
+ t: cell_t,
+ v: val$1
+ };
+ else {
+ arr[R$1][C$2].t = cell_t;
+ arr[R$1][C$2].v = val$1;
+ }
+ if (next_cell_format) arr[R$1][C$2].z = next_cell_format;
+ if (opts.cellText !== false && next_cell_format) arr[R$1][C$2].w = SSF_format(arr[R$1][C$2].z, arr[R$1][C$2].v, { date1904: wb.Workbook.WBProps.date1904 });
+ next_cell_format = null;
+ }
+ if (C_seen_S) {
+ if (C_seen_E) throw new Error("SYLK shared formula cannot have own formula");
+ var shrbase = _R > -1 && arr[_R][_C];
+ if (!shrbase || !shrbase[1]) throw new Error("SYLK shared formula cannot find base");
+ formula = shift_formula_str(shrbase[1], {
+ r: R$1 - _R,
+ c: C$2 - _C
+ });
+ }
+ if (formula) {
+ if (!arr[R$1][C$2]) arr[R$1][C$2] = {
+ t: "n",
+ f: formula
+ };
+ else arr[R$1][C$2].f = formula;
+ }
+ if (cmnt) {
+ if (!arr[R$1][C$2]) arr[R$1][C$2] = { t: "z" };
+ arr[R$1][C$2].c = [{
+ a: "SheetJSYLK",
+ t: cmnt
+ }];
+ }
+ break;
+ case "F":
+ var F_seen = 0;
+ for (rj = 1; rj < record.length; ++rj) switch (record[rj].charAt(0)) {
+ case "X":
+ C$2 = parseInt(record[rj].slice(1), 10) - 1;
+ ++F_seen;
+ break;
+ case "Y":
+ R$1 = parseInt(record[rj].slice(1), 10) - 1;
+ for (j$2 = arr.length; j$2 <= R$1; ++j$2) arr[j$2] = [];
+ break;
+ case "M":
+ Mval = parseInt(record[rj].slice(1), 10) / 20;
+ break;
+ case "F": break;
+ case "G": break;
+ case "P":
+ next_cell_format = formats[parseInt(record[rj].slice(1), 10)];
+ break;
+ case "S": break;
+ case "D": break;
+ case "N": break;
+ case "W":
+ cw = record[rj].slice(1).split(" ");
+ for (j$2 = parseInt(cw[0], 10); j$2 <= parseInt(cw[1], 10); ++j$2) {
+ Mval = parseInt(cw[2], 10);
+ colinfo[j$2 - 1] = Mval === 0 ? { hidden: true } : { wch: Mval };
+ }
+ break;
+ case "C":
+ C$2 = parseInt(record[rj].slice(1), 10) - 1;
+ if (!colinfo[C$2]) colinfo[C$2] = {};
+ break;
+ case "R":
+ R$1 = parseInt(record[rj].slice(1), 10) - 1;
+ if (!rowinfo[R$1]) rowinfo[R$1] = {};
+ if (Mval > 0) {
+ rowinfo[R$1].hpt = Mval;
+ rowinfo[R$1].hpx = pt2px(Mval);
+ } else if (Mval === 0) rowinfo[R$1].hidden = true;
+ break;
+ default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
+ }
+ if (F_seen < 1) next_cell_format = null;
+ break;
+ default: if (opts && opts.WTF) throw new Error("SYLK bad record " + rstr);
+ }
+ }
+ if (rowinfo.length > 0) sht["!rows"] = rowinfo;
+ if (colinfo.length > 0) sht["!cols"] = colinfo;
+ colinfo.forEach(function(col) {
+ process_col(col);
+ });
+ if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
+ return [
+ arr,
+ sht,
+ wb
+ ];
+ }
+ function sylk_to_workbook(d$5, opts) {
+ var aoasht = sylk_to_aoa(d$5, opts);
+ var aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];
+ var _opts = dup(opts);
+ _opts.date1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
+ var o$10 = aoa_to_sheet(aoa, _opts);
+ keys(ws).forEach(function(k$2) {
+ o$10[k$2] = ws[k$2];
+ });
+ var outwb = sheet_to_workbook(o$10, opts);
+ keys(wb).forEach(function(k$2) {
+ outwb[k$2] = wb[k$2];
+ });
+ outwb.bookType = "sylk";
+ return outwb;
+ }
+ function write_ws_cell_sylk(cell, ws, R$1, C$2, opts, date1904) {
+ var o$10 = "C;Y" + (R$1 + 1) + ";X" + (C$2 + 1) + ";K";
+ switch (cell.t) {
+ case "n":
+ o$10 += isFinite(cell.v) ? cell.v || 0 : BErr[isNaN(cell.v) ? 36 : 7];
+ if (cell.f && !cell.F) o$10 += ";E" + a1_to_rc(cell.f, {
+ r: R$1,
+ c: C$2
+ });
+ break;
+ case "b":
+ o$10 += cell.v ? "TRUE" : "FALSE";
+ break;
+ case "e":
+ o$10 += cell.w || BErr[cell.v] || cell.v;
+ break;
+ case "d":
+ o$10 += datenum(parseDate(cell.v, date1904), date1904);
+ break;
+ case "s":
+ o$10 += "\"" + (cell.v == null ? "" : String(cell.v)).replace(/"/g, "").replace(/;/g, ";;") + "\"";
+ break;
+ }
+ return o$10;
+ }
+ function write_ws_cmnt_sylk(cmnt, R$1, C$2) {
+ var o$10 = "C;Y" + (R$1 + 1) + ";X" + (C$2 + 1) + ";A";
+ o$10 += encode_sylk_str(cmnt.map(function(c$7) {
+ return c$7.t;
+ }).join(""));
+ return o$10;
+ }
+ function write_ws_cols_sylk(out, cols) {
+ cols.forEach(function(col, i$7) {
+ var rec = "F;W" + (i$7 + 1) + " " + (i$7 + 1) + " ";
+ if (col.hidden) rec += "0";
+ else {
+ if (typeof col.width == "number" && !col.wpx) col.wpx = width2px(col.width);
+ if (typeof col.wpx == "number" && !col.wch) col.wch = px2char(col.wpx);
+ if (typeof col.wch == "number") rec += Math.round(col.wch);
+ }
+ if (rec.charAt(rec.length - 1) != " ") out.push(rec);
+ });
+ }
+ function write_ws_rows_sylk(out, rows) {
+ rows.forEach(function(row, i$7) {
+ var rec = "F;";
+ if (row.hidden) rec += "M0;";
+ else if (row.hpt) rec += "M" + 20 * row.hpt + ";";
+ else if (row.hpx) rec += "M" + 20 * px2pt(row.hpx) + ";";
+ if (rec.length > 2) out.push(rec + "R" + (i$7 + 1));
+ });
+ }
+ function sheet_to_sylk(ws, opts, wb) {
+ if (!opts) opts = {};
+ opts._formats = ["General"];
+ var preamble = ["ID;PSheetJS;N;E"], o$10 = [];
+ var r$10 = safe_decode_range(ws["!ref"] || "A1"), cell;
+ var dense = ws["!data"] != null;
+ var RS = "\r\n";
+ var d1904 = (((wb || {}).Workbook || {}).WBProps || {}).date1904;
+ var _lastfmt = "General";
+ preamble.push("P;PGeneral");
+ var R$1 = r$10.s.r, C$2 = r$10.s.c, p$3 = [];
+ if (ws["!ref"]) for (R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ if (dense && !ws["!data"][R$1]) continue;
+ p$3 = [];
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ cell = dense ? ws["!data"][R$1][C$2] : ws[encode_col(C$2) + encode_row(R$1)];
+ if (!cell || !cell.c) continue;
+ p$3.push(write_ws_cmnt_sylk(cell.c, R$1, C$2));
+ }
+ if (p$3.length) o$10.push(p$3.join(RS));
+ }
+ if (ws["!ref"]) for (R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ if (dense && !ws["!data"][R$1]) continue;
+ p$3 = [];
+ for (C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ cell = dense ? ws["!data"][R$1][C$2] : ws[encode_col(C$2) + encode_row(R$1)];
+ if (!cell || cell.v == null && (!cell.f || cell.F)) continue;
+ if ((cell.z || (cell.t == "d" ? table_fmt[14] : "General")) != _lastfmt) {
+ var ifmt = opts._formats.indexOf(cell.z);
+ if (ifmt == -1) {
+ opts._formats.push(cell.z);
+ ifmt = opts._formats.length - 1;
+ preamble.push("P;P" + cell.z.replace(/;/g, ";;"));
+ }
+ p$3.push("F;P" + ifmt + ";Y" + (R$1 + 1) + ";X" + (C$2 + 1));
+ }
+ p$3.push(write_ws_cell_sylk(cell, ws, R$1, C$2, opts, d1904));
+ }
+ o$10.push(p$3.join(RS));
+ }
+ preamble.push("F;P0;DG0G8;M255");
+ if (ws["!cols"]) write_ws_cols_sylk(preamble, ws["!cols"]);
+ if (ws["!rows"]) write_ws_rows_sylk(preamble, ws["!rows"]);
+ if (ws["!ref"]) preamble.push("B;Y" + (r$10.e.r - r$10.s.r + 1) + ";X" + (r$10.e.c - r$10.s.c + 1) + ";D" + [
+ r$10.s.c,
+ r$10.s.r,
+ r$10.e.c,
+ r$10.e.r
+ ].join(" "));
+ preamble.push("O;L;D;B" + (d1904 ? ";V4" : "") + ";K47;G100 0.001");
+ delete opts._formats;
+ return preamble.join(RS) + RS + o$10.join(RS) + RS + "E" + RS;
+ }
+ return {
+ to_workbook: sylk_to_workbook,
+ from_sheet: sheet_to_sylk
+ };
+ })();
+ DIF = /* @__PURE__ */ (function() {
+ function dif_to_aoa(d$5, opts) {
+ switch (opts.type) {
+ case "base64": return dif_to_aoa_str(Base64_decode(d$5), opts);
+ case "binary": return dif_to_aoa_str(d$5, opts);
+ case "buffer": return dif_to_aoa_str(has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5), opts);
+ case "array": return dif_to_aoa_str(cc2str(d$5), opts);
+ }
+ throw new Error("Unrecognized type " + opts.type);
+ }
+ function dif_to_aoa_str(str, opts) {
+ var records = str.split("\n"), R$1 = -1, C$2 = -1, ri = 0, arr = [];
+ for (; ri !== records.length; ++ri) {
+ if (records[ri].trim() === "BOT") {
+ arr[++R$1] = [];
+ C$2 = 0;
+ continue;
+ }
+ if (R$1 < 0) continue;
+ var metadata = records[ri].trim().split(",");
+ var type = metadata[0], value = metadata[1];
+ ++ri;
+ var data = records[ri] || "";
+ while ((data.match(/["]/g) || []).length & 1 && ri < records.length - 1) data += "\n" + records[++ri];
+ data = data.trim();
+ switch (+type) {
+ case -1:
+ if (data === "BOT") {
+ arr[++R$1] = [];
+ C$2 = 0;
+ continue;
+ } else if (data !== "EOD") throw new Error("Unrecognized DIF special command " + data);
+ break;
+ case 0:
+ if (data === "TRUE") arr[R$1][C$2] = true;
+ else if (data === "FALSE") arr[R$1][C$2] = false;
+ else if (!isNaN(fuzzynum(value))) arr[R$1][C$2] = fuzzynum(value);
+ else if (!isNaN(fuzzydate(value).getDate())) {
+ arr[R$1][C$2] = parseDate(value);
+ if (!(opts && opts.UTC)) {
+ arr[R$1][C$2] = utc_to_local(arr[R$1][C$2]);
+ }
+ } else arr[R$1][C$2] = value;
+ ++C$2;
+ break;
+ case 1:
+ data = data.slice(1, data.length - 1);
+ data = data.replace(/""/g, "\"");
+ if (DIF_XL && data && data.match(/^=".*"$/)) data = data.slice(2, -1);
+ arr[R$1][C$2++] = data !== "" ? data : null;
+ break;
+ }
+ if (data === "EOD") break;
+ }
+ if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
+ return arr;
+ }
+ function dif_to_sheet(str, opts) {
+ return aoa_to_sheet(dif_to_aoa(str, opts), opts);
+ }
+ function dif_to_workbook(str, opts) {
+ var o$10 = sheet_to_workbook(dif_to_sheet(str, opts), opts);
+ o$10.bookType = "dif";
+ return o$10;
+ }
+ function make_value(v$3, s$5) {
+ return "0," + String(v$3) + "\r\n" + s$5;
+ }
+ function make_value_str(s$5) {
+ return "1,0\r\n\"" + s$5.replace(/"/g, "\"\"") + "\"";
+ }
+ function sheet_to_dif(ws) {
+ var _DIF_XL = DIF_XL;
+ if (!ws["!ref"]) throw new Error("Cannot export empty sheet to DIF");
+ var r$10 = safe_decode_range(ws["!ref"]);
+ var dense = ws["!data"] != null;
+ var o$10 = [
+ "TABLE\r\n0,1\r\n\"sheetjs\"\r\n",
+ "VECTORS\r\n0," + (r$10.e.r - r$10.s.r + 1) + "\r\n\"\"\r\n",
+ "TUPLES\r\n0," + (r$10.e.c - r$10.s.c + 1) + "\r\n\"\"\r\n",
+ "DATA\r\n0,0\r\n\"\"\r\n"
+ ];
+ for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ var row = dense ? ws["!data"][R$1] : [];
+ var p$3 = "-1,0\r\nBOT\r\n";
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ var cell = dense ? row && row[C$2] : ws[encode_cell({
+ r: R$1,
+ c: C$2
+ })];
+ if (cell == null) {
+ p$3 += "1,0\r\n\"\"\r\n";
+ continue;
+ }
+ switch (cell.t) {
+ case "n":
+ if (_DIF_XL) {
+ if (cell.w != null) p$3 += "0," + cell.w + "\r\nV";
+ else if (cell.v != null) p$3 += make_value(cell.v, "V");
+ else if (cell.f != null && !cell.F) p$3 += make_value_str("=" + cell.f);
+ else p$3 += "1,0\r\n\"\"";
+ } else {
+ if (cell.v == null) p$3 += "1,0\r\n\"\"";
+ else p$3 += make_value(cell.v, "V");
+ }
+ break;
+ case "b":
+ p$3 += cell.v ? make_value(1, "TRUE") : make_value(0, "FALSE");
+ break;
+ case "s":
+ p$3 += make_value_str(!_DIF_XL || isNaN(+cell.v) ? cell.v : "=\"" + cell.v + "\"");
+ break;
+ case "d":
+ if (!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));
+ if (_DIF_XL) p$3 += make_value(cell.w, "V");
+ else p$3 += make_value_str(cell.w);
+ break;
+ default: p$3 += "1,0\r\n\"\"";
+ }
+ p$3 += "\r\n";
+ }
+ o$10.push(p$3);
+ }
+ return o$10.join("") + "-1,0\r\nEOD";
+ }
+ return {
+ to_workbook: dif_to_workbook,
+ to_sheet: dif_to_sheet,
+ from_sheet: sheet_to_dif
+ };
+ })();
+ ETH = /* @__PURE__ */ (function() {
+ function decode(s$5) {
+ return s$5.replace(/\\b/g, "\\").replace(/\\c/g, ":").replace(/\\n/g, "\n");
+ }
+ function encode(s$5) {
+ return s$5.replace(/\\/g, "\\b").replace(/:/g, "\\c").replace(/\n/g, "\\n");
+ }
+ function eth_to_aoa(str, opts) {
+ var records = str.split("\n"), R$1 = -1, C$2 = -1, ri = 0, arr = [];
+ for (; ri !== records.length; ++ri) {
+ var record = records[ri].trim().split(":");
+ if (record[0] !== "cell") continue;
+ var addr = decode_cell(record[1]);
+ if (arr.length <= addr.r) {
+ for (R$1 = arr.length; R$1 <= addr.r; ++R$1) if (!arr[R$1]) arr[R$1] = [];
+ }
+ R$1 = addr.r;
+ C$2 = addr.c;
+ switch (record[2]) {
+ case "t":
+ arr[R$1][C$2] = decode(record[3]);
+ break;
+ case "v":
+ arr[R$1][C$2] = +record[3];
+ break;
+ case "vtf": var _f = record[record.length - 1];
+ case "vtc":
+ switch (record[3]) {
+ case "nl":
+ arr[R$1][C$2] = +record[4] ? true : false;
+ break;
+ default:
+ arr[R$1][C$2] = record[record.length - 1].charAt(0) == "#" ? {
+ t: "e",
+ v: RBErr[record[record.length - 1]]
+ } : +record[4];
+ break;
+ }
+ if (record[2] == "vtf") arr[R$1][C$2] = [arr[R$1][C$2], _f];
+ }
+ }
+ if (opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);
+ return arr;
+ }
+ function eth_to_sheet(d$5, opts) {
+ return aoa_to_sheet(eth_to_aoa(d$5, opts), opts);
+ }
+ function eth_to_workbook(d$5, opts) {
+ return sheet_to_workbook(eth_to_sheet(d$5, opts), opts);
+ }
+ var header = [
+ "socialcalc:version:1.5",
+ "MIME-Version: 1.0",
+ "Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"
+ ].join("\n");
+ var sep = ["--SocialCalcSpreadsheetControlSave", "Content-type: text/plain; charset=UTF-8"].join("\n") + "\n";
+ var meta = ["# SocialCalc Spreadsheet Control Save", "part:sheet"].join("\n");
+ var end = "--SocialCalcSpreadsheetControlSave--";
+ function sheet_to_eth_data(ws) {
+ if (!ws || !ws["!ref"]) return "";
+ var o$10 = [], oo = [], cell, coord = "";
+ var r$10 = decode_range(ws["!ref"]);
+ var dense = ws["!data"] != null;
+ for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ coord = encode_cell({
+ r: R$1,
+ c: C$2
+ });
+ cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
+ if (!cell || cell.v == null || cell.t === "z") continue;
+ oo = [
+ "cell",
+ coord,
+ "t"
+ ];
+ switch (cell.t) {
+ case "s":
+ oo.push(encode(cell.v));
+ break;
+ case "b":
+ oo[2] = "vt" + (cell.f ? "f" : "c");
+ oo[3] = "nl";
+ oo[4] = cell.v ? "1" : "0";
+ oo[5] = encode(cell.f || (cell.v ? "TRUE" : "FALSE"));
+ break;
+ case "d":
+ var t$6 = datenum(parseDate(cell.v));
+ oo[2] = "vtc";
+ oo[3] = "nd";
+ oo[4] = "" + t$6;
+ oo[5] = cell.w || SSF_format(cell.z || table_fmt[14], t$6);
+ break;
+ case "n":
+ if (isFinite(cell.v)) {
+ if (!cell.f) {
+ oo[2] = "v";
+ oo[3] = cell.v;
+ } else {
+ oo[2] = "vtf";
+ oo[3] = "n";
+ oo[4] = cell.v;
+ oo[5] = encode(cell.f);
+ }
+ } else {
+ oo[2] = "vt" + (cell.f ? "f" : "c");
+ oo[3] = "e" + BErr[isNaN(cell.v) ? 36 : 7];
+ oo[4] = "0";
+ oo[5] = cell.f || oo[3].slice(1);
+ oo[6] = "e";
+ oo[7] = oo[3].slice(1);
+ }
+ break;
+ case "e": continue;
+ }
+ o$10.push(oo.join(":"));
+ }
+ }
+ o$10.push("sheet:c:" + (r$10.e.c - r$10.s.c + 1) + ":r:" + (r$10.e.r - r$10.s.r + 1) + ":tvf:1");
+ o$10.push("valueformat:1:text-wiki");
+ return o$10.join("\n");
+ }
+ function sheet_to_eth(ws) {
+ return [
+ header,
+ sep,
+ meta,
+ sep,
+ sheet_to_eth_data(ws),
+ end
+ ].join("\n");
+ }
+ return {
+ to_workbook: eth_to_workbook,
+ to_sheet: eth_to_sheet,
+ from_sheet: sheet_to_eth
+ };
+ })();
+ PRN = /* @__PURE__ */ (function() {
+ function set_text_arr(data, arr, R$1, C$2, o$10) {
+ if (o$10.raw) arr[R$1][C$2] = data;
+ else if (data === "") {} else if (data === "TRUE") arr[R$1][C$2] = true;
+ else if (data === "FALSE") arr[R$1][C$2] = false;
+ else if (!isNaN(fuzzynum(data))) arr[R$1][C$2] = fuzzynum(data);
+ else if (!isNaN(fuzzydate(data).getDate())) arr[R$1][C$2] = parseDate(data);
+ else if (data.charCodeAt(0) == 35 && RBErr[data] != null) arr[R$1][C$2] = {
+ t: "e",
+ v: RBErr[data],
+ w: data
+ };
+ else arr[R$1][C$2] = data;
+ }
+ function prn_to_aoa_str(f$4, opts) {
+ var o$10 = opts || {};
+ var arr = [];
+ if (!f$4 || f$4.length === 0) return arr;
+ var lines = f$4.split(/[\r\n]/);
+ var L$2 = lines.length - 1;
+ while (L$2 >= 0 && lines[L$2].length === 0) --L$2;
+ var start = 10, idx = 0;
+ var R$1 = 0;
+ for (; R$1 <= L$2; ++R$1) {
+ idx = lines[R$1].indexOf(" ");
+ if (idx == -1) idx = lines[R$1].length;
+ else idx++;
+ start = Math.max(start, idx);
+ }
+ for (R$1 = 0; R$1 <= L$2; ++R$1) {
+ arr[R$1] = [];
+ var C$2 = 0;
+ set_text_arr(lines[R$1].slice(0, start).trim(), arr, R$1, C$2, o$10);
+ for (C$2 = 1; C$2 <= (lines[R$1].length - start) / 10 + 1; ++C$2) set_text_arr(lines[R$1].slice(start + (C$2 - 1) * 10, start + C$2 * 10).trim(), arr, R$1, C$2, o$10);
+ }
+ if (o$10.sheetRows) arr = arr.slice(0, o$10.sheetRows);
+ return arr;
+ }
+ var guess_seps = {
+ 44: ",",
+ 9: " ",
+ 59: ";",
+ 124: "|"
+ };
+ var guess_sep_weights = {
+ 44: 3,
+ 9: 2,
+ 59: 1,
+ 124: 0
+ };
+ function guess_sep(str) {
+ var cnt = {}, instr = false, end = 0, cc = 0;
+ for (; end < str.length; ++end) {
+ if ((cc = str.charCodeAt(end)) == 34) instr = !instr;
+ else if (!instr && cc in guess_seps) cnt[cc] = (cnt[cc] || 0) + 1;
+ }
+ cc = [];
+ for (end in cnt) if (Object.prototype.hasOwnProperty.call(cnt, end)) {
+ cc.push([cnt[end], end]);
+ }
+ if (!cc.length) {
+ cnt = guess_sep_weights;
+ for (end in cnt) if (Object.prototype.hasOwnProperty.call(cnt, end)) {
+ cc.push([cnt[end], end]);
+ }
+ }
+ cc.sort(function(a$2, b$3) {
+ return a$2[0] - b$3[0] || guess_sep_weights[a$2[1]] - guess_sep_weights[b$3[1]];
+ });
+ return guess_seps[cc.pop()[1]] || 44;
+ }
+ function dsv_to_sheet_str(str, opts) {
+ var o$10 = opts || {};
+ var sep = "";
+ if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
+ var ws = {};
+ if (o$10.dense) ws["!data"] = [];
+ var range = {
+ s: {
+ c: 0,
+ r: 0
+ },
+ e: {
+ c: 0,
+ r: 0
+ }
+ };
+ if (str.slice(0, 4) == "sep=") {
+ if (str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10) {
+ sep = str.charAt(4);
+ str = str.slice(7);
+ } else if (str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10) {
+ sep = str.charAt(4);
+ str = str.slice(6);
+ } else sep = guess_sep(str.slice(0, 1024));
+ } else if (o$10 && o$10.FS) sep = o$10.FS;
+ else sep = guess_sep(str.slice(0, 1024));
+ var R$1 = 0, C$2 = 0, v$3 = 0;
+ var start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc = 0, startcc = str.charCodeAt(0);
+ var _re = o$10.dateNF != null ? dateNF_regex(o$10.dateNF) : null;
+ function finish_cell() {
+ var s$5 = str.slice(start, end);
+ if (s$5.slice(-1) == "\r") s$5 = s$5.slice(0, -1);
+ var cell = {};
+ if (s$5.charAt(0) == "\"" && s$5.charAt(s$5.length - 1) == "\"") s$5 = s$5.slice(1, -1).replace(/""/g, "\"");
+ if (o$10.cellText !== false) cell.w = s$5;
+ if (s$5.length === 0) cell.t = "z";
+ else if (o$10.raw) {
+ cell.t = "s";
+ cell.v = s$5;
+ } else if (s$5.trim().length === 0) {
+ cell.t = "s";
+ cell.v = s$5;
+ } else if (s$5.charCodeAt(0) == 61) {
+ if (s$5.charCodeAt(1) == 34 && s$5.charCodeAt(s$5.length - 1) == 34) {
+ cell.t = "s";
+ cell.v = s$5.slice(2, -1).replace(/""/g, "\"");
+ } else if (fuzzyfmla(s$5)) {
+ cell.t = "s";
+ cell.f = s$5.slice(1);
+ cell.v = s$5;
+ } else {
+ cell.t = "s";
+ cell.v = s$5;
+ }
+ } else if (s$5 == "TRUE") {
+ cell.t = "b";
+ cell.v = true;
+ } else if (s$5 == "FALSE") {
+ cell.t = "b";
+ cell.v = false;
+ } else if (!isNaN(v$3 = fuzzynum(s$5))) {
+ cell.t = "n";
+ cell.v = v$3;
+ } else if (!isNaN((v$3 = fuzzydate(s$5)).getDate()) || _re && s$5.match(_re)) {
+ cell.z = o$10.dateNF || table_fmt[14];
+ if (_re && s$5.match(_re)) {
+ var news = dateNF_fix(s$5, o$10.dateNF, s$5.match(_re) || []);
+ v$3 = parseDate(news);
+ if (o$10 && o$10.UTC === false) v$3 = utc_to_local(v$3);
+ } else if (o$10 && o$10.UTC === false) v$3 = utc_to_local(v$3);
+ else if (o$10.cellText !== false && o$10.dateNF) cell.w = SSF_format(cell.z, v$3);
+ if (o$10.cellDates) {
+ cell.t = "d";
+ cell.v = v$3;
+ } else {
+ cell.t = "n";
+ cell.v = datenum(v$3);
+ }
+ if (!o$10.cellNF) delete cell.z;
+ } else if (s$5.charCodeAt(0) == 35 && RBErr[s$5] != null) {
+ cell.t = "e";
+ cell.w = s$5;
+ cell.v = RBErr[s$5];
+ } else {
+ cell.t = "s";
+ cell.v = s$5;
+ }
+ if (cell.t == "z") {} else if (o$10.dense) {
+ if (!ws["!data"][R$1]) ws["!data"][R$1] = [];
+ ws["!data"][R$1][C$2] = cell;
+ } else ws[encode_cell({
+ c: C$2,
+ r: R$1
+ })] = cell;
+ start = end + 1;
+ startcc = str.charCodeAt(start);
+ if (range.e.c < C$2) range.e.c = C$2;
+ if (range.e.r < R$1) range.e.r = R$1;
+ if (cc == sepcc) ++C$2;
+ else {
+ C$2 = 0;
+ ++R$1;
+ if (o$10.sheetRows && o$10.sheetRows <= R$1) return true;
+ }
+ }
+ outer: for (; end < str.length; ++end) switch (cc = str.charCodeAt(end)) {
+ case 34:
+ if (startcc === 34) instr = !instr;
+ break;
+ case 13:
+ if (instr) break;
+ if (str.charCodeAt(end + 1) == 10) ++end;
+ case sepcc:
+ case 10:
+ if (!instr && finish_cell()) break outer;
+ break;
+ default: break;
+ }
+ if (end - start > 0) finish_cell();
+ ws["!ref"] = encode_range(range);
+ return ws;
+ }
+ function prn_to_sheet_str(str, opts) {
+ if (!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);
+ if (opts.FS) return dsv_to_sheet_str(str, opts);
+ if (str.slice(0, 4) == "sep=") return dsv_to_sheet_str(str, opts);
+ if (str.indexOf(" ") >= 0 || str.indexOf(",") >= 0 || str.indexOf(";") >= 0) return dsv_to_sheet_str(str, opts);
+ return aoa_to_sheet(prn_to_aoa_str(str, opts), opts);
+ }
+ function prn_to_sheet(d$5, opts) {
+ var str = "", bytes = opts.type == "string" ? [
+ 0,
+ 0,
+ 0,
+ 0
+ ] : firstbyte(d$5, opts);
+ switch (opts.type) {
+ case "base64":
+ str = Base64_decode(d$5);
+ break;
+ case "binary":
+ str = d$5;
+ break;
+ case "buffer":
+ if (opts.codepage == 65001) str = d$5.toString("utf8");
+ else if (opts.codepage && typeof $cptable !== "undefined") str = $cptable.utils.decode(opts.codepage, d$5);
+ else str = has_buf && Buffer.isBuffer(d$5) ? d$5.toString("binary") : a2s(d$5);
+ break;
+ case "array":
+ str = cc2str(d$5);
+ break;
+ case "string":
+ str = d$5;
+ break;
+ default: throw new Error("Unrecognized type " + opts.type);
+ }
+ if (bytes[0] == 239 && bytes[1] == 187 && bytes[2] == 191) str = utf8read(str.slice(3));
+ else if (opts.type != "string" && opts.type != "buffer" && opts.codepage == 65001) str = utf8read(str);
+ else if (opts.type == "binary" && typeof $cptable !== "undefined" && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591, str));
+ if (str.slice(0, 19) == "socialcalc:version:") return ETH.to_sheet(opts.type == "string" ? str : utf8read(str), opts);
+ return prn_to_sheet_str(str, opts);
+ }
+ function prn_to_workbook(d$5, opts) {
+ return sheet_to_workbook(prn_to_sheet(d$5, opts), opts);
+ }
+ function sheet_to_prn(ws) {
+ var o$10 = [];
+ if (!ws["!ref"]) return "";
+ var r$10 = safe_decode_range(ws["!ref"]), cell;
+ var dense = ws["!data"] != null;
+ for (var R$1 = r$10.s.r; R$1 <= r$10.e.r; ++R$1) {
+ var oo = [];
+ for (var C$2 = r$10.s.c; C$2 <= r$10.e.c; ++C$2) {
+ var coord = encode_cell({
+ r: R$1,
+ c: C$2
+ });
+ cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[coord];
+ if (!cell || cell.v == null) {
+ oo.push(" ");
+ continue;
+ }
+ var w$2 = (cell.w || (format_cell(cell), cell.w) || "").slice(0, 10);
+ while (w$2.length < 10) w$2 += " ";
+ oo.push(w$2 + (C$2 === 0 ? " " : ""));
+ }
+ o$10.push(oo.join(""));
+ }
+ return o$10.join("\n");
+ }
+ return {
+ to_workbook: prn_to_workbook,
+ to_sheet: prn_to_sheet,
+ from_sheet: sheet_to_prn
+ };
+ })();
+ WK_ = /* @__PURE__ */ (function() {
+ function lotushopper(data, cb, opts) {
+ if (!data) return;
+ prep_blob(data, data.l || 0);
+ var Enum$1 = opts.Enum || WK1Enum;
+ while (data.l < data.length) {
+ var RT = data.read_shift(2);
+ var R$1 = Enum$1[RT] || Enum$1[65535];
+ var length = data.read_shift(2);
+ var tgt = data.l + length;
+ var d$5 = R$1.f && R$1.f(data, length, opts);
+ data.l = tgt;
+ if (cb(d$5, R$1, RT)) return;
+ }
+ }
+ function lotus_to_workbook(d$5, opts) {
+ switch (opts.type) {
+ case "base64": return lotus_to_workbook_buf(s2a(Base64_decode(d$5)), opts);
+ case "binary": return lotus_to_workbook_buf(s2a(d$5), opts);
+ case "buffer":
+ case "array": return lotus_to_workbook_buf(d$5, opts);
+ }
+ throw "Unsupported type " + opts.type;
+ }
+ var LOTUS_DATE_FMTS = [
+ "mmmm",
+ "dd-mmm-yyyy",
+ "dd-mmm",
+ "mmm-yyyy",
+ "@",
+ "mm/dd",
+ "hh:mm:ss AM/PM",
+ "hh:mm AM/PM",
+ "mm/dd/yyyy",
+ "mm/dd",
+ "hh:mm:ss",
+ "hh:mm"
+ ];
+ function lotus_to_workbook_buf(d$5, opts) {
+ if (!d$5) return d$5;
+ var o$10 = opts || {};
+ if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
+ var s$5 = {}, n$9 = "Sheet1", next_n = "", sidx = 0;
+ var sheets = {}, snames = [], realnames = [], sdata = [];
+ if (o$10.dense) sdata = s$5["!data"] = [];
+ var refguess = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ var sheetRows = o$10.sheetRows || 0;
+ var lastcell = {};
+ if (d$5[4] == 81 && d$5[5] == 80 && d$5[6] == 87) return qpw_to_workbook_buf(d$5, opts);
+ if (d$5[2] == 0) {
+ if (d$5[3] == 8 || d$5[3] == 9) {
+ if (d$5.length >= 16 && d$5[14] == 5 && d$5[15] === 108) throw new Error("Unsupported Works 3 for Mac file");
+ }
+ }
+ if (d$5[2] == 2) {
+ o$10.Enum = WK1Enum;
+ lotushopper(d$5, function(val$1, R$1, RT) {
+ switch (RT) {
+ case 0:
+ o$10.vers = val$1;
+ if (val$1 >= 4096) o$10.qpro = true;
+ break;
+ case 255:
+ o$10.vers = val$1;
+ o$10.works = true;
+ break;
+ case 6:
+ refguess = val$1;
+ break;
+ case 204:
+ if (val$1) next_n = val$1;
+ break;
+ case 222:
+ next_n = val$1;
+ break;
+ case 15:
+ case 51:
+ if ((!o$10.qpro && !o$10.works || RT == 51) && val$1[1].v.charCodeAt(0) < 48) val$1[1].v = val$1[1].v.slice(1);
+ if (o$10.works || o$10.works2) val$1[1].v = val$1[1].v.replace(/\r\n/g, "\n");
+ case 13:
+ case 14:
+ case 16:
+ if ((val$1[2] & 112) == 112 && (val$1[2] & 15) > 1 && (val$1[2] & 15) < 15) {
+ val$1[1].z = o$10.dateNF || LOTUS_DATE_FMTS[(val$1[2] & 15) - 1] || table_fmt[14];
+ if (o$10.cellDates) {
+ val$1[1].v = numdate(val$1[1].v);
+ val$1[1].t = typeof val$1[1].v == "number" ? "n" : "d";
+ }
+ }
+ if (o$10.qpro) {
+ if (val$1[3] > sidx) {
+ s$5["!ref"] = encode_range(refguess);
+ sheets[n$9] = s$5;
+ snames.push(n$9);
+ s$5 = {};
+ if (o$10.dense) sdata = s$5["!data"] = [];
+ refguess = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ sidx = val$1[3];
+ n$9 = next_n || "Sheet" + (sidx + 1);
+ next_n = "";
+ }
+ }
+ var tmpcell = o$10.dense ? (sdata[val$1[0].r] || [])[val$1[0].c] : s$5[encode_cell(val$1[0])];
+ if (tmpcell) {
+ tmpcell.t = val$1[1].t;
+ tmpcell.v = val$1[1].v;
+ if (val$1[1].z != null) tmpcell.z = val$1[1].z;
+ if (val$1[1].f != null) tmpcell.f = val$1[1].f;
+ lastcell = tmpcell;
+ break;
+ }
+ if (o$10.dense) {
+ if (!sdata[val$1[0].r]) sdata[val$1[0].r] = [];
+ sdata[val$1[0].r][val$1[0].c] = val$1[1];
+ } else s$5[encode_cell(val$1[0])] = val$1[1];
+ lastcell = val$1[1];
+ break;
+ case 21509:
+ o$10.works2 = true;
+ break;
+ case 21506:
+ {
+ if (val$1 == 5281) {
+ lastcell.z = "hh:mm:ss";
+ if (o$10.cellDates && lastcell.t == "n") {
+ lastcell.v = numdate(lastcell.v);
+ lastcell.t = typeof lastcell.v == "number" ? "n" : "d";
+ }
+ }
+ }
+ break;
+ }
+ }, o$10);
+ } else if (d$5[2] == 26 || d$5[2] == 14) {
+ o$10.Enum = WK3Enum;
+ if (d$5[2] == 14) {
+ o$10.qpro = true;
+ d$5.l = 0;
+ }
+ lotushopper(d$5, function(val$1, R$1, RT) {
+ switch (RT) {
+ case 204:
+ n$9 = val$1;
+ break;
+ case 22:
+ if (val$1[1].v.charCodeAt(0) < 48) val$1[1].v = val$1[1].v.slice(1);
+ val$1[1].v = val$1[1].v.replace(/\x0F./g, function($$) {
+ return String.fromCharCode($$.charCodeAt(1) - 32);
+ }).replace(/\r\n/g, "\n");
+ case 23:
+ case 24:
+ case 25:
+ case 37:
+ case 39:
+ case 40:
+ if (val$1[3] > sidx) {
+ s$5["!ref"] = encode_range(refguess);
+ sheets[n$9] = s$5;
+ snames.push(n$9);
+ s$5 = {};
+ if (o$10.dense) sdata = s$5["!data"] = [];
+ refguess = {
+ s: {
+ r: 0,
+ c: 0
+ },
+ e: {
+ r: 0,
+ c: 0
+ }
+ };
+ sidx = val$1[3];
+ n$9 = "Sheet" + (sidx + 1);
+ }
+ if (sheetRows > 0 && val$1[0].r >= sheetRows) break;
+ if (o$10.dense) {
+ if (!sdata[val$1[0].r]) sdata[val$1[0].r] = [];
+ sdata[val$1[0].r][val$1[0].c] = val$1[1];
+ } else s$5[encode_cell(val$1[0])] = val$1[1];
+ if (refguess.e.c < val$1[0].c) refguess.e.c = val$1[0].c;
+ if (refguess.e.r < val$1[0].r) refguess.e.r = val$1[0].r;
+ break;
+ case 27:
+ if (val$1[14e3]) realnames[val$1[14e3][0]] = val$1[14e3][1];
+ break;
+ case 1537:
+ realnames[val$1[0]] = val$1[1];
+ if (val$1[0] == sidx) n$9 = val$1[1];
+ break;
+ default: break;
+ }
+ }, o$10);
+ } else throw new Error("Unrecognized LOTUS BOF " + d$5[2]);
+ s$5["!ref"] = encode_range(refguess);
+ sheets[next_n || n$9] = s$5;
+ snames.push(next_n || n$9);
+ if (!realnames.length) return {
+ SheetNames: snames,
+ Sheets: sheets
+ };
+ var osheets = {}, rnames = [];
+ for (var i$7 = 0; i$7 < realnames.length; ++i$7) if (sheets[snames[i$7]]) {
+ rnames.push(realnames[i$7] || snames[i$7]);
+ osheets[realnames[i$7]] = sheets[realnames[i$7]] || sheets[snames[i$7]];
+ } else {
+ rnames.push(realnames[i$7]);
+ osheets[realnames[i$7]] = { "!ref": "A1" };
+ }
+ return {
+ SheetNames: rnames,
+ Sheets: osheets
+ };
+ }
+ function sheet_to_wk1(ws, opts) {
+ var o$10 = opts || {};
+ if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
+ if (o$10.type == "string") throw new Error("Cannot write WK1 to JS string");
+ var ba = buf_array();
+ if (!ws["!ref"]) throw new Error("Cannot export empty sheet to WK1");
+ var range = safe_decode_range(ws["!ref"]);
+ var dense = ws["!data"] != null;
+ var cols = [];
+ write_biff_rec(ba, 0, write_BOF_WK1(1030));
+ write_biff_rec(ba, 6, write_RANGE(range));
+ var max_R = Math.min(range.e.r, 8191);
+ for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) cols[C$2] = encode_col(C$2);
+ for (var R$1 = range.s.r; R$1 <= max_R; ++R$1) {
+ var rr = encode_row(R$1);
+ for (C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[cols[C$2] + rr];
+ if (!cell || cell.t == "z") continue;
+ switch (cell.t) {
+ case "n":
+ if ((cell.v | 0) == cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 13, write_INTEGER(R$1, C$2, cell));
+ else write_biff_rec(ba, 14, write_NUMBER(R$1, C$2, cell));
+ break;
+ case "d":
+ var dc = datenum(cell.v);
+ if ((dc | 0) == dc && dc >= -32768 && dc <= 32767) write_biff_rec(ba, 13, write_INTEGER(R$1, C$2, {
+ t: "n",
+ v: dc,
+ z: cell.z || table_fmt[14]
+ }));
+ else write_biff_rec(ba, 14, write_NUMBER(R$1, C$2, {
+ t: "n",
+ v: dc,
+ z: cell.z || table_fmt[14]
+ }));
+ break;
+ default:
+ var str = format_cell(cell);
+ write_biff_rec(ba, 15, write_LABEL(R$1, C$2, str.slice(0, 239)));
+ }
+ }
+ }
+ write_biff_rec(ba, 1);
+ return ba.end();
+ }
+ function book_to_wk3(wb, opts) {
+ var o$10 = opts || {};
+ if (+o$10.codepage >= 0) set_cp(+o$10.codepage);
+ if (o$10.type == "string") throw new Error("Cannot write WK3 to JS string");
+ var ba = buf_array();
+ write_biff_rec(ba, 0, write_BOF_WK3(wb));
+ for (var i$7 = 0, cnt = 0; i$7 < wb.SheetNames.length; ++i$7) if ((wb.Sheets[wb.SheetNames[i$7]] || {})["!ref"]) write_biff_rec(ba, 27, write_XFORMAT_SHEETNAME(wb.SheetNames[i$7], cnt++));
+ var wsidx = 0;
+ for (i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) {
+ var ws = wb.Sheets[wb.SheetNames[i$7]];
+ if (!ws || !ws["!ref"]) continue;
+ var range = safe_decode_range(ws["!ref"]);
+ var dense = ws["!data"] != null;
+ var cols = [];
+ var max_R = Math.min(range.e.r, 8191);
+ for (var R$1 = range.s.r; R$1 <= max_R; ++R$1) {
+ var rr = encode_row(R$1);
+ for (var C$2 = range.s.c; C$2 <= range.e.c; ++C$2) {
+ if (R$1 === range.s.r) cols[C$2] = encode_col(C$2);
+ var ref = cols[C$2] + rr;
+ var cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
+ if (!cell || cell.t == "z") continue;
+ if (cell.t == "n") {
+ write_biff_rec(ba, 23, write_NUMBER_17(R$1, C$2, wsidx, cell.v));
+ } else {
+ var str = format_cell(cell);
+ write_biff_rec(ba, 22, write_LABEL_16(R$1, C$2, wsidx, str.slice(0, 239)));
+ }
+ }
+ }
+ ++wsidx;
+ }
+ write_biff_rec(ba, 1);
+ return ba.end();
+ }
+ function write_BOF_WK1(v$3) {
+ var out = new_buf(2);
+ out.write_shift(2, v$3);
+ return out;
+ }
+ function write_BOF_WK3(wb) {
+ var out = new_buf(26);
+ out.write_shift(2, 4096);
+ out.write_shift(2, 4);
+ out.write_shift(4, 0);
+ var rows = 0, cols = 0, wscnt = 0;
+ for (var i$7 = 0; i$7 < wb.SheetNames.length; ++i$7) {
+ var name = wb.SheetNames[i$7];
+ var ws = wb.Sheets[name];
+ if (!ws || !ws["!ref"]) continue;
+ ++wscnt;
+ var range = decode_range(ws["!ref"]);
+ if (rows < range.e.r) rows = range.e.r;
+ if (cols < range.e.c) cols = range.e.c;
+ }
+ if (rows > 8191) rows = 8191;
+ out.write_shift(2, rows);
+ out.write_shift(1, wscnt);
+ out.write_shift(1, cols);
+ out.write_shift(2, 0);
+ out.write_shift(2, 0);
+ out.write_shift(1, 1);
+ out.write_shift(1, 2);
+ out.write_shift(4, 0);
+ out.write_shift(4, 0);
+ return out;
+ }
+ function parse_RANGE(blob, length, opts) {
+ var o$10 = {
+ s: {
+ c: 0,
+ r: 0
+ },
+ e: {
+ c: 0,
+ r: 0
+ }
+ };
+ if (length == 8 && opts.qpro) {
+ o$10.s.c = blob.read_shift(1);
+ blob.l++;
+ o$10.s.r = blob.read_shift(2);
+ o$10.e.c = blob.read_shift(1);
+ blob.l++;
+ o$10.e.r = blob.read_shift(2);
+ return o$10;
+ }
+ o$10.s.c = blob.read_shift(2);
+ o$10.s.r = blob.read_shift(2);
+ if (length == 12 && opts.qpro) blob.l += 2;
+ o$10.e.c = blob.read_shift(2);
+ o$10.e.r = blob.read_shift(2);
+ if (length == 12 && opts.qpro) blob.l += 2;
+ if (o$10.s.c == 65535) o$10.s.c = o$10.e.c = o$10.s.r = o$10.e.r = 0;
+ return o$10;
+ }
+ function write_RANGE(range) {
+ var out = new_buf(8);
+ out.write_shift(2, range.s.c);
+ out.write_shift(2, range.s.r);
+ out.write_shift(2, range.e.c);
+ out.write_shift(2, range.e.r);
+ return out;
+ }
+ function parse_cell(blob, length, opts) {
+ var o$10 = [
+ {
+ c: 0,
+ r: 0
+ },
+ {
+ t: "n",
+ v: 0
+ },
+ 0,
+ 0
+ ];
+ if (opts.qpro && opts.vers != 20768) {
+ o$10[0].c = blob.read_shift(1);
+ o$10[3] = blob.read_shift(1);
+ o$10[0].r = blob.read_shift(2);
+ blob.l += 2;
+ } else if (opts.works) {
+ o$10[0].c = blob.read_shift(2);
+ o$10[0].r = blob.read_shift(2);
+ o$10[2] = blob.read_shift(2);
+ } else {
+ o$10[2] = blob.read_shift(1);
+ o$10[0].c = blob.read_shift(2);
+ o$10[0].r = blob.read_shift(2);
+ }
+ return o$10;
+ }
+ function get_wk1_fmt(cell) {
+ if (cell.z && fmt_is_date(cell.z)) {
+ return 240 | (LOTUS_DATE_FMTS.indexOf(cell.z) + 1 || 2);
+ }
+ return 255;
+ }
+ function parse_LABEL(blob, length, opts) {
+ var tgt = blob.l + length;
+ var o$10 = parse_cell(blob, length, opts);
+ o$10[1].t = "s";
+ if ((opts.vers & 65534) == 20768) {
+ blob.l++;
+ var len = blob.read_shift(1);
+ o$10[1].v = blob.read_shift(len, "utf8");
+ return o$10;
+ }
+ if (opts.qpro) blob.l++;
+ o$10[1].v = blob.read_shift(tgt - blob.l, "cstr");
+ return o$10;
+ }
+ function write_LABEL(R$1, C$2, s$5) {
+ var o$10 = new_buf(7 + s$5.length);
+ o$10.write_shift(1, 255);
+ o$10.write_shift(2, C$2);
+ o$10.write_shift(2, R$1);
+ o$10.write_shift(1, 39);
+ for (var i$7 = 0; i$7 < o$10.length; ++i$7) {
+ var cc = s$5.charCodeAt(i$7);
+ o$10.write_shift(1, cc >= 128 ? 95 : cc);
+ }
+ o$10.write_shift(1, 0);
+ return o$10;
+ }
+ function parse_STRING(blob, length, opts) {
+ var tgt = blob.l + length;
+ var o$10 = parse_cell(blob, length, opts);
+ o$10[1].t = "s";
+ if (opts.vers == 20768) {
+ var len = blob.read_shift(1);
+ o$10[1].v = blob.read_shift(len, "utf8");
+ return o$10;
+ }
+ o$10[1].v = blob.read_shift(tgt - blob.l, "cstr");
+ return o$10;
+ }
+ function parse_INTEGER(blob, length, opts) {
+ var o$10 = parse_cell(blob, length, opts);
+ o$10[1].v = blob.read_shift(2, "i");
+ return o$10;
+ }
+ function write_INTEGER(R$1, C$2, cell) {
+ var o$10 = new_buf(7);
+ o$10.write_shift(1, get_wk1_fmt(cell));
+ o$10.write_shift(2, C$2);
+ o$10.write_shift(2, R$1);
+ o$10.write_shift(2, cell.v, "i");
+ return o$10;
+ }
+ function parse_NUMBER(blob, length, opts) {
+ var o$10 = parse_cell(blob, length, opts);
+ o$10[1].v = blob.read_shift(8, "f");
+ return o$10;
+ }
+ function write_NUMBER(R$1, C$2, cell) {
+ var o$10 = new_buf(13);
+ o$10.write_shift(1, get_wk1_fmt(cell));
+ o$10.write_shift(2, C$2);
+ o$10.write_shift(2, R$1);
+ o$10.write_shift(8, cell.v, "f");
+ return o$10;
+ }
+ function parse_FORMULA(blob, length, opts) {
+ var tgt = blob.l + length;
+ var o$10 = parse_cell(blob, length, opts);
+ o$10[1].v = blob.read_shift(8, "f");
+ if (opts.qpro) blob.l = tgt;
+ else {
+ var flen = blob.read_shift(2);
+ wk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o$10);
+ blob.l += flen;
+ }
+ return o$10;
+ }
+ function wk1_parse_rc(B$2, V$2, col) {
+ var rel$1 = V$2 & 32768;
+ V$2 &= ~32768;
+ V$2 = (rel$1 ? B$2 : 0) + (V$2 >= 8192 ? V$2 - 16384 : V$2);
+ return (rel$1 ? "" : "$") + (col ? encode_col(V$2) : encode_row(V$2));
+ }
+ var FuncTab = {
+ 31: ["NA", 0],
+ 33: ["ABS", 1],
+ 34: ["TRUNC", 1],
+ 35: ["SQRT", 1],
+ 36: ["LOG", 1],
+ 37: ["LN", 1],
+ 38: ["PI", 0],
+ 39: ["SIN", 1],
+ 40: ["COS", 1],
+ 41: ["TAN", 1],
+ 42: ["ATAN2", 2],
+ 43: ["ATAN", 1],
+ 44: ["ASIN", 1],
+ 45: ["ACOS", 1],
+ 46: ["EXP", 1],
+ 47: ["MOD", 2],
+ 49: ["ISNA", 1],
+ 50: ["ISERR", 1],
+ 51: ["FALSE", 0],
+ 52: ["TRUE", 0],
+ 53: ["RAND", 0],
+ 54: ["DATE", 3],
+ 63: ["ROUND", 2],
+ 64: ["TIME", 3],
+ 68: ["ISNUMBER", 1],
+ 69: ["ISTEXT", 1],
+ 70: ["LEN", 1],
+ 71: ["VALUE", 1],
+ 73: ["MID", 3],
+ 74: ["CHAR", 1],
+ 80: ["SUM", 69],
+ 81: ["AVERAGEA", 69],
+ 82: ["COUNTA", 69],
+ 83: ["MINA", 69],
+ 84: ["MAXA", 69],
+ 102: ["UPPER", 1],
+ 103: ["LOWER", 1],
+ 107: ["PROPER", 1],
+ 109: ["TRIM", 1],
+ 111: ["T", 1]
+ };
+ var BinOpTab = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "+",
+ "-",
+ "*",
+ "/",
+ "^",
+ "=",
+ "<>",
+ "<=",
+ ">=",
+ "<",
+ ">",
+ "",
+ "",
+ "",
+ "",
+ "&",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ];
+ function wk1_fmla_to_csf(blob, o$10) {
+ prep_blob(blob, 0);
+ var out = [], argc = 0, R$1 = "", C$2 = "", argL = "", argR = "";
+ while (blob.l < blob.length) {
+ var cc = blob[blob.l++];
+ switch (cc) {
+ case 0:
+ out.push(blob.read_shift(8, "f"));
+ break;
+ case 1:
+ {
+ C$2 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
+ R$1 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
+ out.push(C$2 + R$1);
+ }
+ break;
+ case 2:
+ {
+ var c$7 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
+ var r$10 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
+ C$2 = wk1_parse_rc(o$10[0].c, blob.read_shift(2), true);
+ R$1 = wk1_parse_rc(o$10[0].r, blob.read_shift(2), false);
+ out.push(c$7 + r$10 + ":" + C$2 + R$1);
+ }
+ break;
+ case 3:
+ if (blob.l < blob.length) {
+ console.error("WK1 premature formula end");
+ return;
+ }
+ break;
+ case 4:
+ out.push("(" + out.pop() + ")");
+ break;
+ case 5:
+ out.push(blob.read_shift(2));
+ break;
+ case 6:
+ {
+ var Z$1 = "";
+ while (cc = blob[blob.l++]) Z$1 += String.fromCharCode(cc);
+ out.push("\"" + Z$1.replace(/"/g, "\"\"") + "\"");
+ }
+ break;
+ case 8:
+ out.push("-" + out.pop());
+ break;
+ case 23:
+ out.push("+" + out.pop());
+ break;
+ case 22:
+ out.push("NOT(" + out.pop() + ")");
+ break;
+ case 20:
+ case 21:
+ {
+ argR = out.pop();
+ argL = out.pop();
+ out.push(["AND", "OR"][cc - 20] + "(" + argL + "," + argR + ")");
+ }
+ break;
+ default: if (cc < 32 && BinOpTab[cc]) {
+ argR = out.pop();
+ argL = out.pop();
+ out.push(argL + BinOpTab[cc] + argR);
+ } else if (FuncTab[cc]) {
+ argc = FuncTab[cc][1];
+ if (argc == 69) argc = blob[blob.l++];
+ if (argc > out.length) {
+ console.error("WK1 bad formula parse 0x" + cc.toString(16) + ":|" + out.join("|") + "|");
+ return;
+ }
+ var args = out.slice(-argc);
+ out.length -= argc;
+ out.push(FuncTab[cc][0] + "(" + args.join(",") + ")");
+ } else if (cc <= 7) return console.error("WK1 invalid opcode " + cc.toString(16));
+ else if (cc <= 24) return console.error("WK1 unsupported op " + cc.toString(16));
+ else if (cc <= 30) return console.error("WK1 invalid opcode " + cc.toString(16));
+ else if (cc <= 115) return console.error("WK1 unsupported function opcode " + cc.toString(16));
+ else return console.error("WK1 unrecognized opcode " + cc.toString(16));
+ }
+ }
+ if (out.length == 1) o$10[1].f = "" + out[0];
+ else console.error("WK1 bad formula parse |" + out.join("|") + "|");
+ }
+ function parse_cell_3(blob) {
+ var o$10 = [
+ {
+ c: 0,
+ r: 0
+ },
+ {
+ t: "n",
+ v: 0
+ },
+ 0
+ ];
+ o$10[0].r = blob.read_shift(2);
+ o$10[3] = blob[blob.l++];
+ o$10[0].c = blob[blob.l++];
+ return o$10;
+ }
+ function parse_LABEL_16(blob, length) {
+ var o$10 = parse_cell_3(blob, length);
+ o$10[1].t = "s";
+ o$10[1].v = blob.read_shift(length - 4, "cstr");
+ return o$10;
+ }
+ function write_LABEL_16(R$1, C$2, wsidx, s$5) {
+ var o$10 = new_buf(6 + s$5.length);
+ o$10.write_shift(2, R$1);
+ o$10.write_shift(1, wsidx);
+ o$10.write_shift(1, C$2);
+ o$10.write_shift(1, 39);
+ for (var i$7 = 0; i$7 < s$5.length; ++i$7) {
+ var cc = s$5.charCodeAt(i$7);
+ o$10.write_shift(1, cc >= 128 ? 95 : cc);
+ }
+ o$10.write_shift(1, 0);
+ return o$10;
+ }
+ function parse_NUMBER_18(blob, length) {
+ var o$10 = parse_cell_3(blob, length);
+ o$10[1].v = blob.read_shift(2);
+ var v$3 = o$10[1].v >> 1;
+ if (o$10[1].v & 1) {
+ switch (v$3 & 7) {
+ case 0:
+ v$3 = (v$3 >> 3) * 5e3;
+ break;
+ case 1:
+ v$3 = (v$3 >> 3) * 500;
+ break;
+ case 2:
+ v$3 = (v$3 >> 3) / 20;
+ break;
+ case 3:
+ v$3 = (v$3 >> 3) / 200;
+ break;
+ case 4:
+ v$3 = (v$3 >> 3) / 2e3;
+ break;
+ case 5:
+ v$3 = (v$3 >> 3) / 2e4;
+ break;
+ case 6:
+ v$3 = (v$3 >> 3) / 16;
+ break;
+ case 7:
+ v$3 = (v$3 >> 3) / 64;
+ break;
+ }
+ }
+ o$10[1].v = v$3;
+ return o$10;
+ }
+ function parse_NUMBER_17(blob, length) {
+ var o$10 = parse_cell_3(blob, length);
+ var v1 = blob.read_shift(4);
+ var v2 = blob.read_shift(4);
+ var e$10 = blob.read_shift(2);
+ if (e$10 == 65535) {
+ if (v1 === 0 && v2 === 3221225472) {
+ o$10[1].t = "e";
+ o$10[1].v = 15;
+ } else if (v1 === 0 && v2 === 3489660928) {
+ o$10[1].t = "e";
+ o$10[1].v = 42;
+ } else o$10[1].v = 0;
+ return o$10;
+ }
+ var s$5 = e$10 & 32768;
+ e$10 = (e$10 & 32767) - 16446;
+ o$10[1].v = (1 - s$5 * 2) * (v2 * Math.pow(2, e$10 + 32) + v1 * Math.pow(2, e$10));
+ return o$10;
+ }
+ function write_NUMBER_17(R$1, C$2, wsidx, v$3) {
+ var o$10 = new_buf(14);
+ o$10.write_shift(2, R$1);
+ o$10.write_shift(1, wsidx);
+ o$10.write_shift(1, C$2);
+ if (v$3 == 0) {
+ o$10.write_shift(4, 0);
+ o$10.write_shift(4, 0);
+ o$10.write_shift(2, 65535);
+ return o$10;
+ }
+ var s$5 = 0, e$10 = 0, v1 = 0, v2 = 0;
+ if (v$3 < 0) {
+ s$5 = 1;
+ v$3 = -v$3;
+ }
+ e$10 = Math.log2(v$3) | 0;
+ v$3 /= Math.pow(2, e$10 - 31);
+ v2 = v$3 >>> 0;
+ if ((v2 & 2147483648) == 0) {
+ v$3 /= 2;
+ ++e$10;
+ v2 = v$3 >>> 0;
+ }
+ v$3 -= v2;
+ v2 |= 2147483648;
+ v2 >>>= 0;
+ v$3 *= Math.pow(2, 32);
+ v1 = v$3 >>> 0;
+ o$10.write_shift(4, v1);
+ o$10.write_shift(4, v2);
+ e$10 += 16383 + (s$5 ? 32768 : 0);
+ o$10.write_shift(2, e$10);
+ return o$10;
+ }
+ function parse_FORMULA_19(blob, length) {
+ var o$10 = parse_NUMBER_17(blob, 14);
+ blob.l += length - 14;
+ return o$10;
+ }
+ function parse_NUMBER_25(blob, length) {
+ var o$10 = parse_cell_3(blob, length);
+ var v1 = blob.read_shift(4);
+ o$10[1].v = v1 >> 6;
+ return o$10;
+ }
+ function parse_NUMBER_27(blob, length) {
+ var o$10 = parse_cell_3(blob, length);
+ var v1 = blob.read_shift(8, "f");
+ o$10[1].v = v1;
+ return o$10;
+ }
+ function parse_FORMULA_28(blob, length) {
+ var o$10 = parse_NUMBER_27(blob, 12);
+ blob.l += length - 12;
+ return o$10;
+ }
+ function parse_SHEETNAMECS(blob, length) {
+ return blob[blob.l + length - 1] == 0 ? blob.read_shift(length, "cstr") : "";
+ }
+ function parse_SHEETNAMELP(blob, length) {
+ var len = blob[blob.l++];
+ if (len > length - 1) len = length - 1;
+ var o$10 = "";
+ while (o$10.length < len) o$10 += String.fromCharCode(blob[blob.l++]);
+ return o$10;
+ }
+ function parse_SHEETINFOQP(blob, length, opts) {
+ if (!opts.qpro || length < 21) return;
+ var id = blob.read_shift(1);
+ blob.l += 17;
+ blob.l += 1;
+ blob.l += 2;
+ var nm = blob.read_shift(length - 21, "cstr");
+ return [id, nm];
+ }
+ function parse_XFORMAT(blob, length) {
+ var o$10 = {}, tgt = blob.l + length;
+ while (blob.l < tgt) {
+ var dt = blob.read_shift(2);
+ if (dt == 14e3) {
+ o$10[dt] = [0, ""];
+ o$10[dt][0] = blob.read_shift(2);
+ while (blob[blob.l]) {
+ o$10[dt][1] += String.fromCharCode(blob[blob.l]);
+ blob.l++;
+ }
+ blob.l++;
+ }
+ }
+ return o$10;
+ }
+ function write_XFORMAT_SHEETNAME(name, wsidx) {
+ var out = new_buf(5 + name.length);
+ out.write_shift(2, 14e3);
+ out.write_shift(2, wsidx);
+ for (var i$7 = 0; i$7 < name.length; ++i$7) {
+ var cc = name.charCodeAt(i$7);
+ out[out.l++] = cc > 127 ? 95 : cc;
+ }
+ out[out.l++] = 0;
+ return out;
+ }
+ var WK1Enum = {
+ 0: {
+ n: "BOF",
+ f: parseuint16
+ },
+ 1: { n: "EOF" },
+ 2: { n: "CALCMODE" },
+ 3: { n: "CALCORDER" },
+ 4: { n: "SPLIT" },
+ 5: { n: "SYNC" },
+ 6: {
+ n: "RANGE",
+ f: parse_RANGE
+ },
+ 7: { n: "WINDOW1" },
+ 8: { n: "COLW1" },
+ 9: { n: "WINTWO" },
+ 10: { n: "COLW2" },
+ 11: { n: "NAME" },
+ 12: { n: "BLANK" },
+ 13: {
+ n: "INTEGER",
+ f: parse_INTEGER
+ },
+ 14: {
+ n: "NUMBER",
+ f: parse_NUMBER
+ },
+ 15: {
+ n: "LABEL",
+ f: parse_LABEL
+ },
+ 16: {
+ n: "FORMULA",
+ f: parse_FORMULA
+ },
+ 24: { n: "TABLE" },
+ 25: { n: "ORANGE" },
+ 26: { n: "PRANGE" },
+ 27: { n: "SRANGE" },
+ 28: { n: "FRANGE" },
+ 29: { n: "KRANGE1" },
+ 32: { n: "HRANGE" },
+ 35: { n: "KRANGE2" },
+ 36: { n: "PROTEC" },
+ 37: { n: "FOOTER" },
+ 38: { n: "HEADER" },
+ 39: { n: "SETUP" },
+ 40: { n: "MARGINS" },
+ 41: { n: "LABELFMT" },
+ 42: { n: "TITLES" },
+ 43: { n: "SHEETJS" },
+ 45: { n: "GRAPH" },
+ 46: { n: "NGRAPH" },
+ 47: { n: "CALCCOUNT" },
+ 48: { n: "UNFORMATTED" },
+ 49: { n: "CURSORW12" },
+ 50: { n: "WINDOW" },
+ 51: {
+ n: "STRING",
+ f: parse_STRING
+ },
+ 55: { n: "PASSWORD" },
+ 56: { n: "LOCKED" },
+ 60: { n: "QUERY" },
+ 61: { n: "QUERYNAME" },
+ 62: { n: "PRINT" },
+ 63: { n: "PRINTNAME" },
+ 64: { n: "GRAPH2" },
+ 65: { n: "GRAPHNAME" },
+ 66: { n: "ZOOM" },
+ 67: { n: "SYMSPLIT" },
+ 68: { n: "NSROWS" },
+ 69: { n: "NSCOLS" },
+ 70: { n: "RULER" },
+ 71: { n: "NNAME" },
+ 72: { n: "ACOMM" },
+ 73: { n: "AMACRO" },
+ 74: { n: "PARSE" },
+ 102: { n: "PRANGES??" },
+ 103: { n: "RRANGES??" },
+ 104: { n: "FNAME??" },
+ 105: { n: "MRANGES??" },
+ 204: {
+ n: "SHEETNAMECS",
+ f: parse_SHEETNAMECS
+ },
+ 222: {
+ n: "SHEETNAMELP",
+ f: parse_SHEETNAMELP
+ },
+ 255: {
+ n: "BOF",
+ f: parseuint16
+ },
+ 21506: {
+ n: "WKSNF",
+ f: parseuint16
+ },
+ 65535: { n: "" }
+ };
+ var WK3Enum = {
+ 0: { n: "BOF" },
+ 1: { n: "EOF" },
+ 2: { n: "PASSWORD" },
+ 3: { n: "CALCSET" },
+ 4: { n: "WINDOWSET" },
+ 5: { n: "SHEETCELLPTR" },
+ 6: { n: "SHEETLAYOUT" },
+ 7: { n: "COLUMNWIDTH" },
+ 8: { n: "HIDDENCOLUMN" },
+ 9: { n: "USERRANGE" },
+ 10: { n: "SYSTEMRANGE" },
+ 11: { n: "ZEROFORCE" },
+ 12: { n: "SORTKEYDIR" },
+ 13: { n: "FILESEAL" },
+ 14: { n: "DATAFILLNUMS" },
+ 15: { n: "PRINTMAIN" },
+ 16: { n: "PRINTSTRING" },
+ 17: { n: "GRAPHMAIN" },
+ 18: { n: "GRAPHSTRING" },
+ 19: { n: "??" },
+ 20: { n: "ERRCELL" },
+ 21: { n: "NACELL" },
+ 22: {
+ n: "LABEL16",
+ f: parse_LABEL_16
+ },
+ 23: {
+ n: "NUMBER17",
+ f: parse_NUMBER_17
+ },
+ 24: {
+ n: "NUMBER18",
+ f: parse_NUMBER_18
+ },
+ 25: {
+ n: "FORMULA19",
+ f: parse_FORMULA_19
+ },
+ 26: { n: "FORMULA1A" },
+ 27: {
+ n: "XFORMAT",
+ f: parse_XFORMAT
+ },
+ 28: { n: "DTLABELMISC" },
+ 29: { n: "DTLABELCELL" },
+ 30: { n: "GRAPHWINDOW" },
+ 31: { n: "CPA" },
+ 32: { n: "LPLAUTO" },
+ 33: { n: "QUERY" },
+ 34: { n: "HIDDENSHEET" },
+ 35: { n: "??" },
+ 37: {
+ n: "NUMBER25",
+ f: parse_NUMBER_25
+ },
+ 38: { n: "??" },
+ 39: {
+ n: "NUMBER27",
+ f: parse_NUMBER_27
+ },
+ 40: {
+ n: "FORMULA28",
+ f: parse_FORMULA_28
+ },
+ 142: { n: "??" },
+ 147: { n: "??" },
+ 150: { n: "??" },
+ 151: { n: "??" },
+ 152: { n: "??" },
+ 153: { n: "??" },
+ 154: { n: "??" },
+ 155: { n: "??" },
+ 156: { n: "??" },
+ 163: { n: "??" },
+ 174: { n: "??" },
+ 175: { n: "??" },
+ 176: { n: "??" },
+ 177: { n: "??" },
+ 184: { n: "??" },
+ 185: { n: "??" },
+ 186: { n: "??" },
+ 187: { n: "??" },
+ 188: { n: "??" },
+ 195: { n: "??" },
+ 201: { n: "??" },
+ 204: {
+ n: "SHEETNAMECS",
+ f: parse_SHEETNAMECS
+ },
+ 205: { n: "??" },
+ 206: { n: "??" },
+ 207: { n: "??" },
+ 208: { n: "??" },
+ 256: { n: "??" },
+ 259: { n: "??" },
+ 260: { n: "??" },
+ 261: { n: "??" },
+ 262: { n: "??" },
+ 263: { n: "??" },
+ 265: { n: "??" },
+ 266: { n: "??" },
+ 267: { n: "??" },
+ 268: { n: "??" },
+ 270: { n: "??" },
+ 271: { n: "??" },
+ 384: { n: "??" },
+ 389: { n: "??" },
+ 390: { n: "??" },
+ 393: { n: "??" },
+ 396: { n: "??" },
+ 512: { n: "??" },
+ 514: { n: "??" },
+ 513: { n: "??" },
+ 516: { n: "??" },
+ 517: { n: "??" },
+ 640: { n: "??" },
+ 641: { n: "??" },
+ 642: { n: "??" },
+ 643: { n: "??" },
+ 644: { n: "??" },
+ 645: { n: "??" },
+ 646: { n: "??" },
+ 647: { n: "??" },
+ 648: { n: "??" },
+ 658: { n: "??" },
+ 659: { n: "??" },
+ 660: { n: "??" },
+ 661: { n: "??" },
+ 662: { n: "??" },
+ 665: { n: "??" },
+ 666: { n: "??" },
+ 768: { n: "??" },
+ 772: { n: "??" },
+ 1537: {
+ n: "SHEETINFOQP",
+ f: parse_SHEETINFOQP
+ },
+ 1600: { n: "??" },
+ 1602: { n: "??" },
+ 1793: { n: "??" },
+ 1794: { n: "??" },
+ 1795: { n: "??" },
+ 1796: { n: "??" },
+ 1920: { n: "??" },
+ 2048: { n: "??" },
+ 2049: { n: "??" },
+ 2052: { n: "??" },
+ 2688: { n: "??" },
+ 10998: { n: "??" },
+ 12849: { n: "??" },
+ 28233: { n: "??" },
+ 28484: { n: "??" },
+ 65535: { n: "" }
+ };
+ var QPWNFTable = {
+ 5: "dd-mmm-yy",
+ 6: "dd-mmm",
+ 7: "mmm-yy",
+ 8: "mm/dd/yy",
+ 10: "hh:mm:ss AM/PM",
+ 11: "hh:mm AM/PM",
+ 14: "dd-mmm-yyyy",
+ 15: "mmm-yyyy",
+ 34: "0.00",
+ 50: "0.00;[Red]0.00",
+ 66: "0.00;(0.00)",
+ 82: "0.00;[Red](0.00)",
+ 162: "\"$\"#,##0.00;\\(\"$\"#,##0.00\\)",
+ 288: "0%",
+ 304: "0E+00",
+ 320: "# ?/?"
+ };
+ function parse_qpw_str(p$3) {
+ var cch = p$3.read_shift(2);
+ var flags = p$3.read_shift(1);
+ if (flags != 0) throw "unsupported QPW string type " + flags.toString(16);
+ return p$3.read_shift(cch, "sbcs-cont");
+ }
+ function qpw_to_workbook_buf(d$5, opts) {
+ prep_blob(d$5, 0);
+ var o$10 = opts || {};
+ if (DENSE != null && o$10.dense == null) o$10.dense = DENSE;
+ var s$5 = {};
+ if (o$10.dense) s$5["!data"] = [];
+ var SST = [], sname = "", formulae = [];
+ var range = {
+ s: {
+ r: -1,
+ c: -1
+ },
+ e: {
+ r: -1,
+ c: -1
+ }
+ };
+ var cnt = 0, type = 0, C$2 = 0, R$1 = 0;
+ var wb = {
+ SheetNames: [],
+ Sheets: {}
+ };
+ var FMTS = [];
+ outer: while (d$5.l < d$5.length) {
+ var RT = d$5.read_shift(2), length = d$5.read_shift(2);
+ var p$3 = d$5.slice(d$5.l, d$5.l + length);
+ prep_blob(p$3, 0);
+ switch (RT) {
+ case 1:
+ if (p$3.read_shift(4) != 962023505) throw "Bad QPW9 BOF!";
+ break;
+ case 2: break outer;
+ case 8: break;
+ case 10:
+ {
+ var fcnt = p$3.read_shift(4);
+ var step = (p$3.length - p$3.l) / fcnt | 0;
+ for (var ifmt = 0; ifmt < fcnt; ++ifmt) {
+ var end = p$3.l + step;
+ var fmt = {};
+ p$3.l += 2;
+ fmt.numFmtId = p$3.read_shift(2);
+ if (QPWNFTable[fmt.numFmtId]) fmt.z = QPWNFTable[fmt.numFmtId];
+ p$3.l = end;
+ FMTS.push(fmt);
+ }
+ }
+ break;
+ case 1025: break;
+ case 1026: break;
+ case 1031:
+ {
+ p$3.l += 12;
+ while (p$3.l < p$3.length) {
+ cnt = p$3.read_shift(2);
+ type = p$3.read_shift(1);
+ SST.push(p$3.read_shift(cnt, "cstr"));
+ }
+ }
+ break;
+ case 1032:
+ {}
+ break;
+ case 1537:
+ {
+ var sidx = p$3.read_shift(2);
+ s$5 = {};
+ if (o$10.dense) s$5["!data"] = [];
+ range.s.c = p$3.read_shift(2);
+ range.e.c = p$3.read_shift(2);
+ range.s.r = p$3.read_shift(4);
+ range.e.r = p$3.read_shift(4);
+ p$3.l += 4;
+ if (p$3.l + 2 < p$3.length) {
+ cnt = p$3.read_shift(2);
+ type = p$3.read_shift(1);
+ sname = cnt == 0 ? "" : p$3.read_shift(cnt, "cstr");
+ }
+ if (!sname) sname = encode_col(sidx);
+ }
+ break;
+ case 1538:
+ {
+ if (range.s.c > 255 || range.s.r > 999999) break;
+ if (range.e.c < range.s.c) range.e.c = range.s.c;
+ if (range.e.r < range.s.r) range.e.r = range.s.r;
+ s$5["!ref"] = encode_range(range);
+ book_append_sheet(wb, s$5, sname);
+ }
+ break;
+ case 2561:
+ {
+ C$2 = p$3.read_shift(2);
+ if (range.e.c < C$2) range.e.c = C$2;
+ if (range.s.c > C$2) range.s.c = C$2;
+ R$1 = p$3.read_shift(4);
+ if (range.s.r > R$1) range.s.r = R$1;
+ R$1 = p$3.read_shift(4);
+ if (range.e.r < R$1) range.e.r = R$1;
+ }
+ break;
+ case 3073:
+ {
+ R$1 = p$3.read_shift(4), cnt = p$3.read_shift(4);
+ if (range.s.r > R$1) range.s.r = R$1;
+ if (range.e.r < R$1 + cnt - 1) range.e.r = R$1 + cnt - 1;
+ var CC = encode_col(C$2);
+ while (p$3.l < p$3.length) {
+ var cell = { t: "z" };
+ var flags = p$3.read_shift(1), fmtidx = -1;
+ if (flags & 128) fmtidx = p$3.read_shift(2);
+ var mul = flags & 64 ? p$3.read_shift(2) - 1 : 0;
+ switch (flags & 31) {
+ case 0: break;
+ case 1: break;
+ case 2:
+ cell = {
+ t: "n",
+ v: p$3.read_shift(2)
+ };
+ break;
+ case 3:
+ cell = {
+ t: "n",
+ v: p$3.read_shift(2, "i")
+ };
+ break;
+ case 4:
+ cell = {
+ t: "n",
+ v: parse_RkNumber(p$3)
+ };
+ break;
+ case 5:
+ cell = {
+ t: "n",
+ v: p$3.read_shift(8, "f")
+ };
+ break;
+ case 7:
+ cell = {
+ t: "s",
+ v: SST[type = p$3.read_shift(4) - 1]
+ };
+ break;
+ case 8:
+ cell = {
+ t: "n",
+ v: p$3.read_shift(8, "f")
+ };
+ p$3.l += 2;
+ p$3.l += 4;
+ if (isNaN(cell.v)) cell = {
+ t: "e",
+ v: 15
+ };
+ break;
+ default: throw "Unrecognized QPW cell type " + (flags & 31);
+ }
+ if (fmtidx != -1 && (FMTS[fmtidx - 1] || {}).z) cell.z = FMTS[fmtidx - 1].z;
+ var delta = 0;
+ if (flags & 32) switch (flags & 31) {
+ case 2:
+ delta = p$3.read_shift(2);
+ break;
+ case 3:
+ delta = p$3.read_shift(2, "i");
+ break;
+ case 7:
+ delta = p$3.read_shift(2);
+ break;
+ default: throw "Unsupported delta for QPW cell type " + (flags & 31);
+ }
+ if (!(!o$10.sheetStubs && cell.t == "z")) {
+ var newcell = dup(cell);
+ if (cell.t == "n" && cell.z && fmt_is_date(cell.z) && o$10.cellDates) {
+ newcell.v = numdate(cell.v);
+ newcell.t = typeof newcell.v == "number" ? "n" : "d";
+ }
+ if (s$5["!data"] != null) {
+ if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
+ s$5["!data"][R$1][C$2] = newcell;
+ } else s$5[CC + encode_row(R$1)] = newcell;
+ }
+ ++R$1;
+ --cnt;
+ while (mul-- > 0 && cnt >= 0) {
+ if (flags & 32) switch (flags & 31) {
+ case 2:
+ cell = {
+ t: "n",
+ v: cell.v + delta & 65535
+ };
+ break;
+ case 3:
+ cell = {
+ t: "n",
+ v: cell.v + delta & 65535
+ };
+ if (cell.v > 32767) cell.v -= 65536;
+ break;
+ case 7:
+ cell = {
+ t: "s",
+ v: SST[type = type + delta >>> 0]
+ };
+ break;
+ default: throw "Cannot apply delta for QPW cell type " + (flags & 31);
+ }
+ else switch (flags & 31) {
+ case 1:
+ cell = { t: "z" };
+ break;
+ case 2:
+ cell = {
+ t: "n",
+ v: p$3.read_shift(2)
+ };
+ break;
+ case 7:
+ cell = {
+ t: "s",
+ v: SST[type = p$3.read_shift(4) - 1]
+ };
+ break;
+ default: throw "Cannot apply repeat for QPW cell type " + (flags & 31);
+ }
+ if (fmtidx != -1);
+ if (!(!o$10.sheetStubs && cell.t == "z")) {
+ if (s$5["!data"] != null) {
+ if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
+ s$5["!data"][R$1][C$2] = cell;
+ } else s$5[CC + encode_row(R$1)] = cell;
+ }
+ ++R$1;
+ --cnt;
+ }
+ }
+ }
+ break;
+ case 3074:
+ {
+ C$2 = p$3.read_shift(2);
+ R$1 = p$3.read_shift(4);
+ var str = parse_qpw_str(p$3);
+ if (s$5["!data"] != null) {
+ if (!s$5["!data"][R$1]) s$5["!data"][R$1] = [];
+ s$5["!data"][R$1][C$2] = {
+ t: "s",
+ v: str
+ };
+ } else s$5[encode_col(C$2) + encode_row(R$1)] = {
+ t: "s",
+ v: str
+ };
+ }
+ break;
+ default: break;
+ }
+ d$5.l += length;
+ }
+ return wb;
+ }
+ return {
+ sheet_to_wk1,
+ book_to_wk3,
+ to_workbook: lotus_to_workbook
+ };
+ })();
+ parse_rs = /* @__PURE__ */ (function() {
+ function parse_r(r$10) {
+ var t$6 = str_match_xml_ns(r$10, "t");
+ if (!t$6) return {
+ t: "s",
+ v: ""
+ };
+ var o$10 = {
+ t: "s",
+ v: unescapexml(t$6[1])
+ };
+ var rpr = str_match_xml_ns(r$10, "rPr");
+ if (rpr) o$10.s = parse_rpr(rpr[1]);
+ return o$10;
+ }
+ var rregex = /<(?:\w+:)?r>/g, rend = /<\/(?:\w+:)?r>/;
+ return function parse_rs$1(rs) {
+ return rs.replace(rregex, "").split(rend).map(parse_r).filter(function(r$10) {
+ return r$10.v;
+ });
+ };
+ })();
+ rs_to_html = /* @__PURE__ */ (function parse_rs_factory() {
+ var nlregex = /(\r\n|\n)/g;
+ function parse_rpr2(font, intro, outro) {
+ var style = [];
+ if (font.u) style.push("text-decoration: underline;");
+ if (font.uval) style.push("text-underline-style:" + font.uval + ";");
+ if (font.sz) style.push("font-size:" + font.sz + "pt;");
+ if (font.outline) style.push("text-effect: outline;");
+ if (font.shadow) style.push("text-shadow: auto;");
+ intro.push("");
+ if (font.b) {
+ intro.push("");
+ outro.push("");
+ }
+ if (font.i) {
+ intro.push("");
+ outro.push("");
+ }
+ if (font.strike) {
+ intro.push("");
+ outro.push("");
+ }
+ var align = font.valign || "";
+ if (align == "superscript" || align == "super") align = "sup";
+ else if (align == "subscript") align = "sub";
+ if (align != "") {
+ intro.push("<" + align + ">");
+ outro.push("" + align + ">");
+ }
+ outro.push("");
+ return font;
+ }
+ function r_to_html(r$10) {
+ var terms = [
+ [],
+ r$10.v,
+ []
+ ];
+ if (!r$10.v) return "";
+ if (r$10.s) parse_rpr2(r$10.s, terms[0], terms[2]);
+ return terms[0].join("") + terms[1].replace(nlregex, "
") + terms[2].join("");
+ }
+ return function parse_rs$1(rs) {
+ return rs.map(r_to_html).join("");
+ };
+ })();
+ sitregex = /<(?:\w+:)?t\b[^<>]*>([^<]*)<\/(?:\w+:)?t>/g, sirregex = /<(?:\w+:)?r\b[^<>]*>/;
+ sstr1 = /<(?:\w+:)?(?:si|sstItem)>/g;
+ sstr2 = /<\/(?:\w+:)?(?:si|sstItem)>/;
+ straywsregex = /^\s|\s$|[\t\n\r]/;
+ write_BrtSSTItem = write_RichStr;
+ crypto_CreateXorArray_Method1 = /* @__PURE__ */ (function() {
+ var PadArray = [
+ 187,
+ 255,
+ 255,
+ 186,
+ 255,
+ 255,
+ 185,
+ 128,
+ 0,
+ 190,
+ 15,
+ 0,
+ 191,
+ 15,
+ 0
+ ];
+ var InitialCode = [
+ 57840,
+ 7439,
+ 52380,
+ 33984,
+ 4364,
+ 3600,
+ 61902,
+ 12606,
+ 6258,
+ 57657,
+ 54287,
+ 34041,
+ 10252,
+ 43370,
+ 20163
+ ];
+ var XorMatrix = [
+ 44796,
+ 19929,
+ 39858,
+ 10053,
+ 20106,
+ 40212,
+ 10761,
+ 31585,
+ 63170,
+ 64933,
+ 60267,
+ 50935,
+ 40399,
+ 11199,
+ 17763,
+ 35526,
+ 1453,
+ 2906,
+ 5812,
+ 11624,
+ 23248,
+ 885,
+ 1770,
+ 3540,
+ 7080,
+ 14160,
+ 28320,
+ 56640,
+ 55369,
+ 41139,
+ 20807,
+ 41614,
+ 21821,
+ 43642,
+ 17621,
+ 28485,
+ 56970,
+ 44341,
+ 19019,
+ 38038,
+ 14605,
+ 29210,
+ 60195,
+ 50791,
+ 40175,
+ 10751,
+ 21502,
+ 43004,
+ 24537,
+ 18387,
+ 36774,
+ 3949,
+ 7898,
+ 15796,
+ 31592,
+ 63184,
+ 47201,
+ 24803,
+ 49606,
+ 37805,
+ 14203,
+ 28406,
+ 56812,
+ 17824,
+ 35648,
+ 1697,
+ 3394,
+ 6788,
+ 13576,
+ 27152,
+ 43601,
+ 17539,
+ 35078,
+ 557,
+ 1114,
+ 2228,
+ 4456,
+ 30388,
+ 60776,
+ 51953,
+ 34243,
+ 7079,
+ 14158,
+ 28316,
+ 14128,
+ 28256,
+ 56512,
+ 43425,
+ 17251,
+ 34502,
+ 7597,
+ 13105,
+ 26210,
+ 52420,
+ 35241,
+ 883,
+ 1766,
+ 3532,
+ 4129,
+ 8258,
+ 16516,
+ 33032,
+ 4657,
+ 9314,
+ 18628
+ ];
+ var Ror = function(Byte) {
+ return (Byte / 2 | Byte * 128) & 255;
+ };
+ var XorRor = function(byte1, byte2) {
+ return Ror(byte1 ^ byte2);
+ };
+ var CreateXorKey_Method1 = function(Password) {
+ var XorKey = InitialCode[Password.length - 1];
+ var CurrentElement = 104;
+ for (var i$7 = Password.length - 1; i$7 >= 0; --i$7) {
+ var Char = Password[i$7];
+ for (var j$2 = 0; j$2 != 7; ++j$2) {
+ if (Char & 64) XorKey ^= XorMatrix[CurrentElement];
+ Char *= 2;
+ --CurrentElement;
+ }
+ }
+ return XorKey;
+ };
+ return function(password) {
+ var Password = _JS2ANSI(password);
+ var XorKey = CreateXorKey_Method1(Password);
+ var Index$1 = Password.length;
+ var ObfuscationArray = new_raw_buf(16);
+ for (var i$7 = 0; i$7 != 16; ++i$7) ObfuscationArray[i$7] = 0;
+ var Temp, PasswordLastChar, PadIndex;
+ if ((Index$1 & 1) === 1) {
+ Temp = XorKey >> 8;
+ ObfuscationArray[Index$1] = XorRor(PadArray[0], Temp);
+ --Index$1;
+ Temp = XorKey & 255;
+ PasswordLastChar = Password[Password.length - 1];
+ ObfuscationArray[Index$1] = XorRor(PasswordLastChar, Temp);
+ }
+ while (Index$1 > 0) {
+ --Index$1;
+ Temp = XorKey >> 8;
+ ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
+ --Index$1;
+ Temp = XorKey & 255;
+ ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
+ }
+ Index$1 = 15;
+ PadIndex = 15 - Password.length;
+ while (PadIndex > 0) {
+ Temp = XorKey >> 8;
+ ObfuscationArray[Index$1] = XorRor(PadArray[PadIndex], Temp);
+ --Index$1;
+ --PadIndex;
+ Temp = XorKey & 255;
+ ObfuscationArray[Index$1] = XorRor(Password[Index$1], Temp);
+ --Index$1;
+ --PadIndex;
+ }
+ return ObfuscationArray;
+ };
+ })();
+ crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {
+ if (!O) O = Data;
+ if (!XorArray) XorArray = crypto_CreateXorArray_Method1(password);
+ var Index$1, Value;
+ for (Index$1 = 0; Index$1 != Data.length; ++Index$1) {
+ Value = Data[Index$1];
+ Value ^= XorArray[XorArrayIndex];
+ Value = (Value >> 5 | Value << 3) & 255;
+ O[Index$1] = Value;
+ ++XorArrayIndex;
+ }
+ return [
+ O,
+ XorArrayIndex,
+ XorArray
+ ];
+ };
+ crypto_MakeXorDecryptor = function(password) {
+ var XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);
+ return function(Data) {
+ var O = crypto_DecryptData_Method1("", Data, XorArrayIndex, XorArray);
+ XorArrayIndex = O[1];
+ return O[0];
+ };
+ };
+ DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;
+ DEF_PPI = 96, PPI = DEF_PPI;
+ XLMLPatternTypeMap = {
+ "None": "none",
+ "Solid": "solid",
+ "Gray50": "mediumGray",
+ "Gray75": "darkGray",
+ "Gray25": "lightGray",
+ "HorzStripe": "darkHorizontal",
+ "VertStripe": "darkVertical",
+ "ReverseDiagStripe": "darkDown",
+ "DiagStripe": "darkUp",
+ "DiagCross": "darkGrid",
+ "ThickDiagCross": "darkTrellis",
+ "ThinHorzStripe": "lightHorizontal",
+ "ThinVertStripe": "lightVertical",
+ "ThinReverseDiagStripe": "lightDown",
+ "ThinHorzCross": "lightGrid"
+ };
+ cellXF_uint = [
+ "numFmtId",
+ "fillId",
+ "fontId",
+ "borderId",
+ "xfId"
+ ];
+ cellXF_bool = [
+ "applyAlignment",
+ "applyBorder",
+ "applyFill",
+ "applyFont",
+ "applyNumberFormat",
+ "applyProtection",
+ "pivotButton",
+ "quotePrefix"
+ ];
+ parse_sty_xml = /* @__PURE__ */ (function make_pstyx() {
+ return function parse_sty_xml$1(data, themes, opts) {
+ var styles$1 = {};
+ if (!data) return styles$1;
+ data = remove_doctype(str_remove_ng(data, ""));
+ var t$6;
+ if (t$6 = str_match_xml_ns(data, "numFmts")) parse_numFmts(t$6[0], styles$1, opts);
+ if (t$6 = str_match_xml_ns(data, "fonts")) parse_fonts(t$6[0], styles$1, themes, opts);
+ if (t$6 = str_match_xml_ns(data, "fills")) parse_fills(t$6[0], styles$1, themes, opts);
+ if (t$6 = str_match_xml_ns(data, "borders")) parse_borders(t$6[0], styles$1, themes, opts);
+ if (t$6 = str_match_xml_ns(data, "cellXfs")) parse_cellXfs(t$6[0], styles$1, opts);
+ return styles$1;
+ };
+ })();
+ XLSBFillPTNames = [
+ "none",
+ "solid",
+ "mediumGray",
+ "darkGray",
+ "lightGray",
+ "darkHorizontal",
+ "darkVertical",
+ "darkDown",
+ "darkUp",
+ "darkGrid",
+ "darkTrellis",
+ "lightHorizontal",
+ "lightVertical",
+ "lightDown",
+ "lightUp",
+ "lightGrid",
+ "lightTrellis",
+ "gray125",
+ "gray0625"
+ ];
+ ;
+ parse_BrtFill = parsenoop;
+ parse_BrtBorder = parsenoop;
+ XLSXThemeClrScheme = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ];
+ parse_BrtCommentAuthor = parse_XLWideString;
+ CT_VBA = "application/vnd.ms-office.vbaProject";
+ VBAFMTS = [
+ "xlsb",
+ "xlsm",
+ "xlam",
+ "biff8",
+ "xla"
+ ];
+ rc_to_a1 = /* @__PURE__ */ (function() {
+ var rcregex = /(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g;
+ var rcbase = {
+ r: 0,
+ c: 0
+ };
+ function rcfunc($$, $1, $2, $3) {
+ var cRel = false, rRel = false;
+ if ($2.length == 0) rRel = true;
+ else if ($2.charAt(0) == "[") {
+ rRel = true;
+ $2 = $2.slice(1, -1);
+ }
+ if ($3.length == 0) cRel = true;
+ else if ($3.charAt(0) == "[") {
+ cRel = true;
+ $3 = $3.slice(1, -1);
+ }
+ var R$1 = $2.length > 0 ? parseInt($2, 10) | 0 : 0, C$2 = $3.length > 0 ? parseInt($3, 10) | 0 : 0;
+ if (cRel) C$2 += rcbase.c;
+ else --C$2;
+ if (rRel) R$1 += rcbase.r;
+ else --R$1;
+ return $1 + (cRel ? "" : "$") + encode_col(C$2) + (rRel ? "" : "$") + encode_row(R$1);
+ }
+ return function rc_to_a1$1(fstr, base) {
+ rcbase = base;
+ return fstr.replace(rcregex, rcfunc);
+ };
+ })();
+ 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;
+ try {
+ 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;
+ } catch (e$10) {}
+ a1_to_rc = /* @__PURE__ */ (function() {
+ return function a1_to_rc$1(fstr, base) {
+ return fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {
+ var c$7 = decode_col($3) - ($2 ? 0 : base.c);
+ var r$10 = decode_row($5) - ($4 ? 0 : base.r);
+ var R$1 = $4 == "$" ? r$10 + 1 : r$10 == 0 ? "" : "[" + r$10 + "]";
+ var C$2 = $2 == "$" ? c$7 + 1 : c$7 == 0 ? "" : "[" + c$7 + "]";
+ return $1 + "R" + R$1 + "C" + C$2;
+ });
+ };
+ })();
+ parse_PtgMemErr = parsenoop;
+ parse_PtgMemNoMem = parsenoop;
+ parse_PtgTbl = parsenoop;
+ parse_PtgElfCol = parse_PtgElfLoc;
+ parse_PtgElfColS = parse_PtgElfNoop;
+ parse_PtgElfColSV = parse_PtgElfNoop;
+ parse_PtgElfColV = parse_PtgElfLoc;
+ parse_PtgElfRadical = parse_PtgElfLoc;
+ parse_PtgElfRadicalLel = parse_PtgElfLel;
+ parse_PtgElfRadicalS = parse_PtgElfNoop;
+ parse_PtgElfRw = parse_PtgElfLoc;
+ parse_PtgElfRwV = parse_PtgElfLoc;
+ PtgListRT = [
+ "Data",
+ "All",
+ "Headers",
+ "??",
+ "?Data2",
+ "??",
+ "?DataHeaders",
+ "??",
+ "Totals",
+ "??",
+ "??",
+ "??",
+ "?DataTotals",
+ "??",
+ "??",
+ "??",
+ "?Current"
+ ];
+ PtgTypes = {
+ 1: {
+ n: "PtgExp",
+ f: parse_PtgExp
+ },
+ 2: {
+ n: "PtgTbl",
+ f: parse_PtgTbl
+ },
+ 3: {
+ n: "PtgAdd",
+ f: parseread1
+ },
+ 4: {
+ n: "PtgSub",
+ f: parseread1
+ },
+ 5: {
+ n: "PtgMul",
+ f: parseread1
+ },
+ 6: {
+ n: "PtgDiv",
+ f: parseread1
+ },
+ 7: {
+ n: "PtgPower",
+ f: parseread1
+ },
+ 8: {
+ n: "PtgConcat",
+ f: parseread1
+ },
+ 9: {
+ n: "PtgLt",
+ f: parseread1
+ },
+ 10: {
+ n: "PtgLe",
+ f: parseread1
+ },
+ 11: {
+ n: "PtgEq",
+ f: parseread1
+ },
+ 12: {
+ n: "PtgGe",
+ f: parseread1
+ },
+ 13: {
+ n: "PtgGt",
+ f: parseread1
+ },
+ 14: {
+ n: "PtgNe",
+ f: parseread1
+ },
+ 15: {
+ n: "PtgIsect",
+ f: parseread1
+ },
+ 16: {
+ n: "PtgUnion",
+ f: parseread1
+ },
+ 17: {
+ n: "PtgRange",
+ f: parseread1
+ },
+ 18: {
+ n: "PtgUplus",
+ f: parseread1
+ },
+ 19: {
+ n: "PtgUminus",
+ f: parseread1
+ },
+ 20: {
+ n: "PtgPercent",
+ f: parseread1
+ },
+ 21: {
+ n: "PtgParen",
+ f: parseread1
+ },
+ 22: {
+ n: "PtgMissArg",
+ f: parseread1
+ },
+ 23: {
+ n: "PtgStr",
+ f: parse_PtgStr
+ },
+ 26: {
+ n: "PtgSheet",
+ f: parse_PtgSheet
+ },
+ 27: {
+ n: "PtgEndSheet",
+ f: parse_PtgEndSheet
+ },
+ 28: {
+ n: "PtgErr",
+ f: parse_PtgErr
+ },
+ 29: {
+ n: "PtgBool",
+ f: parse_PtgBool
+ },
+ 30: {
+ n: "PtgInt",
+ f: parse_PtgInt
+ },
+ 31: {
+ n: "PtgNum",
+ f: parse_PtgNum
+ },
+ 32: {
+ n: "PtgArray",
+ f: parse_PtgArray
+ },
+ 33: {
+ n: "PtgFunc",
+ f: parse_PtgFunc
+ },
+ 34: {
+ n: "PtgFuncVar",
+ f: parse_PtgFuncVar
+ },
+ 35: {
+ n: "PtgName",
+ f: parse_PtgName
+ },
+ 36: {
+ n: "PtgRef",
+ f: parse_PtgRef
+ },
+ 37: {
+ n: "PtgArea",
+ f: parse_PtgArea
+ },
+ 38: {
+ n: "PtgMemArea",
+ f: parse_PtgMemArea
+ },
+ 39: {
+ n: "PtgMemErr",
+ f: parse_PtgMemErr
+ },
+ 40: {
+ n: "PtgMemNoMem",
+ f: parse_PtgMemNoMem
+ },
+ 41: {
+ n: "PtgMemFunc",
+ f: parse_PtgMemFunc
+ },
+ 42: {
+ n: "PtgRefErr",
+ f: parse_PtgRefErr
+ },
+ 43: {
+ n: "PtgAreaErr",
+ f: parse_PtgAreaErr
+ },
+ 44: {
+ n: "PtgRefN",
+ f: parse_PtgRefN
+ },
+ 45: {
+ n: "PtgAreaN",
+ f: parse_PtgAreaN
+ },
+ 46: {
+ n: "PtgMemAreaN",
+ f: parse_PtgMemAreaN
+ },
+ 47: {
+ n: "PtgMemNoMemN",
+ f: parse_PtgMemNoMemN
+ },
+ 57: {
+ n: "PtgNameX",
+ f: parse_PtgNameX
+ },
+ 58: {
+ n: "PtgRef3d",
+ f: parse_PtgRef3d
+ },
+ 59: {
+ n: "PtgArea3d",
+ f: parse_PtgArea3d
+ },
+ 60: {
+ n: "PtgRefErr3d",
+ f: parse_PtgRefErr3d
+ },
+ 61: {
+ n: "PtgAreaErr3d",
+ f: parse_PtgAreaErr3d
+ },
+ 255: {}
+ };
+ PtgDupes = {
+ 64: 32,
+ 96: 32,
+ 65: 33,
+ 97: 33,
+ 66: 34,
+ 98: 34,
+ 67: 35,
+ 99: 35,
+ 68: 36,
+ 100: 36,
+ 69: 37,
+ 101: 37,
+ 70: 38,
+ 102: 38,
+ 71: 39,
+ 103: 39,
+ 72: 40,
+ 104: 40,
+ 73: 41,
+ 105: 41,
+ 74: 42,
+ 106: 42,
+ 75: 43,
+ 107: 43,
+ 76: 44,
+ 108: 44,
+ 77: 45,
+ 109: 45,
+ 78: 46,
+ 110: 46,
+ 79: 47,
+ 111: 47,
+ 88: 34,
+ 120: 34,
+ 89: 57,
+ 121: 57,
+ 90: 58,
+ 122: 58,
+ 91: 59,
+ 123: 59,
+ 92: 60,
+ 124: 60,
+ 93: 61,
+ 125: 61
+ };
+ Ptg18 = {
+ 1: {
+ n: "PtgElfLel",
+ f: parse_PtgElfLel
+ },
+ 2: {
+ n: "PtgElfRw",
+ f: parse_PtgElfRw
+ },
+ 3: {
+ n: "PtgElfCol",
+ f: parse_PtgElfCol
+ },
+ 6: {
+ n: "PtgElfRwV",
+ f: parse_PtgElfRwV
+ },
+ 7: {
+ n: "PtgElfColV",
+ f: parse_PtgElfColV
+ },
+ 10: {
+ n: "PtgElfRadical",
+ f: parse_PtgElfRadical
+ },
+ 11: {
+ n: "PtgElfRadicalS",
+ f: parse_PtgElfRadicalS
+ },
+ 13: {
+ n: "PtgElfColS",
+ f: parse_PtgElfColS
+ },
+ 15: {
+ n: "PtgElfColSV",
+ f: parse_PtgElfColSV
+ },
+ 16: {
+ n: "PtgElfRadicalLel",
+ f: parse_PtgElfRadicalLel
+ },
+ 25: {
+ n: "PtgList",
+ f: parse_PtgList
+ },
+ 29: {
+ n: "PtgSxName",
+ f: parse_PtgSxName
+ },
+ 255: {}
+ };
+ Ptg19 = {
+ 0: {
+ n: "PtgAttrNoop",
+ f: parse_PtgAttrNoop
+ },
+ 1: {
+ n: "PtgAttrSemi",
+ f: parse_PtgAttrSemi
+ },
+ 2: {
+ n: "PtgAttrIf",
+ f: parse_PtgAttrIf
+ },
+ 4: {
+ n: "PtgAttrChoose",
+ f: parse_PtgAttrChoose
+ },
+ 8: {
+ n: "PtgAttrGoto",
+ f: parse_PtgAttrGoto
+ },
+ 16: {
+ n: "PtgAttrSum",
+ f: parse_PtgAttrSum
+ },
+ 32: {
+ n: "PtgAttrBaxcel",
+ f: parse_PtgAttrBaxcel
+ },
+ 33: {
+ n: "PtgAttrBaxcel",
+ f: parse_PtgAttrBaxcel
+ },
+ 64: {
+ n: "PtgAttrSpace",
+ f: parse_PtgAttrSpace
+ },
+ 65: {
+ n: "PtgAttrSpaceSemi",
+ f: parse_PtgAttrSpaceSemi
+ },
+ 128: {
+ n: "PtgAttrIfError",
+ f: parse_PtgAttrIfError
+ },
+ 255: {}
+ };
+ PtgBinOp = {
+ PtgAdd: "+",
+ PtgConcat: "&",
+ PtgDiv: "/",
+ PtgEq: "=",
+ PtgGe: ">=",
+ PtgGt: ">",
+ PtgLe: "<=",
+ PtgLt: "<",
+ PtgMul: "*",
+ PtgNe: "<>",
+ PtgPower: "^",
+ PtgSub: "-"
+ };
+ parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;
+ parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;
+ parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;
+ parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;
+ write_XLSBNameParsedFormula = write_XLSBFormula;
+ Cetab = {
+ 0: "BEEP",
+ 1: "OPEN",
+ 2: "OPEN.LINKS",
+ 3: "CLOSE.ALL",
+ 4: "SAVE",
+ 5: "SAVE.AS",
+ 6: "FILE.DELETE",
+ 7: "PAGE.SETUP",
+ 8: "PRINT",
+ 9: "PRINTER.SETUP",
+ 10: "QUIT",
+ 11: "NEW.WINDOW",
+ 12: "ARRANGE.ALL",
+ 13: "WINDOW.SIZE",
+ 14: "WINDOW.MOVE",
+ 15: "FULL",
+ 16: "CLOSE",
+ 17: "RUN",
+ 22: "SET.PRINT.AREA",
+ 23: "SET.PRINT.TITLES",
+ 24: "SET.PAGE.BREAK",
+ 25: "REMOVE.PAGE.BREAK",
+ 26: "FONT",
+ 27: "DISPLAY",
+ 28: "PROTECT.DOCUMENT",
+ 29: "PRECISION",
+ 30: "A1.R1C1",
+ 31: "CALCULATE.NOW",
+ 32: "CALCULATION",
+ 34: "DATA.FIND",
+ 35: "EXTRACT",
+ 36: "DATA.DELETE",
+ 37: "SET.DATABASE",
+ 38: "SET.CRITERIA",
+ 39: "SORT",
+ 40: "DATA.SERIES",
+ 41: "TABLE",
+ 42: "FORMAT.NUMBER",
+ 43: "ALIGNMENT",
+ 44: "STYLE",
+ 45: "BORDER",
+ 46: "CELL.PROTECTION",
+ 47: "COLUMN.WIDTH",
+ 48: "UNDO",
+ 49: "CUT",
+ 50: "COPY",
+ 51: "PASTE",
+ 52: "CLEAR",
+ 53: "PASTE.SPECIAL",
+ 54: "EDIT.DELETE",
+ 55: "INSERT",
+ 56: "FILL.RIGHT",
+ 57: "FILL.DOWN",
+ 61: "DEFINE.NAME",
+ 62: "CREATE.NAMES",
+ 63: "FORMULA.GOTO",
+ 64: "FORMULA.FIND",
+ 65: "SELECT.LAST.CELL",
+ 66: "SHOW.ACTIVE.CELL",
+ 67: "GALLERY.AREA",
+ 68: "GALLERY.BAR",
+ 69: "GALLERY.COLUMN",
+ 70: "GALLERY.LINE",
+ 71: "GALLERY.PIE",
+ 72: "GALLERY.SCATTER",
+ 73: "COMBINATION",
+ 74: "PREFERRED",
+ 75: "ADD.OVERLAY",
+ 76: "GRIDLINES",
+ 77: "SET.PREFERRED",
+ 78: "AXES",
+ 79: "LEGEND",
+ 80: "ATTACH.TEXT",
+ 81: "ADD.ARROW",
+ 82: "SELECT.CHART",
+ 83: "SELECT.PLOT.AREA",
+ 84: "PATTERNS",
+ 85: "MAIN.CHART",
+ 86: "OVERLAY",
+ 87: "SCALE",
+ 88: "FORMAT.LEGEND",
+ 89: "FORMAT.TEXT",
+ 90: "EDIT.REPEAT",
+ 91: "PARSE",
+ 92: "JUSTIFY",
+ 93: "HIDE",
+ 94: "UNHIDE",
+ 95: "WORKSPACE",
+ 96: "FORMULA",
+ 97: "FORMULA.FILL",
+ 98: "FORMULA.ARRAY",
+ 99: "DATA.FIND.NEXT",
+ 100: "DATA.FIND.PREV",
+ 101: "FORMULA.FIND.NEXT",
+ 102: "FORMULA.FIND.PREV",
+ 103: "ACTIVATE",
+ 104: "ACTIVATE.NEXT",
+ 105: "ACTIVATE.PREV",
+ 106: "UNLOCKED.NEXT",
+ 107: "UNLOCKED.PREV",
+ 108: "COPY.PICTURE",
+ 109: "SELECT",
+ 110: "DELETE.NAME",
+ 111: "DELETE.FORMAT",
+ 112: "VLINE",
+ 113: "HLINE",
+ 114: "VPAGE",
+ 115: "HPAGE",
+ 116: "VSCROLL",
+ 117: "HSCROLL",
+ 118: "ALERT",
+ 119: "NEW",
+ 120: "CANCEL.COPY",
+ 121: "SHOW.CLIPBOARD",
+ 122: "MESSAGE",
+ 124: "PASTE.LINK",
+ 125: "APP.ACTIVATE",
+ 126: "DELETE.ARROW",
+ 127: "ROW.HEIGHT",
+ 128: "FORMAT.MOVE",
+ 129: "FORMAT.SIZE",
+ 130: "FORMULA.REPLACE",
+ 131: "SEND.KEYS",
+ 132: "SELECT.SPECIAL",
+ 133: "APPLY.NAMES",
+ 134: "REPLACE.FONT",
+ 135: "FREEZE.PANES",
+ 136: "SHOW.INFO",
+ 137: "SPLIT",
+ 138: "ON.WINDOW",
+ 139: "ON.DATA",
+ 140: "DISABLE.INPUT",
+ 142: "OUTLINE",
+ 143: "LIST.NAMES",
+ 144: "FILE.CLOSE",
+ 145: "SAVE.WORKBOOK",
+ 146: "DATA.FORM",
+ 147: "COPY.CHART",
+ 148: "ON.TIME",
+ 149: "WAIT",
+ 150: "FORMAT.FONT",
+ 151: "FILL.UP",
+ 152: "FILL.LEFT",
+ 153: "DELETE.OVERLAY",
+ 155: "SHORT.MENUS",
+ 159: "SET.UPDATE.STATUS",
+ 161: "COLOR.PALETTE",
+ 162: "DELETE.STYLE",
+ 163: "WINDOW.RESTORE",
+ 164: "WINDOW.MAXIMIZE",
+ 166: "CHANGE.LINK",
+ 167: "CALCULATE.DOCUMENT",
+ 168: "ON.KEY",
+ 169: "APP.RESTORE",
+ 170: "APP.MOVE",
+ 171: "APP.SIZE",
+ 172: "APP.MINIMIZE",
+ 173: "APP.MAXIMIZE",
+ 174: "BRING.TO.FRONT",
+ 175: "SEND.TO.BACK",
+ 185: "MAIN.CHART.TYPE",
+ 186: "OVERLAY.CHART.TYPE",
+ 187: "SELECT.END",
+ 188: "OPEN.MAIL",
+ 189: "SEND.MAIL",
+ 190: "STANDARD.FONT",
+ 191: "CONSOLIDATE",
+ 192: "SORT.SPECIAL",
+ 193: "GALLERY.3D.AREA",
+ 194: "GALLERY.3D.COLUMN",
+ 195: "GALLERY.3D.LINE",
+ 196: "GALLERY.3D.PIE",
+ 197: "VIEW.3D",
+ 198: "GOAL.SEEK",
+ 199: "WORKGROUP",
+ 200: "FILL.GROUP",
+ 201: "UPDATE.LINK",
+ 202: "PROMOTE",
+ 203: "DEMOTE",
+ 204: "SHOW.DETAIL",
+ 206: "UNGROUP",
+ 207: "OBJECT.PROPERTIES",
+ 208: "SAVE.NEW.OBJECT",
+ 209: "SHARE",
+ 210: "SHARE.NAME",
+ 211: "DUPLICATE",
+ 212: "APPLY.STYLE",
+ 213: "ASSIGN.TO.OBJECT",
+ 214: "OBJECT.PROTECTION",
+ 215: "HIDE.OBJECT",
+ 216: "SET.EXTRACT",
+ 217: "CREATE.PUBLISHER",
+ 218: "SUBSCRIBE.TO",
+ 219: "ATTRIBUTES",
+ 220: "SHOW.TOOLBAR",
+ 222: "PRINT.PREVIEW",
+ 223: "EDIT.COLOR",
+ 224: "SHOW.LEVELS",
+ 225: "FORMAT.MAIN",
+ 226: "FORMAT.OVERLAY",
+ 227: "ON.RECALC",
+ 228: "EDIT.SERIES",
+ 229: "DEFINE.STYLE",
+ 240: "LINE.PRINT",
+ 243: "ENTER.DATA",
+ 249: "GALLERY.RADAR",
+ 250: "MERGE.STYLES",
+ 251: "EDITION.OPTIONS",
+ 252: "PASTE.PICTURE",
+ 253: "PASTE.PICTURE.LINK",
+ 254: "SPELLING",
+ 256: "ZOOM",
+ 259: "INSERT.OBJECT",
+ 260: "WINDOW.MINIMIZE",
+ 265: "SOUND.NOTE",
+ 266: "SOUND.PLAY",
+ 267: "FORMAT.SHAPE",
+ 268: "EXTEND.POLYGON",
+ 269: "FORMAT.AUTO",
+ 272: "GALLERY.3D.BAR",
+ 273: "GALLERY.3D.SURFACE",
+ 274: "FILL.AUTO",
+ 276: "CUSTOMIZE.TOOLBAR",
+ 277: "ADD.TOOL",
+ 278: "EDIT.OBJECT",
+ 279: "ON.DOUBLECLICK",
+ 280: "ON.ENTRY",
+ 281: "WORKBOOK.ADD",
+ 282: "WORKBOOK.MOVE",
+ 283: "WORKBOOK.COPY",
+ 284: "WORKBOOK.OPTIONS",
+ 285: "SAVE.WORKSPACE",
+ 288: "CHART.WIZARD",
+ 289: "DELETE.TOOL",
+ 290: "MOVE.TOOL",
+ 291: "WORKBOOK.SELECT",
+ 292: "WORKBOOK.ACTIVATE",
+ 293: "ASSIGN.TO.TOOL",
+ 295: "COPY.TOOL",
+ 296: "RESET.TOOL",
+ 297: "CONSTRAIN.NUMERIC",
+ 298: "PASTE.TOOL",
+ 302: "WORKBOOK.NEW",
+ 305: "SCENARIO.CELLS",
+ 306: "SCENARIO.DELETE",
+ 307: "SCENARIO.ADD",
+ 308: "SCENARIO.EDIT",
+ 309: "SCENARIO.SHOW",
+ 310: "SCENARIO.SHOW.NEXT",
+ 311: "SCENARIO.SUMMARY",
+ 312: "PIVOT.TABLE.WIZARD",
+ 313: "PIVOT.FIELD.PROPERTIES",
+ 314: "PIVOT.FIELD",
+ 315: "PIVOT.ITEM",
+ 316: "PIVOT.ADD.FIELDS",
+ 318: "OPTIONS.CALCULATION",
+ 319: "OPTIONS.EDIT",
+ 320: "OPTIONS.VIEW",
+ 321: "ADDIN.MANAGER",
+ 322: "MENU.EDITOR",
+ 323: "ATTACH.TOOLBARS",
+ 324: "VBAActivate",
+ 325: "OPTIONS.CHART",
+ 328: "VBA.INSERT.FILE",
+ 330: "VBA.PROCEDURE.DEFINITION",
+ 336: "ROUTING.SLIP",
+ 338: "ROUTE.DOCUMENT",
+ 339: "MAIL.LOGON",
+ 342: "INSERT.PICTURE",
+ 343: "EDIT.TOOL",
+ 344: "GALLERY.DOUGHNUT",
+ 350: "CHART.TREND",
+ 352: "PIVOT.ITEM.PROPERTIES",
+ 354: "WORKBOOK.INSERT",
+ 355: "OPTIONS.TRANSITION",
+ 356: "OPTIONS.GENERAL",
+ 370: "FILTER.ADVANCED",
+ 373: "MAIL.ADD.MAILER",
+ 374: "MAIL.DELETE.MAILER",
+ 375: "MAIL.REPLY",
+ 376: "MAIL.REPLY.ALL",
+ 377: "MAIL.FORWARD",
+ 378: "MAIL.NEXT.LETTER",
+ 379: "DATA.LABEL",
+ 380: "INSERT.TITLE",
+ 381: "FONT.PROPERTIES",
+ 382: "MACRO.OPTIONS",
+ 383: "WORKBOOK.HIDE",
+ 384: "WORKBOOK.UNHIDE",
+ 385: "WORKBOOK.DELETE",
+ 386: "WORKBOOK.NAME",
+ 388: "GALLERY.CUSTOM",
+ 390: "ADD.CHART.AUTOFORMAT",
+ 391: "DELETE.CHART.AUTOFORMAT",
+ 392: "CHART.ADD.DATA",
+ 393: "AUTO.OUTLINE",
+ 394: "TAB.ORDER",
+ 395: "SHOW.DIALOG",
+ 396: "SELECT.ALL",
+ 397: "UNGROUP.SHEETS",
+ 398: "SUBTOTAL.CREATE",
+ 399: "SUBTOTAL.REMOVE",
+ 400: "RENAME.OBJECT",
+ 412: "WORKBOOK.SCROLL",
+ 413: "WORKBOOK.NEXT",
+ 414: "WORKBOOK.PREV",
+ 415: "WORKBOOK.TAB.SPLIT",
+ 416: "FULL.SCREEN",
+ 417: "WORKBOOK.PROTECT",
+ 420: "SCROLLBAR.PROPERTIES",
+ 421: "PIVOT.SHOW.PAGES",
+ 422: "TEXT.TO.COLUMNS",
+ 423: "FORMAT.CHARTTYPE",
+ 424: "LINK.FORMAT",
+ 425: "TRACER.DISPLAY",
+ 430: "TRACER.NAVIGATE",
+ 431: "TRACER.CLEAR",
+ 432: "TRACER.ERROR",
+ 433: "PIVOT.FIELD.GROUP",
+ 434: "PIVOT.FIELD.UNGROUP",
+ 435: "CHECKBOX.PROPERTIES",
+ 436: "LABEL.PROPERTIES",
+ 437: "LISTBOX.PROPERTIES",
+ 438: "EDITBOX.PROPERTIES",
+ 439: "PIVOT.REFRESH",
+ 440: "LINK.COMBO",
+ 441: "OPEN.TEXT",
+ 442: "HIDE.DIALOG",
+ 443: "SET.DIALOG.FOCUS",
+ 444: "ENABLE.OBJECT",
+ 445: "PUSHBUTTON.PROPERTIES",
+ 446: "SET.DIALOG.DEFAULT",
+ 447: "FILTER",
+ 448: "FILTER.SHOW.ALL",
+ 449: "CLEAR.OUTLINE",
+ 450: "FUNCTION.WIZARD",
+ 451: "ADD.LIST.ITEM",
+ 452: "SET.LIST.ITEM",
+ 453: "REMOVE.LIST.ITEM",
+ 454: "SELECT.LIST.ITEM",
+ 455: "SET.CONTROL.VALUE",
+ 456: "SAVE.COPY.AS",
+ 458: "OPTIONS.LISTS.ADD",
+ 459: "OPTIONS.LISTS.DELETE",
+ 460: "SERIES.AXES",
+ 461: "SERIES.X",
+ 462: "SERIES.Y",
+ 463: "ERRORBAR.X",
+ 464: "ERRORBAR.Y",
+ 465: "FORMAT.CHART",
+ 466: "SERIES.ORDER",
+ 467: "MAIL.LOGOFF",
+ 468: "CLEAR.ROUTING.SLIP",
+ 469: "APP.ACTIVATE.MICROSOFT",
+ 470: "MAIL.EDIT.MAILER",
+ 471: "ON.SHEET",
+ 472: "STANDARD.WIDTH",
+ 473: "SCENARIO.MERGE",
+ 474: "SUMMARY.INFO",
+ 475: "FIND.FILE",
+ 476: "ACTIVE.CELL.FONT",
+ 477: "ENABLE.TIPWIZARD",
+ 478: "VBA.MAKE.ADDIN",
+ 480: "INSERTDATATABLE",
+ 481: "WORKGROUP.OPTIONS",
+ 482: "MAIL.SEND.MAILER",
+ 485: "AUTOCORRECT",
+ 489: "POST.DOCUMENT",
+ 491: "PICKLIST",
+ 493: "VIEW.SHOW",
+ 494: "VIEW.DEFINE",
+ 495: "VIEW.DELETE",
+ 509: "SHEET.BACKGROUND",
+ 510: "INSERT.MAP.OBJECT",
+ 511: "OPTIONS.MENONO",
+ 517: "MSOCHECKS",
+ 518: "NORMAL",
+ 519: "LAYOUT",
+ 520: "RM.PRINT.AREA",
+ 521: "CLEAR.PRINT.AREA",
+ 522: "ADD.PRINT.AREA",
+ 523: "MOVE.BRK",
+ 545: "HIDECURR.NOTE",
+ 546: "HIDEALL.NOTES",
+ 547: "DELETE.NOTE",
+ 548: "TRAVERSE.NOTES",
+ 549: "ACTIVATE.NOTES",
+ 620: "PROTECT.REVISIONS",
+ 621: "UNPROTECT.REVISIONS",
+ 647: "OPTIONS.ME",
+ 653: "WEB.PUBLISH",
+ 667: "NEWWEBQUERY",
+ 673: "PIVOT.TABLE.CHART",
+ 753: "OPTIONS.SAVE",
+ 755: "OPTIONS.SPELL",
+ 808: "HIDEALL.INKANNOTS"
+ };
+ Ftab = {
+ 0: "COUNT",
+ 1: "IF",
+ 2: "ISNA",
+ 3: "ISERROR",
+ 4: "SUM",
+ 5: "AVERAGE",
+ 6: "MIN",
+ 7: "MAX",
+ 8: "ROW",
+ 9: "COLUMN",
+ 10: "NA",
+ 11: "NPV",
+ 12: "STDEV",
+ 13: "DOLLAR",
+ 14: "FIXED",
+ 15: "SIN",
+ 16: "COS",
+ 17: "TAN",
+ 18: "ATAN",
+ 19: "PI",
+ 20: "SQRT",
+ 21: "EXP",
+ 22: "LN",
+ 23: "LOG10",
+ 24: "ABS",
+ 25: "INT",
+ 26: "SIGN",
+ 27: "ROUND",
+ 28: "LOOKUP",
+ 29: "INDEX",
+ 30: "REPT",
+ 31: "MID",
+ 32: "LEN",
+ 33: "VALUE",
+ 34: "TRUE",
+ 35: "FALSE",
+ 36: "AND",
+ 37: "OR",
+ 38: "NOT",
+ 39: "MOD",
+ 40: "DCOUNT",
+ 41: "DSUM",
+ 42: "DAVERAGE",
+ 43: "DMIN",
+ 44: "DMAX",
+ 45: "DSTDEV",
+ 46: "VAR",
+ 47: "DVAR",
+ 48: "TEXT",
+ 49: "LINEST",
+ 50: "TREND",
+ 51: "LOGEST",
+ 52: "GROWTH",
+ 53: "GOTO",
+ 54: "HALT",
+ 55: "RETURN",
+ 56: "PV",
+ 57: "FV",
+ 58: "NPER",
+ 59: "PMT",
+ 60: "RATE",
+ 61: "MIRR",
+ 62: "IRR",
+ 63: "RAND",
+ 64: "MATCH",
+ 65: "DATE",
+ 66: "TIME",
+ 67: "DAY",
+ 68: "MONTH",
+ 69: "YEAR",
+ 70: "WEEKDAY",
+ 71: "HOUR",
+ 72: "MINUTE",
+ 73: "SECOND",
+ 74: "NOW",
+ 75: "AREAS",
+ 76: "ROWS",
+ 77: "COLUMNS",
+ 78: "OFFSET",
+ 79: "ABSREF",
+ 80: "RELREF",
+ 81: "ARGUMENT",
+ 82: "SEARCH",
+ 83: "TRANSPOSE",
+ 84: "ERROR",
+ 85: "STEP",
+ 86: "TYPE",
+ 87: "ECHO",
+ 88: "SET.NAME",
+ 89: "CALLER",
+ 90: "DEREF",
+ 91: "WINDOWS",
+ 92: "SERIES",
+ 93: "DOCUMENTS",
+ 94: "ACTIVE.CELL",
+ 95: "SELECTION",
+ 96: "RESULT",
+ 97: "ATAN2",
+ 98: "ASIN",
+ 99: "ACOS",
+ 100: "CHOOSE",
+ 101: "HLOOKUP",
+ 102: "VLOOKUP",
+ 103: "LINKS",
+ 104: "INPUT",
+ 105: "ISREF",
+ 106: "GET.FORMULA",
+ 107: "GET.NAME",
+ 108: "SET.VALUE",
+ 109: "LOG",
+ 110: "EXEC",
+ 111: "CHAR",
+ 112: "LOWER",
+ 113: "UPPER",
+ 114: "PROPER",
+ 115: "LEFT",
+ 116: "RIGHT",
+ 117: "EXACT",
+ 118: "TRIM",
+ 119: "REPLACE",
+ 120: "SUBSTITUTE",
+ 121: "CODE",
+ 122: "NAMES",
+ 123: "DIRECTORY",
+ 124: "FIND",
+ 125: "CELL",
+ 126: "ISERR",
+ 127: "ISTEXT",
+ 128: "ISNUMBER",
+ 129: "ISBLANK",
+ 130: "T",
+ 131: "N",
+ 132: "FOPEN",
+ 133: "FCLOSE",
+ 134: "FSIZE",
+ 135: "FREADLN",
+ 136: "FREAD",
+ 137: "FWRITELN",
+ 138: "FWRITE",
+ 139: "FPOS",
+ 140: "DATEVALUE",
+ 141: "TIMEVALUE",
+ 142: "SLN",
+ 143: "SYD",
+ 144: "DDB",
+ 145: "GET.DEF",
+ 146: "REFTEXT",
+ 147: "TEXTREF",
+ 148: "INDIRECT",
+ 149: "REGISTER",
+ 150: "CALL",
+ 151: "ADD.BAR",
+ 152: "ADD.MENU",
+ 153: "ADD.COMMAND",
+ 154: "ENABLE.COMMAND",
+ 155: "CHECK.COMMAND",
+ 156: "RENAME.COMMAND",
+ 157: "SHOW.BAR",
+ 158: "DELETE.MENU",
+ 159: "DELETE.COMMAND",
+ 160: "GET.CHART.ITEM",
+ 161: "DIALOG.BOX",
+ 162: "CLEAN",
+ 163: "MDETERM",
+ 164: "MINVERSE",
+ 165: "MMULT",
+ 166: "FILES",
+ 167: "IPMT",
+ 168: "PPMT",
+ 169: "COUNTA",
+ 170: "CANCEL.KEY",
+ 171: "FOR",
+ 172: "WHILE",
+ 173: "BREAK",
+ 174: "NEXT",
+ 175: "INITIATE",
+ 176: "REQUEST",
+ 177: "POKE",
+ 178: "EXECUTE",
+ 179: "TERMINATE",
+ 180: "RESTART",
+ 181: "HELP",
+ 182: "GET.BAR",
+ 183: "PRODUCT",
+ 184: "FACT",
+ 185: "GET.CELL",
+ 186: "GET.WORKSPACE",
+ 187: "GET.WINDOW",
+ 188: "GET.DOCUMENT",
+ 189: "DPRODUCT",
+ 190: "ISNONTEXT",
+ 191: "GET.NOTE",
+ 192: "NOTE",
+ 193: "STDEVP",
+ 194: "VARP",
+ 195: "DSTDEVP",
+ 196: "DVARP",
+ 197: "TRUNC",
+ 198: "ISLOGICAL",
+ 199: "DCOUNTA",
+ 200: "DELETE.BAR",
+ 201: "UNREGISTER",
+ 204: "USDOLLAR",
+ 205: "FINDB",
+ 206: "SEARCHB",
+ 207: "REPLACEB",
+ 208: "LEFTB",
+ 209: "RIGHTB",
+ 210: "MIDB",
+ 211: "LENB",
+ 212: "ROUNDUP",
+ 213: "ROUNDDOWN",
+ 214: "ASC",
+ 215: "DBCS",
+ 216: "RANK",
+ 219: "ADDRESS",
+ 220: "DAYS360",
+ 221: "TODAY",
+ 222: "VDB",
+ 223: "ELSE",
+ 224: "ELSE.IF",
+ 225: "END.IF",
+ 226: "FOR.CELL",
+ 227: "MEDIAN",
+ 228: "SUMPRODUCT",
+ 229: "SINH",
+ 230: "COSH",
+ 231: "TANH",
+ 232: "ASINH",
+ 233: "ACOSH",
+ 234: "ATANH",
+ 235: "DGET",
+ 236: "CREATE.OBJECT",
+ 237: "VOLATILE",
+ 238: "LAST.ERROR",
+ 239: "CUSTOM.UNDO",
+ 240: "CUSTOM.REPEAT",
+ 241: "FORMULA.CONVERT",
+ 242: "GET.LINK.INFO",
+ 243: "TEXT.BOX",
+ 244: "INFO",
+ 245: "GROUP",
+ 246: "GET.OBJECT",
+ 247: "DB",
+ 248: "PAUSE",
+ 251: "RESUME",
+ 252: "FREQUENCY",
+ 253: "ADD.TOOLBAR",
+ 254: "DELETE.TOOLBAR",
+ 255: "User",
+ 256: "RESET.TOOLBAR",
+ 257: "EVALUATE",
+ 258: "GET.TOOLBAR",
+ 259: "GET.TOOL",
+ 260: "SPELLING.CHECK",
+ 261: "ERROR.TYPE",
+ 262: "APP.TITLE",
+ 263: "WINDOW.TITLE",
+ 264: "SAVE.TOOLBAR",
+ 265: "ENABLE.TOOL",
+ 266: "PRESS.TOOL",
+ 267: "REGISTER.ID",
+ 268: "GET.WORKBOOK",
+ 269: "AVEDEV",
+ 270: "BETADIST",
+ 271: "GAMMALN",
+ 272: "BETAINV",
+ 273: "BINOMDIST",
+ 274: "CHIDIST",
+ 275: "CHIINV",
+ 276: "COMBIN",
+ 277: "CONFIDENCE",
+ 278: "CRITBINOM",
+ 279: "EVEN",
+ 280: "EXPONDIST",
+ 281: "FDIST",
+ 282: "FINV",
+ 283: "FISHER",
+ 284: "FISHERINV",
+ 285: "FLOOR",
+ 286: "GAMMADIST",
+ 287: "GAMMAINV",
+ 288: "CEILING",
+ 289: "HYPGEOMDIST",
+ 290: "LOGNORMDIST",
+ 291: "LOGINV",
+ 292: "NEGBINOMDIST",
+ 293: "NORMDIST",
+ 294: "NORMSDIST",
+ 295: "NORMINV",
+ 296: "NORMSINV",
+ 297: "STANDARDIZE",
+ 298: "ODD",
+ 299: "PERMUT",
+ 300: "POISSON",
+ 301: "TDIST",
+ 302: "WEIBULL",
+ 303: "SUMXMY2",
+ 304: "SUMX2MY2",
+ 305: "SUMX2PY2",
+ 306: "CHITEST",
+ 307: "CORREL",
+ 308: "COVAR",
+ 309: "FORECAST",
+ 310: "FTEST",
+ 311: "INTERCEPT",
+ 312: "PEARSON",
+ 313: "RSQ",
+ 314: "STEYX",
+ 315: "SLOPE",
+ 316: "TTEST",
+ 317: "PROB",
+ 318: "DEVSQ",
+ 319: "GEOMEAN",
+ 320: "HARMEAN",
+ 321: "SUMSQ",
+ 322: "KURT",
+ 323: "SKEW",
+ 324: "ZTEST",
+ 325: "LARGE",
+ 326: "SMALL",
+ 327: "QUARTILE",
+ 328: "PERCENTILE",
+ 329: "PERCENTRANK",
+ 330: "MODE",
+ 331: "TRIMMEAN",
+ 332: "TINV",
+ 334: "MOVIE.COMMAND",
+ 335: "GET.MOVIE",
+ 336: "CONCATENATE",
+ 337: "POWER",
+ 338: "PIVOT.ADD.DATA",
+ 339: "GET.PIVOT.TABLE",
+ 340: "GET.PIVOT.FIELD",
+ 341: "GET.PIVOT.ITEM",
+ 342: "RADIANS",
+ 343: "DEGREES",
+ 344: "SUBTOTAL",
+ 345: "SUMIF",
+ 346: "COUNTIF",
+ 347: "COUNTBLANK",
+ 348: "SCENARIO.GET",
+ 349: "OPTIONS.LISTS.GET",
+ 350: "ISPMT",
+ 351: "DATEDIF",
+ 352: "DATESTRING",
+ 353: "NUMBERSTRING",
+ 354: "ROMAN",
+ 355: "OPEN.DIALOG",
+ 356: "SAVE.DIALOG",
+ 357: "VIEW.GET",
+ 358: "GETPIVOTDATA",
+ 359: "HYPERLINK",
+ 360: "PHONETIC",
+ 361: "AVERAGEA",
+ 362: "MAXA",
+ 363: "MINA",
+ 364: "STDEVPA",
+ 365: "VARPA",
+ 366: "STDEVA",
+ 367: "VARA",
+ 368: "BAHTTEXT",
+ 369: "THAIDAYOFWEEK",
+ 370: "THAIDIGIT",
+ 371: "THAIMONTHOFYEAR",
+ 372: "THAINUMSOUND",
+ 373: "THAINUMSTRING",
+ 374: "THAISTRINGLENGTH",
+ 375: "ISTHAIDIGIT",
+ 376: "ROUNDBAHTDOWN",
+ 377: "ROUNDBAHTUP",
+ 378: "THAIYEAR",
+ 379: "RTD",
+ 380: "CUBEVALUE",
+ 381: "CUBEMEMBER",
+ 382: "CUBEMEMBERPROPERTY",
+ 383: "CUBERANKEDMEMBER",
+ 384: "HEX2BIN",
+ 385: "HEX2DEC",
+ 386: "HEX2OCT",
+ 387: "DEC2BIN",
+ 388: "DEC2HEX",
+ 389: "DEC2OCT",
+ 390: "OCT2BIN",
+ 391: "OCT2HEX",
+ 392: "OCT2DEC",
+ 393: "BIN2DEC",
+ 394: "BIN2OCT",
+ 395: "BIN2HEX",
+ 396: "IMSUB",
+ 397: "IMDIV",
+ 398: "IMPOWER",
+ 399: "IMABS",
+ 400: "IMSQRT",
+ 401: "IMLN",
+ 402: "IMLOG2",
+ 403: "IMLOG10",
+ 404: "IMSIN",
+ 405: "IMCOS",
+ 406: "IMEXP",
+ 407: "IMARGUMENT",
+ 408: "IMCONJUGATE",
+ 409: "IMAGINARY",
+ 410: "IMREAL",
+ 411: "COMPLEX",
+ 412: "IMSUM",
+ 413: "IMPRODUCT",
+ 414: "SERIESSUM",
+ 415: "FACTDOUBLE",
+ 416: "SQRTPI",
+ 417: "QUOTIENT",
+ 418: "DELTA",
+ 419: "GESTEP",
+ 420: "ISEVEN",
+ 421: "ISODD",
+ 422: "MROUND",
+ 423: "ERF",
+ 424: "ERFC",
+ 425: "BESSELJ",
+ 426: "BESSELK",
+ 427: "BESSELY",
+ 428: "BESSELI",
+ 429: "XIRR",
+ 430: "XNPV",
+ 431: "PRICEMAT",
+ 432: "YIELDMAT",
+ 433: "INTRATE",
+ 434: "RECEIVED",
+ 435: "DISC",
+ 436: "PRICEDISC",
+ 437: "YIELDDISC",
+ 438: "TBILLEQ",
+ 439: "TBILLPRICE",
+ 440: "TBILLYIELD",
+ 441: "PRICE",
+ 442: "YIELD",
+ 443: "DOLLARDE",
+ 444: "DOLLARFR",
+ 445: "NOMINAL",
+ 446: "EFFECT",
+ 447: "CUMPRINC",
+ 448: "CUMIPMT",
+ 449: "EDATE",
+ 450: "EOMONTH",
+ 451: "YEARFRAC",
+ 452: "COUPDAYBS",
+ 453: "COUPDAYS",
+ 454: "COUPDAYSNC",
+ 455: "COUPNCD",
+ 456: "COUPNUM",
+ 457: "COUPPCD",
+ 458: "DURATION",
+ 459: "MDURATION",
+ 460: "ODDLPRICE",
+ 461: "ODDLYIELD",
+ 462: "ODDFPRICE",
+ 463: "ODDFYIELD",
+ 464: "RANDBETWEEN",
+ 465: "WEEKNUM",
+ 466: "AMORDEGRC",
+ 467: "AMORLINC",
+ 468: "CONVERT",
+ 724: "SHEETJS",
+ 469: "ACCRINT",
+ 470: "ACCRINTM",
+ 471: "WORKDAY",
+ 472: "NETWORKDAYS",
+ 473: "GCD",
+ 474: "MULTINOMIAL",
+ 475: "LCM",
+ 476: "FVSCHEDULE",
+ 477: "CUBEKPIMEMBER",
+ 478: "CUBESET",
+ 479: "CUBESETCOUNT",
+ 480: "IFERROR",
+ 481: "COUNTIFS",
+ 482: "SUMIFS",
+ 483: "AVERAGEIF",
+ 484: "AVERAGEIFS"
+ };
+ FtabArgc = {
+ 2: 1,
+ 3: 1,
+ 10: 0,
+ 15: 1,
+ 16: 1,
+ 17: 1,
+ 18: 1,
+ 19: 0,
+ 20: 1,
+ 21: 1,
+ 22: 1,
+ 23: 1,
+ 24: 1,
+ 25: 1,
+ 26: 1,
+ 27: 2,
+ 30: 2,
+ 31: 3,
+ 32: 1,
+ 33: 1,
+ 34: 0,
+ 35: 0,
+ 38: 1,
+ 39: 2,
+ 40: 3,
+ 41: 3,
+ 42: 3,
+ 43: 3,
+ 44: 3,
+ 45: 3,
+ 47: 3,
+ 48: 2,
+ 53: 1,
+ 61: 3,
+ 63: 0,
+ 65: 3,
+ 66: 3,
+ 67: 1,
+ 68: 1,
+ 69: 1,
+ 70: 1,
+ 71: 1,
+ 72: 1,
+ 73: 1,
+ 74: 0,
+ 75: 1,
+ 76: 1,
+ 77: 1,
+ 79: 2,
+ 80: 2,
+ 83: 1,
+ 85: 0,
+ 86: 1,
+ 89: 0,
+ 90: 1,
+ 94: 0,
+ 95: 0,
+ 97: 2,
+ 98: 1,
+ 99: 1,
+ 101: 3,
+ 102: 3,
+ 105: 1,
+ 106: 1,
+ 108: 2,
+ 111: 1,
+ 112: 1,
+ 113: 1,
+ 114: 1,
+ 117: 2,
+ 118: 1,
+ 119: 4,
+ 121: 1,
+ 126: 1,
+ 127: 1,
+ 128: 1,
+ 129: 1,
+ 130: 1,
+ 131: 1,
+ 133: 1,
+ 134: 1,
+ 135: 1,
+ 136: 2,
+ 137: 2,
+ 138: 2,
+ 140: 1,
+ 141: 1,
+ 142: 3,
+ 143: 4,
+ 144: 4,
+ 161: 1,
+ 162: 1,
+ 163: 1,
+ 164: 1,
+ 165: 2,
+ 172: 1,
+ 175: 2,
+ 176: 2,
+ 177: 3,
+ 178: 2,
+ 179: 1,
+ 184: 1,
+ 186: 1,
+ 189: 3,
+ 190: 1,
+ 195: 3,
+ 196: 3,
+ 197: 1,
+ 198: 1,
+ 199: 3,
+ 201: 1,
+ 207: 4,
+ 210: 3,
+ 211: 1,
+ 212: 2,
+ 213: 2,
+ 214: 1,
+ 215: 1,
+ 225: 0,
+ 229: 1,
+ 230: 1,
+ 231: 1,
+ 232: 1,
+ 233: 1,
+ 234: 1,
+ 235: 3,
+ 244: 1,
+ 247: 4,
+ 252: 2,
+ 257: 1,
+ 261: 1,
+ 271: 1,
+ 273: 4,
+ 274: 2,
+ 275: 2,
+ 276: 2,
+ 277: 3,
+ 278: 3,
+ 279: 1,
+ 280: 3,
+ 281: 3,
+ 282: 3,
+ 283: 1,
+ 284: 1,
+ 285: 2,
+ 286: 4,
+ 287: 3,
+ 288: 2,
+ 289: 4,
+ 290: 3,
+ 291: 3,
+ 292: 3,
+ 293: 4,
+ 294: 1,
+ 295: 3,
+ 296: 1,
+ 297: 3,
+ 298: 1,
+ 299: 2,
+ 300: 3,
+ 301: 3,
+ 302: 4,
+ 303: 2,
+ 304: 2,
+ 305: 2,
+ 306: 2,
+ 307: 2,
+ 308: 2,
+ 309: 3,
+ 310: 2,
+ 311: 2,
+ 312: 2,
+ 313: 2,
+ 314: 2,
+ 315: 2,
+ 316: 4,
+ 325: 2,
+ 326: 2,
+ 327: 2,
+ 328: 2,
+ 331: 2,
+ 332: 2,
+ 337: 2,
+ 342: 1,
+ 343: 1,
+ 346: 2,
+ 347: 1,
+ 350: 4,
+ 351: 3,
+ 352: 1,
+ 353: 2,
+ 360: 1,
+ 368: 1,
+ 369: 1,
+ 370: 1,
+ 371: 1,
+ 372: 1,
+ 373: 1,
+ 374: 1,
+ 375: 1,
+ 376: 1,
+ 377: 1,
+ 378: 1,
+ 382: 3,
+ 385: 1,
+ 392: 1,
+ 393: 1,
+ 396: 2,
+ 397: 2,
+ 398: 2,
+ 399: 1,
+ 400: 1,
+ 401: 1,
+ 402: 1,
+ 403: 1,
+ 404: 1,
+ 405: 1,
+ 406: 1,
+ 407: 1,
+ 408: 1,
+ 409: 1,
+ 410: 1,
+ 414: 4,
+ 415: 1,
+ 416: 1,
+ 417: 2,
+ 420: 1,
+ 421: 1,
+ 422: 2,
+ 424: 1,
+ 425: 2,
+ 426: 2,
+ 427: 2,
+ 428: 2,
+ 430: 3,
+ 438: 3,
+ 439: 3,
+ 440: 3,
+ 443: 2,
+ 444: 2,
+ 445: 2,
+ 446: 2,
+ 447: 6,
+ 448: 6,
+ 449: 2,
+ 450: 2,
+ 464: 2,
+ 468: 3,
+ 476: 2,
+ 479: 1,
+ 480: 2,
+ 65535: 0
+ };
+ strs = {};
+ _ssfopts = {};
+ browser_has_Map = typeof Map !== "undefined";
+ mergecregex = /<(?:\w+:)?mergeCell ref=["'][A-Z0-9:]+['"]\s*[\/]?>/g;
+ hlinkregex = /<(?:\w+:)?hyperlink [^<>]*>/gm;
+ dimregex = /"(\w*:\w*)"/;
+ colregex = /<(?:\w+:)?col\b[^<>]*[\/]?>/g;
+ afregex = /<(?:\w+:)?autoFilter[^>]*/g;
+ marginregex = /<(?:\w+:)?pageMargins[^<>]*\/>/g;
+ sheetprregex = /<(?:\w+:)?sheetPr\b[^<>]*?\/>/;
+ sheetprot_deffalse = [
+ "objects",
+ "scenarios",
+ "selectLockedCells",
+ "selectUnlockedCells"
+ ];
+ sheetprot_deftrue = [
+ "formatColumns",
+ "formatRows",
+ "formatCells",
+ "insertColumns",
+ "insertRows",
+ "insertHyperlinks",
+ "deleteColumns",
+ "deleteRows",
+ "sort",
+ "autoFilter",
+ "pivotTables"
+ ];
+ sviewregex = /<(?:\w:)?sheetView(?:[^<>a-z][^<>]*)?\/?>/g;
+ parse_ws_xml_data = /* @__PURE__ */ (function() {
+ var cellregex = /<(?:\w+:)?c[ \/>]/, rowregex = /<\/(?:\w+:)?row>/;
+ var rregex = /r=["']([^"']*)["']/;
+ var refregex = /ref=["']([^"']*)["']/;
+ return function parse_ws_xml_data$1(sdata, s$5, opts, guess, themes, styles$1, wb) {
+ var ri = 0, x$2 = "", cells = [], cref = [], idx = 0, i$7 = 0, cc = 0, d$5 = "", p$3;
+ var tag, tagr = 0, tagc = 0;
+ var sstr, ftag;
+ var fmtid = 0, fillid = 0;
+ var do_format = Array.isArray(styles$1.CellXf), cf;
+ var arrayf = [];
+ var sharedf = [];
+ var dense = s$5["!data"] != null;
+ var rows = [], rowobj = {}, rowrite = false;
+ var sheetStubs = !!opts.sheetStubs;
+ var date1904 = !!((wb || {}).WBProps || {}).date1904;
+ for (var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {
+ x$2 = marr[mt].trim();
+ var xlen = x$2.length;
+ if (xlen === 0) continue;
+ var rstarti = 0;
+ outa: for (ri = 0; ri < xlen; ++ri) switch (x$2[ri]) {
+ case ">":
+ if (x$2[ri - 1] != "/") {
+ ++ri;
+ break outa;
+ }
+ if (opts && opts.cellStyles) {
+ tag = parsexmltag(x$2.slice(rstarti, ri), true);
+ tagr = tag.r != null ? parseInt(tag.r, 10) : tagr + 1;
+ tagc = -1;
+ if (opts.sheetRows && opts.sheetRows < tagr) continue;
+ rowobj = {};
+ rowrite = false;
+ if (tag.ht) {
+ rowrite = true;
+ rowobj.hpt = parseFloat(tag.ht);
+ rowobj.hpx = pt2px(rowobj.hpt);
+ }
+ if (tag.hidden && parsexmlbool(tag.hidden)) {
+ rowrite = true;
+ rowobj.hidden = true;
+ }
+ if (tag.outlineLevel != null) {
+ rowrite = true;
+ rowobj.level = +tag.outlineLevel;
+ }
+ if (rowrite) rows[tagr - 1] = rowobj;
+ }
+ break;
+ case "<":
+ rstarti = ri;
+ break;
+ }
+ if (rstarti >= ri) break;
+ tag = parsexmltag(x$2.slice(rstarti, ri), true);
+ tagr = tag.r != null ? parseInt(tag.r, 10) : tagr + 1;
+ tagc = -1;
+ if (opts.sheetRows && opts.sheetRows < tagr) continue;
+ if (!opts.nodim) {
+ if (guess.s.r > tagr - 1) guess.s.r = tagr - 1;
+ if (guess.e.r < tagr - 1) guess.e.r = tagr - 1;
+ }
+ if (opts && opts.cellStyles) {
+ rowobj = {};
+ rowrite = false;
+ if (tag.ht) {
+ rowrite = true;
+ rowobj.hpt = parseFloat(tag.ht);
+ rowobj.hpx = pt2px(rowobj.hpt);
+ }
+ if (tag.hidden && parsexmlbool(tag.hidden)) {
+ rowrite = true;
+ rowobj.hidden = true;
+ }
+ if (tag.outlineLevel != null) {
+ rowrite = true;
+ rowobj.level = +tag.outlineLevel;
+ }
+ if (rowrite) rows[tagr - 1] = rowobj;
+ }
+ cells = x$2.slice(ri).split(cellregex);
+ for (var rslice = 0; rslice != cells.length; ++rslice) if (cells[rslice].trim().charAt(0) != "<") break;
+ cells = cells.slice(rslice);
+ for (ri = 0; ri != cells.length; ++ri) {
+ x$2 = cells[ri].trim();
+ if (x$2.length === 0) continue;
+ cref = x$2.match(rregex);
+ idx = ri;
+ i$7 = 0;
+ cc = 0;
+ x$2 = "" : "") + x$2;
+ if (cref != null && cref.length === 2) {
+ idx = 0;
+ d$5 = cref[1];
+ for (i$7 = 0; i$7 != d$5.length; ++i$7) {
+ if ((cc = d$5.charCodeAt(i$7) - 64) < 1 || cc > 26) break;
+ idx = 26 * idx + cc;
+ }
+ --idx;
+ tagc = idx;
+ } else ++tagc;
+ for (i$7 = 0; i$7 != x$2.length; ++i$7) if (x$2.charCodeAt(i$7) === 62) break;
+ ++i$7;
+ tag = parsexmltag(x$2.slice(0, i$7), true);
+ if (!tag.r) tag.r = encode_cell({
+ r: tagr - 1,
+ c: tagc
+ });
+ d$5 = x$2.slice(i$7);
+ p$3 = { t: "" };
+ if ((cref = str_match_xml_ns(d$5, "v")) != null && cref[1] !== "") p$3.v = unescapexml(cref[1]);
+ if (opts.cellFormula) {
+ if ((cref = str_match_xml_ns(d$5, "f")) != null) {
+ if (cref[1] == "") {
+ if (cref[0].indexOf("t=\"shared\"") > -1) {
+ ftag = parsexmltag(cref[0]);
+ if (sharedf[ftag.si]) p$3.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2], tag.r);
+ }
+ } else {
+ p$3.f = unescapexml(utf8read(cref[1]), true);
+ if (!opts.xlfn) p$3.f = _xlfn(p$3.f);
+ if (cref[0].indexOf("t=\"array\"") > -1) {
+ p$3.F = (d$5.match(refregex) || [])[1];
+ if (p$3.F.indexOf(":") > -1) arrayf.push([safe_decode_range(p$3.F), p$3.F]);
+ } else if (cref[0].indexOf("t=\"shared\"") > -1) {
+ ftag = parsexmltag(cref[0]);
+ var ___f = unescapexml(utf8read(cref[1]));
+ if (!opts.xlfn) ___f = _xlfn(___f);
+ sharedf[parseInt(ftag.si, 10)] = [
+ ftag,
+ ___f,
+ tag.r
+ ];
+ }
+ }
+ } else if (cref = d$5.match(/]*\/>/)) {
+ ftag = parsexmltag(cref[0]);
+ if (sharedf[ftag.si]) p$3.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2], tag.r);
+ }
+ var _tag = decode_cell(tag.r);
+ for (i$7 = 0; i$7 < arrayf.length; ++i$7) if (_tag.r >= arrayf[i$7][0].s.r && _tag.r <= arrayf[i$7][0].e.r) {
+ if (_tag.c >= arrayf[i$7][0].s.c && _tag.c <= arrayf[i$7][0].e.c) p$3.F = arrayf[i$7][1];
+ }
+ }
+ if (tag.t == null && p$3.v === undefined) {
+ if (p$3.f || p$3.F) {
+ p$3.v = 0;
+ p$3.t = "n";
+ } else if (!sheetStubs) continue;
+ else p$3.t = "z";
+ } else p$3.t = tag.t || "n";
+ if (guess.s.c > tagc) guess.s.c = tagc;
+ if (guess.e.c < tagc) guess.e.c = tagc;
+ switch (p$3.t) {
+ case "n":
+ if (p$3.v == "" || p$3.v == null) {
+ if (!sheetStubs) continue;
+ p$3.t = "z";
+ } else p$3.v = parseFloat(p$3.v);
+ break;
+ case "s":
+ if (typeof p$3.v == "undefined") {
+ if (!sheetStubs) continue;
+ p$3.t = "z";
+ } else {
+ sstr = strs[parseInt(p$3.v, 10)];
+ p$3.v = sstr.t;
+ p$3.r = sstr.r;
+ if (opts.cellHTML) p$3.h = sstr.h;
+ }
+ break;
+ case "str":
+ p$3.t = "s";
+ p$3.v = p$3.v != null ? unescapexml(utf8read(p$3.v), true) : "";
+ if (opts.cellHTML) p$3.h = escapehtml(p$3.v);
+ break;
+ case "inlineStr":
+ cref = str_match_xml_ns(d$5, "is");
+ p$3.t = "s";
+ if (cref != null && (sstr = parse_si(cref[1]))) {
+ p$3.v = sstr.t;
+ if (opts.cellHTML) p$3.h = sstr.h;
+ } else p$3.v = "";
+ break;
+ case "b":
+ p$3.v = parsexmlbool(p$3.v);
+ break;
+ case "d":
+ if (opts.cellDates) p$3.v = parseDate(p$3.v, date1904);
+ else {
+ p$3.v = datenum(parseDate(p$3.v, date1904), date1904);
+ p$3.t = "n";
+ }
+ break;
+ case "e":
+ if (!opts || opts.cellText !== false) p$3.w = p$3.v;
+ p$3.v = RBErr[p$3.v];
+ break;
+ }
+ fmtid = fillid = 0;
+ cf = null;
+ if (do_format && tag.s !== undefined) {
+ cf = styles$1.CellXf[tag.s];
+ if (cf != null) {
+ if (cf.numFmtId != null) fmtid = cf.numFmtId;
+ if (opts.cellStyles) {
+ if (cf.fillId != null) fillid = cf.fillId;
+ }
+ }
+ }
+ safe_format(p$3, fmtid, fillid, opts, themes, styles$1, date1904);
+ if (opts.cellDates && do_format && p$3.t == "n" && fmt_is_date(table_fmt[fmtid])) {
+ p$3.v = numdate(p$3.v + (date1904 ? 1462 : 0));
+ p$3.t = typeof p$3.v == "number" ? "n" : "d";
+ }
+ if (tag.cm && opts.xlmeta) {
+ var cm = (opts.xlmeta.Cell || [])[+tag.cm - 1];
+ if (cm && cm.type == "XLDAPR") p$3.D = true;
+ }
+ var _r;
+ if (opts.nodim) {
+ _r = decode_cell(tag.r);
+ if (guess.s.r > _r.r) guess.s.r = _r.r;
+ if (guess.e.r < _r.r) guess.e.r = _r.r;
+ }
+ if (dense) {
+ _r = decode_cell(tag.r);
+ if (!s$5["!data"][_r.r]) s$5["!data"][_r.r] = [];
+ s$5["!data"][_r.r][_r.c] = p$3;
+ } else s$5[tag.r] = p$3;
+ }
+ }
+ if (rows.length > 0) s$5["!rows"] = rows;
+ };
+ })();
+ parse_BrtWsDim = parse_UncheckedRfX;
+ write_BrtWsDim = write_UncheckedRfX;
+ parse_BrtMergeCell = parse_UncheckedRfX;
+ write_BrtMergeCell = write_UncheckedRfX;
+ BrtMarginKeys = [
+ "left",
+ "right",
+ "top",
+ "bottom",
+ "header",
+ "footer"
+ ];
+ WBPropsDef = [
+ [
+ "allowRefreshQuery",
+ false,
+ "bool"
+ ],
+ [
+ "autoCompressPictures",
+ true,
+ "bool"
+ ],
+ [
+ "backupFile",
+ false,
+ "bool"
+ ],
+ [
+ "checkCompatibility",
+ false,
+ "bool"
+ ],
+ ["CodeName", ""],
+ [
+ "date1904",
+ false,
+ "bool"
+ ],
+ [
+ "defaultThemeVersion",
+ 0,
+ "int"
+ ],
+ [
+ "filterPrivacy",
+ false,
+ "bool"
+ ],
+ [
+ "hidePivotFieldList",
+ false,
+ "bool"
+ ],
+ [
+ "promptedSolutions",
+ false,
+ "bool"
+ ],
+ [
+ "publishItems",
+ false,
+ "bool"
+ ],
+ [
+ "refreshAllConnections",
+ false,
+ "bool"
+ ],
+ [
+ "saveExternalLinkValues",
+ true,
+ "bool"
+ ],
+ [
+ "showBorderUnselectedTables",
+ true,
+ "bool"
+ ],
+ [
+ "showInkAnnotation",
+ true,
+ "bool"
+ ],
+ ["showObjects", "all"],
+ [
+ "showPivotChartFilter",
+ false,
+ "bool"
+ ],
+ ["updateLinks", "userSet"]
+ ];
+ WBViewDef = [
+ [
+ "activeTab",
+ 0,
+ "int"
+ ],
+ [
+ "autoFilterDateGrouping",
+ true,
+ "bool"
+ ],
+ [
+ "firstSheet",
+ 0,
+ "int"
+ ],
+ [
+ "minimized",
+ false,
+ "bool"
+ ],
+ [
+ "showHorizontalScroll",
+ true,
+ "bool"
+ ],
+ [
+ "showSheetTabs",
+ true,
+ "bool"
+ ],
+ [
+ "showVerticalScroll",
+ true,
+ "bool"
+ ],
+ [
+ "tabRatio",
+ 600,
+ "int"
+ ],
+ ["visibility", "visible"]
+ ];
+ SheetDef = [];
+ CalcPrDef = [
+ ["calcCompleted", "true"],
+ ["calcMode", "auto"],
+ ["calcOnSave", "true"],
+ ["concurrentCalc", "true"],
+ ["fullCalcOnLoad", "false"],
+ ["fullPrecision", "true"],
+ ["iterate", "false"],
+ ["iterateCount", "100"],
+ ["iterateDelta", "0.001"],
+ ["refMode", "A1"]
+ ];
+ badchars = /* @__PURE__ */ ":][*?/\\".split("");
+ wbnsregex = /<\w+:workbook/;
+ attregexg2 = /\b((?:\w+:)?[\w]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;
+ attregex2 = /\b((?:\w+:)?[\w]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;
+ ;
+ CONTINUE_RT = [
+ 60,
+ 1084,
+ 2066,
+ 2165,
+ 2175
+ ];
+ PSCLSID = {
+ SI: "e0859ff2f94f6810ab9108002b27b3d9",
+ DSI: "02d5cdd59c2e1b10939708002b2cf9ae",
+ UDI: "05d5cdd59c2e1b10939708002b2cf9ae"
+ };
+ XLSBRecordEnum = {
+ 0: { f: parse_BrtRowHdr },
+ 1: { f: parse_BrtCellBlank },
+ 2: { f: parse_BrtCellRk },
+ 3: { f: parse_BrtCellError },
+ 4: { f: parse_BrtCellBool },
+ 5: { f: parse_BrtCellReal },
+ 6: { f: parse_BrtCellSt },
+ 7: { f: parse_BrtCellIsst },
+ 8: { f: parse_BrtFmlaString },
+ 9: { f: parse_BrtFmlaNum },
+ 10: { f: parse_BrtFmlaBool },
+ 11: { f: parse_BrtFmlaError },
+ 12: { f: parse_BrtShortBlank },
+ 13: { f: parse_BrtShortRk },
+ 14: { f: parse_BrtShortError },
+ 15: { f: parse_BrtShortBool },
+ 16: { f: parse_BrtShortReal },
+ 17: { f: parse_BrtShortSt },
+ 18: { f: parse_BrtShortIsst },
+ 19: { f: parse_RichStr },
+ 20: {},
+ 21: {},
+ 22: {},
+ 23: {},
+ 24: {},
+ 25: {},
+ 26: {},
+ 27: {},
+ 28: {},
+ 29: {},
+ 30: {},
+ 31: {},
+ 32: {},
+ 33: {},
+ 34: {},
+ 35: { T: 1 },
+ 36: { T: -1 },
+ 37: { T: 1 },
+ 38: { T: -1 },
+ 39: { f: parse_BrtName },
+ 40: {},
+ 42: {},
+ 43: { f: parse_BrtFont },
+ 44: { f: parse_BrtFmt },
+ 45: { f: parse_BrtFill },
+ 46: { f: parse_BrtBorder },
+ 47: { f: parse_BrtXF },
+ 48: {},
+ 49: { f: parse_Int32LE },
+ 50: {},
+ 51: { f: parse_BrtMdb },
+ 52: { T: 1 },
+ 53: { T: -1 },
+ 54: { T: 1 },
+ 55: { T: -1 },
+ 56: { T: 1 },
+ 57: { T: -1 },
+ 58: {},
+ 59: {},
+ 60: { f: parse_ColInfo },
+ 62: { f: parse_BrtCellRString },
+ 63: { f: parse_BrtCalcChainItem$ },
+ 64: { f: parse_BrtDVal },
+ 65: {},
+ 66: {},
+ 67: {},
+ 68: {},
+ 69: {},
+ 70: {},
+ 128: {},
+ 129: { T: 1 },
+ 130: { T: -1 },
+ 131: {
+ T: 1,
+ f: parsenoop,
+ p: 0
+ },
+ 132: { T: -1 },
+ 133: { T: 1 },
+ 134: { T: -1 },
+ 135: { T: 1 },
+ 136: { T: -1 },
+ 137: {
+ T: 1,
+ f: parse_BrtBeginWsView
+ },
+ 138: { T: -1 },
+ 139: { T: 1 },
+ 140: { T: -1 },
+ 141: { T: 1 },
+ 142: { T: -1 },
+ 143: { T: 1 },
+ 144: { T: -1 },
+ 145: { T: 1 },
+ 146: { T: -1 },
+ 147: { f: parse_BrtWsProp },
+ 148: {
+ f: parse_BrtWsDim,
+ p: 16
+ },
+ 151: { f: parse_BrtPane },
+ 152: {},
+ 153: { f: parse_BrtWbProp },
+ 154: {},
+ 155: {},
+ 156: { f: parse_BrtBundleSh },
+ 157: {},
+ 158: {},
+ 159: {
+ T: 1,
+ f: parse_BrtBeginSst
+ },
+ 160: { T: -1 },
+ 161: {
+ T: 1,
+ f: parse_UncheckedRfX
+ },
+ 162: { T: -1 },
+ 163: { T: 1 },
+ 164: { T: -1 },
+ 165: { T: 1 },
+ 166: { T: -1 },
+ 167: {},
+ 168: {},
+ 169: {},
+ 170: {},
+ 171: {},
+ 172: { T: 1 },
+ 173: { T: -1 },
+ 174: {},
+ 175: {},
+ 176: { f: parse_BrtMergeCell },
+ 177: { T: 1 },
+ 178: { T: -1 },
+ 179: { T: 1 },
+ 180: { T: -1 },
+ 181: { T: 1 },
+ 182: { T: -1 },
+ 183: { T: 1 },
+ 184: { T: -1 },
+ 185: { T: 1 },
+ 186: { T: -1 },
+ 187: { T: 1 },
+ 188: { T: -1 },
+ 189: { T: 1 },
+ 190: { T: -1 },
+ 191: { T: 1 },
+ 192: { T: -1 },
+ 193: { T: 1 },
+ 194: { T: -1 },
+ 195: { T: 1 },
+ 196: { T: -1 },
+ 197: { T: 1 },
+ 198: { T: -1 },
+ 199: { T: 1 },
+ 200: { T: -1 },
+ 201: { T: 1 },
+ 202: { T: -1 },
+ 203: { T: 1 },
+ 204: { T: -1 },
+ 205: { T: 1 },
+ 206: { T: -1 },
+ 207: { T: 1 },
+ 208: { T: -1 },
+ 209: { T: 1 },
+ 210: { T: -1 },
+ 211: { T: 1 },
+ 212: { T: -1 },
+ 213: { T: 1 },
+ 214: { T: -1 },
+ 215: { T: 1 },
+ 216: { T: -1 },
+ 217: { T: 1 },
+ 218: { T: -1 },
+ 219: { T: 1 },
+ 220: { T: -1 },
+ 221: { T: 1 },
+ 222: { T: -1 },
+ 223: { T: 1 },
+ 224: { T: -1 },
+ 225: { T: 1 },
+ 226: { T: -1 },
+ 227: { T: 1 },
+ 228: { T: -1 },
+ 229: { T: 1 },
+ 230: { T: -1 },
+ 231: { T: 1 },
+ 232: { T: -1 },
+ 233: { T: 1 },
+ 234: { T: -1 },
+ 235: { T: 1 },
+ 236: { T: -1 },
+ 237: { T: 1 },
+ 238: { T: -1 },
+ 239: { T: 1 },
+ 240: { T: -1 },
+ 241: { T: 1 },
+ 242: { T: -1 },
+ 243: { T: 1 },
+ 244: { T: -1 },
+ 245: { T: 1 },
+ 246: { T: -1 },
+ 247: { T: 1 },
+ 248: { T: -1 },
+ 249: { T: 1 },
+ 250: { T: -1 },
+ 251: { T: 1 },
+ 252: { T: -1 },
+ 253: { T: 1 },
+ 254: { T: -1 },
+ 255: { T: 1 },
+ 256: { T: -1 },
+ 257: { T: 1 },
+ 258: { T: -1 },
+ 259: { T: 1 },
+ 260: { T: -1 },
+ 261: { T: 1 },
+ 262: { T: -1 },
+ 263: { T: 1 },
+ 264: { T: -1 },
+ 265: { T: 1 },
+ 266: { T: -1 },
+ 267: { T: 1 },
+ 268: { T: -1 },
+ 269: { T: 1 },
+ 270: { T: -1 },
+ 271: { T: 1 },
+ 272: { T: -1 },
+ 273: { T: 1 },
+ 274: { T: -1 },
+ 275: { T: 1 },
+ 276: { T: -1 },
+ 277: {},
+ 278: { T: 1 },
+ 279: { T: -1 },
+ 280: { T: 1 },
+ 281: { T: -1 },
+ 282: { T: 1 },
+ 283: { T: 1 },
+ 284: { T: -1 },
+ 285: { T: 1 },
+ 286: { T: -1 },
+ 287: { T: 1 },
+ 288: { T: -1 },
+ 289: { T: 1 },
+ 290: { T: -1 },
+ 291: { T: 1 },
+ 292: { T: -1 },
+ 293: { T: 1 },
+ 294: { T: -1 },
+ 295: { T: 1 },
+ 296: { T: -1 },
+ 297: { T: 1 },
+ 298: { T: -1 },
+ 299: { T: 1 },
+ 300: { T: -1 },
+ 301: { T: 1 },
+ 302: { T: -1 },
+ 303: { T: 1 },
+ 304: { T: -1 },
+ 305: { T: 1 },
+ 306: { T: -1 },
+ 307: { T: 1 },
+ 308: { T: -1 },
+ 309: { T: 1 },
+ 310: { T: -1 },
+ 311: { T: 1 },
+ 312: { T: -1 },
+ 313: { T: -1 },
+ 314: { T: 1 },
+ 315: { T: -1 },
+ 316: { T: 1 },
+ 317: { T: -1 },
+ 318: { T: 1 },
+ 319: { T: -1 },
+ 320: { T: 1 },
+ 321: { T: -1 },
+ 322: { T: 1 },
+ 323: { T: -1 },
+ 324: { T: 1 },
+ 325: { T: -1 },
+ 326: { T: 1 },
+ 327: { T: -1 },
+ 328: { T: 1 },
+ 329: { T: -1 },
+ 330: { T: 1 },
+ 331: { T: -1 },
+ 332: { T: 1 },
+ 333: { T: -1 },
+ 334: { T: 1 },
+ 335: { f: parse_BrtMdtinfo },
+ 336: { T: -1 },
+ 337: {
+ f: parse_BrtBeginEsmdb,
+ T: 1
+ },
+ 338: { T: -1 },
+ 339: { T: 1 },
+ 340: { T: -1 },
+ 341: { T: 1 },
+ 342: { T: -1 },
+ 343: { T: 1 },
+ 344: { T: -1 },
+ 345: { T: 1 },
+ 346: { T: -1 },
+ 347: { T: 1 },
+ 348: { T: -1 },
+ 349: { T: 1 },
+ 350: { T: -1 },
+ 351: {},
+ 352: {},
+ 353: { T: 1 },
+ 354: { T: -1 },
+ 355: { f: parse_RelID },
+ 357: {},
+ 358: {},
+ 359: {},
+ 360: { T: 1 },
+ 361: {},
+ 362: { f: parse_ExternSheet },
+ 363: {},
+ 364: {},
+ 366: {},
+ 367: {},
+ 368: {},
+ 369: {},
+ 370: {},
+ 371: {},
+ 372: { T: 1 },
+ 373: { T: -1 },
+ 374: { T: 1 },
+ 375: { T: -1 },
+ 376: { T: 1 },
+ 377: { T: -1 },
+ 378: { T: 1 },
+ 379: { T: -1 },
+ 380: { T: 1 },
+ 381: { T: -1 },
+ 382: { T: 1 },
+ 383: { T: -1 },
+ 384: { T: 1 },
+ 385: { T: -1 },
+ 386: { T: 1 },
+ 387: { T: -1 },
+ 388: { T: 1 },
+ 389: { T: -1 },
+ 390: { T: 1 },
+ 391: { T: -1 },
+ 392: { T: 1 },
+ 393: { T: -1 },
+ 394: { T: 1 },
+ 395: { T: -1 },
+ 396: {},
+ 397: {},
+ 398: {},
+ 399: {},
+ 400: {},
+ 401: { T: 1 },
+ 403: {},
+ 404: {},
+ 405: {},
+ 406: {},
+ 407: {},
+ 408: {},
+ 409: {},
+ 410: {},
+ 411: {},
+ 412: {},
+ 413: {},
+ 414: {},
+ 415: {},
+ 416: {},
+ 417: {},
+ 418: {},
+ 419: {},
+ 420: {},
+ 421: {},
+ 422: { T: 1 },
+ 423: { T: 1 },
+ 424: { T: -1 },
+ 425: { T: -1 },
+ 426: { f: parse_BrtArrFmla },
+ 427: { f: parse_BrtShrFmla },
+ 428: {},
+ 429: { T: 1 },
+ 430: { T: -1 },
+ 431: { T: 1 },
+ 432: { T: -1 },
+ 433: { T: 1 },
+ 434: { T: -1 },
+ 435: { T: 1 },
+ 436: { T: -1 },
+ 437: { T: 1 },
+ 438: { T: -1 },
+ 439: { T: 1 },
+ 440: { T: -1 },
+ 441: { T: 1 },
+ 442: { T: -1 },
+ 443: { T: 1 },
+ 444: { T: -1 },
+ 445: { T: 1 },
+ 446: { T: -1 },
+ 447: { T: 1 },
+ 448: { T: -1 },
+ 449: { T: 1 },
+ 450: { T: -1 },
+ 451: { T: 1 },
+ 452: { T: -1 },
+ 453: { T: 1 },
+ 454: { T: -1 },
+ 455: { T: 1 },
+ 456: { T: -1 },
+ 457: { T: 1 },
+ 458: { T: -1 },
+ 459: { T: 1 },
+ 460: { T: -1 },
+ 461: { T: 1 },
+ 462: { T: -1 },
+ 463: { T: 1 },
+ 464: { T: -1 },
+ 465: { T: 1 },
+ 466: { T: -1 },
+ 467: { T: 1 },
+ 468: { T: -1 },
+ 469: { T: 1 },
+ 470: { T: -1 },
+ 471: {},
+ 472: {},
+ 473: { T: 1 },
+ 474: { T: -1 },
+ 475: {},
+ 476: { f: parse_BrtMargins },
+ 477: {},
+ 478: {},
+ 479: { T: 1 },
+ 480: { T: -1 },
+ 481: { T: 1 },
+ 482: { T: -1 },
+ 483: { T: 1 },
+ 484: { T: -1 },
+ 485: { f: parse_BrtWsFmtInfo },
+ 486: { T: 1 },
+ 487: { T: -1 },
+ 488: { T: 1 },
+ 489: { T: -1 },
+ 490: { T: 1 },
+ 491: { T: -1 },
+ 492: { T: 1 },
+ 493: { T: -1 },
+ 494: { f: parse_BrtHLink },
+ 495: { T: 1 },
+ 496: { T: -1 },
+ 497: { T: 1 },
+ 498: { T: -1 },
+ 499: {},
+ 500: { T: 1 },
+ 501: { T: -1 },
+ 502: { T: 1 },
+ 503: { T: -1 },
+ 504: {},
+ 505: { T: 1 },
+ 506: { T: -1 },
+ 507: {},
+ 508: { T: 1 },
+ 509: { T: -1 },
+ 510: { T: 1 },
+ 511: { T: -1 },
+ 512: {},
+ 513: {},
+ 514: { T: 1 },
+ 515: { T: -1 },
+ 516: { T: 1 },
+ 517: { T: -1 },
+ 518: { T: 1 },
+ 519: { T: -1 },
+ 520: { T: 1 },
+ 521: { T: -1 },
+ 522: {},
+ 523: {},
+ 524: {},
+ 525: {},
+ 526: {},
+ 527: {},
+ 528: { T: 1 },
+ 529: { T: -1 },
+ 530: { T: 1 },
+ 531: { T: -1 },
+ 532: { T: 1 },
+ 533: { T: -1 },
+ 534: {},
+ 535: {},
+ 536: {},
+ 537: {},
+ 538: { T: 1 },
+ 539: { T: -1 },
+ 540: { T: 1 },
+ 541: { T: -1 },
+ 542: { T: 1 },
+ 548: {},
+ 549: {},
+ 550: { f: parse_RelID },
+ 551: { f: parse_XLNullableWideString },
+ 552: {},
+ 553: {},
+ 554: { T: 1 },
+ 555: { T: -1 },
+ 556: { T: 1 },
+ 557: { T: -1 },
+ 558: { T: 1 },
+ 559: { T: -1 },
+ 560: { T: 1 },
+ 561: { T: -1 },
+ 562: {},
+ 564: {},
+ 565: { T: 1 },
+ 566: { T: -1 },
+ 569: { T: 1 },
+ 570: { T: -1 },
+ 572: {},
+ 573: { T: 1 },
+ 574: { T: -1 },
+ 577: {},
+ 578: {},
+ 579: {},
+ 580: {},
+ 581: {},
+ 582: {},
+ 583: {},
+ 584: {},
+ 585: {},
+ 586: {},
+ 587: {},
+ 588: { T: -1 },
+ 589: {},
+ 590: { T: 1 },
+ 591: { T: -1 },
+ 592: { T: 1 },
+ 593: { T: -1 },
+ 594: { T: 1 },
+ 595: { T: -1 },
+ 596: {},
+ 597: { T: 1 },
+ 598: { T: -1 },
+ 599: { T: 1 },
+ 600: { T: -1 },
+ 601: { T: 1 },
+ 602: { T: -1 },
+ 603: { T: 1 },
+ 604: { T: -1 },
+ 605: { T: 1 },
+ 606: { T: -1 },
+ 607: {},
+ 608: { T: 1 },
+ 609: { T: -1 },
+ 610: {},
+ 611: { T: 1 },
+ 612: { T: -1 },
+ 613: { T: 1 },
+ 614: { T: -1 },
+ 615: { T: 1 },
+ 616: { T: -1 },
+ 617: { T: 1 },
+ 618: { T: -1 },
+ 619: { T: 1 },
+ 620: { T: -1 },
+ 625: {},
+ 626: { T: 1 },
+ 627: { T: -1 },
+ 628: { T: 1 },
+ 629: { T: -1 },
+ 630: { T: 1 },
+ 631: { T: -1 },
+ 632: { f: parse_BrtCommentAuthor },
+ 633: { T: 1 },
+ 634: { T: -1 },
+ 635: {
+ T: 1,
+ f: parse_BrtBeginComment
+ },
+ 636: { T: -1 },
+ 637: { f: parse_BrtCommentText },
+ 638: { T: 1 },
+ 639: {},
+ 640: { T: -1 },
+ 641: { T: 1 },
+ 642: { T: -1 },
+ 643: { T: 1 },
+ 644: {},
+ 645: { T: -1 },
+ 646: { T: 1 },
+ 648: { T: 1 },
+ 649: {},
+ 650: { T: -1 },
+ 651: { f: parse_BrtCsProp },
+ 652: {},
+ 653: { T: 1 },
+ 654: { T: -1 },
+ 655: { T: 1 },
+ 656: { T: -1 },
+ 657: { T: 1 },
+ 658: { T: -1 },
+ 659: {},
+ 660: { T: 1 },
+ 661: {},
+ 662: { T: -1 },
+ 663: {},
+ 664: { T: 1 },
+ 665: {},
+ 666: { T: -1 },
+ 667: {},
+ 668: {},
+ 669: {},
+ 671: { T: 1 },
+ 672: { T: -1 },
+ 673: { T: 1 },
+ 674: { T: -1 },
+ 675: {},
+ 676: {},
+ 677: {},
+ 678: {},
+ 679: {},
+ 680: {},
+ 681: {},
+ 1024: {},
+ 1025: {},
+ 1026: { T: 1 },
+ 1027: { T: -1 },
+ 1028: { T: 1 },
+ 1029: { T: -1 },
+ 1030: {},
+ 1031: { T: 1 },
+ 1032: { T: -1 },
+ 1033: { T: 1 },
+ 1034: { T: -1 },
+ 1035: {},
+ 1036: {},
+ 1037: {},
+ 1038: { T: 1 },
+ 1039: { T: -1 },
+ 1040: {},
+ 1041: { T: 1 },
+ 1042: { T: -1 },
+ 1043: {},
+ 1044: {},
+ 1045: {},
+ 1046: { T: 1 },
+ 1047: { T: -1 },
+ 1048: { T: 1 },
+ 1049: { T: -1 },
+ 1050: {},
+ 1051: { T: 1 },
+ 1052: { T: 1 },
+ 1053: { f: parse_BrtDVal14 },
+ 1054: { T: 1 },
+ 1055: {},
+ 1056: { T: 1 },
+ 1057: { T: -1 },
+ 1058: { T: 1 },
+ 1059: { T: -1 },
+ 1061: {},
+ 1062: { T: 1 },
+ 1063: { T: -1 },
+ 1064: { T: 1 },
+ 1065: { T: -1 },
+ 1066: { T: 1 },
+ 1067: { T: -1 },
+ 1068: { T: 1 },
+ 1069: { T: -1 },
+ 1070: { T: 1 },
+ 1071: { T: -1 },
+ 1072: { T: 1 },
+ 1073: { T: -1 },
+ 1075: { T: 1 },
+ 1076: { T: -1 },
+ 1077: { T: 1 },
+ 1078: { T: -1 },
+ 1079: { T: 1 },
+ 1080: { T: -1 },
+ 1081: { T: 1 },
+ 1082: { T: -1 },
+ 1083: { T: 1 },
+ 1084: { T: -1 },
+ 1085: {},
+ 1086: { T: 1 },
+ 1087: { T: -1 },
+ 1088: { T: 1 },
+ 1089: { T: -1 },
+ 1090: { T: 1 },
+ 1091: { T: -1 },
+ 1092: { T: 1 },
+ 1093: { T: -1 },
+ 1094: { T: 1 },
+ 1095: { T: -1 },
+ 1096: {},
+ 1097: { T: 1 },
+ 1098: {},
+ 1099: { T: -1 },
+ 1100: { T: 1 },
+ 1101: { T: -1 },
+ 1102: {},
+ 1103: {},
+ 1104: {},
+ 1105: {},
+ 1111: {},
+ 1112: {},
+ 1113: { T: 1 },
+ 1114: { T: -1 },
+ 1115: { T: 1 },
+ 1116: { T: -1 },
+ 1117: {},
+ 1118: { T: 1 },
+ 1119: { T: -1 },
+ 1120: { T: 1 },
+ 1121: { T: -1 },
+ 1122: { T: 1 },
+ 1123: { T: -1 },
+ 1124: { T: 1 },
+ 1125: { T: -1 },
+ 1126: {},
+ 1128: { T: 1 },
+ 1129: { T: -1 },
+ 1130: {},
+ 1131: { T: 1 },
+ 1132: { T: -1 },
+ 1133: { T: 1 },
+ 1134: { T: -1 },
+ 1135: { T: 1 },
+ 1136: { T: -1 },
+ 1137: { T: 1 },
+ 1138: { T: -1 },
+ 1139: { T: 1 },
+ 1140: { T: -1 },
+ 1141: {},
+ 1142: { T: 1 },
+ 1143: { T: -1 },
+ 1144: { T: 1 },
+ 1145: { T: -1 },
+ 1146: {},
+ 1147: { T: 1 },
+ 1148: { T: -1 },
+ 1149: { T: 1 },
+ 1150: { T: -1 },
+ 1152: { T: 1 },
+ 1153: { T: -1 },
+ 1154: { T: -1 },
+ 1155: { T: -1 },
+ 1156: { T: -1 },
+ 1157: { T: 1 },
+ 1158: { T: -1 },
+ 1159: { T: 1 },
+ 1160: { T: -1 },
+ 1161: { T: 1 },
+ 1162: { T: -1 },
+ 1163: { T: 1 },
+ 1164: { T: -1 },
+ 1165: { T: 1 },
+ 1166: { T: -1 },
+ 1167: { T: 1 },
+ 1168: { T: -1 },
+ 1169: { T: 1 },
+ 1170: { T: -1 },
+ 1171: {},
+ 1172: { T: 1 },
+ 1173: { T: -1 },
+ 1177: {},
+ 1178: { T: 1 },
+ 1180: {},
+ 1181: {},
+ 1182: {},
+ 2048: { T: 1 },
+ 2049: { T: -1 },
+ 2050: {},
+ 2051: { T: 1 },
+ 2052: { T: -1 },
+ 2053: {},
+ 2054: {},
+ 2055: { T: 1 },
+ 2056: { T: -1 },
+ 2057: { T: 1 },
+ 2058: { T: -1 },
+ 2060: {},
+ 2067: {},
+ 2068: { T: 1 },
+ 2069: { T: -1 },
+ 2070: {},
+ 2071: {},
+ 2072: { T: 1 },
+ 2073: { T: -1 },
+ 2075: {},
+ 2076: {},
+ 2077: { T: 1 },
+ 2078: { T: -1 },
+ 2079: {},
+ 2080: { T: 1 },
+ 2081: { T: -1 },
+ 2082: {},
+ 2083: { T: 1 },
+ 2084: { T: -1 },
+ 2085: { T: 1 },
+ 2086: { T: -1 },
+ 2087: { T: 1 },
+ 2088: { T: -1 },
+ 2089: { T: 1 },
+ 2090: { T: -1 },
+ 2091: {},
+ 2092: {},
+ 2093: { T: 1 },
+ 2094: { T: -1 },
+ 2095: {},
+ 2096: { T: 1 },
+ 2097: { T: -1 },
+ 2098: { T: 1 },
+ 2099: { T: -1 },
+ 2100: { T: 1 },
+ 2101: { T: -1 },
+ 2102: {},
+ 2103: { T: 1 },
+ 2104: { T: -1 },
+ 2105: {},
+ 2106: { T: 1 },
+ 2107: { T: -1 },
+ 2108: {},
+ 2109: { T: 1 },
+ 2110: { T: -1 },
+ 2111: { T: 1 },
+ 2112: { T: -1 },
+ 2113: { T: 1 },
+ 2114: { T: -1 },
+ 2115: {},
+ 2116: {},
+ 2117: {},
+ 2118: { T: 1 },
+ 2119: { T: -1 },
+ 2120: {},
+ 2121: { T: 1 },
+ 2122: { T: -1 },
+ 2123: { T: 1 },
+ 2124: { T: -1 },
+ 2125: {},
+ 2126: { T: 1 },
+ 2127: { T: -1 },
+ 2128: {},
+ 2129: { T: 1 },
+ 2130: { T: -1 },
+ 2131: { T: 1 },
+ 2132: { T: -1 },
+ 2133: { T: 1 },
+ 2134: {},
+ 2135: {},
+ 2136: {},
+ 2137: { T: 1 },
+ 2138: { T: -1 },
+ 2139: { T: 1 },
+ 2140: { T: -1 },
+ 2141: {},
+ 3072: {},
+ 3073: {},
+ 4096: { T: 1 },
+ 4097: { T: -1 },
+ 5002: { T: 1 },
+ 5003: { T: -1 },
+ 5081: { T: 1 },
+ 5082: { T: -1 },
+ 5083: {},
+ 5084: { T: 1 },
+ 5085: { T: -1 },
+ 5086: { T: 1 },
+ 5087: { T: -1 },
+ 5088: {},
+ 5089: {},
+ 5090: {},
+ 5092: { T: 1 },
+ 5093: { T: -1 },
+ 5094: {},
+ 5095: { T: 1 },
+ 5096: { T: -1 },
+ 5097: {},
+ 5099: {},
+ 65535: { n: "" }
+ };
+ XLSRecordEnum = {
+ 6: { f: parse_Formula },
+ 10: { f: parsenoop2 },
+ 12: { f: parseuint16 },
+ 13: { f: parseuint16 },
+ 14: { f: parsebool },
+ 15: { f: parsebool },
+ 16: { f: parse_Xnum },
+ 17: { f: parsebool },
+ 18: { f: parsebool },
+ 19: { f: parseuint16 },
+ 20: { f: parse_XLHeaderFooter },
+ 21: { f: parse_XLHeaderFooter },
+ 23: { f: parse_ExternSheet },
+ 24: { f: parse_Lbl },
+ 25: { f: parsebool },
+ 26: {},
+ 27: {},
+ 28: { f: parse_Note },
+ 29: {},
+ 34: { f: parsebool },
+ 35: { f: parse_ExternName },
+ 38: { f: parse_Xnum },
+ 39: { f: parse_Xnum },
+ 40: { f: parse_Xnum },
+ 41: { f: parse_Xnum },
+ 42: { f: parsebool },
+ 43: { f: parsebool },
+ 47: { f: parse_FilePass },
+ 49: { f: parse_Font },
+ 51: { f: parseuint16 },
+ 60: {},
+ 61: { f: parse_Window1 },
+ 64: { f: parsebool },
+ 65: { f: parse_Pane },
+ 66: { f: parseuint16 },
+ 77: {},
+ 80: {},
+ 81: {},
+ 82: {},
+ 85: { f: parseuint16 },
+ 89: {},
+ 90: {},
+ 91: {},
+ 92: { f: parse_WriteAccess },
+ 93: { f: parse_Obj },
+ 94: {},
+ 95: { f: parsebool },
+ 96: {},
+ 97: {},
+ 99: { f: parsebool },
+ 125: { f: parse_ColInfo },
+ 128: { f: parse_Guts },
+ 129: { f: parse_WsBool },
+ 130: { f: parseuint16 },
+ 131: { f: parsebool },
+ 132: { f: parsebool },
+ 133: { f: parse_BoundSheet8 },
+ 134: {},
+ 140: { f: parse_Country },
+ 141: { f: parseuint16 },
+ 144: {},
+ 146: { f: parse_Palette },
+ 151: {},
+ 152: {},
+ 153: {},
+ 154: {},
+ 155: {},
+ 156: { f: parseuint16 },
+ 157: {},
+ 158: {},
+ 160: { f: parse_Scl },
+ 161: { f: parse_Setup },
+ 174: {},
+ 175: {},
+ 176: {},
+ 177: {},
+ 178: {},
+ 180: {},
+ 181: {},
+ 182: {},
+ 184: {},
+ 185: {},
+ 189: { f: parse_MulRk },
+ 190: { f: parse_MulBlank },
+ 193: { f: parsenoop2 },
+ 197: {},
+ 198: {},
+ 199: {},
+ 200: {},
+ 201: {},
+ 202: { f: parsebool },
+ 203: {},
+ 204: {},
+ 205: {},
+ 206: {},
+ 207: {},
+ 208: {},
+ 209: {},
+ 210: {},
+ 211: {},
+ 213: {},
+ 215: {},
+ 216: {},
+ 217: {},
+ 218: { f: parseuint16 },
+ 220: {},
+ 221: { f: parsebool },
+ 222: {},
+ 224: { f: parse_XF },
+ 225: { f: parse_InterfaceHdr },
+ 226: { f: parsenoop2 },
+ 227: {},
+ 229: { f: parse_MergeCells },
+ 233: {},
+ 235: {},
+ 236: {},
+ 237: {},
+ 239: {},
+ 240: {},
+ 241: {},
+ 242: {},
+ 244: {},
+ 245: {},
+ 246: {},
+ 247: {},
+ 248: {},
+ 249: {},
+ 251: {},
+ 252: { f: parse_SST },
+ 253: { f: parse_LabelSst },
+ 255: { f: parse_ExtSST },
+ 256: {},
+ 259: {},
+ 290: {},
+ 311: {},
+ 312: {},
+ 315: {},
+ 317: { f: parseuint16a },
+ 318: {},
+ 319: {},
+ 320: {},
+ 330: {},
+ 331: {},
+ 333: {},
+ 334: {},
+ 335: {},
+ 336: {},
+ 337: {},
+ 338: {},
+ 339: {},
+ 340: {},
+ 351: {},
+ 352: { f: parsebool },
+ 353: { f: parsenoop2 },
+ 401: {},
+ 402: {},
+ 403: {},
+ 404: {},
+ 405: {},
+ 406: {},
+ 407: {},
+ 408: {},
+ 425: {},
+ 426: {},
+ 427: {},
+ 428: {},
+ 429: {},
+ 430: { f: parse_SupBook },
+ 431: { f: parsebool },
+ 432: {},
+ 433: {},
+ 434: {},
+ 437: {},
+ 438: { f: parse_TxO },
+ 439: { f: parsebool },
+ 440: { f: parse_HLink },
+ 441: {},
+ 442: { f: parse_XLUnicodeString },
+ 443: {},
+ 444: { f: parseuint16 },
+ 445: {},
+ 446: {},
+ 448: { f: parsenoop2 },
+ 449: {
+ f: parse_RecalcId,
+ r: 2
+ },
+ 450: { f: parsenoop2 },
+ 512: { f: parse_Dimensions },
+ 513: { f: parse_Blank },
+ 515: { f: parse_Number },
+ 516: { f: parse_Label },
+ 517: { f: parse_BoolErr },
+ 519: { f: parse_String },
+ 520: { f: parse_Row },
+ 523: {},
+ 545: { f: parse_Array },
+ 549: { f: parse_DefaultRowHeight },
+ 566: {},
+ 574: { f: parse_Window2 },
+ 638: { f: parse_RK },
+ 659: {},
+ 1048: {},
+ 1054: { f: parse_Format },
+ 1084: {},
+ 1212: { f: parse_ShrFmla },
+ 2048: { f: parse_HLinkTooltip },
+ 2049: {},
+ 2050: {},
+ 2051: {},
+ 2052: {},
+ 2053: {},
+ 2054: {},
+ 2055: {},
+ 2056: {},
+ 2057: { f: parse_BOF },
+ 2058: {},
+ 2059: {},
+ 2060: {},
+ 2061: {},
+ 2062: {},
+ 2063: {},
+ 2064: {},
+ 2066: {},
+ 2067: {},
+ 2128: {},
+ 2129: {},
+ 2130: {},
+ 2131: {},
+ 2132: {},
+ 2133: {},
+ 2134: {},
+ 2135: {},
+ 2136: {},
+ 2137: {},
+ 2138: {},
+ 2146: {},
+ 2147: { r: 12 },
+ 2148: {},
+ 2149: {},
+ 2150: {},
+ 2151: { f: parsenoop2 },
+ 2152: {},
+ 2154: {},
+ 2155: {},
+ 2156: {},
+ 2161: {},
+ 2162: {},
+ 2164: {},
+ 2165: {},
+ 2166: {},
+ 2167: {},
+ 2168: {},
+ 2169: {},
+ 2170: {},
+ 2171: {},
+ 2172: {
+ f: parse_XFCRC,
+ r: 12
+ },
+ 2173: {
+ f: parse_XFExt,
+ r: 12
+ },
+ 2174: {},
+ 2175: {},
+ 2180: {},
+ 2181: {},
+ 2182: {},
+ 2183: {},
+ 2184: {},
+ 2185: {},
+ 2186: {},
+ 2187: {},
+ 2188: {
+ f: parsebool,
+ r: 12
+ },
+ 2189: {},
+ 2190: { r: 12 },
+ 2191: {},
+ 2192: {},
+ 2194: {},
+ 2195: {},
+ 2196: {
+ f: parse_NameCmt,
+ r: 12
+ },
+ 2197: {},
+ 2198: {
+ f: parse_Theme,
+ r: 12
+ },
+ 2199: {},
+ 2200: {},
+ 2201: {},
+ 2202: {
+ f: parse_MTRSettings,
+ r: 12
+ },
+ 2203: { f: parsenoop2 },
+ 2204: {},
+ 2205: {},
+ 2206: {},
+ 2207: {},
+ 2211: { f: parse_ForceFullCalculation },
+ 2212: {},
+ 2213: {},
+ 2214: {},
+ 2215: {},
+ 4097: {},
+ 4098: {},
+ 4099: {},
+ 4102: {},
+ 4103: {},
+ 4105: {},
+ 4106: {},
+ 4107: {},
+ 4108: {},
+ 4109: {},
+ 4116: {},
+ 4117: {},
+ 4118: {},
+ 4119: {},
+ 4120: {},
+ 4121: {},
+ 4122: {},
+ 4123: {},
+ 4124: {},
+ 4125: {},
+ 4126: {},
+ 4127: {},
+ 4128: {},
+ 4129: {},
+ 4130: {},
+ 4132: {},
+ 4133: {},
+ 4134: { f: parseuint16 },
+ 4135: {},
+ 4146: {},
+ 4147: {},
+ 4148: {},
+ 4149: {},
+ 4154: {},
+ 4156: {},
+ 4157: {},
+ 4158: {},
+ 4159: {},
+ 4160: {},
+ 4161: {},
+ 4163: {},
+ 4164: { f: parse_ShtProps },
+ 4165: {},
+ 4166: {},
+ 4168: {},
+ 4170: {},
+ 4171: {},
+ 4174: {},
+ 4175: {},
+ 4176: {},
+ 4177: {},
+ 4187: {},
+ 4188: { f: parse_ClrtClient },
+ 4189: {},
+ 4191: {},
+ 4192: {},
+ 4193: {},
+ 4194: {},
+ 4195: {},
+ 4196: {},
+ 4197: {},
+ 4198: {},
+ 4199: {},
+ 4200: {},
+ 0: { f: parse_Dimensions },
+ 1: {},
+ 2: { f: parse_BIFF2INT },
+ 3: { f: parse_BIFF2NUM },
+ 4: { f: parse_BIFF2STR },
+ 5: { f: parse_BIFF2BOOLERR },
+ 7: { f: parse_BIFF2STRING },
+ 8: {},
+ 9: { f: parse_BOF },
+ 11: {},
+ 22: { f: parseuint16 },
+ 30: { f: parse_BIFF2Format },
+ 31: {},
+ 32: {},
+ 33: { f: parse_Array },
+ 36: {},
+ 37: { f: parse_DefaultRowHeight },
+ 50: { f: parse_BIFF2FONTXTRA },
+ 62: {},
+ 52: {},
+ 67: { f: parse_BIFF2XF },
+ 68: { f: parseuint16 },
+ 69: {},
+ 86: {},
+ 126: {},
+ 127: { f: parse_ImData },
+ 135: {},
+ 136: {},
+ 137: {},
+ 143: { f: parse_BIFF4SheetInfo },
+ 145: {},
+ 148: {},
+ 149: {},
+ 150: {},
+ 169: {},
+ 171: {},
+ 188: {},
+ 191: {},
+ 192: {},
+ 194: {},
+ 195: {},
+ 214: { f: parse_RString },
+ 223: {},
+ 234: {},
+ 354: {},
+ 421: {},
+ 518: { f: parse_Formula },
+ 521: { f: parse_BOF },
+ 536: { f: parse_Lbl },
+ 547: { f: parse_ExternName },
+ 561: {},
+ 579: { f: parse_BIFF3XF },
+ 1030: { f: parse_Formula },
+ 1033: { f: parse_BOF },
+ 1091: { f: parse_BIFF4XF },
+ 2157: {},
+ 2163: {},
+ 2177: {},
+ 2240: {},
+ 2241: {},
+ 2242: {},
+ 2243: {},
+ 2244: {},
+ 2245: {},
+ 2246: {},
+ 2247: {},
+ 2248: {},
+ 2249: {},
+ 2250: {},
+ 2251: {},
+ 2262: { r: 12 },
+ 101: {},
+ 102: {},
+ 105: {},
+ 106: {},
+ 107: {},
+ 109: {},
+ 112: {},
+ 114: {},
+ 29282: {}
+ };
+ b8oid = 1, b8ocnts = [];
+ HTML_BEGIN = "SheetJS Table Export";
+ HTML_END = "";
+ write_styles_ods = /* @__PURE__ */ (function() {
+ var master_styles = [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ].join("");
+ var payload = "" + master_styles + "";
+ return function wso() {
+ return XML_HEADER + payload;
+ };
+ })();
+ write_content_ods = /* @__PURE__ */ (function() {
+ var write_text_p = function(text$2, span) {
+ return escapexml(text$2).replace(/ +/g, function($$) {
+ return "";
+ }).replace(/\t/g, "").replace(/\n/g, span ? "" : "").replace(/^ /, "").replace(/ $/, "");
+ };
+ var null_cell_xml = " \n";
+ var write_ws = function(ws, wb, i$7, opts, nfs, date1904) {
+ var o$10 = [];
+ o$10.push(" \n");
+ var R$1 = 0, C$2 = 0, range = decode_range(ws["!ref"] || "A1");
+ var marr = ws["!merges"] || [], mi = 0;
+ var dense = ws["!data"] != null;
+ if (ws["!cols"]) {
+ for (C$2 = 0; C$2 <= range.e.c; ++C$2) o$10.push(" \n");
+ }
+ var H$1 = "", ROWS = ws["!rows"] || [];
+ for (R$1 = 0; R$1 < range.s.r; ++R$1) {
+ H$1 = ROWS[R$1] ? " table:style-name=\"ro" + ROWS[R$1].ods + "\"" : "";
+ o$10.push(" \n");
+ }
+ for (; R$1 <= range.e.r; ++R$1) {
+ H$1 = ROWS[R$1] ? " table:style-name=\"ro" + ROWS[R$1].ods + "\"" : "";
+ o$10.push(" \n");
+ for (C$2 = 0; C$2 < range.s.c; ++C$2) o$10.push(null_cell_xml);
+ for (; C$2 <= range.e.c; ++C$2) {
+ var skip = false, ct = {}, textp = "";
+ for (mi = 0; mi != marr.length; ++mi) {
+ if (marr[mi].s.c > C$2) continue;
+ if (marr[mi].s.r > R$1) continue;
+ if (marr[mi].e.c < C$2) continue;
+ if (marr[mi].e.r < R$1) continue;
+ if (marr[mi].s.c != C$2 || marr[mi].s.r != R$1) skip = true;
+ ct["table:number-columns-spanned"] = marr[mi].e.c - marr[mi].s.c + 1;
+ ct["table:number-rows-spanned"] = marr[mi].e.r - marr[mi].s.r + 1;
+ break;
+ }
+ if (skip) {
+ o$10.push(" \n");
+ continue;
+ }
+ var ref = encode_cell({
+ r: R$1,
+ c: C$2
+ }), cell = dense ? (ws["!data"][R$1] || [])[C$2] : ws[ref];
+ if (cell && cell.f) {
+ ct["table:formula"] = escapexml(csf_to_ods_formula(cell.f));
+ if (cell.F) {
+ if (cell.F.slice(0, ref.length) == ref) {
+ var _Fref = decode_range(cell.F);
+ ct["table:number-matrix-columns-spanned"] = _Fref.e.c - _Fref.s.c + 1;
+ ct["table:number-matrix-rows-spanned"] = _Fref.e.r - _Fref.s.r + 1;
+ }
+ }
+ }
+ if (!cell) {
+ o$10.push(null_cell_xml);
+ continue;
+ }
+ switch (cell.t) {
+ case "b":
+ textp = cell.v ? "TRUE" : "FALSE";
+ ct["office:value-type"] = "boolean";
+ ct["office:boolean-value"] = cell.v ? "true" : "false";
+ break;
+ case "n":
+ if (!isFinite(cell.v)) {
+ if (isNaN(cell.v)) {
+ textp = "#NUM!";
+ ct["table:formula"] = "of:=#NUM!";
+ } else {
+ textp = "#DIV/0!";
+ ct["table:formula"] = "of:=" + (cell.v < 0 ? "-" : "") + "1/0";
+ }
+ ct["office:string-value"] = "";
+ ct["office:value-type"] = "string";
+ ct["calcext:value-type"] = "error";
+ } else {
+ textp = cell.w || String(cell.v || 0);
+ ct["office:value-type"] = "float";
+ ct["office:value"] = cell.v || 0;
+ }
+ break;
+ case "s":
+ case "str":
+ textp = cell.v == null ? "" : cell.v;
+ ct["office:value-type"] = "string";
+ break;
+ case "d":
+ textp = cell.w || parseDate(cell.v, date1904).toISOString();
+ ct["office:value-type"] = "date";
+ ct["office:date-value"] = parseDate(cell.v, date1904).toISOString();
+ ct["table:style-name"] = "ce1";
+ break;
+ default:
+ o$10.push(null_cell_xml);
+ continue;
+ }
+ var text_p = write_text_p(textp);
+ if (cell.l && cell.l.Target) {
+ var _tgt = cell.l.Target;
+ _tgt = _tgt.charAt(0) == "#" ? "#" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;
+ if (_tgt.charAt(0) != "#" && !_tgt.match(/^\w+:/)) _tgt = "../" + _tgt;
+ text_p = writextag("text:a", text_p, { "xlink:href": _tgt.replace(/&/g, "&") });
+ }
+ if (nfs[cell.z]) ct["table:style-name"] = "ce" + nfs[cell.z].slice(1);
+ var payload = writextag("text:p", text_p, {});
+ if (cell.c) {
+ var acreator = "", apayload = "", aprops = {};
+ for (var ci = 0; ci < cell.c.length; ++ci) {
+ if (!acreator && cell.c[ci].a) acreator = cell.c[ci].a;
+ apayload += "" + write_text_p(cell.c[ci].t) + "";
+ }
+ if (!cell.c.hidden) aprops["office:display"] = true;
+ payload = writextag("office:annotation", apayload, aprops) + payload;
+ }
+ o$10.push(" " + writextag("table:table-cell", payload, ct) + "\n");
+ }
+ o$10.push(" \n");
+ }
+ if ((wb.Workbook || {}).Names) o$10.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i$7));
+ o$10.push(" \n");
+ return o$10.join("");
+ };
+ var write_automatic_styles_ods = function(o$10, wb) {
+ o$10.push(" \n");
+ var cidx = 0;
+ wb.SheetNames.map(function(n$9) {
+ return wb.Sheets[n$9];
+ }).forEach(function(ws) {
+ if (!ws) return;
+ if (ws["!cols"]) {
+ for (var C$2 = 0; C$2 < ws["!cols"].length; ++C$2) if (ws["!cols"][C$2]) {
+ var colobj = ws["!cols"][C$2];
+ if (colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;
+ process_col(colobj);
+ colobj.ods = cidx;
+ var w$2 = ws["!cols"][C$2].wpx + "px";
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ ++cidx;
+ }
+ }
+ });
+ var ridx = 0;
+ wb.SheetNames.map(function(n$9) {
+ return wb.Sheets[n$9];
+ }).forEach(function(ws) {
+ if (!ws) return;
+ if (ws["!rows"]) {
+ for (var R$1 = 0; R$1 < ws["!rows"].length; ++R$1) if (ws["!rows"][R$1]) {
+ ws["!rows"][R$1].ods = ridx;
+ var h$5 = ws["!rows"][R$1].hpx + "px";
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ ++ridx;
+ }
+ }
+ });
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ o$10.push(" /\n");
+ o$10.push(" \n");
+ o$10.push(" /\n");
+ o$10.push(" \n");
+ o$10.push(" \n");
+ var nfs = {};
+ var nfi = 69;
+ wb.SheetNames.map(function(n$9) {
+ return wb.Sheets[n$9];
+ }).forEach(function(ws) {
+ if (!ws) return;
+ var dense = ws["!data"] != null;
+ if (!ws["!ref"]) return;
+ var range = decode_range(ws["!ref"]);
+ for (var R$1 = 0; R$1 <= range.e.r; ++R$1) for (var C$2 = 0; C$2 <= range.e.c; ++C$2) {
+ var c$7 = dense ? (ws["!data"][R$1] || [])[C$2] : ws[encode_cell({
+ r: R$1,
+ c: C$2
+ })];
+ if (!c$7 || !c$7.z || c$7.z.toLowerCase() == "general") continue;
+ if (!nfs[c$7.z]) {
+ var out = write_number_format_ods(c$7.z, "N" + nfi);
+ if (out) {
+ nfs[c$7.z] = "N" + nfi;
+ ++nfi;
+ o$10.push(out + "\n");
+ }
+ }
+ }
+ });
+ o$10.push(" \n");
+ keys(nfs).forEach(function(nf) {
+ o$10.push("\n");
+ });
+ o$10.push(" \n");
+ return nfs;
+ };
+ return function wcx(wb, opts) {
+ var o$10 = [XML_HEADER];
+ var attr = wxt_helper({
+ "xmlns:office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
+ "xmlns:table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0",
+ "xmlns:style": "urn:oasis:names:tc:opendocument:xmlns:style:1.0",
+ "xmlns:text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
+ "xmlns:draw": "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0",
+ "xmlns:fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
+ "xmlns:dc": "http://purl.org/dc/elements/1.1/",
+ "xmlns:meta": "urn:oasis:names:tc:opendocument:xmlns:meta:1.0",
+ "xmlns:number": "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0",
+ "xmlns:presentation": "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0",
+ "xmlns:svg": "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0",
+ "xmlns:chart": "urn:oasis:names:tc:opendocument:xmlns:chart:1.0",
+ "xmlns:dr3d": "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0",
+ "xmlns:math": "http://www.w3.org/1998/Math/MathML",
+ "xmlns:form": "urn:oasis:names:tc:opendocument:xmlns:form:1.0",
+ "xmlns:script": "urn:oasis:names:tc:opendocument:xmlns:script:1.0",
+ "xmlns:ooo": "http://openoffice.org/2004/office",
+ "xmlns:ooow": "http://openoffice.org/2004/writer",
+ "xmlns:oooc": "http://openoffice.org/2004/calc",
+ "xmlns:dom": "http://www.w3.org/2001/xml-events",
+ "xmlns:xforms": "http://www.w3.org/2002/xforms",
+ "xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
+ "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
+ "xmlns:sheet": "urn:oasis:names:tc:opendocument:sh33tjs:1.0",
+ "xmlns:rpt": "http://openoffice.org/2005/report",
+ "xmlns:of": "urn:oasis:names:tc:opendocument:xmlns:of:1.2",
+ "xmlns:xhtml": "http://www.w3.org/1999/xhtml",
+ "xmlns:grddl": "http://www.w3.org/2003/g/data-view#",
+ "xmlns:tableooo": "http://openoffice.org/2009/table",
+ "xmlns:drawooo": "http://openoffice.org/2010/draw",
+ "xmlns:calcext": "urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0",
+ "xmlns:loext": "urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0",
+ "xmlns:field": "urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0",
+ "xmlns:formx": "urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0",
+ "xmlns:css3t": "http://www.w3.org/TR/css3-text/",
+ "office:version": "1.2"
+ });
+ var fods = wxt_helper({
+ "xmlns:config": "urn:oasis:names:tc:opendocument:xmlns:config:1.0",
+ "office:mimetype": "application/vnd.oasis.opendocument.spreadsheet"
+ });
+ if (opts.bookType == "fods") {
+ o$10.push("\n");
+ o$10.push(write_meta_ods().replace(/]*?>/, "").replace(/<\/office:document-meta>/, "") + "\n");
+ } else o$10.push("\n");
+ var nfs = write_automatic_styles_ods(o$10, wb);
+ o$10.push(" \n");
+ o$10.push(" \n");
+ if (((wb.Workbook || {}).WBProps || {}).date1904) o$10.push(" \n \n \n");
+ for (var i$7 = 0; i$7 != wb.SheetNames.length; ++i$7) o$10.push(write_ws(wb.Sheets[wb.SheetNames[i$7]], wb, i$7, opts, nfs, ((wb.Workbook || {}).WBProps || {}).date1904));
+ if ((wb.Workbook || {}).Names) o$10.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));
+ o$10.push(" \n");
+ o$10.push(" \n");
+ if (opts.bookType == "fods") o$10.push("");
+ else o$10.push("");
+ return o$10.join("");
+ };
+ })();
+ subarray = function() {
+ try {
+ if (typeof Uint8Array == "undefined") return "slice";
+ if (typeof Uint8Array.prototype.subarray == "undefined") return "slice";
+ if (typeof Buffer !== "undefined") {
+ if (typeof Buffer.prototype.subarray == "undefined") return "slice";
+ if ((typeof Buffer.from == "function" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array) return "subarray";
+ return "slice";
+ }
+ return "subarray";
+ } catch (e$10) {
+ return "slice";
+ }
+ }();
+ numbers_lut_new = function() {
+ return {
+ sst: [],
+ rsst: [],
+ ofmt: [],
+ nfmt: [],
+ fmla: [],
+ ferr: [],
+ cmnt: []
+ };
+ };
+ USE_WIDE_ROWS = true;
+ qreg = /"/g;
+ utils$1 = {
+ encode_col,
+ encode_row,
+ encode_cell,
+ encode_range,
+ decode_col,
+ decode_row,
+ split_cell,
+ decode_cell,
+ decode_range,
+ format_cell,
+ sheet_new,
+ sheet_add_aoa,
+ sheet_add_json,
+ sheet_add_dom,
+ aoa_to_sheet,
+ json_to_sheet,
+ table_to_sheet: parse_dom_table,
+ table_to_book,
+ sheet_to_csv,
+ sheet_to_txt,
+ sheet_to_json,
+ sheet_to_html,
+ sheet_to_formulae,
+ sheet_to_row_object_array: sheet_to_json,
+ sheet_get_cell: ws_get_cell_stub,
+ book_new,
+ book_append_sheet,
+ book_set_sheet_visibility,
+ cell_set_number_format,
+ cell_set_hyperlink,
+ cell_set_internal_link,
+ cell_add_comment,
+ sheet_set_array_formula,
+ consts: {
+ SHEET_VISIBLE: 0,
+ SHEET_HIDDEN: 1,
+ SHEET_VERY_HIDDEN: 2
+ }
+ };
+ ;
+ __stream = {
+ to_json: write_json_stream,
+ to_html: write_html_stream,
+ to_csv: write_csv_stream,
+ to_xlml: write_xlml_stream,
+ set_readable
+ };
+ version$3 = XLSX.version;
+ xlsx_default = {
+ parse_xlscfb,
+ parse_zip,
+ read: readSync,
+ readFile: readFileSync,
+ readFileSync,
+ write: writeSync,
+ writeFile: writeFileSync,
+ writeFileSync,
+ writeFileAsync,
+ writeXLSX: writeSyncXLSX,
+ writeFileXLSX: writeFileSyncXLSX,
+ utils: utils$1,
+ set_fs,
+ set_cptable,
+ stream: __stream,
+ SSF,
+ CFB
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/utils/attachment-utils.js
+/**
+* Load an attachment from various sources
+* @param source - URL string, File, Blob, or ArrayBuffer
+* @param fileName - Optional filename override
+* @returns Promise
+* @throws Error if loading fails
+*/
+async function loadAttachment(source$4, fileName) {
+ let arrayBuffer;
+ let detectedFileName = fileName || "unnamed";
+ let mimeType = "application/octet-stream";
+ let size = 0;
+ if (typeof source$4 === "string") {
+ const response = await fetch(source$4);
+ if (!response.ok) {
+ throw new Error(i18n("Failed to fetch file"));
+ }
+ arrayBuffer = await response.arrayBuffer();
+ size = arrayBuffer.byteLength;
+ mimeType = response.headers.get("content-type") || mimeType;
+ if (!fileName) {
+ const urlParts = source$4.split("/");
+ detectedFileName = urlParts[urlParts.length - 1] || "document";
+ }
+ } else if (source$4 instanceof File) {
+ arrayBuffer = await source$4.arrayBuffer();
+ size = source$4.size;
+ mimeType = source$4.type || mimeType;
+ detectedFileName = fileName || source$4.name;
+ } else if (source$4 instanceof Blob) {
+ arrayBuffer = await source$4.arrayBuffer();
+ size = source$4.size;
+ mimeType = source$4.type || mimeType;
+ } else if (source$4 instanceof ArrayBuffer) {
+ arrayBuffer = source$4;
+ size = source$4.byteLength;
+ } else {
+ throw new Error(i18n("Invalid source type"));
+ }
+ const uint8Array = new Uint8Array(arrayBuffer);
+ let binary = "";
+ const chunkSize = 32768;
+ for (let i$7 = 0; i$7 < uint8Array.length; i$7 += chunkSize) {
+ const chunk = uint8Array.slice(i$7, i$7 + chunkSize);
+ binary += String.fromCharCode(...chunk);
+ }
+ const base64Content = btoa(binary);
+ const id = `${detectedFileName}_${Date.now()}_${Math.random()}`;
+ if (mimeType === "application/pdf" || detectedFileName.toLowerCase().endsWith(".pdf")) {
+ const { extractedText, preview } = await processPdf(arrayBuffer, detectedFileName);
+ return {
+ id,
+ type: "document",
+ fileName: detectedFileName,
+ mimeType: "application/pdf",
+ size,
+ content: base64Content,
+ extractedText,
+ preview
+ };
+ }
+ if (mimeType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" || detectedFileName.toLowerCase().endsWith(".docx")) {
+ const { extractedText } = await processDocx(arrayBuffer, detectedFileName);
+ return {
+ id,
+ type: "document",
+ fileName: detectedFileName,
+ mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+ size,
+ content: base64Content,
+ extractedText
+ };
+ }
+ if (mimeType === "application/vnd.openxmlformats-officedocument.presentationml.presentation" || detectedFileName.toLowerCase().endsWith(".pptx")) {
+ const { extractedText } = await processPptx(arrayBuffer, detectedFileName);
+ return {
+ id,
+ type: "document",
+ fileName: detectedFileName,
+ mimeType: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
+ size,
+ content: base64Content,
+ extractedText
+ };
+ }
+ const excelMimeTypes = ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-excel"];
+ if (excelMimeTypes.includes(mimeType) || detectedFileName.toLowerCase().endsWith(".xlsx") || detectedFileName.toLowerCase().endsWith(".xls")) {
+ const { extractedText } = await processExcel(arrayBuffer, detectedFileName);
+ return {
+ id,
+ type: "document",
+ fileName: detectedFileName,
+ mimeType: mimeType.startsWith("application/vnd") ? mimeType : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+ size,
+ content: base64Content,
+ extractedText
+ };
+ }
+ if (mimeType.startsWith("image/")) {
+ return {
+ id,
+ type: "image",
+ fileName: detectedFileName,
+ mimeType,
+ size,
+ content: base64Content,
+ preview: base64Content
+ };
+ }
+ const textExtensions = [
+ ".txt",
+ ".md",
+ ".json",
+ ".xml",
+ ".html",
+ ".css",
+ ".js",
+ ".ts",
+ ".jsx",
+ ".tsx",
+ ".yml",
+ ".yaml"
+ ];
+ const isTextFile = mimeType.startsWith("text/") || textExtensions.some((ext) => detectedFileName.toLowerCase().endsWith(ext));
+ if (isTextFile) {
+ const decoder = new TextDecoder();
+ const text$2 = decoder.decode(arrayBuffer);
+ return {
+ id,
+ type: "document",
+ fileName: detectedFileName,
+ mimeType: mimeType.startsWith("text/") ? mimeType : "text/plain",
+ size,
+ content: base64Content,
+ extractedText: text$2
+ };
+ }
+ throw new Error(`Unsupported file type: ${mimeType}`);
+}
+async function processPdf(arrayBuffer, fileName) {
+ let pdf = null;
+ try {
+ pdf = await getDocument({ data: arrayBuffer }).promise;
+ let extractedText = ``;
+ for (let i$7 = 1; i$7 <= pdf.numPages; i$7++) {
+ const page = await pdf.getPage(i$7);
+ const textContent = await page.getTextContent();
+ const pageText = textContent.items.map((item) => item.str).filter((str) => str.trim()).join(" ");
+ extractedText += `\n\n${pageText}\n`;
+ }
+ extractedText += "\n";
+ const preview = await generatePdfPreview(pdf);
+ return {
+ extractedText,
+ preview
+ };
+ } catch (error$2) {
+ console.error("Error processing PDF:", error$2);
+ throw new Error(`Failed to process PDF: ${String(error$2)}`);
+ } finally {
+ if (pdf) {
+ pdf.destroy();
+ }
+ }
+}
+async function generatePdfPreview(pdf) {
+ try {
+ const page = await pdf.getPage(1);
+ const viewport = page.getViewport({ scale: 1 });
+ const scale = Math.min(160 / viewport.width, 160 / viewport.height);
+ const scaledViewport = page.getViewport({ scale });
+ const canvas = document.createElement("canvas");
+ const context = canvas.getContext("2d");
+ if (!context) {
+ return undefined;
+ }
+ canvas.height = scaledViewport.height;
+ canvas.width = scaledViewport.width;
+ const renderContext = {
+ canvasContext: context,
+ viewport: scaledViewport,
+ canvas
+ };
+ await page.render(renderContext).promise;
+ return canvas.toDataURL("image/png").split(",")[1];
+ } catch (error$2) {
+ console.error("Error generating PDF preview:", error$2);
+ return undefined;
+ }
+}
+async function processDocx(arrayBuffer, fileName) {
+ try {
+ const wordDoc = await parseAsync(arrayBuffer);
+ let extractedText = `\n\n`;
+ const body = wordDoc.documentPart?.body;
+ if (body?.children) {
+ const texts = [];
+ for (const element of body.children) {
+ const text$2 = extractTextFromElement(element);
+ if (text$2) {
+ texts.push(text$2);
+ }
+ }
+ extractedText += texts.join("\n");
+ }
+ extractedText += `\n\n`;
+ return { extractedText };
+ } catch (error$2) {
+ console.error("Error processing DOCX:", error$2);
+ throw new Error(`Failed to process DOCX: ${String(error$2)}`);
+ }
+}
+function extractTextFromElement(element) {
+ let text$2 = "";
+ const elementType = element.type?.toLowerCase() || "";
+ if (elementType === "paragraph" && element.children) {
+ for (const child of element.children) {
+ const childType = child.type?.toLowerCase() || "";
+ if (childType === "run" && child.children) {
+ for (const textChild of child.children) {
+ const textType = textChild.type?.toLowerCase() || "";
+ if (textType === "text") {
+ text$2 += textChild.text || "";
+ }
+ }
+ } else if (childType === "text") {
+ text$2 += child.text || "";
+ }
+ }
+ } else if (elementType === "table") {
+ if (element.children) {
+ const tableTexts = [];
+ for (const row of element.children) {
+ const rowType = row.type?.toLowerCase() || "";
+ if (rowType === "tablerow" && row.children) {
+ const rowTexts = [];
+ for (const cell of row.children) {
+ const cellType = cell.type?.toLowerCase() || "";
+ if (cellType === "tablecell" && cell.children) {
+ const cellTexts = [];
+ for (const cellElement of cell.children) {
+ const cellText = extractTextFromElement(cellElement);
+ if (cellText) cellTexts.push(cellText);
+ }
+ if (cellTexts.length > 0) rowTexts.push(cellTexts.join(" "));
+ }
+ }
+ if (rowTexts.length > 0) tableTexts.push(rowTexts.join(" | "));
+ }
+ }
+ if (tableTexts.length > 0) {
+ text$2 = "\n[Table]\n" + tableTexts.join("\n") + "\n[/Table]\n";
+ }
+ }
+ } else if (element.children && Array.isArray(element.children)) {
+ const childTexts = [];
+ for (const child of element.children) {
+ const childText = extractTextFromElement(child);
+ if (childText) childTexts.push(childText);
+ }
+ text$2 = childTexts.join(" ");
+ }
+ return text$2.trim();
+}
+async function processPptx(arrayBuffer, fileName) {
+ try {
+ const zip = await import_jszip_min.default.loadAsync(arrayBuffer);
+ let extractedText = ``;
+ const slideFiles = Object.keys(zip.files).filter((name) => name.match(/ppt\/slides\/slide\d+\.xml$/)).sort((a$2, b$3) => {
+ const numA = Number.parseInt(a$2.match(/slide(\d+)\.xml$/)?.[1] || "0", 10);
+ const numB = Number.parseInt(b$3.match(/slide(\d+)\.xml$/)?.[1] || "0", 10);
+ return numA - numB;
+ });
+ for (let i$7 = 0; i$7 < slideFiles.length; i$7++) {
+ const slideFile = zip.file(slideFiles[i$7]);
+ if (slideFile) {
+ const slideXml = await slideFile.async("text");
+ const textMatches = slideXml.match(/]*>([^<]+)<\/a:t>/g);
+ if (textMatches) {
+ extractedText += `\n`;
+ const slideTexts = textMatches.map((match) => {
+ const textMatch = match.match(/]*>([^<]+)<\/a:t>/);
+ return textMatch ? textMatch[1] : "";
+ }).filter((t$6) => t$6.trim());
+ if (slideTexts.length > 0) {
+ extractedText += "\n" + slideTexts.join("\n");
+ }
+ extractedText += "\n";
+ }
+ }
+ }
+ const notesFiles = Object.keys(zip.files).filter((name) => name.match(/ppt\/notesSlides\/notesSlide\d+\.xml$/)).sort((a$2, b$3) => {
+ const numA = Number.parseInt(a$2.match(/notesSlide(\d+)\.xml$/)?.[1] || "0", 10);
+ const numB = Number.parseInt(b$3.match(/notesSlide(\d+)\.xml$/)?.[1] || "0", 10);
+ return numA - numB;
+ });
+ if (notesFiles.length > 0) {
+ extractedText += "\n";
+ for (const noteFile of notesFiles) {
+ const file = zip.file(noteFile);
+ if (file) {
+ const noteXml = await file.async("text");
+ const textMatches = noteXml.match(/]*>([^<]+)<\/a:t>/g);
+ if (textMatches) {
+ const noteTexts = textMatches.map((match) => {
+ const textMatch = match.match(/]*>([^<]+)<\/a:t>/);
+ return textMatch ? textMatch[1] : "";
+ }).filter((t$6) => t$6.trim());
+ if (noteTexts.length > 0) {
+ const slideNum = noteFile.match(/notesSlide(\d+)\.xml$/)?.[1];
+ extractedText += `\n[Slide ${slideNum} notes]: ${noteTexts.join(" ")}`;
+ }
+ }
+ }
+ }
+ extractedText += "\n";
+ }
+ extractedText += "\n";
+ return { extractedText };
+ } catch (error$2) {
+ console.error("Error processing PPTX:", error$2);
+ throw new Error(`Failed to process PPTX: ${String(error$2)}`);
+ }
+}
+async function processExcel(arrayBuffer, fileName) {
+ try {
+ const workbook = readSync(arrayBuffer, { type: "array" });
+ let extractedText = ``;
+ for (const [index, sheetName] of workbook.SheetNames.entries()) {
+ const worksheet = workbook.Sheets[sheetName];
+ const csvText = utils$1.sheet_to_csv(worksheet);
+ extractedText += `\n\n${csvText}\n`;
+ }
+ extractedText += "\n";
+ return { extractedText };
+ } catch (error$2) {
+ console.error("Error processing Excel:", error$2);
+ throw new Error(`Failed to process Excel: ${String(error$2)}`);
+ }
+}
+var import_jszip_min;
+var init_attachment_utils = __esmMin((() => {
+ init_docx_preview();
+ import_jszip_min = /* @__PURE__ */ __toESM(require_jszip_min(), 1);
+ init_pdf();
+ init_xlsx();
+ init_i18n();
+ GlobalWorkerOptions.workerSrc = new URL("pdfjs-dist/build/pdf.worker.min.mjs", import.meta.url).toString();
+}));
+
+//#endregion
+//#region node_modules/.pnpm/lit@3.3.1/node_modules/lit/html.js
+var init_html = __esmMin((() => {
+ init_lit_html();
+}));
+
+//#endregion
+//#region node_modules/.pnpm/@mariozechner+mini-lit@0.2.1_lit@3.3.1_tailwindcss@4.1.17/node_modules/@mariozechner/mini-lit/dist/ModeToggle.js
+var __decorate$26, ModeToggle;
+var init_ModeToggle = __esmMin((() => {
+ init_lit();
+ init_decorators();
+ init_i18n$1();
+ __decorate$26 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
+ var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
+ else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
+ return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
+ };
+ ModeToggle = class ModeToggle$1 extends i {
+ constructor() {
+ super(...arguments);
+ this.modes = [i18n("Mode 1"), i18n("Mode 2")];
+ this.selectedIndex = 0;
+ }
+ createRenderRoot() {
+ return this;
+ }
+ setMode(index) {
+ if (this.selectedIndex !== index && index >= 0 && index < this.modes.length) {
+ this.selectedIndex = index;
+ this.dispatchEvent(new CustomEvent("mode-change", {
+ detail: {
+ index,
+ mode: this.modes[index]
+ },
+ bubbles: true
+ }));
+ }
+ }
+ render() {
+ if (this.modes.length < 2) return x``;
+ return x`
+
+ ${this.modes.map((mode, index) => x`
+
+ `)}
+
+ `;
+ }
+ };
+ __decorate$26([n$1({ type: Array })], ModeToggle.prototype, "modes", void 0);
+ __decorate$26([n$1({ type: Number })], ModeToggle.prototype, "selectedIndex", void 0);
+ ModeToggle = __decorate$26([t("mode-toggle")], ModeToggle);
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/dialogs/AttachmentOverlay.js
+var __decorate$25, AttachmentOverlay;
+var init_AttachmentOverlay = __esmMin((() => {
+ init_ModeToggle();
+ init_dist();
+ init_Button();
+ init_docx_preview();
+ init_lit();
+ init_decorators();
+ init_lucide();
+ init_pdf();
+ init_xlsx();
+ init_i18n();
+ __decorate$25 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
+ var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
+ else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
+ return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
+ };
+ AttachmentOverlay = class AttachmentOverlay extends i {
+ constructor() {
+ super(...arguments);
+ this.showExtractedText = false;
+ this.error = null;
+ this.currentLoadingTask = null;
+ this.handleBackdropClick = () => {
+ this.close();
+ };
+ this.handleDownload = () => {
+ if (!this.attachment) return;
+ const byteCharacters = atob(this.attachment.content);
+ const byteNumbers = new Array(byteCharacters.length);
+ for (let i$7 = 0; i$7 < byteCharacters.length; i$7++) {
+ byteNumbers[i$7] = byteCharacters.charCodeAt(i$7);
+ }
+ const byteArray = new Uint8Array(byteNumbers);
+ const blob = new Blob([byteArray], { type: this.attachment.mimeType });
+ const url = URL.createObjectURL(blob);
+ const a$2 = document.createElement("a");
+ a$2.href = url;
+ a$2.download = this.attachment.fileName;
+ document.body.appendChild(a$2);
+ a$2.click();
+ document.body.removeChild(a$2);
+ URL.revokeObjectURL(url);
+ };
+ }
+ createRenderRoot() {
+ return this;
+ }
+ static open(attachment, onClose) {
+ const overlay = new AttachmentOverlay();
+ overlay.attachment = attachment;
+ overlay.onCloseCallback = onClose;
+ document.body.appendChild(overlay);
+ overlay.setupEventListeners();
+ }
+ setupEventListeners() {
+ this.boundHandleKeyDown = (e$10) => {
+ if (e$10.key === "Escape") {
+ this.close();
+ }
+ };
+ window.addEventListener("keydown", this.boundHandleKeyDown);
+ }
+ close() {
+ this.cleanup();
+ if (this.boundHandleKeyDown) {
+ window.removeEventListener("keydown", this.boundHandleKeyDown);
+ }
+ this.onCloseCallback?.();
+ this.remove();
+ }
+ getFileType() {
+ if (!this.attachment) return "text";
+ if (this.attachment.type === "image") return "image";
+ if (this.attachment.mimeType === "application/pdf") return "pdf";
+ if (this.attachment.mimeType?.includes("wordprocessingml")) return "docx";
+ if (this.attachment.mimeType?.includes("presentationml") || this.attachment.fileName.toLowerCase().endsWith(".pptx")) return "pptx";
+ if (this.attachment.mimeType?.includes("spreadsheetml") || this.attachment.mimeType?.includes("ms-excel") || this.attachment.fileName.toLowerCase().endsWith(".xlsx") || this.attachment.fileName.toLowerCase().endsWith(".xls")) return "excel";
+ return "text";
+ }
+ getFileTypeLabel() {
+ const type = this.getFileType();
+ switch (type) {
+ case "pdf": return i18n("PDF");
+ case "docx": return i18n("Document");
+ case "pptx": return i18n("Presentation");
+ case "excel": return i18n("Spreadsheet");
+ default: return "";
+ }
+ }
+ cleanup() {
+ this.showExtractedText = false;
+ this.error = null;
+ if (this.currentLoadingTask) {
+ this.currentLoadingTask.destroy();
+ this.currentLoadingTask = null;
+ }
+ }
+ render() {
+ if (!this.attachment) return x``;
+ return x`
+
+
+
+
e$10.stopPropagation()}>
+
+
+ ${this.attachment.fileName}
+
+
+ ${this.renderToggle()}
+ ${Button({
+ variant: "ghost",
+ size: "icon",
+ onClick: this.handleDownload,
+ children: icon(Download, "sm"),
+ className: "h-8 w-8"
+ })}
+ ${Button({
+ variant: "ghost",
+ size: "icon",
+ onClick: () => this.close(),
+ children: icon(X, "sm"),
+ className: "h-8 w-8"
+ })}
+
+
+
+
+
+
e$10.stopPropagation()}>
+ ${this.renderContent()}
+
+
+ `;
+ }
+ renderToggle() {
+ if (!this.attachment) return x``;
+ const fileType = this.getFileType();
+ const hasExtractedText = !!this.attachment.extractedText;
+ const showToggle = fileType !== "image" && fileType !== "text" && fileType !== "pptx" && hasExtractedText;
+ if (!showToggle) return x``;
+ const fileTypeLabel = this.getFileTypeLabel();
+ return x`
+ {
+ e$10.stopPropagation();
+ this.showExtractedText = e$10.detail.index === 1;
+ this.error = null;
+ }}
+ >
+ `;
+ }
+ renderContent() {
+ if (!this.attachment) return x``;
+ if (this.error) {
+ return x`
+
+
${i18n("Error loading file")}
+
${this.error}
+
+ `;
+ }
+ return this.renderFileContent();
+ }
+ renderFileContent() {
+ if (!this.attachment) return x``;
+ const fileType = this.getFileType();
+ if (this.showExtractedText && fileType !== "image") {
+ return x`
+
+
${this.attachment.extractedText || i18n("No text content available")}
+
+ `;
+ }
+ switch (fileType) {
+ case "image": {
+ const imageUrl = `data:${this.attachment.mimeType};base64,${this.attachment.content}`;
+ return x`
+
+ `;
+ }
+ case "pdf": return x`
+
+ `;
+ case "docx": return x`
+
+ `;
+ case "excel": return x` `;
+ case "pptx": return x`
+
+ `;
+ default: return x`
+
+
${this.attachment.extractedText || i18n("No content available")}
+
+ `;
+ }
+ }
+ async updated(changedProperties) {
+ super.updated(changedProperties);
+ if ((changedProperties.has("attachment") || changedProperties.has("showExtractedText")) && this.attachment && !this.showExtractedText && !this.error) {
+ const fileType = this.getFileType();
+ switch (fileType) {
+ case "pdf":
+ await this.renderPdf();
+ break;
+ case "docx":
+ await this.renderDocx();
+ break;
+ case "excel":
+ await this.renderExcel();
+ break;
+ case "pptx":
+ await this.renderExtractedText();
+ break;
+ }
+ }
+ }
+ async renderPdf() {
+ const container = this.querySelector("#pdf-container");
+ if (!container || !this.attachment) return;
+ let pdf = null;
+ try {
+ const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
+ if (this.currentLoadingTask) {
+ this.currentLoadingTask.destroy();
+ }
+ this.currentLoadingTask = getDocument({ data: arrayBuffer });
+ pdf = await this.currentLoadingTask.promise;
+ this.currentLoadingTask = null;
+ container.innerHTML = "";
+ const wrapper = document.createElement("div");
+ wrapper.className = "";
+ container.appendChild(wrapper);
+ for (let pageNum = 1; pageNum <= pdf.numPages; pageNum++) {
+ const page = await pdf.getPage(pageNum);
+ const pageContainer = document.createElement("div");
+ pageContainer.className = "mb-4 last:mb-0";
+ const canvas = document.createElement("canvas");
+ const context = canvas.getContext("2d");
+ const viewport = page.getViewport({ scale: 1.5 });
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+ canvas.className = "w-full max-w-full h-auto block mx-auto bg-white rounded shadow-sm border border-border";
+ if (context) {
+ context.fillStyle = "white";
+ context.fillRect(0, 0, canvas.width, canvas.height);
+ }
+ await page.render({
+ canvasContext: context,
+ viewport,
+ canvas
+ }).promise;
+ pageContainer.appendChild(canvas);
+ if (pageNum < pdf.numPages) {
+ const separator = document.createElement("div");
+ separator.className = "h-px bg-border my-4";
+ pageContainer.appendChild(separator);
+ }
+ wrapper.appendChild(pageContainer);
+ }
+ } catch (error$2) {
+ console.error("Error rendering PDF:", error$2);
+ this.error = error$2?.message || i18n("Failed to load PDF");
+ } finally {
+ if (pdf) {
+ pdf.destroy();
+ }
+ }
+ }
+ async renderDocx() {
+ const container = this.querySelector("#docx-container");
+ if (!container || !this.attachment) return;
+ try {
+ const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
+ container.innerHTML = "";
+ const wrapper = document.createElement("div");
+ wrapper.className = "docx-wrapper-custom";
+ container.appendChild(wrapper);
+ await renderAsync(arrayBuffer, wrapper, undefined, {
+ className: "docx",
+ inWrapper: true,
+ ignoreWidth: true,
+ ignoreHeight: false,
+ ignoreFonts: false,
+ breakPages: true,
+ ignoreLastRenderedPageBreak: true,
+ experimental: false,
+ trimXmlDeclaration: true,
+ useBase64URL: false,
+ renderHeaders: true,
+ renderFooters: true,
+ renderFootnotes: true,
+ renderEndnotes: true
+ });
+ const style = document.createElement("style");
+ style.textContent = `
+ #docx-container {
+ padding: 0;
+ }
+
+ #docx-container .docx-wrapper-custom {
+ max-width: 100%;
+ overflow-x: auto;
+ }
+
+ #docx-container .docx-wrapper {
+ max-width: 100% !important;
+ margin: 0 !important;
+ background: transparent !important;
+ padding: 0em !important;
+ }
+
+ #docx-container .docx-wrapper > section.docx {
+ box-shadow: none !important;
+ border: none !important;
+ border-radius: 0 !important;
+ margin: 0 !important;
+ padding: 2em !important;
+ background: white !important;
+ color: black !important;
+ max-width: 100% !important;
+ width: 100% !important;
+ min-width: 0 !important;
+ overflow-x: auto !important;
+ }
+
+ /* Fix tables and wide content */
+ #docx-container table {
+ max-width: 100% !important;
+ width: auto !important;
+ overflow-x: auto !important;
+ display: block !important;
+ }
+
+ #docx-container img {
+ max-width: 100% !important;
+ height: auto !important;
+ }
+
+ /* Fix paragraphs and text */
+ #docx-container p,
+ #docx-container span,
+ #docx-container div {
+ max-width: 100% !important;
+ word-wrap: break-word !important;
+ overflow-wrap: break-word !important;
+ }
+
+ /* Hide page breaks in web view */
+ #docx-container .docx-page-break {
+ display: none !important;
+ }
+ `;
+ container.appendChild(style);
+ } catch (error$2) {
+ console.error("Error rendering DOCX:", error$2);
+ this.error = error$2?.message || i18n("Failed to load document");
+ }
+ }
+ async renderExcel() {
+ const container = this.querySelector("#excel-container");
+ if (!container || !this.attachment) return;
+ try {
+ const arrayBuffer = this.base64ToArrayBuffer(this.attachment.content);
+ const workbook = readSync(arrayBuffer, { type: "array" });
+ container.innerHTML = "";
+ const wrapper = document.createElement("div");
+ wrapper.className = "overflow-auto h-full flex flex-col";
+ container.appendChild(wrapper);
+ if (workbook.SheetNames.length > 1) {
+ const tabContainer = document.createElement("div");
+ tabContainer.className = "flex gap-2 mb-4 border-b border-border sticky top-0 bg-card z-10";
+ const sheetContents = [];
+ workbook.SheetNames.forEach((sheetName, index) => {
+ const tab = document.createElement("button");
+ tab.textContent = sheetName;
+ tab.className = index === 0 ? "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary" : "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
+ const sheetDiv = document.createElement("div");
+ sheetDiv.style.display = index === 0 ? "flex" : "none";
+ sheetDiv.className = "flex-1 overflow-auto";
+ sheetDiv.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
+ sheetContents.push(sheetDiv);
+ tab.onclick = () => {
+ tabContainer.querySelectorAll("button").forEach((btn, btnIndex) => {
+ if (btnIndex === index) {
+ btn.className = "px-4 py-2 text-sm font-medium border-b-2 border-primary text-primary";
+ } else {
+ btn.className = "px-4 py-2 text-sm font-medium text-muted-foreground hover:text-foreground hover:border-b-2 hover:border-border transition-colors";
+ }
+ });
+ sheetContents.forEach((content, contentIndex) => {
+ content.style.display = contentIndex === index ? "flex" : "none";
+ });
+ };
+ tabContainer.appendChild(tab);
+ });
+ wrapper.appendChild(tabContainer);
+ sheetContents.forEach((content) => {
+ wrapper.appendChild(content);
+ });
+ } else {
+ const sheetName = workbook.SheetNames[0];
+ wrapper.appendChild(this.renderExcelSheet(workbook.Sheets[sheetName], sheetName));
+ }
+ } catch (error$2) {
+ console.error("Error rendering Excel:", error$2);
+ this.error = error$2?.message || i18n("Failed to load spreadsheet");
+ }
+ }
+ renderExcelSheet(worksheet, sheetName) {
+ const sheetDiv = document.createElement("div");
+ const htmlTable = utils$1.sheet_to_html(worksheet, { id: `sheet-${sheetName}` });
+ const tempDiv = document.createElement("div");
+ tempDiv.innerHTML = htmlTable;
+ const table = tempDiv.querySelector("table");
+ if (table) {
+ table.className = "w-full border-collapse text-foreground";
+ table.querySelectorAll("td, th").forEach((cell) => {
+ const cellEl = cell;
+ cellEl.className = "border border-border px-3 py-2 text-sm text-left";
+ });
+ const headerCells = table.querySelectorAll("thead th, tr:first-child td");
+ if (headerCells.length > 0) {
+ headerCells.forEach((th) => {
+ const thEl = th;
+ thEl.className = "border border-border px-3 py-2 text-sm font-semibold bg-muted text-foreground sticky top-0";
+ });
+ }
+ table.querySelectorAll("tbody tr:nth-child(even)").forEach((row) => {
+ const rowEl = row;
+ rowEl.className = "bg-muted/30";
+ });
+ sheetDiv.appendChild(table);
+ }
+ return sheetDiv;
+ }
+ base64ToArrayBuffer(base64) {
+ const binaryString = atob(base64);
+ const bytes = new Uint8Array(binaryString.length);
+ for (let i$7 = 0; i$7 < binaryString.length; i$7++) {
+ bytes[i$7] = binaryString.charCodeAt(i$7);
+ }
+ return bytes.buffer;
+ }
+ async renderExtractedText() {
+ const container = this.querySelector("#pptx-container");
+ if (!container || !this.attachment) return;
+ try {
+ container.innerHTML = "";
+ const wrapper = document.createElement("div");
+ wrapper.className = "p-6 overflow-auto";
+ const pre = document.createElement("pre");
+ pre.className = "whitespace-pre-wrap text-sm text-foreground font-mono";
+ pre.textContent = this.attachment.extractedText || i18n("No text content available");
+ wrapper.appendChild(pre);
+ container.appendChild(wrapper);
+ } catch (error$2) {
+ console.error("Error rendering extracted text:", error$2);
+ this.error = error$2?.message || i18n("Failed to display text content");
+ }
+ }
+ };
+ __decorate$25([r()], AttachmentOverlay.prototype, "attachment", void 0);
+ __decorate$25([r()], AttachmentOverlay.prototype, "showExtractedText", void 0);
+ __decorate$25([r()], AttachmentOverlay.prototype, "error", void 0);
+ if (!customElements.get("attachment-overlay")) {
+ customElements.define("attachment-overlay", AttachmentOverlay);
+ }
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/AttachmentTile.js
+var __decorate$24, AttachmentTile;
+var init_AttachmentTile = __esmMin((() => {
+ init_icons();
+ init_lit();
+ init_decorators();
+ init_html();
+ init_lucide();
+ init_AttachmentOverlay();
+ init_i18n();
+ __decorate$24 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
+ var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
+ else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
+ return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
+ };
+ AttachmentTile = class AttachmentTile$1 extends i {
+ constructor() {
+ super(...arguments);
+ this.showDelete = false;
+ this.handleClick = () => {
+ AttachmentOverlay.open(this.attachment);
+ };
+ }
+ createRenderRoot() {
+ return this;
+ }
+ connectedCallback() {
+ super.connectedCallback();
+ this.style.display = "block";
+ this.classList.add("max-h-16");
+ }
+ render() {
+ const hasPreview = !!this.attachment.preview;
+ const isImage$1 = this.attachment.type === "image";
+ const isPdf = this.attachment.mimeType === "application/pdf";
+ const isDocx = this.attachment.mimeType?.includes("wordprocessingml") || this.attachment.fileName.toLowerCase().endsWith(".docx");
+ const isPptx = this.attachment.mimeType?.includes("presentationml") || this.attachment.fileName.toLowerCase().endsWith(".pptx");
+ const isExcel = this.attachment.mimeType?.includes("spreadsheetml") || this.attachment.fileName.toLowerCase().endsWith(".xlsx") || this.attachment.fileName.toLowerCase().endsWith(".xls");
+ const getDocumentIcon = () => {
+ if (isExcel) return icon(FileSpreadsheet, "md");
+ return icon(FileText, "md");
+ };
+ return x`
+
+ ${hasPreview ? x`
+
+

+ ${isPdf ? x`
+
+
+ ` : ""}
+
+ ` : x`
+
+
+ ${getDocumentIcon()}
+
+ ${this.attachment.fileName.length > 10 ? this.attachment.fileName.substring(0, 8) + "..." : this.attachment.fileName}
+
+
+ `}
+ ${this.showDelete ? x`
+
+ ` : ""}
+
+ `;
+ }
+ };
+ __decorate$24([n$1({ type: Object })], AttachmentTile.prototype, "attachment", void 0);
+ __decorate$24([n$1({ type: Boolean })], AttachmentTile.prototype, "showDelete", void 0);
+ __decorate$24([n$1()], AttachmentTile.prototype, "onDelete", void 0);
+ AttachmentTile = __decorate$24([t("attachment-tile")], AttachmentTile);
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/MessageEditor.js
+var __decorate$23, MessageEditor;
+var init_MessageEditor = __esmMin((() => {
+ init_dist();
+ init_Button();
+ init_Select();
+ init_lit();
+ init_decorators();
+ init_ref$2();
+ init_lucide();
+ init_attachment_utils();
+ init_i18n();
+ init_AttachmentTile();
+ __decorate$23 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
+ var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
+ else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
+ return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
+ };
+ MessageEditor = class MessageEditor$1 extends i {
+ constructor() {
+ super(...arguments);
+ this._value = "";
+ this.textareaRef = e();
+ this.isStreaming = false;
+ this.thinkingLevel = "off";
+ this.showAttachmentButton = true;
+ this.showModelSelector = true;
+ this.showThinkingSelector = true;
+ this.attachments = [];
+ this.maxFiles = 10;
+ this.maxFileSize = 20 * 1024 * 1024;
+ this.acceptedTypes = "image/*,application/pdf,.docx,.pptx,.xlsx,.xls,.txt,.md,.json,.xml,.html,.css,.js,.ts,.jsx,.tsx,.yml,.yaml";
+ this.processingFiles = false;
+ this.isDragging = false;
+ this.fileInputRef = e();
+ this.handleTextareaInput = (e$10) => {
+ const textarea = e$10.target;
+ this.value = textarea.value;
+ this.onInput?.(this.value);
+ };
+ this.handleKeyDown = (e$10) => {
+ if (e$10.key === "Enter" && !e$10.shiftKey) {
+ e$10.preventDefault();
+ if (!this.isStreaming && !this.processingFiles && (this.value.trim() || this.attachments.length > 0)) {
+ this.handleSend();
+ }
+ } else if (e$10.key === "Escape" && this.isStreaming) {
+ e$10.preventDefault();
+ this.onAbort?.();
+ }
+ };
+ this.handlePaste = async (e$10) => {
+ const items = e$10.clipboardData?.items;
+ if (!items) return;
+ const imageFiles = [];
+ for (let i$7 = 0; i$7 < items.length; i$7++) {
+ const item = items[i$7];
+ if (item.type.startsWith("image/")) {
+ const file = item.getAsFile();
+ if (file) {
+ imageFiles.push(file);
+ }
+ }
+ }
+ if (imageFiles.length > 0) {
+ e$10.preventDefault();
+ if (imageFiles.length + this.attachments.length > this.maxFiles) {
+ alert(`Maximum ${this.maxFiles} files allowed`);
+ return;
+ }
+ this.processingFiles = true;
+ const newAttachments = [];
+ for (const file of imageFiles) {
+ try {
+ if (file.size > this.maxFileSize) {
+ alert(`Image exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
+ continue;
+ }
+ const attachment = await loadAttachment(file);
+ newAttachments.push(attachment);
+ } catch (error$2) {
+ console.error("Error processing pasted image:", error$2);
+ alert(`Failed to process pasted image: ${String(error$2)}`);
+ }
+ }
+ this.attachments = [...this.attachments, ...newAttachments];
+ this.onFilesChange?.(this.attachments);
+ this.processingFiles = false;
+ }
+ };
+ this.handleSend = () => {
+ this.onSend?.(this.value, this.attachments);
+ };
+ this.handleAttachmentClick = () => {
+ this.fileInputRef.value?.click();
+ };
+ this.handleDragOver = (e$10) => {
+ e$10.preventDefault();
+ e$10.stopPropagation();
+ if (!this.isDragging) {
+ this.isDragging = true;
+ }
+ };
+ this.handleDragLeave = (e$10) => {
+ e$10.preventDefault();
+ e$10.stopPropagation();
+ const rect = e$10.currentTarget.getBoundingClientRect();
+ const x$2 = e$10.clientX;
+ const y$3 = e$10.clientY;
+ if (x$2 <= rect.left || x$2 >= rect.right || y$3 <= rect.top || y$3 >= rect.bottom) {
+ this.isDragging = false;
+ }
+ };
+ this.handleDrop = async (e$10) => {
+ e$10.preventDefault();
+ e$10.stopPropagation();
+ this.isDragging = false;
+ const files = Array.from(e$10.dataTransfer?.files || []);
+ if (files.length === 0) return;
+ if (files.length + this.attachments.length > this.maxFiles) {
+ alert(`Maximum ${this.maxFiles} files allowed`);
+ return;
+ }
+ this.processingFiles = true;
+ const newAttachments = [];
+ for (const file of files) {
+ try {
+ if (file.size > this.maxFileSize) {
+ alert(`${file.name} exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
+ continue;
+ }
+ const attachment = await loadAttachment(file);
+ newAttachments.push(attachment);
+ } catch (error$2) {
+ console.error(`Error processing ${file.name}:`, error$2);
+ alert(`Failed to process ${file.name}: ${String(error$2)}`);
+ }
+ }
+ this.attachments = [...this.attachments, ...newAttachments];
+ this.onFilesChange?.(this.attachments);
+ this.processingFiles = false;
+ };
+ }
+ get value() {
+ return this._value;
+ }
+ set value(val$1) {
+ const oldValue = this._value;
+ this._value = val$1;
+ this.requestUpdate("value", oldValue);
+ }
+ createRenderRoot() {
+ return this;
+ }
+ async handleFilesSelected(e$10) {
+ const input = e$10.target;
+ const files = Array.from(input.files || []);
+ if (files.length === 0) return;
+ if (files.length + this.attachments.length > this.maxFiles) {
+ alert(`Maximum ${this.maxFiles} files allowed`);
+ input.value = "";
+ return;
+ }
+ this.processingFiles = true;
+ const newAttachments = [];
+ for (const file of files) {
+ try {
+ if (file.size > this.maxFileSize) {
+ alert(`${file.name} exceeds maximum size of ${Math.round(this.maxFileSize / 1024 / 1024)}MB`);
+ continue;
+ }
+ const attachment = await loadAttachment(file);
+ newAttachments.push(attachment);
+ } catch (error$2) {
+ console.error(`Error processing ${file.name}:`, error$2);
+ alert(`Failed to process ${file.name}: ${String(error$2)}`);
+ }
+ }
+ this.attachments = [...this.attachments, ...newAttachments];
+ this.onFilesChange?.(this.attachments);
+ this.processingFiles = false;
+ input.value = "";
+ }
+ removeFile(fileId) {
+ this.attachments = this.attachments.filter((f$4) => f$4.id !== fileId);
+ this.onFilesChange?.(this.attachments);
+ }
+ firstUpdated() {
+ const textarea = this.textareaRef.value;
+ if (textarea) {
+ textarea.focus();
+ }
+ }
+ render() {
+ const model = this.currentModel;
+ const supportsThinking = model?.reasoning === true;
+ return x`
+
+
+ ${this.isDragging ? x`
+
+
${i18n("Drop files here")}
+
+ ` : ""}
+
+
+ ${this.attachments.length > 0 ? x`
+
+ ${this.attachments.map((attachment) => x`
+
this.removeFile(attachment.id)}
+ >
+ `)}
+
+ ` : ""}
+
+
+
+
+
+
+
+
+
+
+ ${this.showAttachmentButton ? this.processingFiles ? x`
+
+ ${icon(LoaderCircle, "sm", "animate-spin text-muted-foreground")}
+
+ ` : x`
+ ${Button({
+ variant: "ghost",
+ size: "icon",
+ className: "h-8 w-8",
+ onClick: this.handleAttachmentClick,
+ children: icon(Paperclip, "sm")
+ })}
+ ` : ""}
+ ${supportsThinking && this.showThinkingSelector ? x`
+ ${Select({
+ value: this.thinkingLevel,
+ placeholder: i18n("Off"),
+ options: [
+ {
+ value: "off",
+ label: i18n("Off"),
+ icon: icon(Brain, "sm")
+ },
+ {
+ value: "minimal",
+ label: i18n("Minimal"),
+ icon: icon(Brain, "sm")
+ },
+ {
+ value: "low",
+ label: i18n("Low"),
+ icon: icon(Brain, "sm")
+ },
+ {
+ value: "medium",
+ label: i18n("Medium"),
+ icon: icon(Brain, "sm")
+ },
+ {
+ value: "high",
+ label: i18n("High"),
+ icon: icon(Brain, "sm")
+ }
+ ],
+ onChange: (value) => {
+ this.onThinkingChange?.(value);
+ },
+ width: "80px",
+ size: "sm",
+ variant: "ghost",
+ fitContent: true
+ })}
+ ` : ""}
+
+
+
+
+ ${this.showModelSelector && this.currentModel ? x`
+ ${Button({
+ variant: "ghost",
+ size: "sm",
+ onClick: () => {
+ this.textareaRef.value?.focus();
+ requestAnimationFrame(() => {
+ this.onModelSelect?.();
+ });
+ },
+ children: x`
+ ${icon(Sparkles, "sm")}
+
${this.currentModel.id}
+ `,
+ className: "h-8 text-xs truncate"
+ })}
+ ` : ""}
+ ${this.isStreaming ? x`
+ ${Button({
+ variant: "ghost",
+ size: "icon",
+ onClick: this.onAbort,
+ children: icon(Square, "sm"),
+ className: "h-8 w-8"
+ })}
+ ` : x`
+ ${Button({
+ variant: "ghost",
+ size: "icon",
+ onClick: this.handleSend,
+ disabled: !this.value.trim() && this.attachments.length === 0 || this.processingFiles,
+ children: x`
${icon(Send, "sm")}
`,
+ className: "h-8 w-8"
+ })}
+ `}
+
+
+
+ `;
+ }
+ };
+ __decorate$23([n$1()], MessageEditor.prototype, "value", null);
+ __decorate$23([n$1()], MessageEditor.prototype, "isStreaming", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "currentModel", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "thinkingLevel", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "showAttachmentButton", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "showModelSelector", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "showThinkingSelector", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onInput", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onSend", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onAbort", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onModelSelect", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onThinkingChange", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "onFilesChange", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "attachments", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "maxFiles", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "maxFileSize", void 0);
+ __decorate$23([n$1()], MessageEditor.prototype, "acceptedTypes", void 0);
+ __decorate$23([r()], MessageEditor.prototype, "processingFiles", void 0);
+ __decorate$23([r()], MessageEditor.prototype, "isDragging", void 0);
+ MessageEditor = __decorate$23([t("message-editor")], MessageEditor);
+}));
+
+//#endregion
+//#region node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/repeat.js
+var u, c;
+var init_repeat$1 = __esmMin((() => {
+ init_lit_html();
+ init_directive();
+ init_directive_helpers();
+ u = (e$10, s$5, t$6) => {
+ const r$10 = new Map();
+ for (let l$3 = s$5; l$3 <= t$6; l$3++) r$10.set(e$10[l$3], l$3);
+ return r$10;
+ }, c = e$2(class extends i$2 {
+ constructor(e$10) {
+ if (super(e$10), e$10.type !== t$1.CHILD) throw Error("repeat() can only be used in text expressions");
+ }
+ dt(e$10, s$5, t$6) {
+ let r$10;
+ void 0 === t$6 ? t$6 = s$5 : void 0 !== s$5 && (r$10 = s$5);
+ const l$3 = [], o$10 = [];
+ let i$7 = 0;
+ for (const s$6 of e$10) l$3[i$7] = r$10 ? r$10(s$6, i$7) : i$7, o$10[i$7] = t$6(s$6, i$7), i$7++;
+ return {
+ values: o$10,
+ keys: l$3
+ };
+ }
+ render(e$10, s$5, t$6) {
+ return this.dt(e$10, s$5, t$6).values;
+ }
+ update(s$5, [t$6, r$10, c$7]) {
+ const d$5 = p(s$5), { values: p$3, keys: a$2 } = this.dt(t$6, r$10, c$7);
+ if (!Array.isArray(d$5)) return this.ut = a$2, p$3;
+ const h$5 = this.ut ??= [], v$3 = [];
+ let m$3, y$3, x$2 = 0, j$2 = d$5.length - 1, k$2 = 0, w$2 = p$3.length - 1;
+ for (; x$2 <= j$2 && k$2 <= w$2;) if (null === d$5[x$2]) x$2++;
+ else if (null === d$5[j$2]) j$2--;
+ else if (h$5[x$2] === a$2[k$2]) v$3[k$2] = v$1(d$5[x$2], p$3[k$2]), x$2++, k$2++;
+ else if (h$5[j$2] === a$2[w$2]) v$3[w$2] = v$1(d$5[j$2], p$3[w$2]), j$2--, w$2--;
+ else if (h$5[x$2] === a$2[w$2]) v$3[w$2] = v$1(d$5[x$2], p$3[w$2]), s(s$5, v$3[w$2 + 1], d$5[x$2]), x$2++, w$2--;
+ else if (h$5[j$2] === a$2[k$2]) v$3[k$2] = v$1(d$5[j$2], p$3[k$2]), s(s$5, d$5[x$2], d$5[j$2]), j$2--, k$2++;
+ else if (void 0 === m$3 && (m$3 = u(a$2, k$2, w$2), y$3 = u(h$5, x$2, j$2)), m$3.has(h$5[x$2])) if (m$3.has(h$5[j$2])) {
+ const e$10 = y$3.get(a$2[k$2]), t$7 = void 0 !== e$10 ? d$5[e$10] : null;
+ if (null === t$7) {
+ const e$11 = s(s$5, d$5[x$2]);
+ v$1(e$11, p$3[k$2]), v$3[k$2] = e$11;
+ } else v$3[k$2] = v$1(t$7, p$3[k$2]), s(s$5, d$5[x$2], t$7), d$5[e$10] = null;
+ k$2++;
+ } else M$1(d$5[j$2]), j$2--;
+ else M$1(d$5[x$2]), x$2++;
+ for (; k$2 <= w$2;) {
+ const e$10 = s(s$5, v$3[w$2 + 1]);
+ v$1(e$10, p$3[k$2]), v$3[k$2++] = e$10;
+ }
+ for (; x$2 <= j$2;) {
+ const e$10 = d$5[x$2++];
+ null !== e$10 && M$1(e$10);
+ }
+ return this.ut = a$2, m$1(s$5, v$3), T$2;
+ }
+ });
+}));
+
+//#endregion
+//#region node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/repeat.js
+var init_repeat = __esmMin((() => {
+ init_repeat$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/message-renderer-registry.js
+function registerMessageRenderer(role, renderer) {
+ messageRenderers.set(role, renderer);
+}
+function getMessageRenderer(role) {
+ return messageRenderers.get(role);
+}
+function renderMessage(message) {
+ return messageRenderers.get(message.role)?.render(message);
+}
+var messageRenderers;
+var init_message_renderer_registry = __esmMin((() => {
+ messageRenderers = new Map();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/MessageList.js
+var __decorate$22, MessageList;
+var init_MessageList = __esmMin((() => {
+ init_lit();
+ init_decorators();
+ init_repeat();
+ init_message_renderer_registry();
+ __decorate$22 = void 0 && (void 0).__decorate || function(decorators, target, key, desc) {
+ var c$7 = arguments.length, r$10 = c$7 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d$5;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r$10 = Reflect.decorate(decorators, target, key, desc);
+ else for (var i$7 = decorators.length - 1; i$7 >= 0; i$7--) if (d$5 = decorators[i$7]) r$10 = (c$7 < 3 ? d$5(r$10) : c$7 > 3 ? d$5(target, key, r$10) : d$5(target, key)) || r$10;
+ return c$7 > 3 && r$10 && Object.defineProperty(target, key, r$10), r$10;
+ };
+ MessageList = class extends i {
+ constructor() {
+ super(...arguments);
+ this.messages = [];
+ this.tools = [];
+ this.isStreaming = false;
+ }
+ createRenderRoot() {
+ return this;
+ }
+ connectedCallback() {
+ super.connectedCallback();
+ this.style.display = "block";
+ }
+ buildRenderItems() {
+ const resultByCallId = new Map();
+ for (const message of this.messages) {
+ if (message.role === "toolResult") {
+ resultByCallId.set(message.toolCallId, message);
+ }
+ }
+ const items = [];
+ let index = 0;
+ for (const msg of this.messages) {
+ if (msg.role === "artifact") {
+ continue;
+ }
+ const customTemplate = renderMessage(msg);
+ if (customTemplate) {
+ items.push({
+ key: `msg:${index}`,
+ template: customTemplate
+ });
+ index++;
+ continue;
+ }
+ if (msg.role === "user") {
+ items.push({
+ key: `msg:${index}`,
+ template: x``
+ });
+ index++;
+ } else if (msg.role === "assistant") {
+ const amsg = msg;
+ items.push({
+ key: `msg:${index}`,
+ template: x``
+ });
+ index++;
+ } else {}
+ }
+ return items;
+ }
+ render() {
+ const items = this.buildRenderItems();
+ return x`
+ ${c(items, (it) => it.key, (it) => it.template)}
+
`;
+ }
+ };
+ __decorate$22([n$1({ type: Array })], MessageList.prototype, "messages", void 0);
+ __decorate$22([n$1({ type: Array })], MessageList.prototype, "tools", void 0);
+ __decorate$22([n$1({ type: Object })], MessageList.prototype, "pendingToolCalls", void 0);
+ __decorate$22([n$1({ type: Boolean })], MessageList.prototype, "isStreaming", void 0);
+ __decorate$22([n$1({ attribute: false })], MessageList.prototype, "onCostClick", void 0);
+ if (!customElements.get("message-list")) {
+ customElements.define("message-list", MessageList);
+ }
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/value.mjs
+/** Returns true if this value has this property key */
+function HasPropertyKey$1(value, key) {
+ return key in value;
+}
+/** Returns true if this value is an async iterator */
+function IsAsyncIterator(value) {
+ return IsObject$1(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;
+}
+/** Returns true if this value is an array */
+function IsArray(value) {
+ return Array.isArray(value);
+}
+/** Returns true if this value is bigint */
+function IsBigInt(value) {
+ return typeof value === "bigint";
+}
+/** Returns true if this value is a boolean */
+function IsBoolean$1(value) {
+ return typeof value === "boolean";
+}
+/** Returns true if this value is a Date object */
+function IsDate(value) {
+ return value instanceof globalThis.Date;
+}
+/** Returns true if this value is a function */
+function IsFunction(value) {
+ return typeof value === "function";
+}
+/** Returns true if this value is an iterator */
+function IsIterator(value) {
+ return IsObject$1(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;
+}
+/** Returns true if this value is null */
+function IsNull(value) {
+ return value === null;
+}
+/** Returns true if this value is number */
+function IsNumber$1(value) {
+ return typeof value === "number";
+}
+/** Returns true if this value is an object */
+function IsObject$1(value) {
+ return typeof value === "object" && value !== null;
+}
+/** Returns true if this value is RegExp */
+function IsRegExp$3(value) {
+ return value instanceof globalThis.RegExp;
+}
+/** Returns true if this value is string */
+function IsString(value) {
+ return typeof value === "string";
+}
+/** Returns true if this value is symbol */
+function IsSymbol(value) {
+ return typeof value === "symbol";
+}
+/** Returns true if this value is a Uint8Array */
+function IsUint8Array(value) {
+ return value instanceof globalThis.Uint8Array;
+}
+/** Returns true if this value is undefined */
+function IsUndefined(value) {
+ return value === undefined;
+}
+var init_value$1 = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/value.mjs
+function ArrayType(value) {
+ return value.map((value$1) => Visit$2(value$1));
+}
+function DateType(value) {
+ return new Date(value.getTime());
+}
+function Uint8ArrayType(value) {
+ return new Uint8Array(value);
+}
+function RegExpType(value) {
+ return new RegExp(value.source, value.flags);
+}
+function ObjectType(value) {
+ const result = {};
+ for (const key of Object.getOwnPropertyNames(value)) {
+ result[key] = Visit$2(value[key]);
+ }
+ for (const key of Object.getOwnPropertySymbols(value)) {
+ result[key] = Visit$2(value[key]);
+ }
+ return result;
+}
+function Visit$2(value) {
+ return IsArray(value) ? ArrayType(value) : IsDate(value) ? DateType(value) : IsUint8Array(value) ? Uint8ArrayType(value) : IsRegExp$3(value) ? RegExpType(value) : IsObject$1(value) ? ObjectType(value) : value;
+}
+/** Clones a value */
+function Clone(value) {
+ return Visit$2(value);
+}
+var init_value = __esmMin((() => {
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/type.mjs
+/** Clones a Rest */
+function CloneRest(schemas) {
+ return schemas.map((schema) => CloneType(schema));
+}
+/** Clones a Type */
+function CloneType(schema, options) {
+ return options === undefined ? Clone(schema) : Clone({
+ ...options,
+ ...schema
+ });
+}
+var init_type$5 = __esmMin((() => {
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/clone/index.mjs
+var init_clone = __esmMin((() => {
+ init_type$5();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/value/guard/guard.mjs
+/** Returns true if this value is an async iterator */
+function IsAsyncIterator$3(value) {
+ return IsObject$3(value) && globalThis.Symbol.asyncIterator in value;
+}
+/** Returns true if this value is an iterator */
+function IsIterator$3(value) {
+ return IsObject$3(value) && globalThis.Symbol.iterator in value;
+}
+/** Returns true if this value is not an instance of a class */
+function IsStandardObject(value) {
+ return IsObject$3(value) && (globalThis.Object.getPrototypeOf(value) === Object.prototype || globalThis.Object.getPrototypeOf(value) === null);
+}
+/** Returns true if this value is an instance of a class */
+function IsInstanceObject(value) {
+ return IsObject$3(value) && !IsArray$3(value) && IsFunction$3(value.constructor) && value.constructor.name !== "Object";
+}
+/** Returns true if this value is a Promise */
+function IsPromise$2(value) {
+ return value instanceof globalThis.Promise;
+}
+/** Returns true if this value is a Date */
+function IsDate$3(value) {
+ return value instanceof Date && globalThis.Number.isFinite(value.getTime());
+}
+/** Returns true if this value is an instance of Map */
+function IsMap(value) {
+ return value instanceof globalThis.Map;
+}
+/** Returns true if this value is an instance of Set */
+function IsSet(value) {
+ return value instanceof globalThis.Set;
+}
+/** Returns true if this value is RegExp */
+function IsRegExp$2(value) {
+ return value instanceof globalThis.RegExp;
+}
+/** Returns true if this value is a typed array */
+function IsTypedArray(value) {
+ return globalThis.ArrayBuffer.isView(value);
+}
+/** Returns true if the value is a Int8Array */
+function IsInt8Array(value) {
+ return value instanceof globalThis.Int8Array;
+}
+/** Returns true if the value is a Uint8Array */
+function IsUint8Array$3(value) {
+ return value instanceof globalThis.Uint8Array;
+}
+/** Returns true if the value is a Uint8ClampedArray */
+function IsUint8ClampedArray(value) {
+ return value instanceof globalThis.Uint8ClampedArray;
+}
+/** Returns true if the value is a Int16Array */
+function IsInt16Array(value) {
+ return value instanceof globalThis.Int16Array;
+}
+/** Returns true if the value is a Uint16Array */
+function IsUint16Array(value) {
+ return value instanceof globalThis.Uint16Array;
+}
+/** Returns true if the value is a Int32Array */
+function IsInt32Array(value) {
+ return value instanceof globalThis.Int32Array;
+}
+/** Returns true if the value is a Uint32Array */
+function IsUint32Array(value) {
+ return value instanceof globalThis.Uint32Array;
+}
+/** Returns true if the value is a Float32Array */
+function IsFloat32Array(value) {
+ return value instanceof globalThis.Float32Array;
+}
+/** Returns true if the value is a Float64Array */
+function IsFloat64Array(value) {
+ return value instanceof globalThis.Float64Array;
+}
+/** Returns true if the value is a BigInt64Array */
+function IsBigInt64Array(value) {
+ return value instanceof globalThis.BigInt64Array;
+}
+/** Returns true if the value is a BigUint64Array */
+function IsBigUint64Array(value) {
+ return value instanceof globalThis.BigUint64Array;
+}
+/** Returns true if this value has this property key */
+function HasPropertyKey(value, key) {
+ return key in value;
+}
+/** Returns true of this value is an object type */
+function IsObject$3(value) {
+ return value !== null && typeof value === "object";
+}
+/** Returns true if this value is an array, but not a typed array */
+function IsArray$3(value) {
+ return globalThis.Array.isArray(value) && !globalThis.ArrayBuffer.isView(value);
+}
+/** Returns true if this value is an undefined */
+function IsUndefined$3(value) {
+ return value === undefined;
+}
+/** Returns true if this value is an null */
+function IsNull$3(value) {
+ return value === null;
+}
+/** Returns true if this value is an boolean */
+function IsBoolean$3(value) {
+ return typeof value === "boolean";
+}
+/** Returns true if this value is an number */
+function IsNumber$3(value) {
+ return typeof value === "number";
+}
+/** Returns true if this value is an integer */
+function IsInteger$2(value) {
+ return globalThis.Number.isInteger(value);
+}
+/** Returns true if this value is bigint */
+function IsBigInt$3(value) {
+ return typeof value === "bigint";
+}
+/** Returns true if this value is string */
+function IsString$3(value) {
+ return typeof value === "string";
+}
+/** Returns true if this value is a function */
+function IsFunction$3(value) {
+ return typeof value === "function";
+}
+/** Returns true if this value is a symbol */
+function IsSymbol$3(value) {
+ return typeof value === "symbol";
+}
+/** Returns true if this value is a value type such as number, string, boolean */
+function IsValueType(value) {
+ return IsBigInt$3(value) || IsBoolean$3(value) || IsNull$3(value) || IsNumber$3(value) || IsString$3(value) || IsSymbol$3(value) || IsUndefined$3(value);
+}
+var init_guard$2 = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/value/guard/index.mjs
+var init_guard$1 = __esmMin((() => {
+ init_guard$2();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/system/policy.mjs
+var TypeSystemPolicy;
+var init_policy = __esmMin((() => {
+ init_guard$1();
+ ;
+ (function(TypeSystemPolicy$1) {
+ /**
+ * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript
+ * references for embedded types, which may cause side effects if type properties are explicitly updated
+ * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation,
+ * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making
+ * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the
+ * fastest way to instantiate types. The default setting is `default`.
+ */
+ TypeSystemPolicy$1.InstanceMode = "default";
+ /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */
+ TypeSystemPolicy$1.ExactOptionalPropertyTypes = false;
+ /** Sets whether arrays should be treated as a kind of objects. The default is `false` */
+ TypeSystemPolicy$1.AllowArrayObject = false;
+ /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */
+ TypeSystemPolicy$1.AllowNaN = false;
+ /** Sets whether `null` should validate for void types. The default is `false` */
+ TypeSystemPolicy$1.AllowNullVoid = false;
+ /** Checks this value using the ExactOptionalPropertyTypes policy */
+ function IsExactOptionalProperty(value, key) {
+ return TypeSystemPolicy$1.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;
+ }
+ TypeSystemPolicy$1.IsExactOptionalProperty = IsExactOptionalProperty;
+ /** Checks this value using the AllowArrayObjects policy */
+ function IsObjectLike(value) {
+ const isObject$1 = IsObject$3(value);
+ return TypeSystemPolicy$1.AllowArrayObject ? isObject$1 : isObject$1 && !IsArray$3(value);
+ }
+ TypeSystemPolicy$1.IsObjectLike = IsObjectLike;
+ /** Checks this value as a record using the AllowArrayObjects policy */
+ function IsRecordLike(value) {
+ return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);
+ }
+ TypeSystemPolicy$1.IsRecordLike = IsRecordLike;
+ /** Checks this value using the AllowNaN policy */
+ function IsNumberLike(value) {
+ return TypeSystemPolicy$1.AllowNaN ? IsNumber$3(value) : Number.isFinite(value);
+ }
+ TypeSystemPolicy$1.IsNumberLike = IsNumberLike;
+ /** Checks this value using the AllowVoidNull policy */
+ function IsVoidLike(value) {
+ const isUndefined = IsUndefined$3(value);
+ return TypeSystemPolicy$1.AllowNullVoid ? isUndefined || value === null : isUndefined;
+ }
+ TypeSystemPolicy$1.IsVoidLike = IsVoidLike;
+ })(TypeSystemPolicy || (TypeSystemPolicy = {}));
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/immutable.mjs
+function ImmutableArray(value) {
+ return globalThis.Object.freeze(value).map((value$1) => Immutable(value$1));
+}
+function ImmutableDate(value) {
+ return value;
+}
+function ImmutableUint8Array(value) {
+ return value;
+}
+function ImmutableRegExp(value) {
+ return value;
+}
+function ImmutableObject(value) {
+ const result = {};
+ for (const key of Object.getOwnPropertyNames(value)) {
+ result[key] = Immutable(value[key]);
+ }
+ for (const key of Object.getOwnPropertySymbols(value)) {
+ result[key] = Immutable(value[key]);
+ }
+ return globalThis.Object.freeze(result);
+}
+/** Specialized deep immutable value. Applies freeze recursively to the given value */
+function Immutable(value) {
+ return IsArray(value) ? ImmutableArray(value) : IsDate(value) ? ImmutableDate(value) : IsUint8Array(value) ? ImmutableUint8Array(value) : IsRegExp$3(value) ? ImmutableRegExp(value) : IsObject$1(value) ? ImmutableObject(value) : value;
+}
+var init_immutable = __esmMin((() => {
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/type.mjs
+/** Creates TypeBox schematics using the configured InstanceMode */
+function CreateType(schema, options) {
+ const result = options !== undefined ? {
+ ...options,
+ ...schema
+ } : schema;
+ switch (TypeSystemPolicy.InstanceMode) {
+ case "freeze": return Immutable(result);
+ case "clone": return Clone(result);
+ default: return result;
+ }
+}
+var init_type$4 = __esmMin((() => {
+ init_policy();
+ init_immutable();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/create/index.mjs
+var init_create$1 = __esmMin((() => {
+ init_type$4();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/error/error.mjs
+var TypeBoxError;
+var init_error$1 = __esmMin((() => {
+ TypeBoxError = class extends Error {
+ constructor(message) {
+ super(message);
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/error/index.mjs
+var init_error = __esmMin((() => {
+ init_error$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbols/symbols.mjs
+var TransformKind, ReadonlyKind, OptionalKind, Hint, Kind;
+var init_symbols$1 = __esmMin((() => {
+ TransformKind = Symbol.for("TypeBox.Transform");
+ ReadonlyKind = Symbol.for("TypeBox.Readonly");
+ OptionalKind = Symbol.for("TypeBox.Optional");
+ Hint = Symbol.for("TypeBox.Hint");
+ Kind = Symbol.for("TypeBox.Kind");
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbols/index.mjs
+var init_symbols = __esmMin((() => {
+ init_symbols$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/kind.mjs
+/** `[Kind-Only]` Returns true if this value has a Readonly symbol */
+function IsReadonly(value) {
+ return IsObject$1(value) && value[ReadonlyKind] === "Readonly";
+}
+/** `[Kind-Only]` Returns true if this value has a Optional symbol */
+function IsOptional(value) {
+ return IsObject$1(value) && value[OptionalKind] === "Optional";
+}
+/** `[Kind-Only]` Returns true if the given value is TAny */
+function IsAny(value) {
+ return IsKindOf$1(value, "Any");
+}
+/** `[Kind-Only]` Returns true if the given value is TArgument */
+function IsArgument$1(value) {
+ return IsKindOf$1(value, "Argument");
+}
+/** `[Kind-Only]` Returns true if the given value is TArray */
+function IsArray$1(value) {
+ return IsKindOf$1(value, "Array");
+}
+/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */
+function IsAsyncIterator$1(value) {
+ return IsKindOf$1(value, "AsyncIterator");
+}
+/** `[Kind-Only]` Returns true if the given value is TBigInt */
+function IsBigInt$1(value) {
+ return IsKindOf$1(value, "BigInt");
+}
+/** `[Kind-Only]` Returns true if the given value is TBoolean */
+function IsBoolean(value) {
+ return IsKindOf$1(value, "Boolean");
+}
+/** `[Kind-Only]` Returns true if the given value is TComputed */
+function IsComputed(value) {
+ return IsKindOf$1(value, "Computed");
+}
+/** `[Kind-Only]` Returns true if the given value is TConstructor */
+function IsConstructor(value) {
+ return IsKindOf$1(value, "Constructor");
+}
+/** `[Kind-Only]` Returns true if the given value is TDate */
+function IsDate$2(value) {
+ return IsKindOf$1(value, "Date");
+}
+/** `[Kind-Only]` Returns true if the given value is TFunction */
+function IsFunction$1(value) {
+ return IsKindOf$1(value, "Function");
+}
+/** `[Kind-Only]` Returns true if the given value is TInteger */
+function IsImport$1(value) {
+ return IsKindOf$1(value, "Import");
+}
+/** `[Kind-Only]` Returns true if the given value is TInteger */
+function IsInteger(value) {
+ return IsKindOf$1(value, "Integer");
+}
+/** `[Kind-Only]` Returns true if the given schema is TProperties */
+function IsProperties$1(value) {
+ return IsObject$1(value);
+}
+/** `[Kind-Only]` Returns true if the given value is TIntersect */
+function IsIntersect(value) {
+ return IsKindOf$1(value, "Intersect");
+}
+/** `[Kind-Only]` Returns true if the given value is TIterator */
+function IsIterator$1(value) {
+ return IsKindOf$1(value, "Iterator");
+}
+/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */
+function IsKindOf$1(value, kind) {
+ return IsObject$1(value) && Kind in value && value[Kind] === kind;
+}
+/** `[Kind-Only]` Returns true if the given value is TLiteral */
+function IsLiteralString$1(value) {
+ return IsLiteral(value) && IsString(value.const);
+}
+/** `[Kind-Only]` Returns true if the given value is TLiteral */
+function IsLiteralNumber$1(value) {
+ return IsLiteral(value) && IsNumber$1(value.const);
+}
+/** `[Kind-Only]` Returns true if the given value is TLiteral */
+function IsLiteralBoolean$1(value) {
+ return IsLiteral(value) && IsBoolean$1(value.const);
+}
+/** `[Kind-Only]` Returns true if the given value is TLiteralValue */
+function IsLiteralValue(value) {
+ return IsBoolean$1(value) || IsNumber$1(value) || IsString(value);
+}
+/** `[Kind-Only]` Returns true if the given value is TLiteral */
+function IsLiteral(value) {
+ return IsKindOf$1(value, "Literal");
+}
+/** `[Kind-Only]` Returns true if the given value is a TMappedKey */
+function IsMappedKey(value) {
+ return IsKindOf$1(value, "MappedKey");
+}
+/** `[Kind-Only]` Returns true if the given value is TMappedResult */
+function IsMappedResult(value) {
+ return IsKindOf$1(value, "MappedResult");
+}
+/** `[Kind-Only]` Returns true if the given value is TNever */
+function IsNever(value) {
+ return IsKindOf$1(value, "Never");
+}
+/** `[Kind-Only]` Returns true if the given value is TNot */
+function IsNot$1(value) {
+ return IsKindOf$1(value, "Not");
+}
+/** `[Kind-Only]` Returns true if the given value is TNull */
+function IsNull$2(value) {
+ return IsKindOf$1(value, "Null");
+}
+/** `[Kind-Only]` Returns true if the given value is TNumber */
+function IsNumber(value) {
+ return IsKindOf$1(value, "Number");
+}
+/** `[Kind-Only]` Returns true if the given value is TObject */
+function IsObject(value) {
+ return IsKindOf$1(value, "Object");
+}
+/** `[Kind-Only]` Returns true if the given value is TPromise */
+function IsPromise(value) {
+ return IsKindOf$1(value, "Promise");
+}
+/** `[Kind-Only]` Returns true if the given value is TRecord */
+function IsRecord(value) {
+ return IsKindOf$1(value, "Record");
+}
+/** `[Kind-Only]` Returns true if this value is TRecursive */
+function IsRecursive$1(value) {
+ return IsObject$1(value) && Hint in value && value[Hint] === "Recursive";
+}
+/** `[Kind-Only]` Returns true if the given value is TRef */
+function IsRef(value) {
+ return IsKindOf$1(value, "Ref");
+}
+/** `[Kind-Only]` Returns true if the given value is TRegExp */
+function IsRegExp(value) {
+ return IsKindOf$1(value, "RegExp");
+}
+/** `[Kind-Only]` Returns true if the given value is TString */
+function IsString$1(value) {
+ return IsKindOf$1(value, "String");
+}
+/** `[Kind-Only]` Returns true if the given value is TSymbol */
+function IsSymbol$2(value) {
+ return IsKindOf$1(value, "Symbol");
+}
+/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */
+function IsTemplateLiteral(value) {
+ return IsKindOf$1(value, "TemplateLiteral");
+}
+/** `[Kind-Only]` Returns true if the given value is TThis */
+function IsThis$1(value) {
+ return IsKindOf$1(value, "This");
+}
+/** `[Kind-Only]` Returns true of this value is TTransform */
+function IsTransform(value) {
+ return IsObject$1(value) && TransformKind in value;
+}
+/** `[Kind-Only]` Returns true if the given value is TTuple */
+function IsTuple(value) {
+ return IsKindOf$1(value, "Tuple");
+}
+/** `[Kind-Only]` Returns true if the given value is TUndefined */
+function IsUndefined$2(value) {
+ return IsKindOf$1(value, "Undefined");
+}
+/** `[Kind-Only]` Returns true if the given value is TUnion */
+function IsUnion(value) {
+ return IsKindOf$1(value, "Union");
+}
+/** `[Kind-Only]` Returns true if the given value is TUint8Array */
+function IsUint8Array$2(value) {
+ return IsKindOf$1(value, "Uint8Array");
+}
+/** `[Kind-Only]` Returns true if the given value is TUnknown */
+function IsUnknown$1(value) {
+ return IsKindOf$1(value, "Unknown");
+}
+/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */
+function IsUnsafe$1(value) {
+ return IsKindOf$1(value, "Unsafe");
+}
+/** `[Kind-Only]` Returns true if the given value is TVoid */
+function IsVoid$1(value) {
+ return IsKindOf$1(value, "Void");
+}
+/** `[Kind-Only]` Returns true if the given value is TKind */
+function IsKind$1(value) {
+ return IsObject$1(value) && Kind in value && IsString(value[Kind]);
+}
+/** `[Kind-Only]` Returns true if the given value is TSchema */
+function IsSchema(value) {
+ return IsAny(value) || IsArgument$1(value) || IsArray$1(value) || IsBoolean(value) || IsBigInt$1(value) || IsAsyncIterator$1(value) || IsComputed(value) || IsConstructor(value) || IsDate$2(value) || IsFunction$1(value) || IsInteger(value) || IsIntersect(value) || IsIterator$1(value) || IsLiteral(value) || IsMappedKey(value) || IsMappedResult(value) || IsNever(value) || IsNot$1(value) || IsNull$2(value) || IsNumber(value) || IsObject(value) || IsPromise(value) || IsRecord(value) || IsRef(value) || IsRegExp(value) || IsString$1(value) || IsSymbol$2(value) || IsTemplateLiteral(value) || IsThis$1(value) || IsTuple(value) || IsUndefined$2(value) || IsUnion(value) || IsUint8Array$2(value) || IsUnknown$1(value) || IsUnsafe$1(value) || IsVoid$1(value) || IsKind$1(value);
+}
+var init_kind = __esmMin((() => {
+ init_value$1();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/type.mjs
+function IsPattern(value) {
+ try {
+ new RegExp(value);
+ return true;
+ } catch {
+ return false;
+ }
+}
+function IsControlCharacterFree(value) {
+ if (!IsString(value)) return false;
+ for (let i$7 = 0; i$7 < value.length; i$7++) {
+ const code = value.charCodeAt(i$7);
+ if (code >= 7 && code <= 13 || code === 27 || code === 127) {
+ return false;
+ }
+ }
+ return true;
+}
+function IsAdditionalProperties(value) {
+ return IsOptionalBoolean(value) || IsSchema$1(value);
+}
+function IsOptionalBigInt(value) {
+ return IsUndefined(value) || IsBigInt(value);
+}
+function IsOptionalNumber(value) {
+ return IsUndefined(value) || IsNumber$1(value);
+}
+function IsOptionalBoolean(value) {
+ return IsUndefined(value) || IsBoolean$1(value);
+}
+function IsOptionalString(value) {
+ return IsUndefined(value) || IsString(value);
+}
+function IsOptionalPattern(value) {
+ return IsUndefined(value) || IsString(value) && IsControlCharacterFree(value) && IsPattern(value);
+}
+function IsOptionalFormat(value) {
+ return IsUndefined(value) || IsString(value) && IsControlCharacterFree(value);
+}
+function IsOptionalSchema(value) {
+ return IsUndefined(value) || IsSchema$1(value);
+}
+/** Returns true if this value has a Readonly symbol */
+function IsReadonly$1(value) {
+ return IsObject$1(value) && value[ReadonlyKind] === "Readonly";
+}
+/** Returns true if this value has a Optional symbol */
+function IsOptional$1(value) {
+ return IsObject$1(value) && value[OptionalKind] === "Optional";
+}
+/** Returns true if the given value is TAny */
+function IsAny$1(value) {
+ return IsKindOf(value, "Any") && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TArgument */
+function IsArgument(value) {
+ return IsKindOf(value, "Argument") && IsNumber$1(value.index);
+}
+/** Returns true if the given value is TArray */
+function IsArray$2(value) {
+ return IsKindOf(value, "Array") && value.type === "array" && IsOptionalString(value.$id) && IsSchema$1(value.items) && IsOptionalNumber(value.minItems) && IsOptionalNumber(value.maxItems) && IsOptionalBoolean(value.uniqueItems) && IsOptionalSchema(value.contains) && IsOptionalNumber(value.minContains) && IsOptionalNumber(value.maxContains);
+}
+/** Returns true if the given value is TAsyncIterator */
+function IsAsyncIterator$2(value) {
+ return IsKindOf(value, "AsyncIterator") && value.type === "AsyncIterator" && IsOptionalString(value.$id) && IsSchema$1(value.items);
+}
+/** Returns true if the given value is TBigInt */
+function IsBigInt$2(value) {
+ return IsKindOf(value, "BigInt") && value.type === "bigint" && IsOptionalString(value.$id) && IsOptionalBigInt(value.exclusiveMaximum) && IsOptionalBigInt(value.exclusiveMinimum) && IsOptionalBigInt(value.maximum) && IsOptionalBigInt(value.minimum) && IsOptionalBigInt(value.multipleOf);
+}
+/** Returns true if the given value is TBoolean */
+function IsBoolean$2(value) {
+ return IsKindOf(value, "Boolean") && value.type === "boolean" && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TComputed */
+function IsComputed$1(value) {
+ return IsKindOf(value, "Computed") && IsString(value.target) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema));
+}
+/** Returns true if the given value is TConstructor */
+function IsConstructor$1(value) {
+ return IsKindOf(value, "Constructor") && value.type === "Constructor" && IsOptionalString(value.$id) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema)) && IsSchema$1(value.returns);
+}
+/** Returns true if the given value is TDate */
+function IsDate$1(value) {
+ return IsKindOf(value, "Date") && value.type === "Date" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximumTimestamp) && IsOptionalNumber(value.exclusiveMinimumTimestamp) && IsOptionalNumber(value.maximumTimestamp) && IsOptionalNumber(value.minimumTimestamp) && IsOptionalNumber(value.multipleOfTimestamp);
+}
+/** Returns true if the given value is TFunction */
+function IsFunction$2(value) {
+ return IsKindOf(value, "Function") && value.type === "Function" && IsOptionalString(value.$id) && IsArray(value.parameters) && value.parameters.every((schema) => IsSchema$1(schema)) && IsSchema$1(value.returns);
+}
+/** Returns true if the given value is TImport */
+function IsImport(value) {
+ return IsKindOf(value, "Import") && HasPropertyKey$1(value, "$defs") && IsObject$1(value.$defs) && IsProperties(value.$defs) && HasPropertyKey$1(value, "$ref") && IsString(value.$ref) && value.$ref in value.$defs;
+}
+/** Returns true if the given value is TInteger */
+function IsInteger$1(value) {
+ return IsKindOf(value, "Integer") && value.type === "integer" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximum) && IsOptionalNumber(value.exclusiveMinimum) && IsOptionalNumber(value.maximum) && IsOptionalNumber(value.minimum) && IsOptionalNumber(value.multipleOf);
+}
+/** Returns true if the given schema is TProperties */
+function IsProperties(value) {
+ return IsObject$1(value) && Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && IsSchema$1(schema));
+}
+/** Returns true if the given value is TIntersect */
+function IsIntersect$1(value) {
+ return IsKindOf(value, "Intersect") && (IsString(value.type) && value.type !== "object" ? false : true) && IsArray(value.allOf) && value.allOf.every((schema) => IsSchema$1(schema) && !IsTransform$1(schema)) && IsOptionalString(value.type) && (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TIterator */
+function IsIterator$2(value) {
+ return IsKindOf(value, "Iterator") && value.type === "Iterator" && IsOptionalString(value.$id) && IsSchema$1(value.items);
+}
+/** Returns true if the given value is a TKind with the given name. */
+function IsKindOf(value, kind) {
+ return IsObject$1(value) && Kind in value && value[Kind] === kind;
+}
+/** Returns true if the given value is TLiteral */
+function IsLiteralString(value) {
+ return IsLiteral$1(value) && IsString(value.const);
+}
+/** Returns true if the given value is TLiteral */
+function IsLiteralNumber(value) {
+ return IsLiteral$1(value) && IsNumber$1(value.const);
+}
+/** Returns true if the given value is TLiteral */
+function IsLiteralBoolean(value) {
+ return IsLiteral$1(value) && IsBoolean$1(value.const);
+}
+/** Returns true if the given value is TLiteral */
+function IsLiteral$1(value) {
+ return IsKindOf(value, "Literal") && IsOptionalString(value.$id) && IsLiteralValue$1(value.const);
+}
+/** Returns true if the given value is a TLiteralValue */
+function IsLiteralValue$1(value) {
+ return IsBoolean$1(value) || IsNumber$1(value) || IsString(value);
+}
+/** Returns true if the given value is a TMappedKey */
+function IsMappedKey$1(value) {
+ return IsKindOf(value, "MappedKey") && IsArray(value.keys) && value.keys.every((key) => IsNumber$1(key) || IsString(key));
+}
+/** Returns true if the given value is TMappedResult */
+function IsMappedResult$1(value) {
+ return IsKindOf(value, "MappedResult") && IsProperties(value.properties);
+}
+/** Returns true if the given value is TNever */
+function IsNever$1(value) {
+ return IsKindOf(value, "Never") && IsObject$1(value.not) && Object.getOwnPropertyNames(value.not).length === 0;
+}
+/** Returns true if the given value is TNot */
+function IsNot(value) {
+ return IsKindOf(value, "Not") && IsSchema$1(value.not);
+}
+/** Returns true if the given value is TNull */
+function IsNull$1(value) {
+ return IsKindOf(value, "Null") && value.type === "null" && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TNumber */
+function IsNumber$2(value) {
+ return IsKindOf(value, "Number") && value.type === "number" && IsOptionalString(value.$id) && IsOptionalNumber(value.exclusiveMaximum) && IsOptionalNumber(value.exclusiveMinimum) && IsOptionalNumber(value.maximum) && IsOptionalNumber(value.minimum) && IsOptionalNumber(value.multipleOf);
+}
+/** Returns true if the given value is TObject */
+function IsObject$2(value) {
+ return IsKindOf(value, "Object") && value.type === "object" && IsOptionalString(value.$id) && IsProperties(value.properties) && IsAdditionalProperties(value.additionalProperties) && IsOptionalNumber(value.minProperties) && IsOptionalNumber(value.maxProperties);
+}
+/** Returns true if the given value is TPromise */
+function IsPromise$1(value) {
+ return IsKindOf(value, "Promise") && value.type === "Promise" && IsOptionalString(value.$id) && IsSchema$1(value.item);
+}
+/** Returns true if the given value is TRecord */
+function IsRecord$1(value) {
+ return IsKindOf(value, "Record") && value.type === "object" && IsOptionalString(value.$id) && IsAdditionalProperties(value.additionalProperties) && IsObject$1(value.patternProperties) && ((schema) => {
+ const keys$1 = Object.getOwnPropertyNames(schema.patternProperties);
+ return keys$1.length === 1 && IsPattern(keys$1[0]) && IsObject$1(schema.patternProperties) && IsSchema$1(schema.patternProperties[keys$1[0]]);
+ })(value);
+}
+/** Returns true if this value is TRecursive */
+function IsRecursive(value) {
+ return IsObject$1(value) && Hint in value && value[Hint] === "Recursive";
+}
+/** Returns true if the given value is TRef */
+function IsRef$1(value) {
+ return IsKindOf(value, "Ref") && IsOptionalString(value.$id) && IsString(value.$ref);
+}
+/** Returns true if the given value is TRegExp */
+function IsRegExp$1(value) {
+ return IsKindOf(value, "RegExp") && IsOptionalString(value.$id) && IsString(value.source) && IsString(value.flags) && IsOptionalNumber(value.maxLength) && IsOptionalNumber(value.minLength);
+}
+/** Returns true if the given value is TString */
+function IsString$2(value) {
+ return IsKindOf(value, "String") && value.type === "string" && IsOptionalString(value.$id) && IsOptionalNumber(value.minLength) && IsOptionalNumber(value.maxLength) && IsOptionalPattern(value.pattern) && IsOptionalFormat(value.format);
+}
+/** Returns true if the given value is TSymbol */
+function IsSymbol$1(value) {
+ return IsKindOf(value, "Symbol") && value.type === "symbol" && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TTemplateLiteral */
+function IsTemplateLiteral$1(value) {
+ return IsKindOf(value, "TemplateLiteral") && value.type === "string" && IsString(value.pattern) && value.pattern[0] === "^" && value.pattern[value.pattern.length - 1] === "$";
+}
+/** Returns true if the given value is TThis */
+function IsThis(value) {
+ return IsKindOf(value, "This") && IsOptionalString(value.$id) && IsString(value.$ref);
+}
+/** Returns true of this value is TTransform */
+function IsTransform$1(value) {
+ return IsObject$1(value) && TransformKind in value;
+}
+/** Returns true if the given value is TTuple */
+function IsTuple$1(value) {
+ return IsKindOf(value, "Tuple") && value.type === "array" && IsOptionalString(value.$id) && IsNumber$1(value.minItems) && IsNumber$1(value.maxItems) && value.minItems === value.maxItems && (IsUndefined(value.items) && IsUndefined(value.additionalItems) && value.minItems === 0 || IsArray(value.items) && value.items.every((schema) => IsSchema$1(schema)));
+}
+/** Returns true if the given value is TUndefined */
+function IsUndefined$1(value) {
+ return IsKindOf(value, "Undefined") && value.type === "undefined" && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TUnion[]> */
+function IsUnionLiteral(value) {
+ return IsUnion$1(value) && value.anyOf.every((schema) => IsLiteralString(schema) || IsLiteralNumber(schema));
+}
+/** Returns true if the given value is TUnion */
+function IsUnion$1(value) {
+ return IsKindOf(value, "Union") && IsOptionalString(value.$id) && IsObject$1(value) && IsArray(value.anyOf) && value.anyOf.every((schema) => IsSchema$1(schema));
+}
+/** Returns true if the given value is TUint8Array */
+function IsUint8Array$1(value) {
+ return IsKindOf(value, "Uint8Array") && value.type === "Uint8Array" && IsOptionalString(value.$id) && IsOptionalNumber(value.minByteLength) && IsOptionalNumber(value.maxByteLength);
+}
+/** Returns true if the given value is TUnknown */
+function IsUnknown(value) {
+ return IsKindOf(value, "Unknown") && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is a raw TUnsafe */
+function IsUnsafe(value) {
+ return IsKindOf(value, "Unsafe");
+}
+/** Returns true if the given value is TVoid */
+function IsVoid(value) {
+ return IsKindOf(value, "Void") && value.type === "void" && IsOptionalString(value.$id);
+}
+/** Returns true if the given value is TKind */
+function IsKind(value) {
+ return IsObject$1(value) && Kind in value && IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);
+}
+/** Returns true if the given value is TSchema */
+function IsSchema$1(value) {
+ return IsObject$1(value) && (IsAny$1(value) || IsArgument(value) || IsArray$2(value) || IsBoolean$2(value) || IsBigInt$2(value) || IsAsyncIterator$2(value) || IsComputed$1(value) || IsConstructor$1(value) || IsDate$1(value) || IsFunction$2(value) || IsInteger$1(value) || IsIntersect$1(value) || IsIterator$2(value) || IsLiteral$1(value) || IsMappedKey$1(value) || IsMappedResult$1(value) || IsNever$1(value) || IsNot(value) || IsNull$1(value) || IsNumber$2(value) || IsObject$2(value) || IsPromise$1(value) || IsRecord$1(value) || IsRef$1(value) || IsRegExp$1(value) || IsString$2(value) || IsSymbol$1(value) || IsTemplateLiteral$1(value) || IsThis(value) || IsTuple$1(value) || IsUndefined$1(value) || IsUnion$1(value) || IsUint8Array$1(value) || IsUnknown(value) || IsUnsafe(value) || IsVoid(value) || IsKind(value));
+}
+var TypeGuardUnknownTypeError, KnownTypes;
+var init_type$3 = __esmMin((() => {
+ init_value$1();
+ init_symbols();
+ init_error();
+ TypeGuardUnknownTypeError = class extends TypeBoxError {};
+ KnownTypes = [
+ "Argument",
+ "Any",
+ "Array",
+ "AsyncIterator",
+ "BigInt",
+ "Boolean",
+ "Computed",
+ "Constructor",
+ "Date",
+ "Enum",
+ "Function",
+ "Integer",
+ "Intersect",
+ "Iterator",
+ "Literal",
+ "MappedKey",
+ "MappedResult",
+ "Not",
+ "Null",
+ "Number",
+ "Object",
+ "Promise",
+ "Record",
+ "Ref",
+ "RegExp",
+ "String",
+ "Symbol",
+ "TemplateLiteral",
+ "This",
+ "Tuple",
+ "Undefined",
+ "Union",
+ "Uint8Array",
+ "Unknown",
+ "Void"
+ ];
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/guard/index.mjs
+var init_guard = __esmMin((() => {
+ init_kind();
+ init_type$3();
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/helpers/helpers.mjs
+/** Increments the given string value + 1 */
+function Increment(T$3) {
+ return (parseInt(T$3) + 1).toString();
+}
+var init_helpers$1 = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/helpers/index.mjs
+var init_helpers = __esmMin((() => {
+ init_helpers$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/patterns/patterns.mjs
+var PatternBoolean, PatternNumber, PatternString, PatternNever, PatternBooleanExact, PatternNumberExact, PatternStringExact, PatternNeverExact;
+var init_patterns$1 = __esmMin((() => {
+ PatternBoolean = "(true|false)";
+ PatternNumber = "(0|[1-9][0-9]*)";
+ PatternString = "(.*)";
+ PatternNever = "(?!.*)";
+ PatternBooleanExact = `^${PatternBoolean}$`;
+ PatternNumberExact = `^${PatternNumber}$`;
+ PatternStringExact = `^${PatternString}$`;
+ PatternNeverExact = `^${PatternNever}$`;
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/patterns/index.mjs
+var init_patterns = __esmMin((() => {
+ init_patterns$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/format.mjs
+/** Returns the entries in this registry */
+function Entries$1() {
+ return new Map(map$1);
+}
+/** Clears all user defined string formats */
+function Clear$1() {
+ return map$1.clear();
+}
+/** Deletes a registered format */
+function Delete$1(format) {
+ return map$1.delete(format);
+}
+/** Returns true if the user defined string format exists */
+function Has$1(format) {
+ return map$1.has(format);
+}
+/** Sets a validation function for a user defined string format */
+function Set$2(format, func) {
+ map$1.set(format, func);
+}
+/** Gets a validation function for a user defined string format */
+function Get$1(format) {
+ return map$1.get(format);
+}
+var map$1;
+var init_format = __esmMin((() => {
+ map$1 = new Map();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/type.mjs
+/** Returns the entries in this registry */
+function Entries() {
+ return new Map(map);
+}
+/** Clears all user defined types */
+function Clear() {
+ return map.clear();
+}
+/** Deletes a registered type */
+function Delete(kind) {
+ return map.delete(kind);
+}
+/** Returns true if this registry contains this kind */
+function Has(kind) {
+ return map.has(kind);
+}
+/** Sets a validation function for a user defined type */
+function Set$1(kind, func) {
+ map.set(kind, func);
+}
+/** Gets a custom validation function for a user defined type */
+function Get(kind) {
+ return map.get(kind);
+}
+var map;
+var init_type$2 = __esmMin((() => {
+ map = new Map();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/registry/index.mjs
+var init_registry = __esmMin((() => {
+ init_format();
+ init_type$2();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/sets/set.mjs
+/** Returns true if element right is in the set of left */
+function SetIncludes(T$3, S$4) {
+ return T$3.includes(S$4);
+}
+/** Returns true if left is a subset of right */
+function SetIsSubset(T$3, S$4) {
+ return T$3.every((L$2) => SetIncludes(S$4, L$2));
+}
+/** Returns a distinct set of elements */
+function SetDistinct(T$3) {
+ return [...new Set(T$3)];
+}
+/** Returns the Intersect of the given sets */
+function SetIntersect(T$3, S$4) {
+ return T$3.filter((L$2) => S$4.includes(L$2));
+}
+/** Returns the Union of the given sets */
+function SetUnion(T$3, S$4) {
+ return [...T$3, ...S$4];
+}
+/** Returns the Complement by omitting elements in T that are in S */
+function SetComplement(T$3, S$4) {
+ return T$3.filter((L$2) => !S$4.includes(L$2));
+}
+function SetIntersectManyResolve(T$3, Init) {
+ return T$3.reduce((Acc, L$2) => {
+ return SetIntersect(Acc, L$2);
+ }, Init);
+}
+function SetIntersectMany(T$3) {
+ return T$3.length === 1 ? T$3[0] : T$3.length > 1 ? SetIntersectManyResolve(T$3.slice(1), T$3[0]) : [];
+}
+/** Returns the Union of multiple sets */
+function SetUnionMany(T$3) {
+ const Acc = [];
+ for (const L$2 of T$3) Acc.push(...L$2);
+ return Acc;
+}
+var init_set = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/sets/index.mjs
+var init_sets = __esmMin((() => {
+ init_set();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/any/any.mjs
+/** `[Json]` Creates an Any type */
+function Any(options) {
+ return CreateType({ [Kind]: "Any" }, options);
+}
+var init_any$1 = __esmMin((() => {
+ init_create$1();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/any/index.mjs
+var init_any = __esmMin((() => {
+ init_any$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/array/array.mjs
+/** `[Json]` Creates an Array type */
+function Array$1(items, options) {
+ return CreateType({
+ [Kind]: "Array",
+ type: "array",
+ items
+ }, options);
+}
+var init_array$2 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/array/index.mjs
+var init_array$1 = __esmMin((() => {
+ init_array$2();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/argument/argument.mjs
+/** `[JavaScript]` Creates an Argument Type. */
+function Argument(index) {
+ return CreateType({
+ [Kind]: "Argument",
+ index
+ });
+}
+var init_argument$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/argument/index.mjs
+var init_argument = __esmMin((() => {
+ init_argument$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs
+/** `[JavaScript]` Creates a AsyncIterator type */
+function AsyncIterator(items, options) {
+ return CreateType({
+ [Kind]: "AsyncIterator",
+ type: "AsyncIterator",
+ items
+ }, options);
+}
+var init_async_iterator$1 = __esmMin((() => {
+ init_symbols();
+ init_type$4();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/async-iterator/index.mjs
+var init_async_iterator = __esmMin((() => {
+ init_async_iterator$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/computed/computed.mjs
+/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references */
+function Computed(target, parameters, options) {
+ return CreateType({
+ [Kind]: "Computed",
+ target,
+ parameters
+ }, options);
+}
+var init_computed$1 = __esmMin((() => {
+ init_create$1();
+ init_symbols$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/computed/index.mjs
+var init_computed = __esmMin((() => {
+ init_computed$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/discard/discard.mjs
+function DiscardKey(value, key) {
+ const { [key]: _$2, ...rest } = value;
+ return rest;
+}
+/** Discards property keys from the given value. This function returns a shallow Clone. */
+function Discard(value, keys$1) {
+ return keys$1.reduce((acc, key) => DiscardKey(acc, key), value);
+}
+var init_discard$1 = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/discard/index.mjs
+var init_discard = __esmMin((() => {
+ init_discard$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/never/never.mjs
+/** `[Json]` Creates a Never type */
+function Never(options) {
+ return CreateType({
+ [Kind]: "Never",
+ not: {}
+ }, options);
+}
+var init_never$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/never/index.mjs
+var init_never = __esmMin((() => {
+ init_never$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped-key.mjs
+function MappedKey(T$3) {
+ return CreateType({
+ [Kind]: "MappedKey",
+ keys: T$3
+ });
+}
+var init_mapped_key = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs
+function MappedResult(properties$1) {
+ return CreateType({
+ [Kind]: "MappedResult",
+ properties: properties$1
+ });
+}
+var init_mapped_result = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor/constructor.mjs
+/** `[JavaScript]` Creates a Constructor type */
+function Constructor(parameters, returns, options) {
+ return CreateType({
+ [Kind]: "Constructor",
+ type: "Constructor",
+ parameters,
+ returns
+ }, options);
+}
+var init_constructor$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor/index.mjs
+var init_constructor = __esmMin((() => {
+ init_constructor$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/function/function.mjs
+/** `[JavaScript]` Creates a Function type */
+function Function$1(parameters, returns, options) {
+ return CreateType({
+ [Kind]: "Function",
+ type: "Function",
+ parameters,
+ returns
+ }, options);
+}
+var init_function$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/function/index.mjs
+var init_function = __esmMin((() => {
+ init_function$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-create.mjs
+function UnionCreate(T$3, options) {
+ return CreateType({
+ [Kind]: "Union",
+ anyOf: T$3
+ }, options);
+}
+var init_union_create = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs
+function IsUnionOptional(types) {
+ return types.some((type) => IsOptional(type));
+}
+function RemoveOptionalFromRest$1(types) {
+ return types.map((left) => IsOptional(left) ? RemoveOptionalFromType$1(left) : left);
+}
+function RemoveOptionalFromType$1(T$3) {
+ return Discard(T$3, [OptionalKind]);
+}
+function ResolveUnion(types, options) {
+ const isOptional = IsUnionOptional(types);
+ return isOptional ? Optional(UnionCreate(RemoveOptionalFromRest$1(types), options)) : UnionCreate(RemoveOptionalFromRest$1(types), options);
+}
+/** `[Json]` Creates an evaluated Union type */
+function UnionEvaluated(T$3, options) {
+ return T$3.length === 1 ? CreateType(T$3[0], options) : T$3.length === 0 ? Never(options) : ResolveUnion(T$3, options);
+}
+var init_union_evaluated = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_discard();
+ init_never();
+ init_optional();
+ init_union_create();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union-type.mjs
+var init_union_type = __esmMin((() => {
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/union.mjs
+/** `[Json]` Creates a Union type */
+function Union(types, options) {
+ return types.length === 0 ? Never(options) : types.length === 1 ? CreateType(types[0], options) : UnionCreate(types, options);
+}
+var init_union$2 = __esmMin((() => {
+ init_never();
+ init_type$4();
+ init_union_create();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/union/index.mjs
+var init_union$1 = __esmMin((() => {
+ init_union_evaluated();
+ init_union_type();
+ init_union$2();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/parse.mjs
+function Unescape(pattern) {
+ return pattern.replace(/\\\$/g, "$").replace(/\\\*/g, "*").replace(/\\\^/g, "^").replace(/\\\|/g, "|").replace(/\\\(/g, "(").replace(/\\\)/g, ")");
+}
+function IsNonEscaped(pattern, index, char) {
+ return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;
+}
+function IsOpenParen(pattern, index) {
+ return IsNonEscaped(pattern, index, "(");
+}
+function IsCloseParen(pattern, index) {
+ return IsNonEscaped(pattern, index, ")");
+}
+function IsSeparator(pattern, index) {
+ return IsNonEscaped(pattern, index, "|");
+}
+function IsGroup(pattern) {
+ if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1))) return false;
+ let count = 0;
+ for (let index = 0; index < pattern.length; index++) {
+ if (IsOpenParen(pattern, index)) count += 1;
+ if (IsCloseParen(pattern, index)) count -= 1;
+ if (count === 0 && index !== pattern.length - 1) return false;
+ }
+ return true;
+}
+function InGroup(pattern) {
+ return pattern.slice(1, pattern.length - 1);
+}
+function IsPrecedenceOr(pattern) {
+ let count = 0;
+ for (let index = 0; index < pattern.length; index++) {
+ if (IsOpenParen(pattern, index)) count += 1;
+ if (IsCloseParen(pattern, index)) count -= 1;
+ if (IsSeparator(pattern, index) && count === 0) return true;
+ }
+ return false;
+}
+function IsPrecedenceAnd(pattern) {
+ for (let index = 0; index < pattern.length; index++) {
+ if (IsOpenParen(pattern, index)) return true;
+ }
+ return false;
+}
+function Or(pattern) {
+ let [count, start] = [0, 0];
+ const expressions = [];
+ for (let index = 0; index < pattern.length; index++) {
+ if (IsOpenParen(pattern, index)) count += 1;
+ if (IsCloseParen(pattern, index)) count -= 1;
+ if (IsSeparator(pattern, index) && count === 0) {
+ const range$1 = pattern.slice(start, index);
+ if (range$1.length > 0) expressions.push(TemplateLiteralParse(range$1));
+ start = index + 1;
+ }
+ }
+ const range = pattern.slice(start);
+ if (range.length > 0) expressions.push(TemplateLiteralParse(range));
+ if (expressions.length === 0) return {
+ type: "const",
+ const: ""
+ };
+ if (expressions.length === 1) return expressions[0];
+ return {
+ type: "or",
+ expr: expressions
+ };
+}
+function And(pattern) {
+ function Group$1(value, index) {
+ if (!IsOpenParen(value, index)) throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);
+ let count = 0;
+ for (let scan = index; scan < value.length; scan++) {
+ if (IsOpenParen(value, scan)) count += 1;
+ if (IsCloseParen(value, scan)) count -= 1;
+ if (count === 0) return [index, scan];
+ }
+ throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`);
+ }
+ function Range$1(pattern$1, index) {
+ for (let scan = index; scan < pattern$1.length; scan++) {
+ if (IsOpenParen(pattern$1, scan)) return [index, scan];
+ }
+ return [index, pattern$1.length];
+ }
+ const expressions = [];
+ for (let index = 0; index < pattern.length; index++) {
+ if (IsOpenParen(pattern, index)) {
+ const [start, end] = Group$1(pattern, index);
+ const range = pattern.slice(start, end + 1);
+ expressions.push(TemplateLiteralParse(range));
+ index = end;
+ } else {
+ const [start, end] = Range$1(pattern, index);
+ const range = pattern.slice(start, end);
+ if (range.length > 0) expressions.push(TemplateLiteralParse(range));
+ index = end - 1;
+ }
+ }
+ return expressions.length === 0 ? {
+ type: "const",
+ const: ""
+ } : expressions.length === 1 ? expressions[0] : {
+ type: "and",
+ expr: expressions
+ };
+}
+/** Parses a pattern and returns an expression tree */
+function TemplateLiteralParse(pattern) {
+ return IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) : IsPrecedenceOr(pattern) ? Or(pattern) : IsPrecedenceAnd(pattern) ? And(pattern) : {
+ type: "const",
+ const: Unescape(pattern)
+ };
+}
+/** Parses a pattern and strips forward and trailing ^ and $ */
+function TemplateLiteralParseExact(pattern) {
+ return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));
+}
+var TemplateLiteralParserError;
+var init_parse$1 = __esmMin((() => {
+ init_error();
+ TemplateLiteralParserError = class extends TypeBoxError {};
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/finite.mjs
+function IsNumberExpression(expression) {
+ return expression.type === "or" && expression.expr.length === 2 && expression.expr[0].type === "const" && expression.expr[0].const === "0" && expression.expr[1].type === "const" && expression.expr[1].const === "[1-9][0-9]*";
+}
+function IsBooleanExpression(expression) {
+ return expression.type === "or" && expression.expr.length === 2 && expression.expr[0].type === "const" && expression.expr[0].const === "true" && expression.expr[1].type === "const" && expression.expr[1].const === "false";
+}
+function IsStringExpression(expression) {
+ return expression.type === "const" && expression.const === ".*";
+}
+function IsTemplateLiteralExpressionFinite(expression) {
+ return IsNumberExpression(expression) || IsStringExpression(expression) ? false : IsBooleanExpression(expression) ? true : expression.type === "and" ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : expression.type === "or" ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) : expression.type === "const" ? true : (() => {
+ throw new TemplateLiteralFiniteError(`Unknown expression type`);
+ })();
+}
+/** Returns true if this TemplateLiteral resolves to a finite set of values */
+function IsTemplateLiteralFinite(schema) {
+ const expression = TemplateLiteralParseExact(schema.pattern);
+ return IsTemplateLiteralExpressionFinite(expression);
+}
+var TemplateLiteralFiniteError;
+var init_finite = __esmMin((() => {
+ init_parse$1();
+ init_error();
+ TemplateLiteralFiniteError = class extends TypeBoxError {};
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/generate.mjs
+function* GenerateReduce(buffer) {
+ if (buffer.length === 1) return yield* buffer[0];
+ for (const left of buffer[0]) {
+ for (const right of GenerateReduce(buffer.slice(1))) {
+ yield `${left}${right}`;
+ }
+ }
+}
+function* GenerateAnd(expression) {
+ return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)]));
+}
+function* GenerateOr(expression) {
+ for (const expr of expression.expr) yield* TemplateLiteralExpressionGenerate(expr);
+}
+function* GenerateConst(expression) {
+ return yield expression.const;
+}
+function* TemplateLiteralExpressionGenerate(expression) {
+ return expression.type === "and" ? yield* GenerateAnd(expression) : expression.type === "or" ? yield* GenerateOr(expression) : expression.type === "const" ? yield* GenerateConst(expression) : (() => {
+ throw new TemplateLiteralGenerateError("Unknown expression");
+ })();
+}
+/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */
+function TemplateLiteralGenerate(schema) {
+ const expression = TemplateLiteralParseExact(schema.pattern);
+ return IsTemplateLiteralExpressionFinite(expression) ? [...TemplateLiteralExpressionGenerate(expression)] : [];
+}
+var TemplateLiteralGenerateError;
+var init_generate = __esmMin((() => {
+ init_finite();
+ init_parse$1();
+ init_error();
+ TemplateLiteralGenerateError = class extends TypeBoxError {};
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/literal/literal.mjs
+/** `[Json]` Creates a Literal type */
+function Literal(value, options) {
+ return CreateType({
+ [Kind]: "Literal",
+ const: value,
+ type: typeof value
+ }, options);
+}
+var init_literal$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/literal/index.mjs
+var init_literal = __esmMin((() => {
+ init_literal$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/boolean/boolean.mjs
+/** `[Json]` Creates a Boolean type */
+function Boolean$1(options) {
+ return CreateType({
+ [Kind]: "Boolean",
+ type: "boolean"
+ }, options);
+}
+var init_boolean$1 = __esmMin((() => {
+ init_symbols();
+ init_create$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/boolean/index.mjs
+var init_boolean = __esmMin((() => {
+ init_boolean$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/bigint/bigint.mjs
+/** `[JavaScript]` Creates a BigInt type */
+function BigInt(options) {
+ return CreateType({
+ [Kind]: "BigInt",
+ type: "bigint"
+ }, options);
+}
+var init_bigint$1 = __esmMin((() => {
+ init_symbols();
+ init_create$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/bigint/index.mjs
+var init_bigint = __esmMin((() => {
+ init_bigint$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/number/number.mjs
+/** `[Json]` Creates a Number type */
+function Number$1(options) {
+ return CreateType({
+ [Kind]: "Number",
+ type: "number"
+ }, options);
+}
+var init_number$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/number/index.mjs
+var init_number = __esmMin((() => {
+ init_number$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/string/string.mjs
+/** `[Json]` Creates a String type */
+function String$1(options) {
+ return CreateType({
+ [Kind]: "String",
+ type: "string"
+ }, options);
+}
+var init_string$2 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/string/index.mjs
+var init_string$1 = __esmMin((() => {
+ init_string$2();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs
+function* FromUnion$9(syntax) {
+ const trim = syntax.trim().replace(/"|'/g, "");
+ return trim === "boolean" ? yield Boolean$1() : trim === "number" ? yield Number$1() : trim === "bigint" ? yield BigInt() : trim === "string" ? yield String$1() : yield (() => {
+ const literals$1 = trim.split("|").map((literal) => Literal(literal.trim()));
+ return literals$1.length === 0 ? Never() : literals$1.length === 1 ? literals$1[0] : UnionEvaluated(literals$1);
+ })();
+}
+function* FromTerminal(syntax) {
+ if (syntax[1] !== "{") {
+ const L$2 = Literal("$");
+ const R$1 = FromSyntax(syntax.slice(1));
+ return yield* [L$2, ...R$1];
+ }
+ for (let i$7 = 2; i$7 < syntax.length; i$7++) {
+ if (syntax[i$7] === "}") {
+ const L$2 = FromUnion$9(syntax.slice(2, i$7));
+ const R$1 = FromSyntax(syntax.slice(i$7 + 1));
+ return yield* [...L$2, ...R$1];
+ }
+ }
+ yield Literal(syntax);
+}
+function* FromSyntax(syntax) {
+ for (let i$7 = 0; i$7 < syntax.length; i$7++) {
+ if (syntax[i$7] === "$") {
+ const L$2 = Literal(syntax.slice(0, i$7));
+ const R$1 = FromTerminal(syntax.slice(i$7));
+ return yield* [L$2, ...R$1];
+ }
+ }
+ yield Literal(syntax);
+}
+/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */
+function TemplateLiteralSyntax(syntax) {
+ return [...FromSyntax(syntax)];
+}
+var init_syntax = __esmMin((() => {
+ init_literal();
+ init_boolean();
+ init_bigint();
+ init_number();
+ init_string$1();
+ init_union$1();
+ init_never();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs
+function Escape(value) {
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+}
+function Visit$1(schema, acc) {
+ return IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) : IsUnion(schema) ? `(${schema.anyOf.map((schema$1) => Visit$1(schema$1, acc)).join("|")})` : IsNumber(schema) ? `${acc}${PatternNumber}` : IsInteger(schema) ? `${acc}${PatternNumber}` : IsBigInt$1(schema) ? `${acc}${PatternNumber}` : IsString$1(schema) ? `${acc}${PatternString}` : IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` : IsBoolean(schema) ? `${acc}${PatternBoolean}` : (() => {
+ throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`);
+ })();
+}
+function TemplateLiteralPattern(kinds) {
+ return `^${kinds.map((schema) => Visit$1(schema, "")).join("")}\$`;
+}
+var TemplateLiteralPatternError;
+var init_pattern = __esmMin((() => {
+ init_patterns();
+ init_symbols();
+ init_error();
+ init_kind();
+ TemplateLiteralPatternError = class extends TypeBoxError {};
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/union.mjs
+/** Returns a Union from the given TemplateLiteral */
+function TemplateLiteralToUnion(schema) {
+ const R$1 = TemplateLiteralGenerate(schema);
+ const L$2 = R$1.map((S$4) => Literal(S$4));
+ return UnionEvaluated(L$2);
+}
+var init_union = __esmMin((() => {
+ init_union$1();
+ init_literal();
+ init_generate();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs
+/** `[Json]` Creates a TemplateLiteral type */
+function TemplateLiteral(unresolved, options) {
+ const pattern = IsString(unresolved) ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved)) : TemplateLiteralPattern(unresolved);
+ return CreateType({
+ [Kind]: "TemplateLiteral",
+ type: "string",
+ pattern
+ }, options);
+}
+var init_template_literal$1 = __esmMin((() => {
+ init_type$4();
+ init_syntax();
+ init_pattern();
+ init_value$1();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/template-literal/index.mjs
+var init_template_literal = __esmMin((() => {
+ init_finite();
+ init_generate();
+ init_syntax();
+ init_parse$1();
+ init_pattern();
+ init_union();
+ init_template_literal$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs
+function FromTemplateLiteral$2(templateLiteral) {
+ const keys$1 = TemplateLiteralGenerate(templateLiteral);
+ return keys$1.map((key) => key.toString());
+}
+function FromUnion$8(types) {
+ const result = [];
+ for (const type of types) result.push(...IndexPropertyKeys(type));
+ return result;
+}
+function FromLiteral$1(literalValue) {
+ return [literalValue.toString()];
+}
+/** Returns a tuple of PropertyKeys derived from the given TSchema */
+function IndexPropertyKeys(type) {
+ return [...new Set(IsTemplateLiteral(type) ? FromTemplateLiteral$2(type) : IsUnion(type) ? FromUnion$8(type.anyOf) : IsLiteral(type) ? FromLiteral$1(type.const) : IsNumber(type) ? ["[number]"] : IsInteger(type) ? ["[number]"] : [])];
+}
+var init_indexed_property_keys = __esmMin((() => {
+ init_template_literal();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs
+function FromProperties$18(type, properties$1, options) {
+ const result = {};
+ for (const K2 of Object.getOwnPropertyNames(properties$1)) {
+ result[K2] = Index(type, IndexPropertyKeys(properties$1[K2]), options);
+ }
+ return result;
+}
+function FromMappedResult$11(type, mappedResult, options) {
+ return FromProperties$18(type, mappedResult.properties, options);
+}
+function IndexFromMappedResult(type, mappedResult, options) {
+ const properties$1 = FromMappedResult$11(type, mappedResult, options);
+ return MappedResult(properties$1);
+}
+var init_indexed_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_indexed_property_keys();
+ init_indexed();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed.mjs
+function FromRest$6(types, key) {
+ return types.map((type) => IndexFromPropertyKey(type, key));
+}
+function FromIntersectRest(types) {
+ return types.filter((type) => !IsNever(type));
+}
+function FromIntersect$7(types, key) {
+ return IntersectEvaluated(FromIntersectRest(FromRest$6(types, key)));
+}
+function FromUnionRest(types) {
+ return types.some((L$2) => IsNever(L$2)) ? [] : types;
+}
+function FromUnion$7(types, key) {
+ return UnionEvaluated(FromUnionRest(FromRest$6(types, key)));
+}
+function FromTuple$4(types, key) {
+ return key in types ? types[key] : key === "[number]" ? UnionEvaluated(types) : Never();
+}
+function FromArray$5(type, key) {
+ return key === "[number]" ? type : Never();
+}
+function FromProperty$2(properties$1, propertyKey) {
+ return propertyKey in properties$1 ? properties$1[propertyKey] : Never();
+}
+function IndexFromPropertyKey(type, propertyKey) {
+ return IsIntersect(type) ? FromIntersect$7(type.allOf, propertyKey) : IsUnion(type) ? FromUnion$7(type.anyOf, propertyKey) : IsTuple(type) ? FromTuple$4(type.items ?? [], propertyKey) : IsArray$1(type) ? FromArray$5(type.items, propertyKey) : IsObject(type) ? FromProperty$2(type.properties, propertyKey) : Never();
+}
+function IndexFromPropertyKeys(type, propertyKeys) {
+ return propertyKeys.map((propertyKey) => IndexFromPropertyKey(type, propertyKey));
+}
+function FromSchema(type, propertyKeys) {
+ return UnionEvaluated(IndexFromPropertyKeys(type, propertyKeys));
+}
+function IndexFromComputed(type, key) {
+ return Computed("Index", [type, key]);
+}
+/** `[Json]` Returns an Indexed property type for the given keys */
+function Index(type, key, options) {
+ if (IsRef(type) || IsRef(key)) {
+ const error$2 = `Index types using Ref parameters require both Type and Key to be of TSchema`;
+ if (!IsSchema(type) || !IsSchema(key)) throw new TypeBoxError(error$2);
+ return Computed("Index", [type, key]);
+ }
+ if (IsMappedResult(key)) return IndexFromMappedResult(type, key, options);
+ if (IsMappedKey(key)) return IndexFromMappedKey(type, key, options);
+ return CreateType(IsSchema(key) ? FromSchema(type, IndexPropertyKeys(key)) : FromSchema(type, key), options);
+}
+var init_indexed$1 = __esmMin((() => {
+ init_type$4();
+ init_error();
+ init_computed();
+ init_never();
+ init_intersect();
+ init_union$1();
+ init_indexed_property_keys();
+ init_indexed_from_mapped_key();
+ init_indexed_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs
+function MappedIndexPropertyKey(type, key, options) {
+ return { [key]: Index(type, [key], Clone(options)) };
+}
+function MappedIndexPropertyKeys(type, propertyKeys, options) {
+ return propertyKeys.reduce((result, left) => {
+ return {
+ ...result,
+ ...MappedIndexPropertyKey(type, left, options)
+ };
+ }, {});
+}
+function MappedIndexProperties(type, mappedKey, options) {
+ return MappedIndexPropertyKeys(type, mappedKey.keys, options);
+}
+function IndexFromMappedKey(type, mappedKey, options) {
+ const properties$1 = MappedIndexProperties(type, mappedKey, options);
+ return MappedResult(properties$1);
+}
+var init_indexed_from_mapped_key = __esmMin((() => {
+ init_indexed$1();
+ init_mapped();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/indexed/index.mjs
+var init_indexed = __esmMin((() => {
+ init_indexed_from_mapped_key();
+ init_indexed_from_mapped_result();
+ init_indexed_property_keys();
+ init_indexed$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/iterator/iterator.mjs
+/** `[JavaScript]` Creates an Iterator type */
+function Iterator(items, options) {
+ return CreateType({
+ [Kind]: "Iterator",
+ type: "Iterator",
+ items
+ }, options);
+}
+var init_iterator$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/iterator/index.mjs
+var init_iterator = __esmMin((() => {
+ init_iterator$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/object/object.mjs
+function RequiredKeys(properties$1) {
+ const keys$1 = [];
+ for (let key in properties$1) {
+ if (!IsOptional(properties$1[key])) keys$1.push(key);
+ }
+ return keys$1;
+}
+/** `[Json]` Creates an Object type */
+function _Object(properties$1, options) {
+ const required = RequiredKeys(properties$1);
+ const schematic = required.length > 0 ? {
+ [Kind]: "Object",
+ type: "object",
+ properties: properties$1,
+ required
+ } : {
+ [Kind]: "Object",
+ type: "object",
+ properties: properties$1
+ };
+ return CreateType(schematic, options);
+}
+var Object$1;
+var init_object$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_kind();
+ Object$1 = _Object;
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/object/index.mjs
+var init_object = __esmMin((() => {
+ init_object$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/promise/promise.mjs
+/** `[JavaScript]` Creates a Promise type */
+function Promise$1(item, options) {
+ return CreateType({
+ [Kind]: "Promise",
+ type: "Promise",
+ item
+ }, options);
+}
+var init_promise$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/promise/index.mjs
+var init_promise = __esmMin((() => {
+ init_promise$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/readonly.mjs
+function RemoveReadonly(schema) {
+ return CreateType(Discard(schema, [ReadonlyKind]));
+}
+function AddReadonly(schema) {
+ return CreateType({
+ ...schema,
+ [ReadonlyKind]: "Readonly"
+ });
+}
+function ReadonlyWithFlag(schema, F$1) {
+ return F$1 === false ? RemoveReadonly(schema) : AddReadonly(schema);
+}
+/** `[Json]` Creates a Readonly property */
+function Readonly(schema, enable) {
+ const F$1 = enable ?? true;
+ return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F$1) : ReadonlyWithFlag(schema, F$1);
+}
+var init_readonly$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_discard();
+ init_readonly_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs
+function FromProperties$17(K$1, F$1) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(K$1)) Acc[K2] = Readonly(K$1[K2], F$1);
+ return Acc;
+}
+function FromMappedResult$10(R$1, F$1) {
+ return FromProperties$17(R$1.properties, F$1);
+}
+function ReadonlyFromMappedResult(R$1, F$1) {
+ const P$2 = FromMappedResult$10(R$1, F$1);
+ return MappedResult(P$2);
+}
+var init_readonly_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_readonly$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly/index.mjs
+var init_readonly = __esmMin((() => {
+ init_readonly_from_mapped_result();
+ init_readonly$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/tuple/tuple.mjs
+/** `[Json]` Creates a Tuple type */
+function Tuple(types, options) {
+ return CreateType(types.length > 0 ? {
+ [Kind]: "Tuple",
+ type: "array",
+ items: types,
+ additionalItems: false,
+ minItems: types.length,
+ maxItems: types.length
+ } : {
+ [Kind]: "Tuple",
+ type: "array",
+ minItems: types.length,
+ maxItems: types.length
+ }, options);
+}
+var init_tuple$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/tuple/index.mjs
+var init_tuple = __esmMin((() => {
+ init_tuple$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/mapped.mjs
+function FromMappedResult$9(K$1, P$2) {
+ return K$1 in P$2 ? FromSchemaType(K$1, P$2[K$1]) : MappedResult(P$2);
+}
+function MappedKeyToKnownMappedResultProperties(K$1) {
+ return { [K$1]: Literal(K$1) };
+}
+function MappedKeyToUnknownMappedResultProperties(P$2) {
+ const Acc = {};
+ for (const L$2 of P$2) Acc[L$2] = Literal(L$2);
+ return Acc;
+}
+function MappedKeyToMappedResultProperties(K$1, P$2) {
+ return SetIncludes(P$2, K$1) ? MappedKeyToKnownMappedResultProperties(K$1) : MappedKeyToUnknownMappedResultProperties(P$2);
+}
+function FromMappedKey$3(K$1, P$2) {
+ const R$1 = MappedKeyToMappedResultProperties(K$1, P$2);
+ return FromMappedResult$9(K$1, R$1);
+}
+function FromRest$5(K$1, T$3) {
+ return T$3.map((L$2) => FromSchemaType(K$1, L$2));
+}
+function FromProperties$16(K$1, T$3) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(T$3)) Acc[K2] = FromSchemaType(K$1, T$3[K2]);
+ return Acc;
+}
+function FromSchemaType(K$1, T$3) {
+ const options = { ...T$3 };
+ return IsOptional(T$3) ? Optional(FromSchemaType(K$1, Discard(T$3, [OptionalKind]))) : IsReadonly(T$3) ? Readonly(FromSchemaType(K$1, Discard(T$3, [ReadonlyKind]))) : IsMappedResult(T$3) ? FromMappedResult$9(K$1, T$3.properties) : IsMappedKey(T$3) ? FromMappedKey$3(K$1, T$3.keys) : IsConstructor(T$3) ? Constructor(FromRest$5(K$1, T$3.parameters), FromSchemaType(K$1, T$3.returns), options) : IsFunction$1(T$3) ? Function$1(FromRest$5(K$1, T$3.parameters), FromSchemaType(K$1, T$3.returns), options) : IsAsyncIterator$1(T$3) ? AsyncIterator(FromSchemaType(K$1, T$3.items), options) : IsIterator$1(T$3) ? Iterator(FromSchemaType(K$1, T$3.items), options) : IsIntersect(T$3) ? Intersect(FromRest$5(K$1, T$3.allOf), options) : IsUnion(T$3) ? Union(FromRest$5(K$1, T$3.anyOf), options) : IsTuple(T$3) ? Tuple(FromRest$5(K$1, T$3.items ?? []), options) : IsObject(T$3) ? Object$1(FromProperties$16(K$1, T$3.properties), options) : IsArray$1(T$3) ? Array$1(FromSchemaType(K$1, T$3.items), options) : IsPromise(T$3) ? Promise$1(FromSchemaType(K$1, T$3.item), options) : T$3;
+}
+function MappedFunctionReturnType(K$1, T$3) {
+ const Acc = {};
+ for (const L$2 of K$1) Acc[L$2] = FromSchemaType(L$2, T$3);
+ return Acc;
+}
+/** `[Json]` Creates a Mapped object type */
+function Mapped(key, map$2, options) {
+ const K$1 = IsSchema(key) ? IndexPropertyKeys(key) : key;
+ const RT = map$2({
+ [Kind]: "MappedKey",
+ keys: K$1
+ });
+ const R$1 = MappedFunctionReturnType(K$1, RT);
+ return Object$1(R$1, options);
+}
+var init_mapped$1 = __esmMin((() => {
+ init_symbols();
+ init_discard();
+ init_array$1();
+ init_async_iterator();
+ init_constructor();
+ init_function();
+ init_indexed();
+ init_intersect();
+ init_iterator();
+ init_literal();
+ init_object();
+ init_optional();
+ init_promise();
+ init_readonly();
+ init_tuple();
+ init_union$1();
+ init_sets();
+ init_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/mapped/index.mjs
+var init_mapped = __esmMin((() => {
+ init_mapped_key();
+ init_mapped_result();
+ init_mapped$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/optional.mjs
+function RemoveOptional(schema) {
+ return CreateType(Discard(schema, [OptionalKind]));
+}
+function AddOptional(schema) {
+ return CreateType({
+ ...schema,
+ [OptionalKind]: "Optional"
+ });
+}
+function OptionalWithFlag(schema, F$1) {
+ return F$1 === false ? RemoveOptional(schema) : AddOptional(schema);
+}
+/** `[Json]` Creates a Optional property */
+function Optional(schema, enable) {
+ const F$1 = enable ?? true;
+ return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F$1) : OptionalWithFlag(schema, F$1);
+}
+var init_optional$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_discard();
+ init_optional_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs
+function FromProperties$15(P$2, F$1) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Optional(P$2[K2], F$1);
+ return Acc;
+}
+function FromMappedResult$8(R$1, F$1) {
+ return FromProperties$15(R$1.properties, F$1);
+}
+function OptionalFromMappedResult(R$1, F$1) {
+ const P$2 = FromMappedResult$8(R$1, F$1);
+ return MappedResult(P$2);
+}
+var init_optional_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_optional$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/optional/index.mjs
+var init_optional = __esmMin((() => {
+ init_optional_from_mapped_result();
+ init_optional$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs
+function IntersectCreate(T$3, options = {}) {
+ const allObjects = T$3.every((schema) => IsObject(schema));
+ const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties) ? { unevaluatedProperties: options.unevaluatedProperties } : {};
+ return CreateType(options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects ? {
+ ...clonedUnevaluatedProperties,
+ [Kind]: "Intersect",
+ type: "object",
+ allOf: T$3
+ } : {
+ ...clonedUnevaluatedProperties,
+ [Kind]: "Intersect",
+ allOf: T$3
+ }, options);
+}
+var init_intersect_create = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs
+function IsIntersectOptional(types) {
+ return types.every((left) => IsOptional(left));
+}
+function RemoveOptionalFromType(type) {
+ return Discard(type, [OptionalKind]);
+}
+function RemoveOptionalFromRest(types) {
+ return types.map((left) => IsOptional(left) ? RemoveOptionalFromType(left) : left);
+}
+function ResolveIntersect(types, options) {
+ return IsIntersectOptional(types) ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options)) : IntersectCreate(RemoveOptionalFromRest(types), options);
+}
+/** `[Json]` Creates an evaluated Intersect type */
+function IntersectEvaluated(types, options = {}) {
+ if (types.length === 1) return CreateType(types[0], options);
+ if (types.length === 0) return Never(options);
+ if (types.some((schema) => IsTransform(schema))) throw new Error("Cannot intersect transform types");
+ return ResolveIntersect(types, options);
+}
+var init_intersect_evaluated = __esmMin((() => {
+ init_symbols();
+ init_type$4();
+ init_discard();
+ init_never();
+ init_optional();
+ init_intersect_create();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect-type.mjs
+var init_intersect_type = __esmMin((() => {
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/intersect.mjs
+/** `[Json]` Creates an evaluated Intersect type */
+function Intersect(types, options) {
+ if (types.length === 1) return CreateType(types[0], options);
+ if (types.length === 0) return Never(options);
+ if (types.some((schema) => IsTransform(schema))) throw new Error("Cannot intersect transform types");
+ return IntersectCreate(types, options);
+}
+var init_intersect$1 = __esmMin((() => {
+ init_type$4();
+ init_never();
+ init_intersect_create();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intersect/index.mjs
+var init_intersect = __esmMin((() => {
+ init_intersect_evaluated();
+ init_intersect_type();
+ init_intersect$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/ref/ref.mjs
+/** `[Json]` Creates a Ref type. The referenced type must contain a $id */
+function Ref(...args) {
+ const [$ref, options] = typeof args[0] === "string" ? [args[0], args[1]] : [args[0].$id, args[1]];
+ if (typeof $ref !== "string") throw new TypeBoxError("Ref: $ref must be a string");
+ return CreateType({
+ [Kind]: "Ref",
+ $ref
+ }, options);
+}
+var init_ref$1 = __esmMin((() => {
+ init_error();
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/ref/index.mjs
+var init_ref = __esmMin((() => {
+ init_ref$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/awaited/awaited.mjs
+function FromComputed$4(target, parameters) {
+ return Computed("Awaited", [Computed(target, parameters)]);
+}
+function FromRef$3($ref) {
+ return Computed("Awaited", [Ref($ref)]);
+}
+function FromIntersect$6(types) {
+ return Intersect(FromRest$4(types));
+}
+function FromUnion$6(types) {
+ return Union(FromRest$4(types));
+}
+function FromPromise$2(type) {
+ return Awaited(type);
+}
+function FromRest$4(types) {
+ return types.map((type) => Awaited(type));
+}
+/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
+function Awaited(type, options) {
+ return CreateType(IsComputed(type) ? FromComputed$4(type.target, type.parameters) : IsIntersect(type) ? FromIntersect$6(type.allOf) : IsUnion(type) ? FromUnion$6(type.anyOf) : IsPromise(type) ? FromPromise$2(type.item) : IsRef(type) ? FromRef$3(type.$ref) : type, options);
+}
+var init_awaited$1 = __esmMin((() => {
+ init_type$4();
+ init_computed();
+ init_intersect();
+ init_union$1();
+ init_ref();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/awaited/index.mjs
+var init_awaited = __esmMin((() => {
+ init_awaited$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs
+function FromRest$3(types) {
+ const result = [];
+ for (const L$2 of types) result.push(KeyOfPropertyKeys(L$2));
+ return result;
+}
+function FromIntersect$5(types) {
+ const propertyKeysArray = FromRest$3(types);
+ const propertyKeys = SetUnionMany(propertyKeysArray);
+ return propertyKeys;
+}
+function FromUnion$5(types) {
+ const propertyKeysArray = FromRest$3(types);
+ const propertyKeys = SetIntersectMany(propertyKeysArray);
+ return propertyKeys;
+}
+function FromTuple$3(types) {
+ return types.map((_$2, indexer) => indexer.toString());
+}
+function FromArray$4(_$2) {
+ return ["[number]"];
+}
+function FromProperties$14(T$3) {
+ return globalThis.Object.getOwnPropertyNames(T$3);
+}
+function FromPatternProperties(patternProperties) {
+ if (!includePatternProperties) return [];
+ const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties);
+ return patternPropertyKeys.map((key) => {
+ return key[0] === "^" && key[key.length - 1] === "$" ? key.slice(1, key.length - 1) : key;
+ });
+}
+/** Returns a tuple of PropertyKeys derived from the given TSchema. */
+function KeyOfPropertyKeys(type) {
+ return IsIntersect(type) ? FromIntersect$5(type.allOf) : IsUnion(type) ? FromUnion$5(type.anyOf) : IsTuple(type) ? FromTuple$3(type.items ?? []) : IsArray$1(type) ? FromArray$4(type.items) : IsObject(type) ? FromProperties$14(type.properties) : IsRecord(type) ? FromPatternProperties(type.patternProperties) : [];
+}
+/** Returns a regular expression pattern derived from the given TSchema */
+function KeyOfPattern(schema) {
+ includePatternProperties = true;
+ const keys$1 = KeyOfPropertyKeys(schema);
+ includePatternProperties = false;
+ const pattern = keys$1.map((key) => `(${key})`);
+ return `^(${pattern.join("|")})$`;
+}
+var includePatternProperties;
+var init_keyof_property_keys = __esmMin((() => {
+ init_sets();
+ init_kind();
+ includePatternProperties = false;
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof.mjs
+function FromComputed$3(target, parameters) {
+ return Computed("KeyOf", [Computed(target, parameters)]);
+}
+function FromRef$2($ref) {
+ return Computed("KeyOf", [Ref($ref)]);
+}
+function KeyOfFromType(type, options) {
+ const propertyKeys = KeyOfPropertyKeys(type);
+ const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys);
+ const result = UnionEvaluated(propertyKeyTypes);
+ return CreateType(result, options);
+}
+function KeyOfPropertyKeysToRest(propertyKeys) {
+ return propertyKeys.map((L$2) => L$2 === "[number]" ? Number$1() : Literal(L$2));
+}
+/** `[Json]` Creates a KeyOf type */
+function KeyOf(type, options) {
+ return IsComputed(type) ? FromComputed$3(type.target, type.parameters) : IsRef(type) ? FromRef$2(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options);
+}
+var init_keyof$1 = __esmMin((() => {
+ init_type$4();
+ init_literal();
+ init_number();
+ init_computed();
+ init_ref();
+ init_keyof_property_keys();
+ init_union$1();
+ init_keyof_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs
+function FromProperties$13(properties$1, options) {
+ const result = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = KeyOf(properties$1[K2], Clone(options));
+ return result;
+}
+function FromMappedResult$7(mappedResult, options) {
+ return FromProperties$13(mappedResult.properties, options);
+}
+function KeyOfFromMappedResult(mappedResult, options) {
+ const properties$1 = FromMappedResult$7(mappedResult, options);
+ return MappedResult(properties$1);
+}
+var init_keyof_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_keyof$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs
+/**
+* `[Utility]` Resolves an array of keys and schemas from the given schema. This method is faster
+* than obtaining the keys and resolving each individually via indexing. This method was written
+* accellerate Intersect and Union encoding.
+*/
+function KeyOfPropertyEntries(schema) {
+ const keys$1 = KeyOfPropertyKeys(schema);
+ const schemas = IndexFromPropertyKeys(schema, keys$1);
+ return keys$1.map((_$2, index) => [keys$1[index], schemas[index]]);
+}
+var init_keyof_property_entries = __esmMin((() => {
+ init_indexed$1();
+ init_keyof_property_keys();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/keyof/index.mjs
+var init_keyof = __esmMin((() => {
+ init_keyof_from_mapped_result();
+ init_keyof_property_entries();
+ init_keyof_property_keys();
+ init_keyof$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/composite/composite.mjs
+function CompositeKeys(T$3) {
+ const Acc = [];
+ for (const L$2 of T$3) Acc.push(...KeyOfPropertyKeys(L$2));
+ return SetDistinct(Acc);
+}
+function FilterNever(T$3) {
+ return T$3.filter((L$2) => !IsNever(L$2));
+}
+function CompositeProperty(T$3, K$1) {
+ const Acc = [];
+ for (const L$2 of T$3) Acc.push(...IndexFromPropertyKeys(L$2, [K$1]));
+ return FilterNever(Acc);
+}
+function CompositeProperties(T$3, K$1) {
+ const Acc = {};
+ for (const L$2 of K$1) {
+ Acc[L$2] = IntersectEvaluated(CompositeProperty(T$3, L$2));
+ }
+ return Acc;
+}
+function Composite(T$3, options) {
+ const K$1 = CompositeKeys(T$3);
+ const P$2 = CompositeProperties(T$3, K$1);
+ const R$1 = Object$1(P$2, options);
+ return R$1;
+}
+var init_composite$1 = __esmMin((() => {
+ init_intersect();
+ init_indexed();
+ init_keyof();
+ init_object();
+ init_sets();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/composite/index.mjs
+var init_composite = __esmMin((() => {
+ init_composite$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/date/date.mjs
+/** `[JavaScript]` Creates a Date type */
+function Date$1(options) {
+ return CreateType({
+ [Kind]: "Date",
+ type: "Date"
+ }, options);
+}
+var init_date$1 = __esmMin((() => {
+ init_symbols();
+ init_type$4();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/date/index.mjs
+var init_date = __esmMin((() => {
+ init_date$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/null/null.mjs
+/** `[Json]` Creates a Null type */
+function Null(options) {
+ return CreateType({
+ [Kind]: "Null",
+ type: "null"
+ }, options);
+}
+var init_null$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/null/index.mjs
+var init_null = __esmMin((() => {
+ init_null$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbol/symbol.mjs
+/** `[JavaScript]` Creates a Symbol type */
+function Symbol$1(options) {
+ return CreateType({
+ [Kind]: "Symbol",
+ type: "symbol"
+ }, options);
+}
+var init_symbol$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/symbol/index.mjs
+var init_symbol = __esmMin((() => {
+ init_symbol$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/undefined/undefined.mjs
+/** `[JavaScript]` Creates a Undefined type */
+function Undefined(options) {
+ return CreateType({
+ [Kind]: "Undefined",
+ type: "undefined"
+ }, options);
+}
+var init_undefined$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/undefined/index.mjs
+var init_undefined = __esmMin((() => {
+ init_undefined$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs
+/** `[JavaScript]` Creates a Uint8Array type */
+function Uint8Array$1(options) {
+ return CreateType({
+ [Kind]: "Uint8Array",
+ type: "Uint8Array"
+ }, options);
+}
+var init_uint8array$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/uint8array/index.mjs
+var init_uint8array = __esmMin((() => {
+ init_uint8array$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unknown/unknown.mjs
+/** `[Json]` Creates an Unknown type */
+function Unknown(options) {
+ return CreateType({ [Kind]: "Unknown" }, options);
+}
+var init_unknown$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unknown/index.mjs
+var init_unknown = __esmMin((() => {
+ init_unknown$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/const/const.mjs
+function FromArray$3(T$3) {
+ return T$3.map((L$2) => FromValue(L$2, false));
+}
+function FromProperties$12(value) {
+ const Acc = {};
+ for (const K$1 of globalThis.Object.getOwnPropertyNames(value)) Acc[K$1] = Readonly(FromValue(value[K$1], false));
+ return Acc;
+}
+function ConditionalReadonly(T$3, root) {
+ return root === true ? T$3 : Readonly(T$3);
+}
+function FromValue(value, root) {
+ return IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) : IsIterator(value) ? ConditionalReadonly(Any(), root) : IsArray(value) ? Readonly(Tuple(FromArray$3(value))) : IsUint8Array(value) ? Uint8Array$1() : IsDate(value) ? Date$1() : IsObject$1(value) ? ConditionalReadonly(Object$1(FromProperties$12(value)), root) : IsFunction(value) ? ConditionalReadonly(Function$1([], Unknown()), root) : IsUndefined(value) ? Undefined() : IsNull(value) ? Null() : IsSymbol(value) ? Symbol$1() : IsBigInt(value) ? BigInt() : IsNumber$1(value) ? Literal(value) : IsBoolean$1(value) ? Literal(value) : IsString(value) ? Literal(value) : Object$1({});
+}
+/** `[JavaScript]` Creates a readonly const type from the given value. */
+function Const(T$3, options) {
+ return CreateType(FromValue(T$3, true), options);
+}
+var init_const$1 = __esmMin((() => {
+ init_any();
+ init_bigint();
+ init_date();
+ init_function();
+ init_literal();
+ init_null();
+ init_object();
+ init_symbol();
+ init_tuple();
+ init_readonly();
+ init_undefined();
+ init_uint8array();
+ init_unknown();
+ init_create$1();
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/const/index.mjs
+var init_const = __esmMin((() => {
+ init_const$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs
+/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
+function ConstructorParameters(schema, options) {
+ return IsConstructor(schema) ? Tuple(schema.parameters, options) : Never(options);
+}
+var init_constructor_parameters$1 = __esmMin((() => {
+ init_tuple();
+ init_never();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/constructor-parameters/index.mjs
+var init_constructor_parameters = __esmMin((() => {
+ init_constructor_parameters$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/enum/enum.mjs
+/** `[Json]` Creates a Enum type */
+function Enum(item, options) {
+ if (IsUndefined(item)) throw new Error("Enum undefined or empty");
+ const values1 = globalThis.Object.getOwnPropertyNames(item).filter((key) => isNaN(key)).map((key) => item[key]);
+ const values2 = [...new Set(values1)];
+ const anyOf = values2.map((value) => Literal(value));
+ return Union(anyOf, {
+ ...options,
+ [Hint]: "Enum"
+ });
+}
+var init_enum$1 = __esmMin((() => {
+ init_literal();
+ init_symbols();
+ init_union$1();
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/enum/index.mjs
+var init_enum = __esmMin((() => {
+ init_enum$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-check.mjs
+function IntoBooleanResult(result) {
+ return result === ExtendsResult.False ? result : ExtendsResult.True;
+}
+function Throw(message) {
+ throw new ExtendsResolverError(message);
+}
+function IsStructuralRight(right) {
+ return IsNever$1(right) || IsIntersect$1(right) || IsUnion$1(right) || IsUnknown(right) || IsAny$1(right);
+}
+function StructuralRight(left, right) {
+ return IsNever$1(right) ? FromNeverRight(left, right) : IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsUnknown(right) ? FromUnknownRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : Throw("StructuralRight");
+}
+function FromAnyRight(left, right) {
+ return ExtendsResult.True;
+}
+function FromAny(left, right) {
+ return IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) && right.anyOf.some((schema) => IsAny$1(schema) || IsUnknown(schema)) ? ExtendsResult.True : IsUnion$1(right) ? ExtendsResult.Union : IsUnknown(right) ? ExtendsResult.True : IsAny$1(right) ? ExtendsResult.True : ExtendsResult.Union;
+}
+function FromArrayRight(left, right) {
+ return IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : IsNever$1(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromArray$2(left, right) {
+ return IsObject$2(right) && IsObjectArrayLike(right) ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : !IsArray$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
+}
+function FromAsyncIterator$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : !IsAsyncIterator$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
+}
+function FromBigInt(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsBigInt$2(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromBooleanRight(left, right) {
+ return IsLiteralBoolean(left) ? ExtendsResult.True : IsBoolean$2(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromBoolean(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsBoolean$2(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromConstructor$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsConstructor$1(right) ? ExtendsResult.False : left.parameters.length > right.parameters.length ? ExtendsResult.False : !left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True) ? ExtendsResult.False : IntoBooleanResult(Visit(left.returns, right.returns));
+}
+function FromDate(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsDate$1(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromFunction$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsFunction$2(right) ? ExtendsResult.False : left.parameters.length > right.parameters.length ? ExtendsResult.False : !left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True) ? ExtendsResult.False : IntoBooleanResult(Visit(left.returns, right.returns));
+}
+function FromIntegerRight(left, right) {
+ return IsLiteral$1(left) && IsNumber$1(left.const) ? ExtendsResult.True : IsNumber$2(left) || IsInteger$1(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromInteger(left, right) {
+ return IsInteger$1(right) || IsNumber$2(right) ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : ExtendsResult.False;
+}
+function FromIntersectRight(left, right) {
+ return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromIntersect$4(left, right) {
+ return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromIterator$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : !IsIterator$2(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.items, right.items));
+}
+function FromLiteral(left, right) {
+ return IsLiteral$1(right) && right.const === left.const ? ExtendsResult.True : IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsString$2(right) ? FromStringRight(left, right) : IsNumber$2(right) ? FromNumberRight(left, right) : IsInteger$1(right) ? FromIntegerRight(left, right) : IsBoolean$2(right) ? FromBooleanRight(left, right) : ExtendsResult.False;
+}
+function FromNeverRight(left, right) {
+ return ExtendsResult.False;
+}
+function FromNever(left, right) {
+ return ExtendsResult.True;
+}
+function UnwrapTNot(schema) {
+ let [current, depth] = [schema, 0];
+ while (true) {
+ if (!IsNot(current)) break;
+ current = current.not;
+ depth += 1;
+ }
+ return depth % 2 === 0 ? current : Unknown();
+}
+function FromNot(left, right) {
+ return IsNot(left) ? Visit(UnwrapTNot(left), right) : IsNot(right) ? Visit(left, UnwrapTNot(right)) : Throw("Invalid fallthrough for Not");
+}
+function FromNull(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsNull$1(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromNumberRight(left, right) {
+ return IsLiteralNumber(left) ? ExtendsResult.True : IsNumber$2(left) || IsInteger$1(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromNumber(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsInteger$1(right) || IsNumber$2(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function IsObjectPropertyCount(schema, count) {
+ return Object.getOwnPropertyNames(schema.properties).length === count;
+}
+function IsObjectStringLike(schema) {
+ return IsObjectArrayLike(schema);
+}
+function IsObjectSymbolLike(schema) {
+ return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "description" in schema.properties && IsUnion$1(schema.properties.description) && schema.properties.description.anyOf.length === 2 && (IsString$2(schema.properties.description.anyOf[0]) && IsUndefined$1(schema.properties.description.anyOf[1]) || IsString$2(schema.properties.description.anyOf[1]) && IsUndefined$1(schema.properties.description.anyOf[0]));
+}
+function IsObjectNumberLike(schema) {
+ return IsObjectPropertyCount(schema, 0);
+}
+function IsObjectBooleanLike(schema) {
+ return IsObjectPropertyCount(schema, 0);
+}
+function IsObjectBigIntLike(schema) {
+ return IsObjectPropertyCount(schema, 0);
+}
+function IsObjectDateLike(schema) {
+ return IsObjectPropertyCount(schema, 0);
+}
+function IsObjectUint8ArrayLike(schema) {
+ return IsObjectArrayLike(schema);
+}
+function IsObjectFunctionLike(schema) {
+ const length = Number$1();
+ return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "length" in schema.properties && IntoBooleanResult(Visit(schema.properties["length"], length)) === ExtendsResult.True;
+}
+function IsObjectConstructorLike(schema) {
+ return IsObjectPropertyCount(schema, 0);
+}
+function IsObjectArrayLike(schema) {
+ const length = Number$1();
+ return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "length" in schema.properties && IntoBooleanResult(Visit(schema.properties["length"], length)) === ExtendsResult.True;
+}
+function IsObjectPromiseLike(schema) {
+ const then = Function$1([Any()], Any());
+ return IsObjectPropertyCount(schema, 0) || IsObjectPropertyCount(schema, 1) && "then" in schema.properties && IntoBooleanResult(Visit(schema.properties["then"], then)) === ExtendsResult.True;
+}
+function Property(left, right) {
+ return Visit(left, right) === ExtendsResult.False ? ExtendsResult.False : IsOptional$1(left) && !IsOptional$1(right) ? ExtendsResult.False : ExtendsResult.True;
+}
+function FromObjectRight(left, right) {
+ return IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : IsNever$1(left) || IsLiteralString(left) && IsObjectStringLike(right) || IsLiteralNumber(left) && IsObjectNumberLike(right) || IsLiteralBoolean(left) && IsObjectBooleanLike(right) || IsSymbol$1(left) && IsObjectSymbolLike(right) || IsBigInt$2(left) && IsObjectBigIntLike(right) || IsString$2(left) && IsObjectStringLike(right) || IsSymbol$1(left) && IsObjectSymbolLike(right) || IsNumber$2(left) && IsObjectNumberLike(right) || IsInteger$1(left) && IsObjectNumberLike(right) || IsBoolean$2(left) && IsObjectBooleanLike(right) || IsUint8Array$1(left) && IsObjectUint8ArrayLike(right) || IsDate$1(left) && IsObjectDateLike(right) || IsConstructor$1(left) && IsObjectConstructorLike(right) || IsFunction$2(left) && IsObjectFunctionLike(right) ? ExtendsResult.True : IsRecord$1(left) && IsString$2(RecordKey$1(left)) ? (() => {
+ return right[Hint] === "Record" ? ExtendsResult.True : ExtendsResult.False;
+ })() : IsRecord$1(left) && IsNumber$2(RecordKey$1(left)) ? (() => {
+ return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False;
+ })() : ExtendsResult.False;
+}
+function FromObject$6(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : !IsObject$2(right) ? ExtendsResult.False : (() => {
+ for (const key of Object.getOwnPropertyNames(right.properties)) {
+ if (!(key in left.properties) && !IsOptional$1(right.properties[key])) {
+ return ExtendsResult.False;
+ }
+ if (IsOptional$1(right.properties[key])) {
+ return ExtendsResult.True;
+ }
+ if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) {
+ return ExtendsResult.False;
+ }
+ }
+ return ExtendsResult.True;
+ })();
+}
+function FromPromise$1(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) && IsObjectPromiseLike(right) ? ExtendsResult.True : !IsPromise$1(right) ? ExtendsResult.False : IntoBooleanResult(Visit(left.item, right.item));
+}
+function RecordKey$1(schema) {
+ return PatternNumberExact in schema.patternProperties ? Number$1() : PatternStringExact in schema.patternProperties ? String$1() : Throw("Unknown record key pattern");
+}
+function RecordValue$1(schema) {
+ return PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] : PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] : Throw("Unable to get record value schema");
+}
+function FromRecordRight(left, right) {
+ const [Key$1, Value] = [RecordKey$1(right), RecordValue$1(right)];
+ return IsLiteralString(left) && IsNumber$2(Key$1) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True ? ExtendsResult.True : IsUint8Array$1(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsString$2(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsArray$2(left) && IsNumber$2(Key$1) ? Visit(left, Value) : IsObject$2(left) ? (() => {
+ for (const key of Object.getOwnPropertyNames(left.properties)) {
+ if (Property(Value, left.properties[key]) === ExtendsResult.False) {
+ return ExtendsResult.False;
+ }
+ }
+ return ExtendsResult.True;
+ })() : ExtendsResult.False;
+}
+function FromRecord$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : !IsRecord$1(right) ? ExtendsResult.False : Visit(RecordValue$1(left), RecordValue$1(right));
+}
+function FromRegExp(left, right) {
+ const L$2 = IsRegExp$1(left) ? String$1() : left;
+ const R$1 = IsRegExp$1(right) ? String$1() : right;
+ return Visit(L$2, R$1);
+}
+function FromStringRight(left, right) {
+ return IsLiteral$1(left) && IsString(left.const) ? ExtendsResult.True : IsString$2(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromString(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsString$2(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromSymbol(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsSymbol$1(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromTemplateLiteral$1(left, right) {
+ return IsTemplateLiteral$1(left) ? Visit(TemplateLiteralToUnion(left), right) : IsTemplateLiteral$1(right) ? Visit(left, TemplateLiteralToUnion(right)) : Throw("Invalid fallthrough for TemplateLiteral");
+}
+function IsArrayOfTuple(left, right) {
+ return IsArray$2(right) && left.items !== undefined && left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True);
+}
+function FromTupleRight(left, right) {
+ return IsNever$1(left) ? ExtendsResult.True : IsUnknown(left) ? ExtendsResult.False : IsAny$1(left) ? ExtendsResult.Union : ExtendsResult.False;
+}
+function FromTuple$2(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) && IsObjectArrayLike(right) ? ExtendsResult.True : IsArray$2(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True : !IsTuple$1(right) ? ExtendsResult.False : IsUndefined(left.items) && !IsUndefined(right.items) || !IsUndefined(left.items) && IsUndefined(right.items) ? ExtendsResult.False : IsUndefined(left.items) && !IsUndefined(right.items) ? ExtendsResult.True : left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromUint8Array(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsUint8Array$1(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromUndefined(left, right) {
+ return IsStructuralRight(right) ? StructuralRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsRecord$1(right) ? FromRecordRight(left, right) : IsVoid(right) ? FromVoidRight(left, right) : IsUndefined$1(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromUnionRight(left, right) {
+ return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromUnion$4(left, right) {
+ return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromUnknownRight(left, right) {
+ return ExtendsResult.True;
+}
+function FromUnknown(left, right) {
+ return IsNever$1(right) ? FromNeverRight(left, right) : IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : IsString$2(right) ? FromStringRight(left, right) : IsNumber$2(right) ? FromNumberRight(left, right) : IsInteger$1(right) ? FromIntegerRight(left, right) : IsBoolean$2(right) ? FromBooleanRight(left, right) : IsArray$2(right) ? FromArrayRight(left, right) : IsTuple$1(right) ? FromTupleRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsUnknown(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromVoidRight(left, right) {
+ return IsUndefined$1(left) ? ExtendsResult.True : IsUndefined$1(left) ? ExtendsResult.True : ExtendsResult.False;
+}
+function FromVoid(left, right) {
+ return IsIntersect$1(right) ? FromIntersectRight(left, right) : IsUnion$1(right) ? FromUnionRight(left, right) : IsUnknown(right) ? FromUnknownRight(left, right) : IsAny$1(right) ? FromAnyRight(left, right) : IsObject$2(right) ? FromObjectRight(left, right) : IsVoid(right) ? ExtendsResult.True : ExtendsResult.False;
+}
+function Visit(left, right) {
+ return IsTemplateLiteral$1(left) || IsTemplateLiteral$1(right) ? FromTemplateLiteral$1(left, right) : IsRegExp$1(left) || IsRegExp$1(right) ? FromRegExp(left, right) : IsNot(left) || IsNot(right) ? FromNot(left, right) : IsAny$1(left) ? FromAny(left, right) : IsArray$2(left) ? FromArray$2(left, right) : IsBigInt$2(left) ? FromBigInt(left, right) : IsBoolean$2(left) ? FromBoolean(left, right) : IsAsyncIterator$2(left) ? FromAsyncIterator$2(left, right) : IsConstructor$1(left) ? FromConstructor$2(left, right) : IsDate$1(left) ? FromDate(left, right) : IsFunction$2(left) ? FromFunction$2(left, right) : IsInteger$1(left) ? FromInteger(left, right) : IsIntersect$1(left) ? FromIntersect$4(left, right) : IsIterator$2(left) ? FromIterator$2(left, right) : IsLiteral$1(left) ? FromLiteral(left, right) : IsNever$1(left) ? FromNever(left, right) : IsNull$1(left) ? FromNull(left, right) : IsNumber$2(left) ? FromNumber(left, right) : IsObject$2(left) ? FromObject$6(left, right) : IsRecord$1(left) ? FromRecord$2(left, right) : IsString$2(left) ? FromString(left, right) : IsSymbol$1(left) ? FromSymbol(left, right) : IsTuple$1(left) ? FromTuple$2(left, right) : IsPromise$1(left) ? FromPromise$1(left, right) : IsUint8Array$1(left) ? FromUint8Array(left, right) : IsUndefined$1(left) ? FromUndefined(left, right) : IsUnion$1(left) ? FromUnion$4(left, right) : IsUnknown(left) ? FromUnknown(left, right) : IsVoid(left) ? FromVoid(left, right) : Throw(`Unknown left type operand '${left[Kind]}'`);
+}
+function ExtendsCheck(left, right) {
+ return Visit(left, right);
+}
+var ExtendsResolverError, ExtendsResult;
+var init_extends_check = __esmMin((() => {
+ init_any();
+ init_function();
+ init_number();
+ init_string$1();
+ init_unknown();
+ init_template_literal();
+ init_patterns();
+ init_symbols();
+ init_error();
+ init_guard();
+ ExtendsResolverError = class extends TypeBoxError {};
+ ;
+ (function(ExtendsResult$1) {
+ ExtendsResult$1[ExtendsResult$1["Union"] = 0] = "Union";
+ ExtendsResult$1[ExtendsResult$1["True"] = 1] = "True";
+ ExtendsResult$1[ExtendsResult$1["False"] = 2] = "False";
+ })(ExtendsResult || (ExtendsResult = {}));
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs
+function FromProperties$11(P$2, Right, True, False, options) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Extends(P$2[K2], Right, True, False, Clone(options));
+ return Acc;
+}
+function FromMappedResult$6(Left, Right, True, False, options) {
+ return FromProperties$11(Left.properties, Right, True, False, options);
+}
+function ExtendsFromMappedResult(Left, Right, True, False, options) {
+ const P$2 = FromMappedResult$6(Left, Right, True, False, options);
+ return MappedResult(P$2);
+}
+var init_extends_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_extends$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends.mjs
+function ExtendsResolve(left, right, trueType, falseType) {
+ const R$1 = ExtendsCheck(left, right);
+ return R$1 === ExtendsResult.Union ? Union([trueType, falseType]) : R$1 === ExtendsResult.True ? trueType : falseType;
+}
+/** `[Json]` Creates a Conditional type */
+function Extends(L$2, R$1, T$3, F$1, options) {
+ return IsMappedResult(L$2) ? ExtendsFromMappedResult(L$2, R$1, T$3, F$1, options) : IsMappedKey(L$2) ? CreateType(ExtendsFromMappedKey(L$2, R$1, T$3, F$1, options)) : CreateType(ExtendsResolve(L$2, R$1, T$3, F$1), options);
+}
+var init_extends$1 = __esmMin((() => {
+ init_type$4();
+ init_union$1();
+ init_extends_check();
+ init_extends_from_mapped_key();
+ init_extends_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs
+function FromPropertyKey$2(K$1, U$1, L$2, R$1, options) {
+ return { [K$1]: Extends(Literal(K$1), U$1, L$2, R$1, Clone(options)) };
+}
+function FromPropertyKeys$2(K$1, U$1, L$2, R$1, options) {
+ return K$1.reduce((Acc, LK) => {
+ return {
+ ...Acc,
+ ...FromPropertyKey$2(LK, U$1, L$2, R$1, options)
+ };
+ }, {});
+}
+function FromMappedKey$2(K$1, U$1, L$2, R$1, options) {
+ return FromPropertyKeys$2(K$1.keys, U$1, L$2, R$1, options);
+}
+function ExtendsFromMappedKey(T$3, U$1, L$2, R$1, options) {
+ const P$2 = FromMappedKey$2(T$3, U$1, L$2, R$1, options);
+ return MappedResult(P$2);
+}
+var init_extends_from_mapped_key = __esmMin((() => {
+ init_mapped();
+ init_literal();
+ init_extends$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs
+/** Fast undefined check used for properties of type undefined */
+function Intersect$1(schema) {
+ return schema.allOf.every((schema$1) => ExtendsUndefinedCheck(schema$1));
+}
+function Union$1(schema) {
+ return schema.anyOf.some((schema$1) => ExtendsUndefinedCheck(schema$1));
+}
+function Not$1(schema) {
+ return !ExtendsUndefinedCheck(schema.not);
+}
+/** Fast undefined check used for properties of type undefined */
+function ExtendsUndefinedCheck(schema) {
+ return schema[Kind] === "Intersect" ? Intersect$1(schema) : schema[Kind] === "Union" ? Union$1(schema) : schema[Kind] === "Not" ? Not$1(schema) : schema[Kind] === "Undefined" ? true : false;
+}
+var init_extends_undefined = __esmMin((() => {
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extends/index.mjs
+var init_extends = __esmMin((() => {
+ init_extends_check();
+ init_extends_from_mapped_key();
+ init_extends_from_mapped_result();
+ init_extends_undefined();
+ init_extends$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs
+function ExcludeFromTemplateLiteral(L$2, R$1) {
+ return Exclude(TemplateLiteralToUnion(L$2), R$1);
+}
+var init_exclude_from_template_literal = __esmMin((() => {
+ init_exclude$1();
+ init_template_literal();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude.mjs
+function ExcludeRest(L$2, R$1) {
+ const excluded = L$2.filter((inner$1) => ExtendsCheck(inner$1, R$1) === ExtendsResult.False);
+ return excluded.length === 1 ? excluded[0] : Union(excluded);
+}
+/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
+function Exclude(L$2, R$1, options = {}) {
+ if (IsTemplateLiteral(L$2)) return CreateType(ExcludeFromTemplateLiteral(L$2, R$1), options);
+ if (IsMappedResult(L$2)) return CreateType(ExcludeFromMappedResult(L$2, R$1), options);
+ return CreateType(IsUnion(L$2) ? ExcludeRest(L$2.anyOf, R$1) : ExtendsCheck(L$2, R$1) !== ExtendsResult.False ? Never() : L$2, options);
+}
+var init_exclude$1 = __esmMin((() => {
+ init_type$4();
+ init_union$1();
+ init_never();
+ init_extends();
+ init_exclude_from_mapped_result();
+ init_exclude_from_template_literal();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs
+function FromProperties$10(P$2, U$1) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Exclude(P$2[K2], U$1);
+ return Acc;
+}
+function FromMappedResult$5(R$1, T$3) {
+ return FromProperties$10(R$1.properties, T$3);
+}
+function ExcludeFromMappedResult(R$1, T$3) {
+ const P$2 = FromMappedResult$5(R$1, T$3);
+ return MappedResult(P$2);
+}
+var init_exclude_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_exclude$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/exclude/index.mjs
+var init_exclude = __esmMin((() => {
+ init_exclude_from_mapped_result();
+ init_exclude_from_template_literal();
+ init_exclude$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs
+function ExtractFromTemplateLiteral(L$2, R$1) {
+ return Extract(TemplateLiteralToUnion(L$2), R$1);
+}
+var init_extract_from_template_literal = __esmMin((() => {
+ init_extract$1();
+ init_template_literal();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract.mjs
+function ExtractRest(L$2, R$1) {
+ const extracted = L$2.filter((inner$1) => ExtendsCheck(inner$1, R$1) !== ExtendsResult.False);
+ return extracted.length === 1 ? extracted[0] : Union(extracted);
+}
+/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
+function Extract(L$2, R$1, options) {
+ if (IsTemplateLiteral(L$2)) return CreateType(ExtractFromTemplateLiteral(L$2, R$1), options);
+ if (IsMappedResult(L$2)) return CreateType(ExtractFromMappedResult(L$2, R$1), options);
+ return CreateType(IsUnion(L$2) ? ExtractRest(L$2.anyOf, R$1) : ExtendsCheck(L$2, R$1) !== ExtendsResult.False ? L$2 : Never(), options);
+}
+var init_extract$1 = __esmMin((() => {
+ init_type$4();
+ init_union$1();
+ init_never();
+ init_extends();
+ init_extract_from_mapped_result();
+ init_extract_from_template_literal();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs
+function FromProperties$9(P$2, T$3) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Extract(P$2[K2], T$3);
+ return Acc;
+}
+function FromMappedResult$4(R$1, T$3) {
+ return FromProperties$9(R$1.properties, T$3);
+}
+function ExtractFromMappedResult(R$1, T$3) {
+ const P$2 = FromMappedResult$4(R$1, T$3);
+ return MappedResult(P$2);
+}
+var init_extract_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_extract$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/extract/index.mjs
+var init_extract = __esmMin((() => {
+ init_extract_from_mapped_result();
+ init_extract_from_template_literal();
+ init_extract$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs
+/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
+function InstanceType(schema, options) {
+ return IsConstructor(schema) ? CreateType(schema.returns, options) : Never(options);
+}
+var init_instance_type$1 = __esmMin((() => {
+ init_type$4();
+ init_never();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instance-type/index.mjs
+var init_instance_type = __esmMin((() => {
+ init_instance_type$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs
+/** `[Json]` Creates a Readonly and Optional property */
+function ReadonlyOptional(schema) {
+ return Readonly(Optional(schema));
+}
+var init_readonly_optional$1 = __esmMin((() => {
+ init_readonly();
+ init_optional();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/readonly-optional/index.mjs
+var init_readonly_optional = __esmMin((() => {
+ init_readonly_optional$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/record/record.mjs
+function RecordCreateFromPattern(pattern, T$3, options) {
+ return CreateType({
+ [Kind]: "Record",
+ type: "object",
+ patternProperties: { [pattern]: T$3 }
+ }, options);
+}
+function RecordCreateFromKeys(K$1, T$3, options) {
+ const result = {};
+ for (const K2 of K$1) result[K2] = T$3;
+ return Object$1(result, {
+ ...options,
+ [Hint]: "Record"
+ });
+}
+function FromTemplateLiteralKey(K$1, T$3, options) {
+ return IsTemplateLiteralFinite(K$1) ? RecordCreateFromKeys(IndexPropertyKeys(K$1), T$3, options) : RecordCreateFromPattern(K$1.pattern, T$3, options);
+}
+function FromUnionKey(key, type, options) {
+ return RecordCreateFromKeys(IndexPropertyKeys(Union(key)), type, options);
+}
+function FromLiteralKey(key, type, options) {
+ return RecordCreateFromKeys([key.toString()], type, options);
+}
+function FromRegExpKey(key, type, options) {
+ return RecordCreateFromPattern(key.source, type, options);
+}
+function FromStringKey(key, type, options) {
+ const pattern = IsUndefined(key.pattern) ? PatternStringExact : key.pattern;
+ return RecordCreateFromPattern(pattern, type, options);
+}
+function FromAnyKey(_$2, type, options) {
+ return RecordCreateFromPattern(PatternStringExact, type, options);
+}
+function FromNeverKey(_key, type, options) {
+ return RecordCreateFromPattern(PatternNeverExact, type, options);
+}
+function FromBooleanKey(_key, type, options) {
+ return Object$1({
+ true: type,
+ false: type
+ }, options);
+}
+function FromIntegerKey(_key, type, options) {
+ return RecordCreateFromPattern(PatternNumberExact, type, options);
+}
+function FromNumberKey(_$2, type, options) {
+ return RecordCreateFromPattern(PatternNumberExact, type, options);
+}
+/** `[Json]` Creates a Record type */
+function Record(key, type, options = {}) {
+ return IsUnion(key) ? FromUnionKey(key.anyOf, type, options) : IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) : IsLiteral(key) ? FromLiteralKey(key.const, type, options) : IsBoolean(key) ? FromBooleanKey(key, type, options) : IsInteger(key) ? FromIntegerKey(key, type, options) : IsNumber(key) ? FromNumberKey(key, type, options) : IsRegExp(key) ? FromRegExpKey(key, type, options) : IsString$1(key) ? FromStringKey(key, type, options) : IsAny(key) ? FromAnyKey(key, type, options) : IsNever(key) ? FromNeverKey(key, type, options) : Never(options);
+}
+/** Gets the Records Pattern */
+function RecordPattern(record) {
+ return globalThis.Object.getOwnPropertyNames(record.patternProperties)[0];
+}
+/** Gets the Records Key Type */
+function RecordKey(type) {
+ const pattern = RecordPattern(type);
+ return pattern === PatternStringExact ? String$1() : pattern === PatternNumberExact ? Number$1() : String$1({ pattern });
+}
+/** Gets a Record Value Type */
+function RecordValue(type) {
+ return type.patternProperties[RecordPattern(type)];
+}
+var init_record$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+ init_never();
+ init_number();
+ init_object();
+ init_string$1();
+ init_union$1();
+ init_template_literal();
+ init_patterns();
+ init_indexed();
+ init_value$1();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/record/index.mjs
+var init_record = __esmMin((() => {
+ init_record$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs
+function FromConstructor$1(args, type) {
+ type.parameters = FromTypes$1(args, type.parameters);
+ type.returns = FromType$1(args, type.returns);
+ return type;
+}
+function FromFunction$1(args, type) {
+ type.parameters = FromTypes$1(args, type.parameters);
+ type.returns = FromType$1(args, type.returns);
+ return type;
+}
+function FromIntersect$3(args, type) {
+ type.allOf = FromTypes$1(args, type.allOf);
+ return type;
+}
+function FromUnion$3(args, type) {
+ type.anyOf = FromTypes$1(args, type.anyOf);
+ return type;
+}
+function FromTuple$1(args, type) {
+ if (IsUndefined(type.items)) return type;
+ type.items = FromTypes$1(args, type.items);
+ return type;
+}
+function FromArray$1(args, type) {
+ type.items = FromType$1(args, type.items);
+ return type;
+}
+function FromAsyncIterator$1(args, type) {
+ type.items = FromType$1(args, type.items);
+ return type;
+}
+function FromIterator$1(args, type) {
+ type.items = FromType$1(args, type.items);
+ return type;
+}
+function FromPromise(args, type) {
+ type.item = FromType$1(args, type.item);
+ return type;
+}
+function FromObject$5(args, type) {
+ const mappedProperties = FromProperties$8(args, type.properties);
+ return {
+ ...type,
+ ...Object$1(mappedProperties)
+ };
+}
+function FromRecord$1(args, type) {
+ const mappedKey = FromType$1(args, RecordKey(type));
+ const mappedValue = FromType$1(args, RecordValue(type));
+ const result = Record(mappedKey, mappedValue);
+ return {
+ ...type,
+ ...result
+ };
+}
+function FromArgument(args, argument) {
+ return argument.index in args ? args[argument.index] : Unknown();
+}
+function FromProperty$1(args, type) {
+ const isReadonly = IsReadonly(type);
+ const isOptional = IsOptional(type);
+ const mapped = FromType$1(args, type);
+ return isReadonly && isOptional ? ReadonlyOptional(mapped) : isReadonly && !isOptional ? Readonly(mapped) : !isReadonly && isOptional ? Optional(mapped) : mapped;
+}
+function FromProperties$8(args, properties$1) {
+ return globalThis.Object.getOwnPropertyNames(properties$1).reduce((result, key) => {
+ return {
+ ...result,
+ [key]: FromProperty$1(args, properties$1[key])
+ };
+ }, {});
+}
+function FromTypes$1(args, types) {
+ return types.map((type) => FromType$1(args, type));
+}
+function FromType$1(args, type) {
+ return IsConstructor(type) ? FromConstructor$1(args, type) : IsFunction$1(type) ? FromFunction$1(args, type) : IsIntersect(type) ? FromIntersect$3(args, type) : IsUnion(type) ? FromUnion$3(args, type) : IsTuple(type) ? FromTuple$1(args, type) : IsArray$1(type) ? FromArray$1(args, type) : IsAsyncIterator$1(type) ? FromAsyncIterator$1(args, type) : IsIterator$1(type) ? FromIterator$1(args, type) : IsPromise(type) ? FromPromise(args, type) : IsObject(type) ? FromObject$5(args, type) : IsRecord(type) ? FromRecord$1(args, type) : IsArgument$1(type) ? FromArgument(args, type) : type;
+}
+/** `[JavaScript]` Instantiates a type with the given parameters */
+function Instantiate(type, args) {
+ return FromType$1(args, CloneType(type));
+}
+var init_instantiate$1 = __esmMin((() => {
+ init_type$5();
+ init_unknown();
+ init_readonly_optional();
+ init_readonly();
+ init_optional();
+ init_object();
+ init_record();
+ init_value$1();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/instantiate/index.mjs
+var init_instantiate = __esmMin((() => {
+ init_instantiate$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/integer/integer.mjs
+/** `[Json]` Creates an Integer type */
+function Integer(options) {
+ return CreateType({
+ [Kind]: "Integer",
+ type: "integer"
+ }, options);
+}
+var init_integer$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/integer/index.mjs
+var init_integer = __esmMin((() => {
+ init_integer$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs
+function MappedIntrinsicPropertyKey(K$1, M$3, options) {
+ return { [K$1]: Intrinsic(Literal(K$1), M$3, Clone(options)) };
+}
+function MappedIntrinsicPropertyKeys(K$1, M$3, options) {
+ const result = K$1.reduce((Acc, L$2) => {
+ return {
+ ...Acc,
+ ...MappedIntrinsicPropertyKey(L$2, M$3, options)
+ };
+ }, {});
+ return result;
+}
+function MappedIntrinsicProperties(T$3, M$3, options) {
+ return MappedIntrinsicPropertyKeys(T$3["keys"], M$3, options);
+}
+function IntrinsicFromMappedKey(T$3, M$3, options) {
+ const P$2 = MappedIntrinsicProperties(T$3, M$3, options);
+ return MappedResult(P$2);
+}
+var init_intrinsic_from_mapped_key = __esmMin((() => {
+ init_mapped();
+ init_intrinsic$1();
+ init_literal();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs
+function ApplyUncapitalize(value) {
+ const [first, rest] = [value.slice(0, 1), value.slice(1)];
+ return [first.toLowerCase(), rest].join("");
+}
+function ApplyCapitalize(value) {
+ const [first, rest] = [value.slice(0, 1), value.slice(1)];
+ return [first.toUpperCase(), rest].join("");
+}
+function ApplyUppercase(value) {
+ return value.toUpperCase();
+}
+function ApplyLowercase(value) {
+ return value.toLowerCase();
+}
+function FromTemplateLiteral(schema, mode, options) {
+ const expression = TemplateLiteralParseExact(schema.pattern);
+ const finite = IsTemplateLiteralExpressionFinite(expression);
+ if (!finite) return {
+ ...schema,
+ pattern: FromLiteralValue(schema.pattern, mode)
+ };
+ const strings = [...TemplateLiteralExpressionGenerate(expression)];
+ const literals$1 = strings.map((value) => Literal(value));
+ const mapped = FromRest$2(literals$1, mode);
+ const union = Union(mapped);
+ return TemplateLiteral([union], options);
+}
+function FromLiteralValue(value, mode) {
+ return typeof value === "string" ? mode === "Uncapitalize" ? ApplyUncapitalize(value) : mode === "Capitalize" ? ApplyCapitalize(value) : mode === "Uppercase" ? ApplyUppercase(value) : mode === "Lowercase" ? ApplyLowercase(value) : value : value.toString();
+}
+function FromRest$2(T$3, M$3) {
+ return T$3.map((L$2) => Intrinsic(L$2, M$3));
+}
+/** Applies an intrinsic string manipulation to the given type. */
+function Intrinsic(schema, mode, options = {}) {
+ return IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) : IsTemplateLiteral(schema) ? FromTemplateLiteral(schema, mode, options) : IsUnion(schema) ? Union(FromRest$2(schema.anyOf, mode), options) : IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) : CreateType(schema, options);
+}
+var init_intrinsic$1 = __esmMin((() => {
+ init_type$4();
+ init_template_literal();
+ init_intrinsic_from_mapped_key();
+ init_literal();
+ init_union$1();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs
+/** `[Json]` Intrinsic function to Capitalize LiteralString types */
+function Capitalize(T$3, options = {}) {
+ return Intrinsic(T$3, "Capitalize", options);
+}
+var init_capitalize = __esmMin((() => {
+ init_intrinsic$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs
+/** `[Json]` Intrinsic function to Lowercase LiteralString types */
+function Lowercase(T$3, options = {}) {
+ return Intrinsic(T$3, "Lowercase", options);
+}
+var init_lowercase = __esmMin((() => {
+ init_intrinsic$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs
+/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
+function Uncapitalize(T$3, options = {}) {
+ return Intrinsic(T$3, "Uncapitalize", options);
+}
+var init_uncapitalize = __esmMin((() => {
+ init_intrinsic$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs
+/** `[Json]` Intrinsic function to Uppercase LiteralString types */
+function Uppercase(T$3, options = {}) {
+ return Intrinsic(T$3, "Uppercase", options);
+}
+var init_uppercase = __esmMin((() => {
+ init_intrinsic$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/intrinsic/index.mjs
+var init_intrinsic = __esmMin((() => {
+ init_capitalize();
+ init_intrinsic_from_mapped_key();
+ init_intrinsic$1();
+ init_lowercase();
+ init_uncapitalize();
+ init_uppercase();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs
+function FromProperties$7(properties$1, propertyKeys, options) {
+ const result = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = Omit(properties$1[K2], propertyKeys, Clone(options));
+ return result;
+}
+function FromMappedResult$3(mappedResult, propertyKeys, options) {
+ return FromProperties$7(mappedResult.properties, propertyKeys, options);
+}
+function OmitFromMappedResult(mappedResult, propertyKeys, options) {
+ const properties$1 = FromMappedResult$3(mappedResult, propertyKeys, options);
+ return MappedResult(properties$1);
+}
+var init_omit_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_omit$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit.mjs
+function FromIntersect$2(types, propertyKeys) {
+ return types.map((type) => OmitResolve(type, propertyKeys));
+}
+function FromUnion$2(types, propertyKeys) {
+ return types.map((type) => OmitResolve(type, propertyKeys));
+}
+function FromProperty(properties$1, key) {
+ const { [key]: _$2, ...R$1 } = properties$1;
+ return R$1;
+}
+function FromProperties$6(properties$1, propertyKeys) {
+ return propertyKeys.reduce((T$3, K2) => FromProperty(T$3, K2), properties$1);
+}
+function FromObject$4(properties$1, propertyKeys) {
+ const options = Discard(properties$1, [
+ TransformKind,
+ "$id",
+ "required",
+ "properties"
+ ]);
+ const omittedProperties = FromProperties$6(properties$1["properties"], propertyKeys);
+ return Object$1(omittedProperties, options);
+}
+function UnionFromPropertyKeys$1(propertyKeys) {
+ const result = propertyKeys.reduce((result$1, key) => IsLiteralValue(key) ? [...result$1, Literal(key)] : result$1, []);
+ return Union(result);
+}
+function OmitResolve(properties$1, propertyKeys) {
+ return IsIntersect(properties$1) ? Intersect(FromIntersect$2(properties$1.allOf, propertyKeys)) : IsUnion(properties$1) ? Union(FromUnion$2(properties$1.anyOf, propertyKeys)) : IsObject(properties$1) ? FromObject$4(properties$1, propertyKeys) : Object$1({});
+}
+/** `[Json]` Constructs a type whose keys are picked from the given type */
+function Omit(type, key, options) {
+ const typeKey = IsArray(key) ? UnionFromPropertyKeys$1(key) : key;
+ const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;
+ const isTypeRef = IsRef(type);
+ const isKeyRef = IsRef(key);
+ return IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) : IsMappedKey(key) ? OmitFromMappedKey(type, key, options) : isTypeRef && isKeyRef ? Computed("Omit", [type, typeKey], options) : !isTypeRef && isKeyRef ? Computed("Omit", [type, typeKey], options) : isTypeRef && !isKeyRef ? Computed("Omit", [type, typeKey], options) : CreateType({
+ ...OmitResolve(type, propertyKeys),
+ ...options
+ });
+}
+var init_omit$1 = __esmMin((() => {
+ init_type$4();
+ init_discard$1();
+ init_symbols$1();
+ init_computed();
+ init_literal();
+ init_indexed();
+ init_intersect();
+ init_union$1();
+ init_object();
+ init_omit_from_mapped_key();
+ init_omit_from_mapped_result();
+ init_kind();
+ init_value$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs
+function FromPropertyKey$1(type, key, options) {
+ return { [key]: Omit(type, [key], Clone(options)) };
+}
+function FromPropertyKeys$1(type, propertyKeys, options) {
+ return propertyKeys.reduce((Acc, LK) => {
+ return {
+ ...Acc,
+ ...FromPropertyKey$1(type, LK, options)
+ };
+ }, {});
+}
+function FromMappedKey$1(type, mappedKey, options) {
+ return FromPropertyKeys$1(type, mappedKey.keys, options);
+}
+function OmitFromMappedKey(type, mappedKey, options) {
+ const properties$1 = FromMappedKey$1(type, mappedKey, options);
+ return MappedResult(properties$1);
+}
+var init_omit_from_mapped_key = __esmMin((() => {
+ init_mapped();
+ init_omit$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/omit/index.mjs
+var init_omit = __esmMin((() => {
+ init_omit_from_mapped_key();
+ init_omit_from_mapped_result();
+ init_omit$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs
+function FromProperties$5(properties$1, propertyKeys, options) {
+ const result = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(properties$1)) result[K2] = Pick(properties$1[K2], propertyKeys, Clone(options));
+ return result;
+}
+function FromMappedResult$2(mappedResult, propertyKeys, options) {
+ return FromProperties$5(mappedResult.properties, propertyKeys, options);
+}
+function PickFromMappedResult(mappedResult, propertyKeys, options) {
+ const properties$1 = FromMappedResult$2(mappedResult, propertyKeys, options);
+ return MappedResult(properties$1);
+}
+var init_pick_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_pick$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick.mjs
+function FromIntersect$1(types, propertyKeys) {
+ return types.map((type) => PickResolve(type, propertyKeys));
+}
+function FromUnion$1(types, propertyKeys) {
+ return types.map((type) => PickResolve(type, propertyKeys));
+}
+function FromProperties$4(properties$1, propertyKeys) {
+ const result = {};
+ for (const K2 of propertyKeys) if (K2 in properties$1) result[K2] = properties$1[K2];
+ return result;
+}
+function FromObject$3(T$3, K$1) {
+ const options = Discard(T$3, [
+ TransformKind,
+ "$id",
+ "required",
+ "properties"
+ ]);
+ const properties$1 = FromProperties$4(T$3["properties"], K$1);
+ return Object$1(properties$1, options);
+}
+function UnionFromPropertyKeys(propertyKeys) {
+ const result = propertyKeys.reduce((result$1, key) => IsLiteralValue(key) ? [...result$1, Literal(key)] : result$1, []);
+ return Union(result);
+}
+function PickResolve(properties$1, propertyKeys) {
+ return IsIntersect(properties$1) ? Intersect(FromIntersect$1(properties$1.allOf, propertyKeys)) : IsUnion(properties$1) ? Union(FromUnion$1(properties$1.anyOf, propertyKeys)) : IsObject(properties$1) ? FromObject$3(properties$1, propertyKeys) : Object$1({});
+}
+/** `[Json]` Constructs a type whose keys are picked from the given type */
+function Pick(type, key, options) {
+ const typeKey = IsArray(key) ? UnionFromPropertyKeys(key) : key;
+ const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;
+ const isTypeRef = IsRef(type);
+ const isKeyRef = IsRef(key);
+ return IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) : IsMappedKey(key) ? PickFromMappedKey(type, key, options) : isTypeRef && isKeyRef ? Computed("Pick", [type, typeKey], options) : !isTypeRef && isKeyRef ? Computed("Pick", [type, typeKey], options) : isTypeRef && !isKeyRef ? Computed("Pick", [type, typeKey], options) : CreateType({
+ ...PickResolve(type, propertyKeys),
+ ...options
+ });
+}
+var init_pick$1 = __esmMin((() => {
+ init_type$4();
+ init_discard$1();
+ init_computed();
+ init_intersect();
+ init_literal();
+ init_object();
+ init_union$1();
+ init_indexed();
+ init_symbols$1();
+ init_kind();
+ init_value$1();
+ init_pick_from_mapped_key();
+ init_pick_from_mapped_result();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs
+function FromPropertyKey(type, key, options) {
+ return { [key]: Pick(type, [key], Clone(options)) };
+}
+function FromPropertyKeys(type, propertyKeys, options) {
+ return propertyKeys.reduce((result, leftKey) => {
+ return {
+ ...result,
+ ...FromPropertyKey(type, leftKey, options)
+ };
+ }, {});
+}
+function FromMappedKey(type, mappedKey, options) {
+ return FromPropertyKeys(type, mappedKey.keys, options);
+}
+function PickFromMappedKey(type, mappedKey, options) {
+ const properties$1 = FromMappedKey(type, mappedKey, options);
+ return MappedResult(properties$1);
+}
+var init_pick_from_mapped_key = __esmMin((() => {
+ init_mapped();
+ init_pick$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/pick/index.mjs
+var init_pick = __esmMin((() => {
+ init_pick_from_mapped_key();
+ init_pick_from_mapped_result();
+ init_pick$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/partial.mjs
+function FromComputed$2(target, parameters) {
+ return Computed("Partial", [Computed(target, parameters)]);
+}
+function FromRef$1($ref) {
+ return Computed("Partial", [Ref($ref)]);
+}
+function FromProperties$3(properties$1) {
+ const partialProperties = {};
+ for (const K$1 of globalThis.Object.getOwnPropertyNames(properties$1)) partialProperties[K$1] = Optional(properties$1[K$1]);
+ return partialProperties;
+}
+function FromObject$2(type) {
+ const options = Discard(type, [
+ TransformKind,
+ "$id",
+ "required",
+ "properties"
+ ]);
+ const properties$1 = FromProperties$3(type["properties"]);
+ return Object$1(properties$1, options);
+}
+function FromRest$1(types) {
+ return types.map((type) => PartialResolve(type));
+}
+function PartialResolve(type) {
+ return IsComputed(type) ? FromComputed$2(type.target, type.parameters) : IsRef(type) ? FromRef$1(type.$ref) : IsIntersect(type) ? Intersect(FromRest$1(type.allOf)) : IsUnion(type) ? Union(FromRest$1(type.anyOf)) : IsObject(type) ? FromObject$2(type) : IsBigInt$1(type) ? type : IsBoolean(type) ? type : IsInteger(type) ? type : IsLiteral(type) ? type : IsNull$2(type) ? type : IsNumber(type) ? type : IsString$1(type) ? type : IsSymbol$2(type) ? type : IsUndefined$2(type) ? type : Object$1({});
+}
+/** `[Json]` Constructs a type where all properties are optional */
+function Partial(type, options) {
+ if (IsMappedResult(type)) {
+ return PartialFromMappedResult(type, options);
+ } else {
+ return CreateType({
+ ...PartialResolve(type),
+ ...options
+ });
+ }
+}
+var init_partial$1 = __esmMin((() => {
+ init_type$4();
+ init_computed();
+ init_optional();
+ init_object();
+ init_intersect();
+ init_union$1();
+ init_ref();
+ init_discard();
+ init_symbols();
+ init_partial_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs
+function FromProperties$2(K$1, options) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(K$1)) Acc[K2] = Partial(K$1[K2], Clone(options));
+ return Acc;
+}
+function FromMappedResult$1(R$1, options) {
+ return FromProperties$2(R$1.properties, options);
+}
+function PartialFromMappedResult(R$1, options) {
+ const P$2 = FromMappedResult$1(R$1, options);
+ return MappedResult(P$2);
+}
+var init_partial_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_partial$1();
+ init_value();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/partial/index.mjs
+var init_partial = __esmMin((() => {
+ init_partial_from_mapped_result();
+ init_partial$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/required.mjs
+function FromComputed$1(target, parameters) {
+ return Computed("Required", [Computed(target, parameters)]);
+}
+function FromRef($ref) {
+ return Computed("Required", [Ref($ref)]);
+}
+function FromProperties$1(properties$1) {
+ const requiredProperties = {};
+ for (const K$1 of globalThis.Object.getOwnPropertyNames(properties$1)) requiredProperties[K$1] = Discard(properties$1[K$1], [OptionalKind]);
+ return requiredProperties;
+}
+function FromObject$1(type) {
+ const options = Discard(type, [
+ TransformKind,
+ "$id",
+ "required",
+ "properties"
+ ]);
+ const properties$1 = FromProperties$1(type["properties"]);
+ return Object$1(properties$1, options);
+}
+function FromRest(types) {
+ return types.map((type) => RequiredResolve(type));
+}
+function RequiredResolve(type) {
+ return IsComputed(type) ? FromComputed$1(type.target, type.parameters) : IsRef(type) ? FromRef(type.$ref) : IsIntersect(type) ? Intersect(FromRest(type.allOf)) : IsUnion(type) ? Union(FromRest(type.anyOf)) : IsObject(type) ? FromObject$1(type) : IsBigInt$1(type) ? type : IsBoolean(type) ? type : IsInteger(type) ? type : IsLiteral(type) ? type : IsNull$2(type) ? type : IsNumber(type) ? type : IsString$1(type) ? type : IsSymbol$2(type) ? type : IsUndefined$2(type) ? type : Object$1({});
+}
+/** `[Json]` Constructs a type where all properties are required */
+function Required(type, options) {
+ if (IsMappedResult(type)) {
+ return RequiredFromMappedResult(type, options);
+ } else {
+ return CreateType({
+ ...RequiredResolve(type),
+ ...options
+ });
+ }
+}
+var init_required$1 = __esmMin((() => {
+ init_type$4();
+ init_computed();
+ init_object();
+ init_intersect();
+ init_union$1();
+ init_ref();
+ init_symbols();
+ init_discard();
+ init_required_from_mapped_result();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs
+function FromProperties(P$2, options) {
+ const Acc = {};
+ for (const K2 of globalThis.Object.getOwnPropertyNames(P$2)) Acc[K2] = Required(P$2[K2], options);
+ return Acc;
+}
+function FromMappedResult(R$1, options) {
+ return FromProperties(R$1.properties, options);
+}
+function RequiredFromMappedResult(R$1, options) {
+ const P$2 = FromMappedResult(R$1, options);
+ return MappedResult(P$2);
+}
+var init_required_from_mapped_result = __esmMin((() => {
+ init_mapped();
+ init_required$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/required/index.mjs
+var init_required = __esmMin((() => {
+ init_required_from_mapped_result();
+ init_required$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/compute.mjs
+function DereferenceParameters(moduleProperties, types) {
+ return types.map((type) => {
+ return IsRef(type) ? Dereference(moduleProperties, type.$ref) : FromType(moduleProperties, type);
+ });
+}
+function Dereference(moduleProperties, ref) {
+ return ref in moduleProperties ? IsRef(moduleProperties[ref]) ? Dereference(moduleProperties, moduleProperties[ref].$ref) : FromType(moduleProperties, moduleProperties[ref]) : Never();
+}
+function FromAwaited(parameters) {
+ return Awaited(parameters[0]);
+}
+function FromIndex(parameters) {
+ return Index(parameters[0], parameters[1]);
+}
+function FromKeyOf(parameters) {
+ return KeyOf(parameters[0]);
+}
+function FromPartial(parameters) {
+ return Partial(parameters[0]);
+}
+function FromOmit(parameters) {
+ return Omit(parameters[0], parameters[1]);
+}
+function FromPick(parameters) {
+ return Pick(parameters[0], parameters[1]);
+}
+function FromRequired(parameters) {
+ return Required(parameters[0]);
+}
+function FromComputed(moduleProperties, target, parameters) {
+ const dereferenced = DereferenceParameters(moduleProperties, parameters);
+ return target === "Awaited" ? FromAwaited(dereferenced) : target === "Index" ? FromIndex(dereferenced) : target === "KeyOf" ? FromKeyOf(dereferenced) : target === "Partial" ? FromPartial(dereferenced) : target === "Omit" ? FromOmit(dereferenced) : target === "Pick" ? FromPick(dereferenced) : target === "Required" ? FromRequired(dereferenced) : Never();
+}
+function FromArray(moduleProperties, type) {
+ return Array$1(FromType(moduleProperties, type));
+}
+function FromAsyncIterator(moduleProperties, type) {
+ return AsyncIterator(FromType(moduleProperties, type));
+}
+function FromConstructor(moduleProperties, parameters, instanceType) {
+ return Constructor(FromTypes(moduleProperties, parameters), FromType(moduleProperties, instanceType));
+}
+function FromFunction(moduleProperties, parameters, returnType) {
+ return Function$1(FromTypes(moduleProperties, parameters), FromType(moduleProperties, returnType));
+}
+function FromIntersect(moduleProperties, types) {
+ return Intersect(FromTypes(moduleProperties, types));
+}
+function FromIterator(moduleProperties, type) {
+ return Iterator(FromType(moduleProperties, type));
+}
+function FromObject(moduleProperties, properties$1) {
+ return Object$1(globalThis.Object.keys(properties$1).reduce((result, key) => {
+ return {
+ ...result,
+ [key]: FromType(moduleProperties, properties$1[key])
+ };
+ }, {}));
+}
+function FromRecord(moduleProperties, type) {
+ const [value, pattern] = [FromType(moduleProperties, RecordValue(type)), RecordPattern(type)];
+ const result = CloneType(type);
+ result.patternProperties[pattern] = value;
+ return result;
+}
+function FromTransform(moduleProperties, transform) {
+ return IsRef(transform) ? {
+ ...Dereference(moduleProperties, transform.$ref),
+ [TransformKind]: transform[TransformKind]
+ } : transform;
+}
+function FromTuple(moduleProperties, types) {
+ return Tuple(FromTypes(moduleProperties, types));
+}
+function FromUnion(moduleProperties, types) {
+ return Union(FromTypes(moduleProperties, types));
+}
+function FromTypes(moduleProperties, types) {
+ return types.map((type) => FromType(moduleProperties, type));
+}
+function FromType(moduleProperties, type) {
+ return IsOptional(type) ? CreateType(FromType(moduleProperties, Discard(type, [OptionalKind])), type) : IsReadonly(type) ? CreateType(FromType(moduleProperties, Discard(type, [ReadonlyKind])), type) : IsTransform(type) ? CreateType(FromTransform(moduleProperties, type), type) : IsArray$1(type) ? CreateType(FromArray(moduleProperties, type.items), type) : IsAsyncIterator$1(type) ? CreateType(FromAsyncIterator(moduleProperties, type.items), type) : IsComputed(type) ? CreateType(FromComputed(moduleProperties, type.target, type.parameters)) : IsConstructor(type) ? CreateType(FromConstructor(moduleProperties, type.parameters, type.returns), type) : IsFunction$1(type) ? CreateType(FromFunction(moduleProperties, type.parameters, type.returns), type) : IsIntersect(type) ? CreateType(FromIntersect(moduleProperties, type.allOf), type) : IsIterator$1(type) ? CreateType(FromIterator(moduleProperties, type.items), type) : IsObject(type) ? CreateType(FromObject(moduleProperties, type.properties), type) : IsRecord(type) ? CreateType(FromRecord(moduleProperties, type)) : IsTuple(type) ? CreateType(FromTuple(moduleProperties, type.items || []), type) : IsUnion(type) ? CreateType(FromUnion(moduleProperties, type.anyOf), type) : type;
+}
+function ComputeType(moduleProperties, key) {
+ return key in moduleProperties ? FromType(moduleProperties, moduleProperties[key]) : Never();
+}
+function ComputeModuleProperties(moduleProperties) {
+ return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => {
+ return {
+ ...result,
+ [key]: ComputeType(moduleProperties, key)
+ };
+ }, {});
+}
+var init_compute = __esmMin((() => {
+ init_create$1();
+ init_clone();
+ init_discard();
+ init_array$1();
+ init_awaited();
+ init_async_iterator();
+ init_constructor();
+ init_indexed();
+ init_function();
+ init_intersect();
+ init_iterator();
+ init_keyof();
+ init_object();
+ init_omit();
+ init_pick();
+ init_never();
+ init_partial();
+ init_record();
+ init_required();
+ init_tuple();
+ init_union$1();
+ init_symbols();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/module.mjs
+/** `[Json]` Creates a Type Definition Module. */
+function Module(properties$1) {
+ return new TModule(properties$1);
+}
+var TModule;
+var init_module$1 = __esmMin((() => {
+ init_create$1();
+ init_symbols();
+ init_compute();
+ TModule = class {
+ constructor($defs) {
+ const computed = ComputeModuleProperties($defs);
+ const identified = this.WithIdentifiers(computed);
+ this.$defs = identified;
+ }
+ /** `[Json]` Imports a Type by Key. */
+ Import(key, options) {
+ const $defs = {
+ ...this.$defs,
+ [key]: CreateType(this.$defs[key], options)
+ };
+ return CreateType({
+ [Kind]: "Import",
+ $defs,
+ $ref: key
+ });
+ }
+ WithIdentifiers($defs) {
+ return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => {
+ return {
+ ...result,
+ [key]: {
+ ...$defs[key],
+ $id: key
+ }
+ };
+ }, {});
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/module/index.mjs
+var init_module = __esmMin((() => {
+ init_module$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/not/not.mjs
+/** `[Json]` Creates a Not type */
+function Not(type, options) {
+ return CreateType({
+ [Kind]: "Not",
+ not: type
+ }, options);
+}
+var init_not$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/not/index.mjs
+var init_not = __esmMin((() => {
+ init_not$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/parameters/parameters.mjs
+/** `[JavaScript]` Extracts the Parameters from the given Function type */
+function Parameters(schema, options) {
+ return IsFunction$1(schema) ? Tuple(schema.parameters, options) : Never();
+}
+var init_parameters$1 = __esmMin((() => {
+ init_tuple();
+ init_never();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/parameters/index.mjs
+var init_parameters = __esmMin((() => {
+ init_parameters$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/recursive/recursive.mjs
+/** `[Json]` Creates a Recursive type */
+function Recursive(callback, options = {}) {
+ if (IsUndefined(options.$id)) options.$id = `T${Ordinal++}`;
+ const thisType = CloneType(callback({
+ [Kind]: "This",
+ $ref: `${options.$id}`
+ }));
+ thisType.$id = options.$id;
+ return CreateType({
+ [Hint]: "Recursive",
+ ...thisType
+ }, options);
+}
+var Ordinal;
+var init_recursive$1 = __esmMin((() => {
+ init_type$5();
+ init_type$4();
+ init_value$1();
+ init_symbols();
+ Ordinal = 0;
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/recursive/index.mjs
+var init_recursive = __esmMin((() => {
+ init_recursive$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/regexp/regexp.mjs
+/** `[JavaScript]` Creates a RegExp type */
+function RegExp$1(unresolved, options) {
+ const expr = IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved;
+ return CreateType({
+ [Kind]: "RegExp",
+ type: "RegExp",
+ source: expr.source,
+ flags: expr.flags
+ }, options);
+}
+var init_regexp$1 = __esmMin((() => {
+ init_type$4();
+ init_value$1();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/regexp/index.mjs
+var init_regexp = __esmMin((() => {
+ init_regexp$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/rest/rest.mjs
+function RestResolve(T$3) {
+ return IsIntersect(T$3) ? T$3.allOf : IsUnion(T$3) ? T$3.anyOf : IsTuple(T$3) ? T$3.items ?? [] : [];
+}
+/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
+function Rest(T$3) {
+ return RestResolve(T$3);
+}
+var init_rest$1 = __esmMin((() => {
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/rest/index.mjs
+var init_rest = __esmMin((() => {
+ init_rest$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/return-type/return-type.mjs
+/** `[JavaScript]` Extracts the ReturnType from the given Function type */
+function ReturnType(schema, options) {
+ return IsFunction$1(schema) ? CreateType(schema.returns, options) : Never(options);
+}
+var init_return_type$1 = __esmMin((() => {
+ init_type$4();
+ init_never();
+ init_kind();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/return-type/index.mjs
+var init_return_type = __esmMin((() => {
+ init_return_type$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/anyschema.mjs
+var init_anyschema = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/schema.mjs
+var init_schema$1 = __esmMin((() => {
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/schema/index.mjs
+var init_schema = __esmMin((() => {
+ init_anyschema();
+ init_schema$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/static/static.mjs
+var init_static$1 = __esmMin((() => {}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/static/index.mjs
+var init_static = __esmMin((() => {
+ init_static$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/transform/transform.mjs
+/** `[Json]` Creates a Transform type */
+function Transform(schema) {
+ return new TransformDecodeBuilder(schema);
+}
+var TransformDecodeBuilder, TransformEncodeBuilder;
+var init_transform$1 = __esmMin((() => {
+ init_symbols();
+ init_kind();
+ TransformDecodeBuilder = class {
+ constructor(schema) {
+ this.schema = schema;
+ }
+ Decode(decode) {
+ return new TransformEncodeBuilder(this.schema, decode);
+ }
+ };
+ TransformEncodeBuilder = class {
+ constructor(schema, decode) {
+ this.schema = schema;
+ this.decode = decode;
+ }
+ EncodeTransform(encode, schema) {
+ const Encode = (value) => schema[TransformKind].Encode(encode(value));
+ const Decode = (value) => this.decode(schema[TransformKind].Decode(value));
+ const Codec = {
+ Encode,
+ Decode
+ };
+ return {
+ ...schema,
+ [TransformKind]: Codec
+ };
+ }
+ EncodeSchema(encode, schema) {
+ const Codec = {
+ Decode: this.decode,
+ Encode: encode
+ };
+ return {
+ ...schema,
+ [TransformKind]: Codec
+ };
+ }
+ Encode(encode) {
+ return IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema);
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/transform/index.mjs
+var init_transform = __esmMin((() => {
+ init_transform$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs
+/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
+function Unsafe(options = {}) {
+ return CreateType({ [Kind]: options[Kind] ?? "Unsafe" }, options);
+}
+var init_unsafe$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/unsafe/index.mjs
+var init_unsafe = __esmMin((() => {
+ init_unsafe$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/void/void.mjs
+/** `[JavaScript]` Creates a Void type */
+function Void(options) {
+ return CreateType({
+ [Kind]: "Void",
+ type: "void"
+ }, options);
+}
+var init_void$1 = __esmMin((() => {
+ init_type$4();
+ init_symbols();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/void/index.mjs
+var init_void = __esmMin((() => {
+ init_void$1();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/json.mjs
+var JsonTypeBuilder;
+var init_json$2 = __esmMin((() => {
+ init_any();
+ init_array$1();
+ init_boolean();
+ init_composite();
+ init_const();
+ init_enum();
+ init_exclude();
+ init_extends();
+ init_extract();
+ init_indexed();
+ init_integer();
+ init_intersect();
+ init_intrinsic();
+ init_keyof();
+ init_literal();
+ init_mapped();
+ init_never();
+ init_not();
+ init_null();
+ init_module();
+ init_number();
+ init_object();
+ init_omit();
+ init_optional();
+ init_partial();
+ init_pick();
+ init_readonly();
+ init_readonly_optional();
+ init_record();
+ init_recursive();
+ init_ref();
+ init_required();
+ init_rest();
+ init_string$1();
+ init_template_literal();
+ init_transform();
+ init_tuple();
+ init_union$1();
+ init_unknown();
+ init_unsafe();
+ JsonTypeBuilder = class {
+ /** `[Json]` Creates a Readonly and Optional property */
+ ReadonlyOptional(type) {
+ return ReadonlyOptional(type);
+ }
+ /** `[Json]` Creates a Readonly property */
+ Readonly(type, enable) {
+ return Readonly(type, enable ?? true);
+ }
+ /** `[Json]` Creates a Optional property */
+ Optional(type, enable) {
+ return Optional(type, enable ?? true);
+ }
+ /** `[Json]` Creates an Any type */
+ Any(options) {
+ return Any(options);
+ }
+ /** `[Json]` Creates an Array type */
+ Array(items, options) {
+ return Array$1(items, options);
+ }
+ /** `[Json]` Creates a Boolean type */
+ Boolean(options) {
+ return Boolean$1(options);
+ }
+ /** `[Json]` Intrinsic function to Capitalize LiteralString types */
+ Capitalize(schema, options) {
+ return Capitalize(schema, options);
+ }
+ /** `[Json]` Creates a Composite object type */
+ Composite(schemas, options) {
+ return Composite(schemas, options);
+ }
+ /** `[JavaScript]` Creates a readonly const type from the given value. */
+ Const(value, options) {
+ return Const(value, options);
+ }
+ /** `[Json]` Creates a Enum type */
+ Enum(item, options) {
+ return Enum(item, options);
+ }
+ /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */
+ Exclude(unionType, excludedMembers, options) {
+ return Exclude(unionType, excludedMembers, options);
+ }
+ /** `[Json]` Creates a Conditional type */
+ Extends(L$2, R$1, T$3, F$1, options) {
+ return Extends(L$2, R$1, T$3, F$1, options);
+ }
+ /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */
+ Extract(type, union, options) {
+ return Extract(type, union, options);
+ }
+ /** `[Json]` Returns an Indexed property type for the given keys */
+ Index(type, key, options) {
+ return Index(type, key, options);
+ }
+ /** `[Json]` Creates an Integer type */
+ Integer(options) {
+ return Integer(options);
+ }
+ /** `[Json]` Creates an Intersect type */
+ Intersect(types, options) {
+ return Intersect(types, options);
+ }
+ /** `[Json]` Creates a KeyOf type */
+ KeyOf(type, options) {
+ return KeyOf(type, options);
+ }
+ /** `[Json]` Creates a Literal type */
+ Literal(literalValue, options) {
+ return Literal(literalValue, options);
+ }
+ /** `[Json]` Intrinsic function to Lowercase LiteralString types */
+ Lowercase(type, options) {
+ return Lowercase(type, options);
+ }
+ /** `[Json]` Creates a Mapped object type */
+ Mapped(key, map$2, options) {
+ return Mapped(key, map$2, options);
+ }
+ /** `[Json]` Creates a Type Definition Module. */
+ Module(properties$1) {
+ return Module(properties$1);
+ }
+ /** `[Json]` Creates a Never type */
+ Never(options) {
+ return Never(options);
+ }
+ /** `[Json]` Creates a Not type */
+ Not(type, options) {
+ return Not(type, options);
+ }
+ /** `[Json]` Creates a Null type */
+ Null(options) {
+ return Null(options);
+ }
+ /** `[Json]` Creates a Number type */
+ Number(options) {
+ return Number$1(options);
+ }
+ /** `[Json]` Creates an Object type */
+ Object(properties$1, options) {
+ return Object$1(properties$1, options);
+ }
+ /** `[Json]` Constructs a type whose keys are omitted from the given type */
+ Omit(schema, selector, options) {
+ return Omit(schema, selector, options);
+ }
+ /** `[Json]` Constructs a type where all properties are optional */
+ Partial(type, options) {
+ return Partial(type, options);
+ }
+ /** `[Json]` Constructs a type whose keys are picked from the given type */
+ Pick(type, key, options) {
+ return Pick(type, key, options);
+ }
+ /** `[Json]` Creates a Record type */
+ Record(key, value, options) {
+ return Record(key, value, options);
+ }
+ /** `[Json]` Creates a Recursive type */
+ Recursive(callback, options) {
+ return Recursive(callback, options);
+ }
+ /** `[Json]` Creates a Ref type. The referenced type must contain a $id */
+ Ref(...args) {
+ return Ref(args[0], args[1]);
+ }
+ /** `[Json]` Constructs a type where all properties are required */
+ Required(type, options) {
+ return Required(type, options);
+ }
+ /** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */
+ Rest(type) {
+ return Rest(type);
+ }
+ /** `[Json]` Creates a String type */
+ String(options) {
+ return String$1(options);
+ }
+ /** `[Json]` Creates a TemplateLiteral type */
+ TemplateLiteral(unresolved, options) {
+ return TemplateLiteral(unresolved, options);
+ }
+ /** `[Json]` Creates a Transform type */
+ Transform(type) {
+ return Transform(type);
+ }
+ /** `[Json]` Creates a Tuple type */
+ Tuple(types, options) {
+ return Tuple(types, options);
+ }
+ /** `[Json]` Intrinsic function to Uncapitalize LiteralString types */
+ Uncapitalize(type, options) {
+ return Uncapitalize(type, options);
+ }
+ /** `[Json]` Creates a Union type */
+ Union(types, options) {
+ return Union(types, options);
+ }
+ /** `[Json]` Creates an Unknown type */
+ Unknown(options) {
+ return Unknown(options);
+ }
+ /** `[Json]` Creates a Unsafe type that will infers as the generic argument T */
+ Unsafe(options) {
+ return Unsafe(options);
+ }
+ /** `[Json]` Intrinsic function to Uppercase LiteralString types */
+ Uppercase(schema, options) {
+ return Uppercase(schema, options);
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/type.mjs
+var type_exports = /* @__PURE__ */ __export({
+ Any: () => Any,
+ Argument: () => Argument,
+ Array: () => Array$1,
+ AsyncIterator: () => AsyncIterator,
+ Awaited: () => Awaited,
+ BigInt: () => BigInt,
+ Boolean: () => Boolean$1,
+ Capitalize: () => Capitalize,
+ Composite: () => Composite,
+ Const: () => Const,
+ Constructor: () => Constructor,
+ ConstructorParameters: () => ConstructorParameters,
+ Date: () => Date$1,
+ Enum: () => Enum,
+ Exclude: () => Exclude,
+ Extends: () => Extends,
+ Extract: () => Extract,
+ Function: () => Function$1,
+ Index: () => Index,
+ InstanceType: () => InstanceType,
+ Instantiate: () => Instantiate,
+ Integer: () => Integer,
+ Intersect: () => Intersect,
+ Iterator: () => Iterator,
+ KeyOf: () => KeyOf,
+ Literal: () => Literal,
+ Lowercase: () => Lowercase,
+ Mapped: () => Mapped,
+ Module: () => Module,
+ Never: () => Never,
+ Not: () => Not,
+ Null: () => Null,
+ Number: () => Number$1,
+ Object: () => Object$1,
+ Omit: () => Omit,
+ Optional: () => Optional,
+ Parameters: () => Parameters,
+ Partial: () => Partial,
+ Pick: () => Pick,
+ Promise: () => Promise$1,
+ Readonly: () => Readonly,
+ ReadonlyOptional: () => ReadonlyOptional,
+ Record: () => Record,
+ Recursive: () => Recursive,
+ Ref: () => Ref,
+ RegExp: () => RegExp$1,
+ Required: () => Required,
+ Rest: () => Rest,
+ ReturnType: () => ReturnType,
+ String: () => String$1,
+ Symbol: () => Symbol$1,
+ TemplateLiteral: () => TemplateLiteral,
+ Transform: () => Transform,
+ Tuple: () => Tuple,
+ Uint8Array: () => Uint8Array$1,
+ Uncapitalize: () => Uncapitalize,
+ Undefined: () => Undefined,
+ Union: () => Union,
+ Unknown: () => Unknown,
+ Unsafe: () => Unsafe,
+ Uppercase: () => Uppercase,
+ Void: () => Void
+});
+var init_type$1 = __esmMin((() => {
+ init_any();
+ init_argument();
+ init_array$1();
+ init_async_iterator();
+ init_awaited();
+ init_bigint();
+ init_boolean();
+ init_composite();
+ init_const();
+ init_constructor();
+ init_constructor_parameters();
+ init_date();
+ init_enum();
+ init_exclude();
+ init_extends();
+ init_extract();
+ init_function();
+ init_indexed();
+ init_instance_type();
+ init_instantiate();
+ init_integer();
+ init_intersect();
+ init_intrinsic();
+ init_iterator();
+ init_keyof();
+ init_literal();
+ init_mapped();
+ init_module();
+ init_never();
+ init_not();
+ init_null();
+ init_number();
+ init_object();
+ init_omit();
+ init_optional();
+ init_parameters();
+ init_partial();
+ init_pick();
+ init_promise();
+ init_readonly();
+ init_readonly_optional();
+ init_record();
+ init_recursive();
+ init_ref();
+ init_regexp();
+ init_required();
+ init_rest();
+ init_return_type();
+ init_string$1();
+ init_symbol();
+ init_template_literal();
+ init_transform();
+ init_tuple();
+ init_uint8array();
+ init_undefined();
+ init_union$1();
+ init_unknown();
+ init_unsafe();
+ init_void();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/javascript.mjs
+var JavaScriptTypeBuilder;
+var init_javascript$1 = __esmMin((() => {
+ init_json$2();
+ init_argument();
+ init_async_iterator();
+ init_awaited();
+ init_bigint();
+ init_constructor();
+ init_constructor_parameters();
+ init_date();
+ init_function();
+ init_instance_type();
+ init_instantiate();
+ init_iterator();
+ init_parameters();
+ init_promise();
+ init_regexp();
+ init_return_type();
+ init_symbol();
+ init_uint8array();
+ init_undefined();
+ init_void();
+ JavaScriptTypeBuilder = class extends JsonTypeBuilder {
+ /** `[JavaScript]` Creates a Generic Argument Type */
+ Argument(index) {
+ return Argument(index);
+ }
+ /** `[JavaScript]` Creates a AsyncIterator type */
+ AsyncIterator(items, options) {
+ return AsyncIterator(items, options);
+ }
+ /** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */
+ Awaited(schema, options) {
+ return Awaited(schema, options);
+ }
+ /** `[JavaScript]` Creates a BigInt type */
+ BigInt(options) {
+ return BigInt(options);
+ }
+ /** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */
+ ConstructorParameters(schema, options) {
+ return ConstructorParameters(schema, options);
+ }
+ /** `[JavaScript]` Creates a Constructor type */
+ Constructor(parameters, instanceType, options) {
+ return Constructor(parameters, instanceType, options);
+ }
+ /** `[JavaScript]` Creates a Date type */
+ Date(options = {}) {
+ return Date$1(options);
+ }
+ /** `[JavaScript]` Creates a Function type */
+ Function(parameters, returnType, options) {
+ return Function$1(parameters, returnType, options);
+ }
+ /** `[JavaScript]` Extracts the InstanceType from the given Constructor type */
+ InstanceType(schema, options) {
+ return InstanceType(schema, options);
+ }
+ /** `[JavaScript]` Instantiates a type with the given parameters */
+ Instantiate(schema, parameters) {
+ return Instantiate(schema, parameters);
+ }
+ /** `[JavaScript]` Creates an Iterator type */
+ Iterator(items, options) {
+ return Iterator(items, options);
+ }
+ /** `[JavaScript]` Extracts the Parameters from the given Function type */
+ Parameters(schema, options) {
+ return Parameters(schema, options);
+ }
+ /** `[JavaScript]` Creates a Promise type */
+ Promise(item, options) {
+ return Promise$1(item, options);
+ }
+ /** `[JavaScript]` Creates a RegExp type */
+ RegExp(unresolved, options) {
+ return RegExp$1(unresolved, options);
+ }
+ /** `[JavaScript]` Extracts the ReturnType from the given Function type */
+ ReturnType(type, options) {
+ return ReturnType(type, options);
+ }
+ /** `[JavaScript]` Creates a Symbol type */
+ Symbol(options) {
+ return Symbol$1(options);
+ }
+ /** `[JavaScript]` Creates a Undefined type */
+ Undefined(options) {
+ return Undefined(options);
+ }
+ /** `[JavaScript]` Creates a Uint8Array type */
+ Uint8Array(options) {
+ return Uint8Array$1(options);
+ }
+ /** `[JavaScript]` Creates a Void type */
+ Void(options) {
+ return Void(options);
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/type/type/index.mjs
+var Type;
+var init_type = __esmMin((() => {
+ init_json$2();
+ init_type$1();
+ init_javascript$1();
+ Type = type_exports;
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/vendor/@sinclair/typebox/build/esm/index.mjs
+var init_esm = __esmMin((() => {
+ init_clone();
+ init_create$1();
+ init_error();
+ init_guard();
+ init_helpers();
+ init_patterns();
+ init_registry();
+ init_sets();
+ init_symbols();
+ init_any();
+ init_array$1();
+ init_argument();
+ init_async_iterator();
+ init_awaited();
+ init_bigint();
+ init_boolean();
+ init_composite();
+ init_const();
+ init_constructor();
+ init_constructor_parameters();
+ init_date();
+ init_enum();
+ init_exclude();
+ init_extends();
+ init_extract();
+ init_function();
+ init_indexed();
+ init_instance_type();
+ init_instantiate();
+ init_integer();
+ init_intersect();
+ init_iterator();
+ init_intrinsic();
+ init_keyof();
+ init_literal();
+ init_module();
+ init_mapped();
+ init_never();
+ init_not();
+ init_null();
+ init_number();
+ init_object();
+ init_omit();
+ init_optional();
+ init_parameters();
+ init_partial();
+ init_pick();
+ init_promise();
+ init_readonly();
+ init_readonly_optional();
+ init_record();
+ init_recursive();
+ init_ref();
+ init_regexp();
+ init_required();
+ init_rest();
+ init_return_type();
+ init_schema();
+ init_static();
+ init_string$1();
+ init_symbol();
+ init_template_literal();
+ init_transform();
+ init_tuple();
+ init_uint8array();
+ init_undefined();
+ init_union$1();
+ init_unknown();
+ init_unsafe();
+ init_void();
+ init_type();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/ConsoleRuntimeProvider.js
+var ConsoleRuntimeProvider;
+var init_ConsoleRuntimeProvider = __esmMin((() => {
+ ConsoleRuntimeProvider = class {
+ constructor() {
+ this.logs = [];
+ this.completionError = null;
+ this.completed = false;
+ }
+ getData() {
+ return {};
+ }
+ getDescription() {
+ return "";
+ }
+ getRuntime() {
+ return (_sandboxId) => {
+ if (!window.__originalConsole) {
+ window.__originalConsole = {
+ log: console.log.bind(console),
+ error: console.error.bind(console),
+ warn: console.warn.bind(console),
+ info: console.info.bind(console)
+ };
+ }
+ const originalConsole = window.__originalConsole;
+ const pendingSends = [];
+ [
+ "log",
+ "error",
+ "warn",
+ "info"
+ ].forEach((method) => {
+ console[method] = (...args) => {
+ const text$2 = args.map((arg) => {
+ try {
+ return typeof arg === "object" ? JSON.stringify(arg) : String(arg);
+ } catch {
+ return String(arg);
+ }
+ }).join(" ");
+ originalConsole[method].apply(console, args);
+ if (window.sendRuntimeMessage) {
+ const sendPromise = window.sendRuntimeMessage({
+ type: "console",
+ method,
+ text: text$2,
+ args
+ }).catch(() => {});
+ pendingSends.push(sendPromise);
+ }
+ };
+ });
+ if (window.onCompleted) {
+ window.onCompleted(async (_success) => {
+ if (pendingSends.length > 0) {
+ await Promise.all(pendingSends);
+ }
+ });
+ }
+ let lastError = null;
+ window.addEventListener("error", (e$10) => {
+ const text$2 = (e$10.error?.stack || e$10.message || String(e$10)) + " at line " + (e$10.lineno || "?") + ":" + (e$10.colno || "?");
+ lastError = {
+ message: e$10.error?.message || e$10.message || String(e$10),
+ stack: e$10.error?.stack || text$2
+ };
+ });
+ window.addEventListener("unhandledrejection", (e$10) => {
+ const text$2 = "Unhandled promise rejection: " + (e$10.reason?.message || e$10.reason || "Unknown error");
+ lastError = {
+ message: e$10.reason?.message || String(e$10.reason) || "Unhandled promise rejection",
+ stack: e$10.reason?.stack || text$2
+ };
+ });
+ let completionSent = false;
+ window.complete = async (error$2, returnValue) => {
+ if (completionSent) return;
+ completionSent = true;
+ const finalError = error$2 || lastError;
+ if (window.sendRuntimeMessage) {
+ if (finalError) {
+ await window.sendRuntimeMessage({
+ type: "execution-error",
+ error: finalError
+ });
+ } else {
+ await window.sendRuntimeMessage({
+ type: "execution-complete",
+ returnValue
+ });
+ }
+ }
+ };
+ };
+ }
+ async handleMessage(message, respond) {
+ if (message.type === "console") {
+ this.logs.push({
+ type: message.method === "error" ? "error" : message.method === "warn" ? "warn" : message.method === "info" ? "info" : "log",
+ text: message.text,
+ args: message.args
+ });
+ respond({ success: true });
+ }
+ }
+ /**
+ * Get collected console logs
+ */
+ getLogs() {
+ return this.logs;
+ }
+ /**
+ * Get completion status
+ */
+ isCompleted() {
+ return this.completed;
+ }
+ /**
+ * Get completion error if any
+ */
+ getCompletionError() {
+ return this.completionError;
+ }
+ /**
+ * Reset state for reuse
+ */
+ reset() {
+ this.logs = [];
+ this.completionError = null;
+ this.completed = false;
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/RuntimeMessageBridge.js
+var RuntimeMessageBridge;
+var init_RuntimeMessageBridge = __esmMin((() => {
+ RuntimeMessageBridge = class RuntimeMessageBridge {
+ /**
+ * Generate sendRuntimeMessage() function as injectable string.
+ * Returns the function source code to be injected into target context.
+ */
+ static generateBridgeCode(options) {
+ if (options.context === "sandbox-iframe") {
+ return RuntimeMessageBridge.generateSandboxBridge(options.sandboxId);
+ } else {
+ return RuntimeMessageBridge.generateUserScriptBridge(options.sandboxId);
+ }
+ }
+ static generateSandboxBridge(sandboxId) {
+ return `
+window.__completionCallbacks = [];
+window.sendRuntimeMessage = async (message) => {
+ const messageId = 'msg_' + Date.now() + '_' + Math.random().toString(36).substring(2, 9);
+
+ return new Promise((resolve, reject) => {
+ const handler = (e) => {
+ if (e.data.type === 'runtime-response' && e.data.messageId === messageId) {
+ window.removeEventListener('message', handler);
+ if (e.data.success) {
+ resolve(e.data);
+ } else {
+ reject(new Error(e.data.error || 'Operation failed'));
+ }
+ }
+ };
+
+ window.addEventListener('message', handler);
+
+ window.parent.postMessage({
+ ...message,
+ sandboxId: ${JSON.stringify(sandboxId)},
+ messageId: messageId
+ }, '*');
+
+ // Timeout after 30s
+ setTimeout(() => {
+ window.removeEventListener('message', handler);
+ reject(new Error('Runtime message timeout'));
+ }, 30000);
+ });
+};
+window.onCompleted = (callback) => {
+ window.__completionCallbacks.push(callback);
+};
+`.trim();
+ }
+ static generateUserScriptBridge(sandboxId) {
+ return `
+window.__completionCallbacks = [];
+window.sendRuntimeMessage = async (message) => {
+ return await chrome.runtime.sendMessage({
+ ...message,
+ sandboxId: ${JSON.stringify(sandboxId)}
+ });
+};
+window.onCompleted = (callback) => {
+ window.__completionCallbacks.push(callback);
+};
+`.trim();
+ }
+ };
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/sandbox/RuntimeMessageRouter.js
+var RuntimeMessageRouter, RUNTIME_MESSAGE_ROUTER;
+var init_RuntimeMessageRouter = __esmMin((() => {
+ RuntimeMessageRouter = class {
+ constructor() {
+ this.sandboxes = new Map();
+ this.messageListener = null;
+ this.userScriptMessageListener = null;
+ }
+ /**
+ * Register a new sandbox with its runtime providers.
+ * Call this BEFORE creating the iframe (for sandbox contexts) or executing user script.
+ */
+ registerSandbox(sandboxId, providers, consumers) {
+ this.sandboxes.set(sandboxId, {
+ sandboxId,
+ iframe: null,
+ providers,
+ consumers: new Set(consumers)
+ });
+ this.setupListener();
+ }
+ /**
+ * Update the iframe reference for a sandbox.
+ * Call this AFTER creating the iframe.
+ * This is needed so providers can send responses back to the sandbox.
+ */
+ setSandboxIframe(sandboxId, iframe) {
+ const context = this.sandboxes.get(sandboxId);
+ if (context) {
+ context.iframe = iframe;
+ }
+ }
+ /**
+ * Unregister a sandbox and remove all its consumers.
+ * Call this when the sandbox is destroyed.
+ */
+ unregisterSandbox(sandboxId) {
+ this.sandboxes.delete(sandboxId);
+ if (this.sandboxes.size === 0) {
+ if (this.messageListener) {
+ window.removeEventListener("message", this.messageListener);
+ this.messageListener = null;
+ }
+ if (this.userScriptMessageListener && typeof chrome !== "undefined" && chrome.runtime?.onUserScriptMessage) {
+ chrome.runtime.onUserScriptMessage.removeListener(this.userScriptMessageListener);
+ this.userScriptMessageListener = null;
+ }
+ }
+ }
+ /**
+ * Add a message consumer for a sandbox.
+ * Consumers receive broadcast messages (console, execution-complete, etc.)
+ */
+ addConsumer(sandboxId, consumer) {
+ const context = this.sandboxes.get(sandboxId);
+ if (context) {
+ context.consumers.add(consumer);
+ }
+ }
+ /**
+ * Remove a message consumer from a sandbox.
+ */
+ removeConsumer(sandboxId, consumer) {
+ const context = this.sandboxes.get(sandboxId);
+ if (context) {
+ context.consumers.delete(consumer);
+ }
+ }
+ /**
+ * Setup the global message listeners (called automatically)
+ */
+ setupListener() {
+ if (!this.messageListener) {
+ this.messageListener = async (e$10) => {
+ const { sandboxId, messageId } = e$10.data;
+ if (!sandboxId) return;
+ const context = this.sandboxes.get(sandboxId);
+ if (!context) {
+ return;
+ }
+ const respond = (response) => {
+ context.iframe?.contentWindow?.postMessage({
+ type: "runtime-response",
+ messageId,
+ sandboxId,
+ ...response
+ }, "*");
+ };
+ for (const provider of context.providers) {
+ if (provider.handleMessage) {
+ await provider.handleMessage(e$10.data, respond);
+ }
+ }
+ for (const consumer of context.consumers) {
+ await consumer.handleMessage(e$10.data);
+ }
+ };
+ window.addEventListener("message", this.messageListener);
+ }
+ if (!this.userScriptMessageListener) {
+ if (typeof chrome === "undefined" || !chrome.runtime?.onUserScriptMessage) {
+ return;
+ }
+ this.userScriptMessageListener = (message, _sender, sendResponse) => {
+ const { sandboxId } = message;
+ if (!sandboxId) return false;
+ const context = this.sandboxes.get(sandboxId);
+ if (!context) return false;
+ const respond = (response) => {
+ sendResponse({
+ ...response,
+ sandboxId
+ });
+ };
+ (async () => {
+ for (const provider of context.providers) {
+ if (provider.handleMessage) {
+ await provider.handleMessage(message, respond);
+ }
+ }
+ for (const consumer of context.consumers) {
+ await consumer.handleMessage(message);
+ }
+ })();
+ return true;
+ };
+ chrome.runtime.onUserScriptMessage.addListener(this.userScriptMessageListener);
+ }
+ }
+ };
+ RUNTIME_MESSAGE_ROUTER = new RuntimeMessageRouter();
+}));
+
+//#endregion
+//#region apps/macos/Sources/Clawdis/Resources/WebChat/components/SandboxedIframe.js
+/**
+* Escape HTML special sequences in code to prevent premature tag closure
+* @param code Code that will be injected into