ooxml-excel-editor 1.16.1 → 1.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.js CHANGED
@@ -12,9 +12,9 @@ var ln = (v, s, k) => s in v ? _n(v, s, { enumerable: !0, configurable: !0, writ
12
12
  }, re = (v, s) => Vn(v, Jn(s));
13
13
  import { jsx as i, jsxs as m, Fragment as Ie } from "react/jsx-runtime";
14
14
  import { useState as y, useRef as b, useCallback as on, forwardRef as Kn, useMemo as Gn, useEffect as R, useReducer as Xn, useLayoutEffect as an, useImperativeHandle as $n, Fragment as Zn } from "react";
15
- import { p as Cn, R as Yn, l as qn, S as Qn, i as er, r as sn, s as tr, a as le, b as nr, c as rr, d as lr, e as or, T as ar, f as sr, g as cr, h as ir, j as ur, k as dr } from "./chunks/toolbar-builtins-IAxeMFn3.js";
16
- import { r as cn, l as bn, d as vn, f as pn, a as gr, e as mr, b as Xe, V as fr, P as Cr, D as $e, g as un, s as dn, c as gn, h as mn, i as fn, j as Re, k as Ze, m as br, n as vr } from "./chunks/index-CKf3q6pu.js";
17
- import { B as Er, C as Tr, o as Dr, p as Nr, E as Ar, F as Mr, q as Br, G as Or, K as zr, O as Lr, t as Wr, W as Hr, u as _r, v as Vr, w as Jr, x as Ur, y as jr, z as Kr, A as Gr, H as Xr, I as $r, J as Zr, L as Yr, M as qr, N as Qr, Q as el, R as tl, S as nl, T as rl, U as ll, X as ol, Y as al, Z as sl, _ as cl, $ as il, a0 as ul, a1 as dl, a2 as gl, S as ml, a3 as fl, a4 as Cl, a5 as bl, a6 as vl, a7 as pl, a8 as hl, a9 as Sl, aa as xl, ab as Fl, ac as Il, ad as Rl, ae as kl, af as wl, ag as yl, ah as Pl, ai as El, aj as Tl, ak as Dl, al as Nl, am as Al, an as Ml, ao as Bl, ap as Ol, aq as zl, ar as Ll, as as Wl, at as Hl, au as _l, av as Vl, aw as Jl, ax as Ul, ay as jl } from "./chunks/index-CKf3q6pu.js";
15
+ import { p as Cn, R as Yn, l as qn, S as Qn, i as er, r as sn, s as tr, a as le, b as nr, c as rr, d as lr, e as or, T as ar, f as sr, g as cr, h as ir, j as ur, k as dr } from "./chunks/toolbar-builtins-CeOlAWgM.js";
16
+ import { r as cn, l as bn, d as vn, f as pn, a as gr, e as mr, b as Xe, V as fr, P as Cr, D as $e, g as un, s as dn, c as gn, h as mn, i as fn, j as Re, k as Ze, m as br, n as vr } from "./chunks/index-Dg4LsUaW.js";
17
+ import { B as Er, C as Tr, o as Dr, p as Nr, E as Ar, F as Mr, q as Br, G as Or, K as zr, O as Lr, t as Wr, W as Hr, u as _r, v as Vr, w as Jr, x as Ur, y as jr, z as Kr, A as Gr, H as Xr, I as $r, J as Zr, L as Yr, M as qr, N as Qr, Q as el, R as tl, S as nl, T as rl, U as ll, X as ol, Y as al, Z as sl, _ as cl, $ as il, a0 as ul, a1 as dl, a2 as gl, S as ml, a3 as fl, a4 as Cl, a5 as bl, a6 as vl, a7 as pl, a8 as hl, a9 as Sl, aa as xl, ab as Fl, ac as Il, ad as Rl, ae as kl, af as wl, ag as yl, ah as Pl, ai as El, aj as Tl, ak as Dl, al as Nl, am as Al, an as Ml, ao as Bl, ap as Ol, aq as zl, ar as Ll, as as Wl, at as Hl, au as _l, av as Vl, aw as Jl, ax as Ul, ay as jl } from "./chunks/index-Dg4LsUaW.js";
18
18
  const pr = {
19
19
  render: "渲染中",
20
20
  compose: "合成中",
@@ -47,12 +47,12 @@ function Sr() {
47
47
  try {
48
48
  const h = await bn(
49
49
  J,
50
- (Y, G) => M({ stage: "read", ratio: G ? Y / G : void 0 })
50
+ (G, X) => M({ stage: "read", ratio: X ? G / X : void 0 })
51
51
  ), N = vn(h);
52
52
  if (N === "xls") throw new Error("这是旧版 .xls(BIFF) 或加密文件,本预览器只支持 .xlsx/.xlsm。");
53
53
  if (N === "not-zip") throw new Error("文件不是有效的 .xlsx(非 ZIP 包)。");
54
54
  if (N === "empty") throw new Error("文件为空。");
55
- let x = await Cn(h, (Y) => M(Y));
55
+ let x = await Cn(h, (G) => M(G));
56
56
  j && (x = (K = j(x)) != null ? K : x), pn(x), L(h.slice(0)), B.current = x, d(x);
57
57
  } catch (h) {
58
58
  const N = h == null ? void 0 : h.message;
@@ -60,31 +60,31 @@ function Sr() {
60
60
  } finally {
61
61
  s(!1), M(null);
62
62
  }
63
- }, []), Z = on((J, j) => {
63
+ }, []), Y = on((J, j) => {
64
64
  var h;
65
65
  B.current && cn(B.current), L(null), P(null), M(null);
66
66
  const K = j && (h = j(J)) != null ? h : J;
67
67
  B.current = K, d(K);
68
68
  }, []);
69
- return { loading: v, error: k, workbook: z, progress: V, load: fe, loadModel: Z, sourceBuffer: oe };
69
+ return { loading: v, error: k, workbook: z, progress: V, load: fe, loadModel: Y, sourceBuffer: oe };
70
70
  }
71
71
  function ke(v) {
72
72
  return isFinite(v) ? v.toLocaleString("en-US", { maximumFractionDigits: 2 }) : "—";
73
73
  }
74
74
  const wr = Kn(function(s, k) {
75
75
  var Tt, Dt, Nt, At, Mt, Bt, Ot, zt, Lt, Wt, Ht, _t, Vt, Jt, Ut, jt;
76
- const { loading: P, error: z, workbook: d, progress: V, load: M, loadModel: oe, sourceBuffer: L } = Sr(), B = (Tt = L == null ? void 0 : L.byteLength) != null ? Tt : null, fe = Gn(() => d ? mr(d) : null, [d]), Z = b(Xe());
76
+ const { loading: P, error: z, workbook: d, progress: V, load: M, loadModel: oe, sourceBuffer: L } = Sr(), B = (Tt = L == null ? void 0 : L.byteLength) != null ? Tt : null, fe = Gn(() => d ? mr(d) : null, [d]), Y = b(Xe());
77
77
  R(() => {
78
78
  var e;
79
- P && (Z.current = (e = Xe()) != null ? e : Z.current);
79
+ P && (Y.current = (e = Xe()) != null ? e : Y.current);
80
80
  }, [P]);
81
81
  const [J, j] = y(null);
82
82
  R(() => {
83
83
  if (!d) return;
84
84
  const e = Xe();
85
- j(e != null && Z.current != null ? Math.max(0, e - Z.current) : null);
85
+ j(e != null && Y.current != null ? Math.max(0, e - Y.current) : null);
86
86
  }, [d]);
87
- const K = (e) => e ? br(e) ? e : vr(e, s.jsonOptions) : null, [h, N] = y(0), [x, Y] = y(1), [G, Ye] = y(null), [we, qe] = y(null), Qe = (Dt = G != null ? G : s.templateFile) != null ? Dt : null, ae = (Nt = we != null ? we : s.templateName) != null ? Nt : "", et = () => {
87
+ const K = (e) => e ? br(e) ? e : vr(e, s.jsonOptions) : null, [h, N] = y(0), [x, G] = y(1), [X, Ye] = y(null), [we, qe] = y(null), Qe = (Dt = X != null ? X : s.templateFile) != null ? Dt : null, ae = (Nt = we != null ? we : s.templateName) != null ? Nt : "", et = () => {
88
88
  Ye(null), qe(null);
89
89
  }, tt = b(null), hn = () => {
90
90
  var e;
@@ -93,7 +93,7 @@ const wr = Kn(function(s, k) {
93
93
  var n;
94
94
  const t = (n = e.target.files) == null ? void 0 : n[0];
95
95
  t && (Ye(t), qe(t.name), e.target.value = "");
96
- }, nt = s.fileName || (s.workbook ? "JSON 数据" : ((At = d == null ? void 0 : d.sheets[0]) == null ? void 0 : At.name) || ""), [q, Ce] = y(""), X = s.ribbonPersistKey === null ? null : s.ribbonPersistKey || Yn, [xn, rt] = y(() => X ? qn(X) : null), be = b(null);
96
+ }, nt = s.fileName || (s.workbook ? "JSON 数据" : ((At = d == null ? void 0 : d.sheets[0]) == null ? void 0 : At.name) || ""), [q, Ce] = y(""), $ = s.ribbonPersistKey === null ? null : s.ribbonPersistKey || Yn, [xn, rt] = y(() => $ ? qn($) : null), be = b(null);
97
97
  be.current || (be.current = new Qn()), R(() => () => {
98
98
  var e;
99
99
  return (e = be.current) == null ? void 0 : e.dispose();
@@ -174,7 +174,7 @@ const wr = Kn(function(s, k) {
174
174
  const ne = (e, t) => {
175
175
  var n;
176
176
  return (n = Me.current.get(e)) == null ? void 0 : n.forEach((l) => l(t));
177
- }, $ = (e) => {
177
+ }, Z = (e) => {
178
178
  var n, l, o;
179
179
  const t = String((n = e == null ? void 0 : e.message) != null ? n : e);
180
180
  console.error("[ooxml-excel-editor] 导出失败:", e), (o = (l = f.current).onError) == null || o.call(l, t), typeof window != "undefined" && window.alert && window.alert(t);
@@ -242,6 +242,8 @@ const wr = Kn(function(s, k) {
242
242
  onFindChange: () => H(),
243
243
  onFilterChange: () => H(),
244
244
  onActiveSheetChange: (a) => N(a),
245
+ onZoomChange: (a) => G(a),
246
+ // 触屏 pinch/双击 → 同步工具栏 %(effect 去重不再回 setZoom)
245
247
  onEditEvent: (a, c) => {
246
248
  var C, S, T, D, me, Kt, Gt, Xt, $t, Zt, Yt, qt, Qt, en, tn, nn;
247
249
  a === "cell-change" ? (H(), (S = (C = f.current).onCellChange) == null || S.call(C, c)) : a === "edit-start" ? (D = (T = f.current).onEditStart) == null || D.call(T, c) : a === "edit-commit" ? (Kt = (me = f.current).onEditCommit) == null || Kt.call(me, c) : a === "dim-change" ? (Xt = (Gt = f.current).onDimChange) == null || Xt.call(Gt, c) : a === "dirty-change" ? (H(), (Zt = ($t = f.current).onDirtyChange) == null || Zt.call($t, c)) : a === "image-change" ? (qt = (Yt = f.current).onImageChange) == null || qt.call(Yt, c) : a === "struct-change" ? (en = (Qt = f.current).onStructChange) == null || en.call(Qt, c) : a === "permission-denied" && ((nn = (tn = f.current).onPermissionDenied) == null || nn.call(tn, c)), ne(a, c);
@@ -300,7 +302,7 @@ const wr = Kn(function(s, k) {
300
302
  e && await M(e, te);
301
303
  }
302
304
  l();
303
- }, [s.src, s.workbook, s.templateFile, G]), R(() => {
305
+ }, [s.src, s.workbook, s.templateFile, X]), R(() => {
304
306
  r.current && (r.current.fileName = s.fileName);
305
307
  }, [s.fileName]), R(() => {
306
308
  var e;
@@ -335,8 +337,8 @@ const wr = Kn(function(s, k) {
335
337
  const n = { index: h, name: t.name };
336
338
  (a = (u = f.current).onSheetChange) == null || a.call(u, n), ne("sheet-change", n);
337
339
  }, [d, h, s.theme, s.cellStyle, s.plugins, L]), R(() => {
338
- var e;
339
- (e = r.current) == null || e.setZoom(x);
340
+ const e = r.current;
341
+ e && Math.abs(e.getZoom() - x) < 1e-6 || e == null || e.setZoom(x);
340
342
  }, [x]);
341
343
  const Ct = b("");
342
344
  R(() => {
@@ -1681,13 +1683,13 @@ const wr = Kn(function(s, k) {
1681
1683
  e.stopPropagation(), e.key === "Enter" ? (e.preventDefault(), ht("down")) : e.key === "Escape" && (e.preventDefault(), Tn());
1682
1684
  }, An = w && !(w.top === w.bottom && w.left === w.right) ? `${Re(w.left)}${w.top + 1}:${Re(w.right)}${w.bottom + 1}` : "", O = (_t = p == null ? void 0 : p.getSelectionStats()) != null ? _t : null, I = (e) => ur[e], g = (e) => _({ kind: "builtin" }, e), A = d == null ? void 0 : d.sheets[h], St = () => {
1683
1685
  var e;
1684
- return void ((e = r.current) == null ? void 0 : e.downloadPdf().catch($));
1686
+ return void ((e = r.current) == null ? void 0 : e.downloadPdf().catch(Z));
1685
1687
  }, xt = () => {
1686
1688
  var e;
1687
- return void ((e = r.current) == null ? void 0 : e.downloadPdf({ vector: !0 }).catch($));
1689
+ return void ((e = r.current) == null ? void 0 : e.downloadPdf({ vector: !0 }).catch(Z));
1688
1690
  }, Ft = () => {
1689
1691
  var e;
1690
- return void ((e = r.current) == null ? void 0 : e.print().catch($));
1692
+ return void ((e = r.current) == null ? void 0 : e.print().catch(Z));
1691
1693
  }, Mn = () => {
1692
1694
  var l;
1693
1695
  const e = A, t = r.current;
@@ -1789,11 +1791,11 @@ const wr = Kn(function(s, k) {
1789
1791
  label: "导出",
1790
1792
  title: "导出 / 打印",
1791
1793
  items: [
1792
- g({ id: "export-xlsx", label: "导出为 Excel (.xlsx)", onClick: () => void (t == null ? void 0 : t.downloadXlsx().catch($)) }),
1794
+ g({ id: "export-xlsx", label: "导出为 Excel (.xlsx)", onClick: () => void (t == null ? void 0 : t.downloadXlsx().catch(Z)) }),
1793
1795
  g({ id: "export-csv", label: "导出为 CSV (.csv)", onClick: () => t == null ? void 0 : t.downloadCsv() }),
1794
1796
  g({ id: "export-json", label: "导出为 JSON (.json)", onClick: () => t == null ? void 0 : t.downloadJson() }),
1795
1797
  g({ id: "export-sep", type: "separator" }),
1796
- g({ id: "export-png", label: "导出为图片 (PNG)", onClick: () => void (t == null ? void 0 : t.downloadImage().catch($)) }),
1798
+ g({ id: "export-png", label: "导出为图片 (PNG)", onClick: () => void (t == null ? void 0 : t.downloadImage().catch(Z)) }),
1797
1799
  g({ id: "export-pdf", label: "导出为 PDF (位图)", onClick: St }),
1798
1800
  g({ id: "export-pdf-vector", label: "导出为 PDF (矢量·文字可选)", onClick: xt }),
1799
1801
  g({ id: "export-print", label: "打印…", onClick: Ft })
@@ -1805,7 +1807,7 @@ const wr = Kn(function(s, k) {
1805
1807
  iconSvg: I("zoom"),
1806
1808
  label: Math.round(x * 100) + "%",
1807
1809
  title: "缩放",
1808
- items: [50, 75, 100, 125, 150, 200].map((a) => g({ id: "zoom-" + a, label: a + "%", active: Math.round(x * 100) === a, onClick: () => Y(a / 100) }))
1810
+ items: [50, 75, 100, 125, 150, 200].map((a) => g({ id: "zoom-" + a, label: a + "%", active: Math.round(x * 100) === a, onClick: () => G(a / 100) }))
1809
1811
  });
1810
1812
  }
1811
1813
  return null;
@@ -1830,7 +1832,7 @@ const wr = Kn(function(s, k) {
1830
1832
  c && (c.size = (u = (o = c.size) != null ? o : (l = ar[a]) == null ? void 0 : l.size) != null ? u : "small", n.push(c));
1831
1833
  }
1832
1834
  return n;
1833
- }, It = er(s.ribbon, s.toolbar), E = sn({ ribbon: s.ribbon, toolbar: s.toolbar, userState: It && X ? xn : null });
1835
+ }, It = er(s.ribbon, s.toolbar), E = sn({ ribbon: s.ribbon, toolbar: s.toolbar, userState: It && $ ? xn : null });
1834
1836
  R(() => {
1835
1837
  E.sections && (E.sections.some((e) => e.id === q) || Ce(E.activeSectionId));
1836
1838
  }, [E.sections, E.activeSectionId, q]);
@@ -1840,7 +1842,7 @@ const wr = Kn(function(s, k) {
1840
1842
  const e = tr(Rt).map((l) => ({ id: l.id, name: l.name, items: On(l.tools, E.customItems) })), t = [];
1841
1843
  for (const l of pe) for (const o of (n = l.toolbar) != null ? n : []) t.push(Ue(o, "plugin"));
1842
1844
  return t.length && (e.length ? e[e.length - 1].items.push(...t) : e.push({ id: "plugins", name: "", items: t })), e;
1843
- })(), wt = kt.flatMap((e) => e.items), zn = wt, je = !!E.sections && wt.length > 0, Ke = !E.singleSection && !!E.sections, Ln = It, Wn = d ? d.sheets.filter((e) => e.state === "visible").length : 0, yt = [0.5, 0.75, 1, 1.25, 1.5, 2], Fe = (e) => Y(Math.min(3, Math.max(0.3, e))), Hn = () => {
1845
+ })(), wt = kt.flatMap((e) => e.items), zn = wt, je = !!E.sections && wt.length > 0, Ke = !E.singleSection && !!E.sections, Ln = It, Wn = d ? d.sheets.filter((e) => e.state === "visible").length : 0, yt = [0.5, 0.75, 1, 1.25, 1.5, 2], Fe = (e) => G(Math.min(3, Math.max(0.3, e))), Hn = () => {
1844
1846
  var e, t, n, l, o, u, a;
1845
1847
  (a = be.current) == null || a.show({
1846
1848
  sections: (e = E.sections) != null ? e : [],
@@ -1852,14 +1854,14 @@ const wr = Kn(function(s, k) {
1852
1854
  pasteBehavior: (u = (o = r.current) == null ? void 0 : o.getPasteBehavior()) != null ? u : $e,
1853
1855
  onRibbonChange: (c, C) => {
1854
1856
  const S = { v: 1, sections: c, activeSectionId: C };
1855
- rt(S), X && ir(X, S), Ce(C);
1857
+ rt(S), $ && ir($, S), Ce(C);
1856
1858
  },
1857
1859
  onRuntimeChange: (c) => {
1858
1860
  var C, S, T, D, me;
1859
1861
  c.zoom != null && Fe(c.zoom), c.editable != null && (he.current = c.editable, (C = r.current) == null || C.setEditConfig(ze()), (S = s.onEditableChange) == null || S.call(s, c.editable)), c.cellImageFit != null && (Oe.current = c.cellImageFit, (T = r.current) == null || T.setCellImageFit(c.cellImageFit), (D = s.onCellImageFitChange) == null || D.call(s, c.cellImageFit)), c.pasteBehavior != null && ((me = r.current) == null || me.setPasteBehavior(c.pasteBehavior));
1860
1862
  },
1861
1863
  onReset: () => {
1862
- X && cr(X), rt(null), Ce(sn({ ribbon: s.ribbon, toolbar: s.toolbar, userState: null }).activeSectionId);
1864
+ $ && cr($), rt(null), Ce(sn({ ribbon: s.ribbon, toolbar: s.toolbar, userState: null }).activeSectionId);
1863
1865
  }
1864
1866
  });
1865
1867
  }, Ge = ({ items: e, onPick: t, className: n = "rxl-tb-menu" }) => /* @__PURE__ */ i("div", { className: n, "data-tb-menu": "true", children: e.map((l) => l.type === "separator" ? /* @__PURE__ */ i("div", { className: "sep" }, l.id) : l.input ? /* @__PURE__ */ i(
@@ -1984,7 +1986,7 @@ const wr = Kn(function(s, k) {
1984
1986
  items: [
1985
1987
  g({ id: "h-xlsx", label: "导出为 Excel (.xlsx)", onClick: () => {
1986
1988
  var e;
1987
- return void ((e = r.current) == null ? void 0 : e.downloadXlsx().catch($));
1989
+ return void ((e = r.current) == null ? void 0 : e.downloadXlsx().catch(Z));
1988
1990
  } }),
1989
1991
  g({ id: "h-csv", label: "导出为 CSV (.csv)", onClick: () => {
1990
1992
  var e;
@@ -1997,7 +1999,7 @@ const wr = Kn(function(s, k) {
1997
1999
  g({ id: "h-sep1", type: "separator" }),
1998
2000
  g({ id: "h-png", label: "导出为图片 (PNG)", onClick: () => {
1999
2001
  var e;
2000
- return void ((e = r.current) == null ? void 0 : e.downloadImage().catch($));
2002
+ return void ((e = r.current) == null ? void 0 : e.downloadImage().catch(Z));
2001
2003
  } }),
2002
2004
  g({ id: "h-pdf", label: "导出为 PDF (位图)", onClick: St }),
2003
2005
  g({ id: "h-pdf-vec", label: "导出为 PDF (矢量·文字可选)", onClick: xt }),
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .rxl{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.rxl-toolbar{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.rxl-toolbar .file{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rxl-toolbar .file .modified{color:#e8453c;font-weight:700;margin-right:2px}.rxl-toolbar .tpl{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px}.rxl-toolbar .meta{color:#888}.rxl-toolbar .meta .rough{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.rxl-toolbar .spacer{flex:1}.rxl-export-wrap{position:relative}.rxl-export-btn{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.rxl-export-btn:hover{background:#f0f2f4}.rxl-export-btn .caret{font-size:10px;color:#888}.rxl-tb-menu{position:absolute;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.rxl-tb-menu.header-menu{right:0;top:28px}.rxl-tb-menu .mi{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.rxl-tb-menu .mi:hover:not(:disabled){background:#f0f4ff}.rxl-tb-menu .mi:disabled{color:#bbb;cursor:default}.rxl-tb-menu .mi.active{color:#1a73e8}.rxl-tb-menu .mi .ic{display:inline-flex;width:16px}.rxl-tb-menu .mi .ic-e{width:16px;text-align:center}.rxl-tb-menu .mi .sw{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.rxl-tb-menu .sep{height:1px;background:#eef0f2;margin:4px 2px}.rxl-tb-menu .mi-input{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.rxl-tb-menu .mi-input:focus{border-color:#217346}.rxl-zoom{display:flex;align-items:center;gap:4px}.rxl-zoom button{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.rxl-zoom button:hover{background:#f0f2f4}.rxl-zoom select{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.rxl-ribbon-tabs{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e2e4e7;flex:0 0 auto}.rxl-ribbon-tab{display:inline-flex;align-items:center;padding:0 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.rxl-ribbon-tab:hover{color:#217346}.rxl-ribbon-tab.active{color:#217346;border-bottom-color:#217346;font-weight:600}.rxl-rb-panel{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible;flex:0 0 auto}.rxl-rb-sep{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.rxl-rb-group{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.rxl-rb-body{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.rxl-rb-gname{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.rxl-rb-smalls{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.rxl-rb-row{display:flex;align-items:center;gap:2px}.rxl-rb-btn{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.rxl-rb-btn:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.rxl-rb-btn:disabled{color:#c0c3c7;cursor:default}.rxl-rb-btn.active{background:#e2efe6;color:#217346;border-color:#bcd9c6}.rxl-rb-btn.open{background:#e9ece9}.rxl-rb-large{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.rxl-rb-ic-lg{display:inline-flex}.rxl-rb-ic-lg svg{width:22px;height:22px}.rxl-rb-lb{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.rxl-rb-caret-inline{font-size:9px;opacity:.6}.rxl-rb-small{height:26px;padding:0 5px;gap:3px}.rxl-rb-ic-sm{display:inline-flex}.rxl-rb-ic-sm svg{width:16px;height:16px}.rxl-rb-lb-sm{font-size:12px}.rxl-rb-small.combo{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.rxl-rb-caret{display:inline-flex;opacity:.55;margin-left:-1px}.rxl-rb-caret svg{width:11px;height:11px}.rxl-rb-vsep{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.rxl-ribbon-gear{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.rxl-ribbon-gear:hover{color:#217346;border-color:#217346;background:#f2faf5}.rxl-ribbon-gear .ic{display:inline-flex}.rxl-ribbon-gear .lbl{line-height:1}.rxl-action-toolbar{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.rxl-at-dd{position:relative;display:inline-flex}.rxl-at-tool{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.rxl-at-tool:hover:not(:disabled){background:#f0f2f4}.rxl-at-tool:disabled{color:#bbb;cursor:default}.rxl-at-tool.active{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.rxl-at-tool.open{background:#eef0f2}.rxl-at-ic{display:inline-flex}.rxl-at-ic-e{font-size:13px;line-height:1}.rxl-at-caret{display:inline-flex;opacity:.6;margin-left:-2px}.rxl-at-caret svg{width:12px;height:12px}.rxl-at-divider{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.rxl-at-dd .rxl-tb-menu{top:30px;left:0}.rxl-formula-bar{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.rxl-formula-bar .addr{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.rxl-formula-bar .fx{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.rxl-formula-bar .content{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.rxl-formula-bar textarea.content{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;background:transparent;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;line-height:1.4}.rxl-formula-bar .content-input:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.rxl-render-area{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.rxl-canvas{position:absolute;inset:0;z-index:1}.rxl-ov{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.rxl-scroller{position:absolute;inset:0;z-index:3;overflow:auto;cursor:cell;outline:none}.rxl-spacer{pointer-events:none}.rxl-ov-slot{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.rxl-ov-slot>div>*{pointer-events:auto}.rxl-editor-slot{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.rxl-editor-slot>*{pointer-events:auto}.rxl-tooltip{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.rxl-tooltip.comment{background:#fdfcdc;color:#333;border:1px solid #d9d27e;max-width:300px}.ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}.ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}.ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.rxl-status-bar{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.rxl-status-bar .grow{flex:1}.rxl-tabs{display:flex;align-items:center;gap:2px;height:30px;flex:0 0 auto;padding:0 8px;border-top:1px solid #e2e4e7;background:#f3f4f6;overflow-x:auto}.rxl-tabs button{height:24px;padding:0 12px;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;background:transparent;font-size:13px;cursor:pointer;white-space:nowrap}.rxl-tabs button.active{background:#fff;border-color:#d6d8da;font-weight:600}.rxl-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.rxl-state.error{color:#c0392b}.rxl-export-progress{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.rxl-export-progress .card{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.rxl-export-progress .title{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.rxl-export-progress .bar{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.rxl-export-progress .bar .fill{height:100%;background:#21a366;transition:width .12s linear}.rxl-export-progress .bar.indeterminate:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:rxl-export-ind 1.2s infinite}@keyframes rxl-export-ind{0%{transform:translate(-100%)}to{transform:translate(100%)}}.rxl-export-progress .row{display:flex;align-items:center;justify-content:space-between}.rxl-export-progress .pct{color:#6b7280;font-size:12px}.rxl-export-progress .cancel{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.rxl-export-progress .cancel:hover{background:#f5f6f7}.toolbar[data-v-55f10e63]{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.file .modified[data-v-55f10e63]{color:#e8453c;font-weight:700;margin-right:2px}.file[data-v-55f10e63]{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file .tpl[data-v-55f10e63]{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px;white-space:nowrap}.meta[data-v-55f10e63]{color:#888}.meta .rough[data-v-55f10e63]{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.spacer[data-v-55f10e63]{flex:1}.export-wrap[data-v-55f10e63]{position:relative}.export-btn[data-v-55f10e63]{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.export-btn[data-v-55f10e63]:hover{background:#f0f2f4}.export-btn .caret[data-v-55f10e63]{font-size:10px;color:#888}.menu[data-v-55f10e63]{position:absolute;right:0;top:28px;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.menu button[data-v-55f10e63]{text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.menu button[data-v-55f10e63]:hover{background:#f0f4ff}.menu .sep[data-v-55f10e63]{height:1px;background:#eef0f2;margin:4px 2px}.zoom[data-v-55f10e63]{display:flex;align-items:center;gap:4px}.zoom button[data-v-55f10e63]{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.zoom button[data-v-55f10e63]:hover{background:#f0f2f4}.zoom select[data-v-55f10e63]{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.sheet-tabs[data-v-431b6f9c]{display:flex;align-items:stretch;height:30px;background:#f3f4f6;border-top:1px solid #d8dadd;overflow-x:auto;flex:0 0 auto}.tab[data-v-431b6f9c]{border:none;background:transparent;border-right:1px solid #e0e2e5;padding:0 16px;font-size:12.5px;color:#555;cursor:pointer;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.tab[data-v-431b6f9c]:hover{background:#e9ebee}.tab.active[data-v-431b6f9c]{background:#fff;color:#166534;font-weight:600;box-shadow:inset 0 2px #21a366}.dlg-mask[data-v-544df24f]{position:absolute;inset:0;z-index:30;background:#00000052;display:flex;align-items:center;justify-content:center}.dlg[data-v-544df24f]{width:420px;max-width:92%;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;font-size:13px;color:#333;overflow:hidden}.dlg-head[data-v-544df24f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid #eef0f2}.dlg-head .x[data-v-544df24f]{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:#999}.dlg-head .x[data-v-544df24f]:hover{color:#444}.dlg-body[data-v-544df24f]{padding:8px 16px 4px}.field[data-v-544df24f]{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid #f4f5f6}.field[data-v-544df24f]:last-child{border-bottom:none}.lbl[data-v-544df24f]{width:72px;flex:0 0 auto;color:#666;padding-top:3px}.opts[data-v-544df24f]{display:flex;flex-direction:column;gap:6px}.opts.inline[data-v-544df24f]{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.opts label[data-v-544df24f]{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.opts label.disabled[data-v-544df24f]{color:#bbb;cursor:not-allowed}.hint[data-v-544df24f]{color:#99a;font-size:12px}select[data-v-544df24f]{height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;padding:0 6px}.dlg-foot[data-v-544df24f]{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #eef0f2;background:#fafbfc}.dlg-foot .grow[data-v-544df24f]{flex:1}.dlg-foot button[data-v-544df24f]{height:30px;padding:0 14px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;color:#333}.dlg-foot button[data-v-544df24f]:hover{background:#f0f2f4}.dlg-foot button.ghost[data-v-544df24f]{border-color:transparent;color:#888}.dlg-foot button.primary[data-v-544df24f]{background:#21a366;border-color:#21a366;color:#fff}.dlg-foot button.primary[data-v-544df24f]:hover{background:#1c8f59}.tb-menu[data-v-35d480c3]{position:absolute;top:30px;left:0;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.mi[data-v-35d480c3]{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.mi[data-v-35d480c3]:hover:not(:disabled){background:#f0f4ff}.mi[data-v-35d480c3]:disabled{color:#bbb;cursor:default}.mi.active[data-v-35d480c3]{color:#1a73e8}.mi .ic[data-v-35d480c3]{display:inline-flex;width:16px}.mi .ic-e[data-v-35d480c3]{width:16px;text-align:center}.mi .sw[data-v-35d480c3]{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.sep[data-v-35d480c3]{height:1px;background:#eef0f2;margin:4px 2px}.mi-input[data-v-35d480c3]{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.mi-input[data-v-35d480c3]:focus{border-color:#217346}.action-toolbar[data-v-d4df1c57]{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.measure[data-v-d4df1c57]{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;height:0;overflow:hidden;display:flex;gap:4px}.dd[data-v-d4df1c57]{position:relative;display:inline-flex}.tool[data-v-d4df1c57]{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.tool[data-v-d4df1c57]:hover:not(:disabled){background:#f0f2f4}.tool[data-v-d4df1c57]:disabled{color:#bbb;cursor:default}.tool.active[data-v-d4df1c57]{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.tool.open[data-v-d4df1c57]{background:#eef0f2}.tool .ic[data-v-d4df1c57]{display:inline-flex}.tool .ic-e[data-v-d4df1c57]{font-size:13px;line-height:1}.tool .caret[data-v-d4df1c57]{display:inline-flex;opacity:.6;margin-left:-2px}.tool .caret[data-v-d4df1c57] svg{width:12px;height:12px}.divider[data-v-d4df1c57]{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.ribbon[data-v-669e85fe]{display:flex;flex-direction:column;flex:0 0 auto;background:#fff}.ribbon-tabs[data-v-669e85fe]{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e7e9ec}.ribbon-tab[data-v-669e85fe]{display:inline-flex;align-items:center;padding:0 16px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.ribbon-tab[data-v-669e85fe]:hover{color:#217346}.ribbon-tab.active[data-v-669e85fe]{color:#217346;border-bottom-color:#217346;font-weight:600}.ribbon-tabs-spacer[data-v-669e85fe]{flex:1 1 auto}.ribbon-gear[data-v-669e85fe]{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.ribbon-gear[data-v-669e85fe]:hover{color:#217346;border-color:#217346;background:#f2faf5}.ribbon-gear .ic[data-v-669e85fe]{display:inline-flex}.ribbon-gear .lbl[data-v-669e85fe]{line-height:1}.ribbon-panel[data-v-669e85fe]{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.rb-sep[data-v-669e85fe]{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.rb-group[data-v-669e85fe]{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.rb-group-body[data-v-669e85fe]{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.rb-group-name[data-v-669e85fe]{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.rb-dd[data-v-669e85fe]{position:relative;display:inline-flex}.rb-btn[data-v-669e85fe]{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.rb-btn[data-v-669e85fe]:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.rb-btn[data-v-669e85fe]:disabled{color:#c0c3c7;cursor:default}.rb-btn.active[data-v-669e85fe]{background:#e2efe6;color:#217346;border-color:#bcd9c6}.rb-btn.open[data-v-669e85fe]{background:#e9ece9}.rb-large[data-v-669e85fe]{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.rb-large .ic-lg[data-v-669e85fe]{display:inline-flex}.rb-large .ic-lg[data-v-669e85fe] svg{width:22px;height:22px}.rb-large .lb[data-v-669e85fe]{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.rb-large .caret-inline[data-v-669e85fe]{font-size:9px;opacity:.6}.rb-smalls[data-v-669e85fe]{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.rb-row[data-v-669e85fe]{display:flex;align-items:center;gap:2px}.rb-small[data-v-669e85fe]{height:26px;padding:0 5px;gap:3px}.rb-small .ic-sm[data-v-669e85fe]{display:inline-flex}.rb-small .ic-sm[data-v-669e85fe] svg{width:16px;height:16px}.rb-small .lb-sm[data-v-669e85fe]{font-size:12px}.rb-small.combo[data-v-669e85fe]{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.rb-small .caret[data-v-669e85fe]{display:inline-flex;opacity:.55;margin-left:-1px}.rb-small .caret[data-v-669e85fe] svg{width:11px;height:11px}.rb-vsep[data-v-669e85fe]{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.export-progress-overlay[data-v-629027ad]{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.card[data-v-629027ad]{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.title[data-v-629027ad]{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.bar[data-v-629027ad]{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.bar .fill[data-v-629027ad]{height:100%;background:#21a366;transition:width .12s linear}.bar.indeterminate[data-v-629027ad]:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:ind-629027ad 1.2s infinite}@keyframes ind-629027ad{0%{transform:translate(-100%)}to{transform:translate(100%)}}.row[data-v-629027ad]{display:flex;align-items:center;justify-content:space-between}.pct[data-v-629027ad]{color:#6b7280;font-size:12px}.cancel[data-v-629027ad]{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.cancel[data-v-629027ad]:hover{background:#f5f6f7}.excel-viewer[data-v-d5f5d23e]{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.render-area[data-v-d5f5d23e]{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.grid-canvas[data-v-d5f5d23e]{position:absolute;inset:0;z-index:1}.ov[data-v-d5f5d23e]{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.ov-slot[data-v-d5f5d23e]{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.ov-slot[data-v-d5f5d23e] *{pointer-events:auto}.editor-slot[data-v-d5f5d23e]{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.editor-slot[data-v-d5f5d23e] *{pointer-events:auto}.scroller[data-v-d5f5d23e]{position:absolute;inset:0;z-index:3;overflow:auto;cursor:cell;outline:none}.spacer[data-v-d5f5d23e]{pointer-events:none}.formula-bar[data-v-d5f5d23e]{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.formula-bar .addr[data-v-d5f5d23e]{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.formula-bar .fx[data-v-d5f5d23e]{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.formula-bar .content[data-v-d5f5d23e]{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.formula-bar textarea.content[data-v-d5f5d23e]{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;align-items:stretch;line-height:1.4}.formula-bar .content-input[data-v-d5f5d23e]{border:none;outline:none;height:100%;background:transparent;font-size:13px}.formula-bar .content-input[data-v-d5f5d23e]:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.status-bar[data-v-d5f5d23e]{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.status-bar .grow[data-v-d5f5d23e]{flex:1}.status-bar .sel[data-v-d5f5d23e]{color:#888}.cell-tooltip[data-v-d5f5d23e]{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.cell-tooltip.comment[data-v-d5f5d23e]{background:#fdfcdc;color:#333;border:1px solid #d9d27e;box-shadow:0 2px 10px #0000002e;max-width:300px}[data-v-d5f5d23e] .ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}[data-v-d5f5d23e] .ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}[data-v-d5f5d23e] .ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-v-d5f5d23e] .ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.state[data-v-d5f5d23e]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.state.error[data-v-d5f5d23e]{color:#c0392b}.state.hint[data-v-d5f5d23e]{color:#aaa}.loader[data-v-d5f5d23e]{width:260px;max-width:60%}.loader-label[data-v-d5f5d23e]{font-size:13px;color:#555;margin-bottom:8px;text-align:center}.loader-track[data-v-d5f5d23e]{height:6px;border-radius:3px;background:#eceef0;overflow:hidden}.loader-fill[data-v-d5f5d23e]{height:100%;background:#21a366;border-radius:3px;transition:width .15s ease}.loader-fill.indeterminate[data-v-d5f5d23e]{width:40%;transition:none;animation:loader-pulse-d5f5d23e 1.1s ease-in-out infinite}@keyframes loader-pulse-d5f5d23e{0%{margin-left:-40%}to{margin-left:100%}}
1
+ .rxl{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.rxl-toolbar{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.rxl-toolbar .file{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rxl-toolbar .file .modified{color:#e8453c;font-weight:700;margin-right:2px}.rxl-toolbar .tpl{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px}.rxl-toolbar .meta{color:#888}.rxl-toolbar .meta .rough{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.rxl-toolbar .spacer{flex:1}.rxl-export-wrap{position:relative}.rxl-export-btn{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.rxl-export-btn:hover{background:#f0f2f4}.rxl-export-btn .caret{font-size:10px;color:#888}.rxl-tb-menu{position:absolute;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.rxl-tb-menu.header-menu{right:0;top:28px}.rxl-tb-menu .mi{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.rxl-tb-menu .mi:hover:not(:disabled){background:#f0f4ff}.rxl-tb-menu .mi:disabled{color:#bbb;cursor:default}.rxl-tb-menu .mi.active{color:#1a73e8}.rxl-tb-menu .mi .ic{display:inline-flex;width:16px}.rxl-tb-menu .mi .ic-e{width:16px;text-align:center}.rxl-tb-menu .mi .sw{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.rxl-tb-menu .sep{height:1px;background:#eef0f2;margin:4px 2px}.rxl-tb-menu .mi-input{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.rxl-tb-menu .mi-input:focus{border-color:#217346}.rxl-zoom{display:flex;align-items:center;gap:4px}.rxl-zoom button{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.rxl-zoom button:hover{background:#f0f2f4}.rxl-zoom select{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.rxl-ribbon-tabs{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e2e4e7;flex:0 0 auto}.rxl-ribbon-tab{display:inline-flex;align-items:center;padding:0 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.rxl-ribbon-tab:hover{color:#217346}.rxl-ribbon-tab.active{color:#217346;border-bottom-color:#217346;font-weight:600}.rxl-rb-panel{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible;flex:0 0 auto}.rxl-rb-sep{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.rxl-rb-group{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.rxl-rb-body{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.rxl-rb-gname{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.rxl-rb-smalls{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.rxl-rb-row{display:flex;align-items:center;gap:2px}.rxl-rb-btn{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.rxl-rb-btn:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.rxl-rb-btn:disabled{color:#c0c3c7;cursor:default}.rxl-rb-btn.active{background:#e2efe6;color:#217346;border-color:#bcd9c6}.rxl-rb-btn.open{background:#e9ece9}.rxl-rb-large{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.rxl-rb-ic-lg{display:inline-flex}.rxl-rb-ic-lg svg{width:22px;height:22px}.rxl-rb-lb{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.rxl-rb-caret-inline{font-size:9px;opacity:.6}.rxl-rb-small{height:26px;padding:0 5px;gap:3px}.rxl-rb-ic-sm{display:inline-flex}.rxl-rb-ic-sm svg{width:16px;height:16px}.rxl-rb-lb-sm{font-size:12px}.rxl-rb-small.combo{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.rxl-rb-caret{display:inline-flex;opacity:.55;margin-left:-1px}.rxl-rb-caret svg{width:11px;height:11px}.rxl-rb-vsep{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.rxl-ribbon-gear{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.rxl-ribbon-gear:hover{color:#217346;border-color:#217346;background:#f2faf5}.rxl-ribbon-gear .ic{display:inline-flex}.rxl-ribbon-gear .lbl{line-height:1}.rxl-action-toolbar{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.rxl-at-dd{position:relative;display:inline-flex}.rxl-at-tool{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.rxl-at-tool:hover:not(:disabled){background:#f0f2f4}.rxl-at-tool:disabled{color:#bbb;cursor:default}.rxl-at-tool.active{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.rxl-at-tool.open{background:#eef0f2}.rxl-at-ic{display:inline-flex}.rxl-at-ic-e{font-size:13px;line-height:1}.rxl-at-caret{display:inline-flex;opacity:.6;margin-left:-2px}.rxl-at-caret svg{width:12px;height:12px}.rxl-at-divider{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.rxl-at-dd .rxl-tb-menu{top:30px;left:0}.rxl-formula-bar{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.rxl-formula-bar .addr{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.rxl-formula-bar .fx{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.rxl-formula-bar .content{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.rxl-formula-bar textarea.content{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;background:transparent;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;line-height:1.4}.rxl-formula-bar .content-input:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.rxl-render-area{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.rxl-canvas{position:absolute;inset:0;z-index:1}.rxl-ov{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.rxl-scroller{position:absolute;inset:0;z-index:3;overflow:auto;cursor:cell;outline:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.rxl-spacer{pointer-events:none}.rxl-ov-slot{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.rxl-ov-slot>div>*{pointer-events:auto}.rxl-editor-slot{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.rxl-editor-slot>*{pointer-events:auto}.rxl-tooltip{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.rxl-tooltip.comment{background:#fdfcdc;color:#333;border:1px solid #d9d27e;max-width:300px}.ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}.ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}.ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.rxl-status-bar{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.rxl-status-bar .grow{flex:1}.rxl-tabs{display:flex;align-items:center;gap:2px;height:30px;flex:0 0 auto;padding:0 8px;border-top:1px solid #e2e4e7;background:#f3f4f6;overflow-x:auto}.rxl-tabs button{height:24px;padding:0 12px;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;background:transparent;font-size:13px;cursor:pointer;white-space:nowrap}.rxl-tabs button.active{background:#fff;border-color:#d6d8da;font-weight:600}.rxl-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.rxl-state.error{color:#c0392b}.rxl-export-progress{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.rxl-export-progress .card{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.rxl-export-progress .title{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.rxl-export-progress .bar{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.rxl-export-progress .bar .fill{height:100%;background:#21a366;transition:width .12s linear}.rxl-export-progress .bar.indeterminate:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:rxl-export-ind 1.2s infinite}@keyframes rxl-export-ind{0%{transform:translate(-100%)}to{transform:translate(100%)}}.rxl-export-progress .row{display:flex;align-items:center;justify-content:space-between}.rxl-export-progress .pct{color:#6b7280;font-size:12px}.rxl-export-progress .cancel{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.rxl-export-progress .cancel:hover{background:#f5f6f7}.toolbar[data-v-55f10e63]{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.file .modified[data-v-55f10e63]{color:#e8453c;font-weight:700;margin-right:2px}.file[data-v-55f10e63]{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file .tpl[data-v-55f10e63]{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px;white-space:nowrap}.meta[data-v-55f10e63]{color:#888}.meta .rough[data-v-55f10e63]{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.spacer[data-v-55f10e63]{flex:1}.export-wrap[data-v-55f10e63]{position:relative}.export-btn[data-v-55f10e63]{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.export-btn[data-v-55f10e63]:hover{background:#f0f2f4}.export-btn .caret[data-v-55f10e63]{font-size:10px;color:#888}.menu[data-v-55f10e63]{position:absolute;right:0;top:28px;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.menu button[data-v-55f10e63]{text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.menu button[data-v-55f10e63]:hover{background:#f0f4ff}.menu .sep[data-v-55f10e63]{height:1px;background:#eef0f2;margin:4px 2px}.zoom[data-v-55f10e63]{display:flex;align-items:center;gap:4px}.zoom button[data-v-55f10e63]{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.zoom button[data-v-55f10e63]:hover{background:#f0f2f4}.zoom select[data-v-55f10e63]{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.sheet-tabs[data-v-431b6f9c]{display:flex;align-items:stretch;height:30px;background:#f3f4f6;border-top:1px solid #d8dadd;overflow-x:auto;flex:0 0 auto}.tab[data-v-431b6f9c]{border:none;background:transparent;border-right:1px solid #e0e2e5;padding:0 16px;font-size:12.5px;color:#555;cursor:pointer;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.tab[data-v-431b6f9c]:hover{background:#e9ebee}.tab.active[data-v-431b6f9c]{background:#fff;color:#166534;font-weight:600;box-shadow:inset 0 2px #21a366}.dlg-mask[data-v-544df24f]{position:absolute;inset:0;z-index:30;background:#00000052;display:flex;align-items:center;justify-content:center}.dlg[data-v-544df24f]{width:420px;max-width:92%;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;font-size:13px;color:#333;overflow:hidden}.dlg-head[data-v-544df24f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid #eef0f2}.dlg-head .x[data-v-544df24f]{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:#999}.dlg-head .x[data-v-544df24f]:hover{color:#444}.dlg-body[data-v-544df24f]{padding:8px 16px 4px}.field[data-v-544df24f]{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid #f4f5f6}.field[data-v-544df24f]:last-child{border-bottom:none}.lbl[data-v-544df24f]{width:72px;flex:0 0 auto;color:#666;padding-top:3px}.opts[data-v-544df24f]{display:flex;flex-direction:column;gap:6px}.opts.inline[data-v-544df24f]{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.opts label[data-v-544df24f]{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.opts label.disabled[data-v-544df24f]{color:#bbb;cursor:not-allowed}.hint[data-v-544df24f]{color:#99a;font-size:12px}select[data-v-544df24f]{height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;padding:0 6px}.dlg-foot[data-v-544df24f]{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #eef0f2;background:#fafbfc}.dlg-foot .grow[data-v-544df24f]{flex:1}.dlg-foot button[data-v-544df24f]{height:30px;padding:0 14px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;color:#333}.dlg-foot button[data-v-544df24f]:hover{background:#f0f2f4}.dlg-foot button.ghost[data-v-544df24f]{border-color:transparent;color:#888}.dlg-foot button.primary[data-v-544df24f]{background:#21a366;border-color:#21a366;color:#fff}.dlg-foot button.primary[data-v-544df24f]:hover{background:#1c8f59}.tb-menu[data-v-35d480c3]{position:absolute;top:30px;left:0;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.mi[data-v-35d480c3]{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.mi[data-v-35d480c3]:hover:not(:disabled){background:#f0f4ff}.mi[data-v-35d480c3]:disabled{color:#bbb;cursor:default}.mi.active[data-v-35d480c3]{color:#1a73e8}.mi .ic[data-v-35d480c3]{display:inline-flex;width:16px}.mi .ic-e[data-v-35d480c3]{width:16px;text-align:center}.mi .sw[data-v-35d480c3]{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.sep[data-v-35d480c3]{height:1px;background:#eef0f2;margin:4px 2px}.mi-input[data-v-35d480c3]{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.mi-input[data-v-35d480c3]:focus{border-color:#217346}.action-toolbar[data-v-d4df1c57]{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.measure[data-v-d4df1c57]{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;height:0;overflow:hidden;display:flex;gap:4px}.dd[data-v-d4df1c57]{position:relative;display:inline-flex}.tool[data-v-d4df1c57]{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.tool[data-v-d4df1c57]:hover:not(:disabled){background:#f0f2f4}.tool[data-v-d4df1c57]:disabled{color:#bbb;cursor:default}.tool.active[data-v-d4df1c57]{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.tool.open[data-v-d4df1c57]{background:#eef0f2}.tool .ic[data-v-d4df1c57]{display:inline-flex}.tool .ic-e[data-v-d4df1c57]{font-size:13px;line-height:1}.tool .caret[data-v-d4df1c57]{display:inline-flex;opacity:.6;margin-left:-2px}.tool .caret[data-v-d4df1c57] svg{width:12px;height:12px}.divider[data-v-d4df1c57]{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.ribbon[data-v-669e85fe]{display:flex;flex-direction:column;flex:0 0 auto;background:#fff}.ribbon-tabs[data-v-669e85fe]{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e7e9ec}.ribbon-tab[data-v-669e85fe]{display:inline-flex;align-items:center;padding:0 16px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.ribbon-tab[data-v-669e85fe]:hover{color:#217346}.ribbon-tab.active[data-v-669e85fe]{color:#217346;border-bottom-color:#217346;font-weight:600}.ribbon-tabs-spacer[data-v-669e85fe]{flex:1 1 auto}.ribbon-gear[data-v-669e85fe]{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.ribbon-gear[data-v-669e85fe]:hover{color:#217346;border-color:#217346;background:#f2faf5}.ribbon-gear .ic[data-v-669e85fe]{display:inline-flex}.ribbon-gear .lbl[data-v-669e85fe]{line-height:1}.ribbon-panel[data-v-669e85fe]{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.rb-sep[data-v-669e85fe]{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.rb-group[data-v-669e85fe]{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.rb-group-body[data-v-669e85fe]{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.rb-group-name[data-v-669e85fe]{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.rb-dd[data-v-669e85fe]{position:relative;display:inline-flex}.rb-btn[data-v-669e85fe]{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.rb-btn[data-v-669e85fe]:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.rb-btn[data-v-669e85fe]:disabled{color:#c0c3c7;cursor:default}.rb-btn.active[data-v-669e85fe]{background:#e2efe6;color:#217346;border-color:#bcd9c6}.rb-btn.open[data-v-669e85fe]{background:#e9ece9}.rb-large[data-v-669e85fe]{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.rb-large .ic-lg[data-v-669e85fe]{display:inline-flex}.rb-large .ic-lg[data-v-669e85fe] svg{width:22px;height:22px}.rb-large .lb[data-v-669e85fe]{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.rb-large .caret-inline[data-v-669e85fe]{font-size:9px;opacity:.6}.rb-smalls[data-v-669e85fe]{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.rb-row[data-v-669e85fe]{display:flex;align-items:center;gap:2px}.rb-small[data-v-669e85fe]{height:26px;padding:0 5px;gap:3px}.rb-small .ic-sm[data-v-669e85fe]{display:inline-flex}.rb-small .ic-sm[data-v-669e85fe] svg{width:16px;height:16px}.rb-small .lb-sm[data-v-669e85fe]{font-size:12px}.rb-small.combo[data-v-669e85fe]{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.rb-small .caret[data-v-669e85fe]{display:inline-flex;opacity:.55;margin-left:-1px}.rb-small .caret[data-v-669e85fe] svg{width:11px;height:11px}.rb-vsep[data-v-669e85fe]{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.export-progress-overlay[data-v-629027ad]{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.card[data-v-629027ad]{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.title[data-v-629027ad]{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.bar[data-v-629027ad]{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.bar .fill[data-v-629027ad]{height:100%;background:#21a366;transition:width .12s linear}.bar.indeterminate[data-v-629027ad]:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:ind-629027ad 1.2s infinite}@keyframes ind-629027ad{0%{transform:translate(-100%)}to{transform:translate(100%)}}.row[data-v-629027ad]{display:flex;align-items:center;justify-content:space-between}.pct[data-v-629027ad]{color:#6b7280;font-size:12px}.cancel[data-v-629027ad]{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.cancel[data-v-629027ad]:hover{background:#f5f6f7}.excel-viewer[data-v-fb0591c2]{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.render-area[data-v-fb0591c2]{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.grid-canvas[data-v-fb0591c2]{position:absolute;inset:0;z-index:1}.ov[data-v-fb0591c2]{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.ov-slot[data-v-fb0591c2]{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.ov-slot[data-v-fb0591c2] *{pointer-events:auto}.editor-slot[data-v-fb0591c2]{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.editor-slot[data-v-fb0591c2] *{pointer-events:auto}.scroller[data-v-fb0591c2]{position:absolute;inset:0;z-index:3;overflow:auto;cursor:cell;outline:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.spacer[data-v-fb0591c2]{pointer-events:none}.formula-bar[data-v-fb0591c2]{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.formula-bar .addr[data-v-fb0591c2]{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.formula-bar .fx[data-v-fb0591c2]{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.formula-bar .content[data-v-fb0591c2]{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.formula-bar textarea.content[data-v-fb0591c2]{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;align-items:stretch;line-height:1.4}.formula-bar .content-input[data-v-fb0591c2]{border:none;outline:none;height:100%;background:transparent;font-size:13px}.formula-bar .content-input[data-v-fb0591c2]:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.status-bar[data-v-fb0591c2]{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.status-bar .grow[data-v-fb0591c2]{flex:1}.status-bar .sel[data-v-fb0591c2]{color:#888}.cell-tooltip[data-v-fb0591c2]{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.cell-tooltip.comment[data-v-fb0591c2]{background:#fdfcdc;color:#333;border:1px solid #d9d27e;box-shadow:0 2px 10px #0000002e;max-width:300px}[data-v-fb0591c2] .ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}[data-v-fb0591c2] .ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}[data-v-fb0591c2] .ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-v-fb0591c2] .ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.state[data-v-fb0591c2]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.state.error[data-v-fb0591c2]{color:#c0392b}.state.hint[data-v-fb0591c2]{color:#aaa}.loader[data-v-fb0591c2]{width:260px;max-width:60%}.loader-label[data-v-fb0591c2]{font-size:13px;color:#555;margin-bottom:8px;text-align:center}.loader-track[data-v-fb0591c2]{height:6px;border-radius:3px;background:#eceef0;overflow:hidden}.loader-fill[data-v-fb0591c2]{height:100%;background:#21a366;border-radius:3px;transition:width .15s ease}.loader-fill.indeterminate[data-v-fb0591c2]{width:40%;transition:none;animation:loader-pulse-fb0591c2 1.1s ease-in-out infinite}@keyframes loader-pulse-fb0591c2{0%{margin-left:-40%}to{margin-left:100%}}
package/dist/vue2.css CHANGED
@@ -1 +1 @@
1
- .ooxml-excel-viewer{display:flex;flex-direction:column;height:100%;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--green: #21a366;background:#fff}.ooxml-excel-viewer .ov-toolbar{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.ooxml-excel-viewer .ov-toolbar .file{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-excel-viewer .ov-toolbar .file .modified{color:#e8453c;font-weight:700;margin-right:2px}.ooxml-excel-viewer .ov-toolbar .tpl{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px}.ooxml-excel-viewer .ov-toolbar .meta{color:#888}.ooxml-excel-viewer .ov-toolbar .meta .rough{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.ooxml-excel-viewer .ov-toolbar .spacer{flex:1}.ooxml-excel-viewer .ov-export-wrap{position:relative}.ooxml-excel-viewer .ov-export-btn{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.ooxml-excel-viewer .ov-export-btn:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-export-btn .caret{font-size:10px;color:#888}.ooxml-excel-viewer .ov-tb-menu{position:absolute;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.ooxml-excel-viewer .ov-tb-menu.header-menu{right:0;top:28px}.ooxml-excel-viewer .ov-tb-menu .mi{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.ooxml-excel-viewer .ov-tb-menu .mi:hover:not(:disabled){background:#f0f4ff}.ooxml-excel-viewer .ov-tb-menu .mi:disabled{color:#bbb;cursor:default}.ooxml-excel-viewer .ov-tb-menu .mi.active{color:#1a73e8}.ooxml-excel-viewer .ov-tb-menu .mi .ic{display:inline-flex;width:16px}.ooxml-excel-viewer .ov-tb-menu .mi .ic-e{width:16px;text-align:center}.ooxml-excel-viewer .ov-tb-menu .mi .sw{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.ooxml-excel-viewer .ov-tb-menu .sep{height:1px;background:#eef0f2;margin:4px 2px}.ooxml-excel-viewer .ov-tb-menu .mi-input{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.ooxml-excel-viewer .ov-tb-menu .mi-input:focus{border-color:#217346}.ooxml-excel-viewer .ov-zoom{display:flex;align-items:center;gap:4px}.ooxml-excel-viewer .ov-zoom button{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.ooxml-excel-viewer .ov-zoom button:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-zoom select{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.ooxml-excel-viewer .ov-ribbon-tabs{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e2e4e7;flex:0 0 auto}.ooxml-excel-viewer .ov-ribbon-tab{display:inline-flex;align-items:center;padding:0 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.ooxml-excel-viewer .ov-ribbon-tab:hover{color:#217346}.ooxml-excel-viewer .ov-ribbon-tab.active{color:#217346;border-bottom-color:#217346;font-weight:600}.ooxml-excel-viewer .ov-rb-panel{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible;flex:0 0 auto}.ooxml-excel-viewer .ov-rb-sep{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.ooxml-excel-viewer .ov-rb-group{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.ooxml-excel-viewer .ov-rb-body{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.ooxml-excel-viewer .ov-rb-gname{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.ooxml-excel-viewer .ov-rb-smalls{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.ooxml-excel-viewer .ov-rb-row{display:flex;align-items:center;gap:2px}.ooxml-excel-viewer .ov-rb-btn{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.ooxml-excel-viewer .ov-rb-btn:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.ooxml-excel-viewer .ov-rb-btn:disabled{color:#c0c3c7;cursor:default}.ooxml-excel-viewer .ov-rb-btn.active{background:#e2efe6;color:#217346;border-color:#bcd9c6}.ooxml-excel-viewer .ov-rb-btn.open{background:#e9ece9}.ooxml-excel-viewer .ov-rb-large{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.ooxml-excel-viewer .ov-rb-ic-lg{display:inline-flex}.ooxml-excel-viewer .ov-rb-ic-lg svg{width:22px;height:22px}.ooxml-excel-viewer .ov-rb-lb{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.ooxml-excel-viewer .ov-rb-caret-inline{font-size:9px;opacity:.6}.ooxml-excel-viewer .ov-rb-small{height:26px;padding:0 5px;gap:3px}.ooxml-excel-viewer .ov-rb-ic-sm{display:inline-flex}.ooxml-excel-viewer .ov-rb-ic-sm svg{width:16px;height:16px}.ooxml-excel-viewer .ov-rb-lb-sm{font-size:12px}.ooxml-excel-viewer .ov-rb-small.combo{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.ooxml-excel-viewer .ov-rb-caret{display:inline-flex;opacity:.55;margin-left:-1px}.ooxml-excel-viewer .ov-rb-caret svg{width:11px;height:11px}.ooxml-excel-viewer .ov-rb-vsep{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.ooxml-excel-viewer .ov-ribbon-spacer{flex:1 1 auto}.ooxml-excel-viewer .ov-ribbon-gear{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.ooxml-excel-viewer .ov-ribbon-gear:hover{color:#217346;border-color:#217346;background:#f2faf5}.ooxml-excel-viewer .ov-ribbon-gear .ic{display:inline-flex}.ooxml-excel-viewer .ov-ribbon-gear .lbl{line-height:1}.ooxml-excel-viewer .ov-action-toolbar{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.ooxml-excel-viewer .ov-at-dd{position:relative;display:inline-flex}.ooxml-excel-viewer .ov-at-tool{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.ooxml-excel-viewer .ov-at-tool:hover:not(:disabled){background:#f0f2f4}.ooxml-excel-viewer .ov-at-tool:disabled{color:#bbb;cursor:default}.ooxml-excel-viewer .ov-at-tool.active{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.ooxml-excel-viewer .ov-at-tool.open{background:#eef0f2}.ooxml-excel-viewer .ov-at-ic{display:inline-flex}.ooxml-excel-viewer .ov-at-ic-e{font-size:13px;line-height:1}.ooxml-excel-viewer .ov-at-caret{display:inline-flex;opacity:.6;margin-left:-2px}.ooxml-excel-viewer .ov-at-caret svg{width:12px;height:12px}.ooxml-excel-viewer .ov-at-divider{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.ooxml-excel-viewer .ov-at-dd .ov-tb-menu{top:30px;left:0}.ooxml-excel-viewer .ov-formula-bar{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.ooxml-excel-viewer .ov-formula-bar .addr{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.ooxml-excel-viewer .ov-formula-bar .fx{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.ooxml-excel-viewer .ov-formula-bar .content{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.ooxml-excel-viewer .ov-formula-bar textarea.content{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;background:transparent;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;line-height:1.4}.ooxml-excel-viewer .ov-formula-bar .content-input:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.ooxml-excel-viewer .ov-render-area{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}.ooxml-excel-viewer .ov-grid-canvas{position:absolute;inset:0;display:block}.ooxml-excel-viewer .ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ooxml-excel-viewer .ov-plugin{z-index:5}.ooxml-excel-viewer .ov-editor-slot{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.ooxml-excel-viewer .ov-editor-slot>*{pointer-events:auto}.ooxml-excel-viewer .ov-scroller{position:absolute;inset:0;z-index:7;overflow:auto;outline:none}.ooxml-excel-viewer .ov-spacer{position:relative;pointer-events:none}.ooxml-excel-viewer .ov-state{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:#ffffffd9;color:#444;font-size:13px;pointer-events:none}.ooxml-excel-viewer .ov-state-error{color:#c1272d;font-weight:600}.ooxml-excel-viewer .ov-state-hint{color:#888}.ooxml-excel-viewer .ov-loader{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:240px}.ooxml-excel-viewer .ov-loader-label{font-size:13px;color:#21a366;font-weight:600}.ooxml-excel-viewer .ov-loader-track{width:240px;height:6px;background:#e2e4e7;border-radius:3px;overflow:hidden}.ooxml-excel-viewer .ov-loader-fill{height:100%;background:#21a366;transition:width .18s ease}.ooxml-excel-viewer .ov-loader-fill.indeterminate{width:35%;animation:ov-loader-slide 1.2s ease-in-out infinite}@keyframes ov-loader-slide{0%{transform:translate(-100%)}to{transform:translate(380%)}}.ooxml-excel-viewer .ov-status-bar{display:flex;align-items:center;gap:12px;padding:0 12px;height:26px;flex:0 0 auto;background:#f5f7fa;border-top:1px solid #e2e4e7;font-size:12px;color:#444}.ooxml-excel-viewer .ov-status-bar .sel{color:#888;font-family:Consolas,monospace}.ooxml-excel-viewer .ov-status-bar .grow{flex:1 1 auto}.ooxml-excel-viewer .ov-cell-tooltip{position:absolute;z-index:9;background:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;pointer-events:none;max-width:320px;box-shadow:0 2px 8px #0003;white-space:pre-wrap}.ooxml-excel-viewer .ov-cell-tooltip.comment{background:#fffce8;color:#5a4a00;border:1px solid #f0c542}.ooxml-excel-viewer .ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}.ooxml-excel-viewer .ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}.ooxml-excel-viewer .ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-excel-viewer .ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.ov-export-progress{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.ov-export-progress .card{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.ov-export-progress .title{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.ov-export-progress .bar{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.ov-export-progress .bar .fill{height:100%;background:#21a366;transition:width .12s linear}.ov-export-progress .bar.indeterminate:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:ov-export-ind 1.2s infinite}@keyframes ov-export-ind{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ov-export-progress .row{display:flex;align-items:center;justify-content:space-between}.ov-export-progress .pct{color:#6b7280;font-size:12px}.ov-export-progress .cancel{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.ov-export-progress .cancel:hover{background:#f5f6f7}.ooxml-excel-viewer .ov-user-slot{position:absolute;inset:0;pointer-events:none;z-index:5}.ooxml-excel-viewer .ov-user-slot>*{pointer-events:auto}.ooxml-excel-viewer .ov-dlg-mask{position:absolute;inset:0;z-index:30;background:#00000052;display:flex;align-items:center;justify-content:center}.ooxml-excel-viewer .ov-dlg{width:420px;max-width:92%;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;font-size:13px;color:#333;overflow:hidden}.ooxml-excel-viewer .ov-dlg-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid #eef0f2}.ooxml-excel-viewer .ov-dlg-head .x{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:#999}.ooxml-excel-viewer .ov-dlg-head .x:hover{color:#444}.ooxml-excel-viewer .ov-dlg-body{padding:8px 16px 4px}.ooxml-excel-viewer .ov-dlg-body .field{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid #f4f5f6}.ooxml-excel-viewer .ov-dlg-body .field:last-child{border-bottom:none}.ooxml-excel-viewer .ov-dlg-body .lbl{width:72px;flex:0 0 auto;color:#666;padding-top:3px}.ooxml-excel-viewer .ov-dlg-body .opts{display:flex;flex-direction:column;gap:6px}.ooxml-excel-viewer .ov-dlg-body .opts.inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.ooxml-excel-viewer .ov-dlg-body .opts label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.ooxml-excel-viewer .ov-dlg-body .opts label.disabled{color:#bbb;cursor:not-allowed}.ooxml-excel-viewer .ov-dlg-body .hint{color:#99a;font-size:12px}.ooxml-excel-viewer .ov-dlg-body select{height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;padding:0 6px}.ooxml-excel-viewer .ov-dlg-foot{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #eef0f2;background:#fafbfc}.ooxml-excel-viewer .ov-dlg-foot .grow{flex:1}.ooxml-excel-viewer .ov-dlg-foot button{height:30px;padding:0 14px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;color:#333}.ooxml-excel-viewer .ov-dlg-foot button:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-dlg-foot button.ghost{border-color:transparent;color:#888}.ooxml-excel-viewer .ov-dlg-foot button.primary{background:#21a366;border-color:#21a366;color:#fff}.ooxml-excel-viewer .ov-dlg-foot button.primary:hover{background:#1c8f59}.ooxml-excel-viewer .ov-sheet-tabs{display:flex;align-items:stretch;gap:2px;padding:4px 8px;background:#f5f7fa;border-top:1px solid #e2e4e7;flex:0 0 auto;overflow-x:auto}.ooxml-excel-viewer .ov-sheet-tabs .tab{background:transparent;border:1px solid transparent;color:#707481;padding:4px 12px;border-radius:4px 4px 0 0;font-size:12px;cursor:pointer;white-space:nowrap}.ooxml-excel-viewer .ov-sheet-tabs .tab:hover{background:#eef3fe}.ooxml-excel-viewer .ov-sheet-tabs .tab.active{background:#fff;color:#21a366;font-weight:600;border-color:#e2e4e7;border-bottom-color:#fff}
1
+ .ooxml-excel-viewer{display:flex;flex-direction:column;height:100%;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--green: #21a366;background:#fff}.ooxml-excel-viewer .ov-toolbar{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.ooxml-excel-viewer .ov-toolbar .file{font-weight:600;max-width:460px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-excel-viewer .ov-toolbar .file .modified{color:#e8453c;font-weight:700;margin-right:2px}.ooxml-excel-viewer .ov-toolbar .tpl{font-weight:400;color:#6b7280;font-size:12px;margin-left:4px}.ooxml-excel-viewer .ov-toolbar .meta{color:#888}.ooxml-excel-viewer .ov-toolbar .meta .rough{font-size:10px;color:#b0b4ba;margin-left:2px;vertical-align:1px}.ooxml-excel-viewer .ov-toolbar .spacer{flex:1}.ooxml-excel-viewer .ov-export-wrap{position:relative}.ooxml-excel-viewer .ov-export-btn{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.ooxml-excel-viewer .ov-export-btn:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-export-btn .caret{font-size:10px;color:#888}.ooxml-excel-viewer .ov-tb-menu{position:absolute;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.ooxml-excel-viewer .ov-tb-menu.header-menu{right:0;top:28px}.ooxml-excel-viewer .ov-tb-menu .mi{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.ooxml-excel-viewer .ov-tb-menu .mi:hover:not(:disabled){background:#f0f4ff}.ooxml-excel-viewer .ov-tb-menu .mi:disabled{color:#bbb;cursor:default}.ooxml-excel-viewer .ov-tb-menu .mi.active{color:#1a73e8}.ooxml-excel-viewer .ov-tb-menu .mi .ic{display:inline-flex;width:16px}.ooxml-excel-viewer .ov-tb-menu .mi .ic-e{width:16px;text-align:center}.ooxml-excel-viewer .ov-tb-menu .mi .sw{width:15px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.ooxml-excel-viewer .ov-tb-menu .sep{height:1px;background:#eef0f2;margin:4px 2px}.ooxml-excel-viewer .ov-tb-menu .mi-input{margin:3px 6px;height:26px;padding:0 8px;border:1px solid #d0d5dd;border-radius:4px;font:inherit;font-size:13px;outline:none}.ooxml-excel-viewer .ov-tb-menu .mi-input:focus{border-color:#217346}.ooxml-excel-viewer .ov-zoom{display:flex;align-items:center;gap:4px}.ooxml-excel-viewer .ov-zoom button{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.ooxml-excel-viewer .ov-zoom button:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-zoom select{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.ooxml-excel-viewer .ov-ribbon-tabs{display:flex;align-items:stretch;height:32px;padding:0 8px;gap:2px;background:#f7f8fa;border-bottom:1px solid #e2e4e7;flex:0 0 auto}.ooxml-excel-viewer .ov-ribbon-tab{display:inline-flex;align-items:center;padding:0 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;font-size:13px;color:#555;white-space:nowrap}.ooxml-excel-viewer .ov-ribbon-tab:hover{color:#217346}.ooxml-excel-viewer .ov-ribbon-tab.active{color:#217346;border-bottom-color:#217346;font-weight:600}.ooxml-excel-viewer .ov-rb-panel{display:flex;align-items:stretch;height:78px;padding:3px 4px 0;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible;flex:0 0 auto}.ooxml-excel-viewer .ov-rb-sep{width:1px;align-self:center;height:58px;margin:0 4px;background:#edeef0;flex:0 0 auto}.ooxml-excel-viewer .ov-rb-group{display:flex;flex-direction:column;flex:0 0 auto;padding:0 2px}.ooxml-excel-viewer .ov-rb-body{flex:1 1 auto;display:flex;align-items:center;gap:3px;padding:2px 2px 0}.ooxml-excel-viewer .ov-rb-gname{flex:0 0 auto;text-align:center;font-size:11px;color:#9aa0a6;line-height:16px;padding-bottom:1px}.ooxml-excel-viewer .ov-rb-smalls{display:flex;flex-direction:column;justify-content:center;height:58px;gap:2px}.ooxml-excel-viewer .ov-rb-row{display:flex;align-items:center;gap:2px}.ooxml-excel-viewer .ov-rb-btn{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;color:#3c3c3c;white-space:nowrap;font:inherit}.ooxml-excel-viewer .ov-rb-btn:hover:not(:disabled){background:#eef3ef;border-color:#dfe6e1}.ooxml-excel-viewer .ov-rb-btn:disabled{color:#c0c3c7;cursor:default}.ooxml-excel-viewer .ov-rb-btn.active{background:#e2efe6;color:#217346;border-color:#bcd9c6}.ooxml-excel-viewer .ov-rb-btn.open{background:#e9ece9}.ooxml-excel-viewer .ov-rb-large{flex-direction:column;justify-content:center;gap:2px;min-width:46px;height:58px;padding:4px 6px}.ooxml-excel-viewer .ov-rb-ic-lg{display:inline-flex}.ooxml-excel-viewer .ov-rb-ic-lg svg{width:22px;height:22px}.ooxml-excel-viewer .ov-rb-lb{font-size:12px;line-height:1.1;display:inline-flex;align-items:center;gap:1px}.ooxml-excel-viewer .ov-rb-caret-inline{font-size:9px;opacity:.6}.ooxml-excel-viewer .ov-rb-small{height:26px;padding:0 5px;gap:3px}.ooxml-excel-viewer .ov-rb-ic-sm{display:inline-flex}.ooxml-excel-viewer .ov-rb-ic-sm svg{width:16px;height:16px}.ooxml-excel-viewer .ov-rb-lb-sm{font-size:12px}.ooxml-excel-viewer .ov-rb-small.combo{min-width:58px;justify-content:space-between;border:1px solid #dfe1e4;background:#fff}.ooxml-excel-viewer .ov-rb-caret{display:inline-flex;opacity:.55;margin-left:-1px}.ooxml-excel-viewer .ov-rb-caret svg{width:11px;height:11px}.ooxml-excel-viewer .ov-rb-vsep{width:1px;align-self:center;height:22px;margin:0 2px;background:#edeef0}.ooxml-excel-viewer .ov-ribbon-spacer{flex:1 1 auto}.ooxml-excel-viewer .ov-ribbon-gear{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;margin-right:4px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;cursor:pointer;color:#475467;font-size:12px}.ooxml-excel-viewer .ov-ribbon-gear:hover{color:#217346;border-color:#217346;background:#f2faf5}.ooxml-excel-viewer .ov-ribbon-gear .ic{display:inline-flex}.ooxml-excel-viewer .ov-ribbon-gear .lbl{line-height:1}.ooxml-excel-viewer .ov-action-toolbar{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.ooxml-excel-viewer .ov-at-dd{position:relative;display:inline-flex}.ooxml-excel-viewer .ov-at-tool{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.ooxml-excel-viewer .ov-at-tool:hover:not(:disabled){background:#f0f2f4}.ooxml-excel-viewer .ov-at-tool:disabled{color:#bbb;cursor:default}.ooxml-excel-viewer .ov-at-tool.active{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.ooxml-excel-viewer .ov-at-tool.open{background:#eef0f2}.ooxml-excel-viewer .ov-at-ic{display:inline-flex}.ooxml-excel-viewer .ov-at-ic-e{font-size:13px;line-height:1}.ooxml-excel-viewer .ov-at-caret{display:inline-flex;opacity:.6;margin-left:-2px}.ooxml-excel-viewer .ov-at-caret svg{width:12px;height:12px}.ooxml-excel-viewer .ov-at-divider{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.ooxml-excel-viewer .ov-at-dd .ov-tb-menu{top:30px;left:0}.ooxml-excel-viewer .ov-formula-bar{display:flex;align-items:stretch;min-height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.ooxml-excel-viewer .ov-formula-bar .addr{width:72px;display:flex;align-items:center;justify-content:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.ooxml-excel-viewer .ov-formula-bar .fx{width:34px;display:flex;align-items:center;justify-content:center;color:#999;font-style:italic;flex:0 0 auto}.ooxml-excel-viewer .ov-formula-bar .content{flex:1;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace;display:flex;align-items:center;line-height:1.4}.ooxml-excel-viewer .ov-formula-bar textarea.content{white-space:pre-wrap;overflow:auto;text-overflow:clip;resize:none;border:none;outline:none;background:transparent;font-family:Consolas,Courier New,monospace;font-size:13px;display:block;min-height:22px;max-height:108px;line-height:1.4}.ooxml-excel-viewer .ov-formula-bar .content-input:focus{background:#f5fbf7;box-shadow:inset 0 0 0 1px #21a366}.ooxml-excel-viewer .ov-render-area{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}.ooxml-excel-viewer .ov-grid-canvas{position:absolute;inset:0;display:block}.ooxml-excel-viewer .ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ooxml-excel-viewer .ov-plugin{z-index:5}.ooxml-excel-viewer .ov-editor-slot{position:absolute;inset:0;z-index:6;overflow:visible;pointer-events:none}.ooxml-excel-viewer .ov-editor-slot>*{pointer-events:auto}.ooxml-excel-viewer .ov-scroller{position:absolute;inset:0;z-index:7;overflow:auto;outline:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.ooxml-excel-viewer .ov-spacer{position:relative;pointer-events:none}.ooxml-excel-viewer .ov-state{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:#ffffffd9;color:#444;font-size:13px;pointer-events:none}.ooxml-excel-viewer .ov-state-error{color:#c1272d;font-weight:600}.ooxml-excel-viewer .ov-state-hint{color:#888}.ooxml-excel-viewer .ov-loader{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:240px}.ooxml-excel-viewer .ov-loader-label{font-size:13px;color:#21a366;font-weight:600}.ooxml-excel-viewer .ov-loader-track{width:240px;height:6px;background:#e2e4e7;border-radius:3px;overflow:hidden}.ooxml-excel-viewer .ov-loader-fill{height:100%;background:#21a366;transition:width .18s ease}.ooxml-excel-viewer .ov-loader-fill.indeterminate{width:35%;animation:ov-loader-slide 1.2s ease-in-out infinite}@keyframes ov-loader-slide{0%{transform:translate(-100%)}to{transform:translate(380%)}}.ooxml-excel-viewer .ov-status-bar{display:flex;align-items:center;gap:12px;padding:0 12px;height:26px;flex:0 0 auto;background:#f5f7fa;border-top:1px solid #e2e4e7;font-size:12px;color:#444}.ooxml-excel-viewer .ov-status-bar .sel{color:#888;font-family:Consolas,monospace}.ooxml-excel-viewer .ov-status-bar .grow{flex:1 1 auto}.ooxml-excel-viewer .ov-cell-tooltip{position:absolute;z-index:9;background:#333;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;pointer-events:none;max-width:320px;box-shadow:0 2px 8px #0003;white-space:pre-wrap}.ooxml-excel-viewer .ov-cell-tooltip.comment{background:#fffce8;color:#5a4a00;border:1px solid #f0c542}.ooxml-excel-viewer .ooxml-pivot-button{position:absolute;display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;padding:0 3px 0 6px;border:1px solid #9aa7b2;border-radius:2px;background:linear-gradient(#fff,#e8edf2);color:#1f2329;font:12px/1.2 -apple-system,Segoe UI,Microsoft YaHei,sans-serif;box-shadow:inset 0 1px #ffffffbf;pointer-events:auto;overflow:hidden;cursor:default}.ooxml-excel-viewer .ooxml-pivot-button:hover{border-color:#6e879e;background:linear-gradient(#fff,#dde8f4)}.ooxml-excel-viewer .ooxml-pivot-button .ooxml-pivot-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ooxml-excel-viewer .ooxml-pivot-button .ooxml-pivot-caret{flex:0 0 auto;color:#3c4a57;font-size:10px}.ov-export-progress{position:fixed;inset:0;z-index:9999;background:#0000006b;display:flex;align-items:center;justify-content:center;font:13px/1.5 -apple-system,Segoe UI,sans-serif}.ov-export-progress .card{min-width:320px;max-width:480px;background:#fff;border-radius:10px;box-shadow:0 10px 32px #00000047;padding:18px 20px}.ov-export-progress .title{font-size:14px;font-weight:600;color:#1f2329;margin-bottom:12px}.ov-export-progress .bar{position:relative;height:6px;background:#eceef1;border-radius:3px;overflow:hidden;margin-bottom:10px}.ov-export-progress .bar .fill{height:100%;background:#21a366;transition:width .12s linear}.ov-export-progress .bar.indeterminate:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#21a366 40%,#21a366 60%,transparent);animation:ov-export-ind 1.2s infinite}@keyframes ov-export-ind{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ov-export-progress .row{display:flex;align-items:center;justify-content:space-between}.ov-export-progress .pct{color:#6b7280;font-size:12px}.ov-export-progress .cancel{border:1px solid #d8dbde;background:#fff;color:#1f2329;padding:5px 14px;border-radius:5px;cursor:pointer;font-size:13px}.ov-export-progress .cancel:hover{background:#f5f6f7}.ooxml-excel-viewer .ov-user-slot{position:absolute;inset:0;pointer-events:none;z-index:5}.ooxml-excel-viewer .ov-user-slot>*{pointer-events:auto}.ooxml-excel-viewer .ov-dlg-mask{position:absolute;inset:0;z-index:30;background:#00000052;display:flex;align-items:center;justify-content:center}.ooxml-excel-viewer .ov-dlg{width:420px;max-width:92%;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;font-size:13px;color:#333;overflow:hidden}.ooxml-excel-viewer .ov-dlg-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid #eef0f2}.ooxml-excel-viewer .ov-dlg-head .x{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:#999}.ooxml-excel-viewer .ov-dlg-head .x:hover{color:#444}.ooxml-excel-viewer .ov-dlg-body{padding:8px 16px 4px}.ooxml-excel-viewer .ov-dlg-body .field{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid #f4f5f6}.ooxml-excel-viewer .ov-dlg-body .field:last-child{border-bottom:none}.ooxml-excel-viewer .ov-dlg-body .lbl{width:72px;flex:0 0 auto;color:#666;padding-top:3px}.ooxml-excel-viewer .ov-dlg-body .opts{display:flex;flex-direction:column;gap:6px}.ooxml-excel-viewer .ov-dlg-body .opts.inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.ooxml-excel-viewer .ov-dlg-body .opts label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.ooxml-excel-viewer .ov-dlg-body .opts label.disabled{color:#bbb;cursor:not-allowed}.ooxml-excel-viewer .ov-dlg-body .hint{color:#99a;font-size:12px}.ooxml-excel-viewer .ov-dlg-body select{height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;padding:0 6px}.ooxml-excel-viewer .ov-dlg-foot{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #eef0f2;background:#fafbfc}.ooxml-excel-viewer .ov-dlg-foot .grow{flex:1}.ooxml-excel-viewer .ov-dlg-foot button{height:30px;padding:0 14px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;color:#333}.ooxml-excel-viewer .ov-dlg-foot button:hover{background:#f0f2f4}.ooxml-excel-viewer .ov-dlg-foot button.ghost{border-color:transparent;color:#888}.ooxml-excel-viewer .ov-dlg-foot button.primary{background:#21a366;border-color:#21a366;color:#fff}.ooxml-excel-viewer .ov-dlg-foot button.primary:hover{background:#1c8f59}.ooxml-excel-viewer .ov-sheet-tabs{display:flex;align-items:stretch;gap:2px;padding:4px 8px;background:#f5f7fa;border-top:1px solid #e2e4e7;flex:0 0 auto;overflow-x:auto}.ooxml-excel-viewer .ov-sheet-tabs .tab{background:transparent;border:1px solid transparent;color:#707481;padding:4px 12px;border-radius:4px 4px 0 0;font-size:12px;cursor:pointer;white-space:nowrap}.ooxml-excel-viewer .ov-sheet-tabs .tab:hover{background:#eef3fe}.ooxml-excel-viewer .ov-sheet-tabs .tab.active{background:#fff;color:#21a366;font-weight:600;border-color:#e2e4e7;border-bottom-color:#fff}
package/dist/vue2.js CHANGED
@@ -1,4 +1,4 @@
1
- import { B as s, C as o, a as r, D as l, b as t, E as n, c as i, F as m, d as g, G as d, K as k, O as u, P as c, e as C, V as E, W as y, f as S, g as T, h as b, i as F, j as f, k as h, l as p, m as v, n as I, o as R, p as O, q as A, r as W, s as B, t as w, u as D, c as x, v as _, w as N, x as U, y as V, A as H, H as M, I as P, J as L, L as J, M as j, N as z, Q as G, R as K, S as X, T as Y, U as q, X as Q, Y as Z, Z as $, _ as aa, v as ea, $ as sa, a0 as oa, a1 as ra, a2 as la, a3 as ta, a4 as na, a5 as ia, a6 as ma, a7 as ga, a8 as da, a9 as ka, aa as ua, ab as ca, ac as Ca, ad as Ea, ae as ya, af as Sa, ag as Ta, ah as ba, ai as Fa, aj as fa, ak as ha, al as pa, am as va, an as Ia, ao as Ra, ap as Oa, aq as Aa, ar as Wa, as as Ba, at as wa, au as Da, av as xa, aw as _a, ax as Na, ay as Ua, az as Va, aA as Ha } from "./chunks/index-xD5935xY.js";
1
+ import { B as s, C as o, a as r, D as l, b as t, E as n, c as i, F as m, d as g, G as d, K as k, O as u, P as c, e as C, V as E, W as y, f as S, g as T, h as b, i as F, j as f, k as h, l as p, m as v, n as I, o as R, p as O, q as A, r as W, s as B, t as w, u as D, c as x, v as _, w as N, x as U, y as V, A as H, H as M, I as P, J as L, L as J, M as j, N as z, Q as G, R as K, S as X, T as Y, U as q, X as Q, Y as Z, Z as $, _ as aa, v as ea, $ as sa, a0 as oa, a1 as ra, a2 as la, a3 as ta, a4 as na, a5 as ia, a6 as ma, a7 as ga, a8 as da, a9 as ka, aa as ua, ab as ca, ac as Ca, ad as Ea, ae as ya, af as Sa, ag as Ta, ah as ba, ai as Fa, aj as fa, ak as ha, al as pa, am as va, an as Ia, ao as Ra, ap as Oa, aq as Aa, ar as Wa, as as Ba, at as wa, au as Da, av as xa, aw as _a, ax as Na, ay as Ua, az as Va, aA as Ha } from "./chunks/index-DKKEwcK8.js";
2
2
  export {
3
3
  s as BuiltinFormulaEngine,
4
4
  o as CanvasRenderer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ooxml-excel-editor",
3
- "version": "1.16.1",
3
+ "version": "1.16.2",
4
4
  "description": "High-fidelity OOXML (.xlsx) preview & editor — canvas renderer, framework-agnostic core with Vue 3, Vue 2 and React shells (1:1 UI across all shells). Read-only by default; opt-in editing with undo/redo, formula recalc, and export back to .xlsx/JSON/CSV.",
5
5
  "type": "module",
6
6
  "license": "MIT",