@bireturn/word-editor 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  var rn = Object.defineProperty;
2
2
  var cn = (i, e, t) => e in i ? rn(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
- var j = (i, e, t) => cn(i, typeof e != "symbol" ? e + "" : e, t);
4
- import { computed as ke, ref as oe, onMounted as rt, onUnmounted as Ze, openBlock as h, createElementBlock as v, normalizeStyle as K, createElementVNode as re, Fragment as J, renderList as le, normalizeClass as Ie, createBlock as Fe, resolveDynamicComponent as Xe, toDisplayString as te, unref as Ae, createCommentVNode as ge, render as Ot, h as dn, defineComponent as un, getCurrentInstance as hn, watch as Be, nextTick as be, createVNode as G, createTextVNode as Re, isVNode as fn, renderSlot as gn, resolveComponent as pn, withCtx as nt, reactive as Bt, provide as vn, inject as mn } from "vue";
3
+ var V = (i, e, t) => cn(i, typeof e != "symbol" ? e + "" : e, t);
4
+ import { computed as ke, ref as se, onMounted as ct, onUnmounted as et, openBlock as f, createElementBlock as p, normalizeStyle as j, createElementVNode as ce, Fragment as Y, renderList as oe, normalizeClass as Ee, createBlock as Fe, resolveDynamicComponent as Ze, toDisplayString as ie, unref as Ae, createCommentVNode as ve, render as Ot, h as dn, defineComponent as un, getCurrentInstance as hn, watch as Be, nextTick as xe, createVNode as J, createTextVNode as Le, isVNode as fn, renderSlot as gn, resolveComponent as pn, withCtx as lt, reactive as Bt, provide as vn, inject as mn } from "vue";
5
5
  import { DynamicScroller as yn, DynamicScrollerItem as _n } from "vue-virtual-scroller";
6
- import { ChevronRight as Ht, MoreHorizontal as yt, Download as it, Upload as bn, Save as xn, RotateCcw as kn, History as wn, Settings as Cn, Info as Mn, Globe as In, Lock as En, Share as Sn, ShieldCheck as Tn, Search as Fn, Filter as An, SortDesc as Pn, SortAsc as $n, Minus as Ln, Plus as _t, Eye as bt, FileText as at, Grid as Rn, Type as xt, FileDown as kt, Layers as wt, Edit as On, Move as Bn, Copy as Hn, Trash2 as Ct, Clipboard as Mt, PlusCircle as It, ArrowDown as Et, Navigation as St, ChevronDown as Dn, PanelLeftOpen as zn, ListTree as Nn, PanelLeftClose as Vn } from "lucide-vue-next";
6
+ import { ChevronRight as Ht, MoreHorizontal as yt, Download as at, Upload as bn, Save as xn, RotateCcw as kn, History as wn, Settings as Cn, Info as Mn, Globe as In, Lock as En, Share as Sn, ShieldCheck as Tn, Search as Fn, Filter as An, SortDesc as Pn, SortAsc as $n, Minus as Ln, Plus as _t, Eye as bt, FileText as ot, Grid as Rn, Type as xt, FileDown as kt, Layers as wt, Edit as On, Move as Bn, Copy as Hn, Trash2 as Ct, Clipboard as Mt, PlusCircle as It, ArrowDown as Et, Navigation as St, ChevronDown as Dn, PanelLeftOpen as zn, ListTree as Nn, PanelLeftClose as Vn } from "lucide-vue-next";
7
7
  const jn = { class: "we-vt-context-menu--option-wrapper modern-menu-wrapper" }, Kn = ["onMouseenter", "onMouseleave"], qn = ["onClick"], Wn = { class: "we-vt-context-menu--link-content menu-label" }, Un = {
8
8
  key: 0,
9
9
  class: "we-vt-context-menu--submenu modern-submenu"
@@ -30,39 +30,39 @@ const jn = { class: "we-vt-context-menu--option-wrapper modern-menu-wrapper" },
30
30
  },
31
31
  emits: ["close", "menuClick"],
32
32
  setup(i, { emit: e }) {
33
- const t = e, l = i, o = ke(() => {
33
+ const t = e, a = i, o = ke(() => {
34
34
  var W, B;
35
35
  return {
36
- left: `${(W = l.e) == null ? void 0 : W.pageX}px`,
37
- top: `${(B = l.e) == null ? void 0 : B.pageY}px`
36
+ left: `${(W = a.e) == null ? void 0 : W.pageX}px`,
37
+ top: `${(B = a.e) == null ? void 0 : B.pageY}px`
38
38
  };
39
- }), d = oe([]), P = oe(null);
40
- let T = null;
41
- const N = oe(), $ = (W, B, x) => {
39
+ }), u = se([]), P = se(null);
40
+ let S = null;
41
+ const z = se(), A = (W, B, T) => {
42
42
  if (W.children && W.children.length > 0) {
43
43
  B && B.preventDefault() && B.stopPropagation();
44
44
  return;
45
45
  }
46
- W.disabled || (x ? t("menuClick", { ...W, parent: x.code }, l.row) : t("menuClick", W, l.row)), B && B.preventDefault() && B.stopPropagation();
47
- }, X = (W) => {
46
+ W.disabled || (T ? t("menuClick", { ...W, parent: T.code }, a.row) : t("menuClick", W, a.row)), B && B.preventDefault() && B.stopPropagation();
47
+ }, Z = (W) => {
48
48
  let B = W.target;
49
- for (; B && B != N.value; )
49
+ for (; B && B != z.value; )
50
50
  B = B.parentNode;
51
- B != N.value && t("close");
52
- }, V = (W, B) => {
53
- W.currentTarget.classList.add("link--active"), T && (clearTimeout(T), T = null), B.children && B.children.length > 0 ? P.value = B.code : T = setTimeout(() => {
51
+ B != z.value && t("close");
52
+ }, N = (W, B) => {
53
+ W.currentTarget.classList.add("link--active"), S && (clearTimeout(S), S = null), B.children && B.children.length > 0 ? P.value = B.code : S = setTimeout(() => {
54
54
  P.value = null;
55
55
  }, 100);
56
56
  }, q = (W, B) => {
57
- W.currentTarget.classList.remove("link--active"), B.children && B.children.length > 0 && (T = setTimeout(() => {
57
+ W.currentTarget.classList.remove("link--active"), B.children && B.children.length > 0 && (S = setTimeout(() => {
58
58
  P.value === B.code && (P.value = null);
59
59
  }, 300));
60
- }, Y = (W) => {
61
- T && (clearTimeout(T), T = null), W.currentTarget.classList.add("link--active");
62
- }, Z = (W) => {
60
+ }, Q = (W) => {
61
+ S && (clearTimeout(S), S = null), W.currentTarget.classList.add("link--active");
62
+ }, ee = (W) => {
63
63
  W.currentTarget.classList.remove("link--active");
64
- }, ye = (W) => {
65
- const B = W.code || "", x = (W.name || "").toLowerCase(), m = {
64
+ }, be = (W) => {
65
+ const B = W.code || "", T = (W.name || "").toLowerCase(), K = {
66
66
  // 添加操作 - 根据具体类型使用不同图标
67
67
  "add-current": St,
68
68
  // 添加(当前位置)
@@ -86,16 +86,16 @@ const jn = { class: "we-vt-context-menu--option-wrapper modern-menu-wrapper" },
86
86
  // 导出此节点所在节
87
87
  export_part_chapter: kt,
88
88
  // 导出此节点所在章
89
- export_full: it,
89
+ export_full: at,
90
90
  // 完整导出
91
91
  // 文件格式
92
- pdf: at,
92
+ pdf: ot,
93
93
  // PDF格式
94
94
  word: xt,
95
95
  // WORD格式
96
96
  excel: Rn,
97
97
  // Excel格式
98
- txt: at,
98
+ txt: ot,
99
99
  // 文本格式
100
100
  // 视图操作
101
101
  view: bt,
@@ -137,83 +137,83 @@ const jn = { class: "we-vt-context-menu--option-wrapper modern-menu-wrapper" },
137
137
  // 保存
138
138
  upload: bn,
139
139
  // 上传
140
- download: it,
140
+ download: at,
141
141
  // 下载
142
142
  more: yt
143
143
  // 更多
144
144
  };
145
- return m[B] ? m[B] : x.includes("添加") || x.includes("add") ? x.includes("当前") || x.includes("current") ? St : x.includes("下") || x.includes("next") ? Et : x.includes("子") || x.includes("child") ? It : _t : x.includes("导出") || x.includes("export") ? x.includes("节") || x.includes("section") ? wt : x.includes("章") || x.includes("chapter") ? kt : it : x.includes("粘贴") || x.includes("paste") ? Mt : x.includes("删除") || x.includes("delete") ? Ct : x.includes("pdf") ? at : x.includes("word") ? xt : yt;
145
+ return K[B] ? K[B] : T.includes("添加") || T.includes("add") ? T.includes("当前") || T.includes("current") ? St : T.includes("下") || T.includes("next") ? Et : T.includes("子") || T.includes("child") ? It : _t : T.includes("导出") || T.includes("export") ? T.includes("节") || T.includes("section") ? wt : T.includes("章") || T.includes("chapter") ? kt : at : T.includes("粘贴") || T.includes("paste") ? Mt : T.includes("删除") || T.includes("delete") ? Ct : T.includes("pdf") ? ot : T.includes("word") ? xt : yt;
146
146
  };
147
- return rt(() => {
148
- var W, B, x, m, b, r, O;
149
- (W = l.menuConfig) != null && W.visibleMethod && typeof ((B = l.menuConfig) == null ? void 0 : B.visibleMethod) == "function" && ((b = l.menuConfig) == null || b.visibleMethod({
150
- options: (m = (x = l.menuConfig) == null ? void 0 : x.body) == null ? void 0 : m.options,
151
- row: l.row
152
- })), d.value = (((O = (r = l.menuConfig) == null ? void 0 : r.body) == null ? void 0 : O.options) || []).flat(), document.addEventListener("click", X, !0);
153
- }), Ze(() => {
154
- document.removeEventListener("click", X, !0);
155
- }), (W, B) => (h(), v("div", {
147
+ return ct(() => {
148
+ var W, B, T, K, y, _, r;
149
+ (W = a.menuConfig) != null && W.visibleMethod && typeof ((B = a.menuConfig) == null ? void 0 : B.visibleMethod) == "function" && ((y = a.menuConfig) == null || y.visibleMethod({
150
+ options: (K = (T = a.menuConfig) == null ? void 0 : T.body) == null ? void 0 : K.options,
151
+ row: a.row
152
+ })), u.value = (((r = (_ = a.menuConfig) == null ? void 0 : _.body) == null ? void 0 : r.options) || []).flat(), document.addEventListener("click", Z, !0);
153
+ }), et(() => {
154
+ document.removeEventListener("click", Z, !0);
155
+ }), (W, B) => (f(), p("div", {
156
156
  class: "we-vt-table--context-menu-wrapper virtual-table-menu modern-virtual-menu",
157
157
  ref_key: "contextMenuRef",
158
- ref: N,
159
- style: K([{ display: "inline-block" }, o.value])
158
+ ref: z,
159
+ style: j([{ display: "inline-block" }, o.value])
160
160
  }, [
161
- re("ul", jn, [
162
- (h(!0), v(J, null, le(d.value, (x) => (h(), v("li", {
163
- class: Ie({
164
- "link--disabled": x.disabled,
165
- "has-children": x.children && x.children.length > 0,
161
+ ce("ul", jn, [
162
+ (f(!0), p(Y, null, oe(u.value, (T) => (f(), p("li", {
163
+ class: Ee({
164
+ "link--disabled": T.disabled,
165
+ "has-children": T.children && T.children.length > 0,
166
166
  "modern-menu-item": !0
167
167
  }),
168
- key: x.code,
169
- onMouseenter: (m) => V(m, x),
170
- onMouseleave: (m) => q(m, x)
168
+ key: T.code,
169
+ onMouseenter: (K) => N(K, T),
170
+ onMouseleave: (K) => q(K, T)
171
171
  }, [
172
- re("a", {
172
+ ce("a", {
173
173
  class: "we-vt-context-menu--link modern-menu-link",
174
- onClick: (m) => $(x, m)
174
+ onClick: (K) => A(T, K)
175
175
  }, [
176
- (h(), Fe(Xe(ye(x)), {
176
+ (f(), Fe(Ze(be(T)), {
177
177
  size: 16,
178
178
  class: "menu-icon"
179
179
  })),
180
- re("span", Wn, te(x.name), 1),
181
- x.children && x.children.length > 0 ? (h(), Fe(Ae(Ht), {
180
+ ce("span", Wn, ie(T.name), 1),
181
+ T.children && T.children.length > 0 ? (f(), Fe(Ae(Ht), {
182
182
  key: 0,
183
183
  size: 14,
184
184
  class: "submenu-arrow"
185
- })) : ge("", !0)
185
+ })) : ve("", !0)
186
186
  ], 8, qn),
187
- x.children && x.children.length > 0 && P.value === x.code ? (h(), v("ul", Un, [
188
- (h(!0), v(J, null, le(x.children, (m) => (h(), v("li", {
189
- key: m.code,
190
- class: Ie({
191
- "link--disabled": m.disabled,
187
+ T.children && T.children.length > 0 && P.value === T.code ? (f(), p("ul", Un, [
188
+ (f(!0), p(Y, null, oe(T.children, (K) => (f(), p("li", {
189
+ key: K.code,
190
+ class: Ee({
191
+ "link--disabled": K.disabled,
192
192
  "modern-submenu-item": !0
193
193
  }),
194
- onMouseenter: Y,
195
- onMouseleave: Z
194
+ onMouseenter: Q,
195
+ onMouseleave: ee
196
196
  }, [
197
- re("a", {
197
+ ce("a", {
198
198
  class: "we-vt-context-menu--link modern-submenu-link",
199
- onClick: (b) => $(m, b, x)
199
+ onClick: (y) => A(K, y, T)
200
200
  }, [
201
- (h(), Fe(Xe(ye(m)), {
201
+ (f(), Fe(Ze(be(K)), {
202
202
  size: 14,
203
203
  class: "submenu-icon"
204
204
  })),
205
- re("span", Jn, te(m.name), 1)
205
+ ce("span", Jn, ie(K.name), 1)
206
206
  ], 8, Gn)
207
207
  ], 34))), 128))
208
- ])) : ge("", !0)
208
+ ])) : ve("", !0)
209
209
  ], 42, Kn))), 128))
210
210
  ])
211
211
  ], 4));
212
212
  }
213
213
  }, Dt = Symbol("component_container");
214
214
  function Yn(i, e, t) {
215
- const l = dn(i, { ...e }, t), o = document.createElement("div");
216
- return document.body.appendChild(o), l[Dt] = o, Ot(l, o), l.component;
215
+ const a = dn(i, { ...e }, t), o = document.createElement("div");
216
+ return document.body.appendChild(o), a[Dt] = o, Ot(a, o), a.component;
217
217
  }
218
218
  function Zn(i) {
219
219
  var t;
@@ -230,52 +230,52 @@ const Qn = (i) => {
230
230
  }, Qn(i), i;
231
231
  };
232
232
  function ti(i, e, t) {
233
- const l = (t == null ? void 0 : t.keyField) || (t == null ? void 0 : t.rowField) || "node_id", o = (t == null ? void 0 : t.parentField) || "parent_id", d = (t == null ? void 0 : t.parentField) || "order";
233
+ const a = (t == null ? void 0 : t.keyField) || (t == null ? void 0 : t.rowField) || "node_id", o = (t == null ? void 0 : t.parentField) || "parent_id", u = (t == null ? void 0 : t.parentField) || "order";
234
234
  if (!(i != null && i.length))
235
235
  return i;
236
236
  const P = {};
237
- i.forEach((X) => {
238
- const V = X[o];
239
- P[V] || (P[V] = []), P[V].push(X);
237
+ i.forEach((Z) => {
238
+ const N = Z[o];
239
+ P[N] || (P[N] = []), P[N].push(Z);
240
240
  });
241
- function T(X) {
242
- const V = P[X] || [];
243
- V.sort(
244
- (Y, Z) => Y[d] && Z[d] ? Y[d] - Z[d] : 0
241
+ function S(Z) {
242
+ const N = P[Z] || [];
243
+ N.sort(
244
+ (Q, ee) => Q[u] && ee[u] ? Q[u] - ee[u] : 0
245
245
  );
246
246
  const q = [];
247
- return V.forEach((Y) => {
248
- q.push(Y), q.push(...T(Y[l]));
247
+ return N.forEach((Q) => {
248
+ q.push(Q), q.push(...S(Q[a]));
249
249
  }), q;
250
250
  }
251
- let N = [];
251
+ let z = [];
252
252
  if (Array.isArray(e))
253
- N = e;
253
+ z = e;
254
254
  else {
255
- const X = new Set(i.map((Y) => Y[l])), V = i.filter((Y) => !X.has(Y[o]));
256
- if (V.length === 0)
255
+ const Z = new Set(i.map((Q) => Q[a])), N = i.filter((Q) => !Z.has(Q[o]));
256
+ if (N.length === 0)
257
257
  throw new Error("无法确定根节点:可能存在循环引用或数据不完整");
258
258
  const q = {};
259
- V.forEach((Y) => {
260
- const Z = Y[o];
261
- q[Z] = (q[Z] || 0) + 1;
262
- }), N = Object.entries(q).map(([Y]) => Y);
263
- }
264
- let $ = [];
265
- return N.forEach((X) => {
266
- $ = $.concat(T(X));
267
- }), $;
259
+ N.forEach((Q) => {
260
+ const ee = Q[o];
261
+ q[ee] = (q[ee] || 0) + 1;
262
+ }), z = Object.entries(q).map(([Q]) => Q);
263
+ }
264
+ let A = [];
265
+ return z.forEach((Z) => {
266
+ A = A.concat(S(Z));
267
+ }), A;
268
268
  }
269
269
  function Tt(i, e, t) {
270
- let l;
270
+ let a;
271
271
  for (; i && i.nodeType && i !== document; ) {
272
272
  if (i.className && i.className.split && i.className.split(" ").indexOf(e) > -1)
273
- return l = i, l;
273
+ return a = i, a;
274
274
  if (i === t)
275
275
  return null;
276
276
  i = i.parentNode;
277
277
  }
278
- return l;
278
+ return a;
279
279
  }
280
280
  function ni(i) {
281
281
  return typeof i == "function" || Object.prototype.toString.call(i) === "[object Object]" && !fn(i);
@@ -352,30 +352,30 @@ const ii = /* @__PURE__ */ un({
352
352
  setup(i, {
353
353
  emit: e,
354
354
  slots: t,
355
- expose: l
355
+ expose: a
356
356
  }) {
357
357
  var vt;
358
- const o = hn(), d = oe(), P = oe(!1), T = oe(null), N = oe(null), $ = oe([]);
359
- let X = /* @__PURE__ */ new Map();
360
- const V = /* @__PURE__ */ new Map();
361
- oe(0);
362
- const q = oe([]);
363
- oe([]);
364
- const Y = oe(/* @__PURE__ */ new Set()), Z = oe(/* @__PURE__ */ new Set()), ye = oe(null), W = 2, B = /* @__PURE__ */ new WeakMap(), x = oe(null), m = oe(""), b = /* @__PURE__ */ new Set(), r = ke(() => {
358
+ const o = hn(), u = se(), P = se(!1), S = se(null), z = se(null), A = se([]);
359
+ let Z = /* @__PURE__ */ new Map();
360
+ const N = /* @__PURE__ */ new Map();
361
+ se(0);
362
+ const q = se([]);
363
+ se([]);
364
+ const Q = se(/* @__PURE__ */ new Set()), ee = se(/* @__PURE__ */ new Set()), be = se(null), W = 2, B = /* @__PURE__ */ new WeakMap(), T = se(null), K = se(""), y = /* @__PURE__ */ new Set(), _ = ke(() => {
365
365
  try {
366
- return Array.isArray($.value) ? $.value : [];
366
+ return Array.isArray(A.value) ? A.value : [];
367
367
  } catch {
368
368
  return [];
369
369
  }
370
- }), O = (n) => {
371
- var f, c, u;
370
+ }), r = (n) => {
371
+ var g, d, h;
372
372
  if (!n) return 30;
373
373
  if (n.height) return n.height;
374
- const a = `${n.content_type}_${((f = n.content) == null ? void 0 : f.length) || 0}_${((c = n.title) == null ? void 0 : c.length) || 0}_${n._editing ? 1 : 0}`;
374
+ const l = `${n.content_type}_${((g = n.content) == null ? void 0 : g.length) || 0}_${((d = n.title) == null ? void 0 : d.length) || 0}_${n._editing ? 1 : 0}`;
375
375
  if (B.has(n)) {
376
- const k = B.get(n);
377
- if (k.key === a)
378
- return k.height;
376
+ const x = B.get(n);
377
+ if (x.key === l)
378
+ return x.height;
379
379
  }
380
380
  let s = 30;
381
381
  switch (n.content_type) {
@@ -386,173 +386,173 @@ const ii = /* @__PURE__ */ un({
386
386
  s = n.rowHeight || 35;
387
387
  break;
388
388
  case "table":
389
- const M = ((n.content || "").match(/<tr/g) || []).length;
390
- s = Math.max(100, M * 35 + 30);
389
+ const w = ((n.content || "").match(/<tr/g) || []).length;
390
+ s = Math.max(100, w * 35 + 30);
391
391
  break;
392
392
  case "flowchart":
393
393
  s = 200;
394
394
  break;
395
395
  default: {
396
- const y = (n.content || "").length, p = (n.title || "").length, w = y + p, L = ((u = (n.content || "").match(/[\u4e00-\u9fa5]/g)) == null ? void 0 : u.length) || 0, R = w - L, A = L * 12 + R * 6, H = Math.max(1, Math.ceil(A / 760));
396
+ const m = (n.content || "").length, v = (n.title || "").length, k = m + v, L = ((h = (n.content || "").match(/[\u4e00-\u9fa5]/g)) == null ? void 0 : h.length) || 0, R = k - L, F = L * 12 + R * 6, H = Math.max(1, Math.ceil(F / 760));
397
397
  s = Math.max(20, H * 18), n._editing && (s += 20);
398
398
  break;
399
399
  }
400
400
  }
401
401
  return B.set(n, {
402
- key: a,
402
+ key: l,
403
403
  height: s
404
404
  }), s;
405
- }, g = ke(() => {
406
- if (r.value.length === 0) return 30;
407
- const n = r.value.slice(0, Math.min(100, r.value.length));
405
+ }, D = ke(() => {
406
+ if (_.value.length === 0) return 30;
407
+ const n = _.value.slice(0, Math.min(100, _.value.length));
408
408
  if (n.length === 0) return 30;
409
- const a = n.reduce((f, c) => f + O(c), 0) / n.length, s = Math.max(20, Math.floor(a * 0.6));
409
+ const l = n.reduce((g, d) => g + r(d), 0) / n.length, s = Math.max(20, Math.floor(l * 0.6));
410
410
  return Math.min(s, 60);
411
411
  });
412
- let S;
413
- const E = (n, a) => {
412
+ let c;
413
+ const $ = (n, l) => {
414
414
  e("menu-click", {
415
415
  menu: n,
416
- row: a
417
- }), S == null || S.onClose(), S = null;
418
- }, C = (n) => {
419
- var s, f, c, u, k;
420
- if (!((c = (f = (s = i.menuConfig) == null ? void 0 : s.body) == null ? void 0 : f.options) != null && c.length)) return;
421
- S == null || S.onClose(), S = null;
422
- let a = n.target;
423
- for (; a && (a != null && a.getAttribute) && !(a != null && a.getAttribute("data-id")) && a !== ((u = d.value) == null ? void 0 : u.$el); )
424
- a = a.parentNode;
425
- if ((k = a == null ? void 0 : a.getAttribute) != null && k.call(a, "data-id")) {
426
- const M = a.getAttribute("data-id"), y = we(M);
427
- y && (S = ei({
416
+ row: l
417
+ }), c == null || c.onClose(), c = null;
418
+ }, M = (n) => {
419
+ var s, g, d, h, x;
420
+ if (!((d = (g = (s = i.menuConfig) == null ? void 0 : s.body) == null ? void 0 : g.options) != null && d.length)) return;
421
+ c == null || c.onClose(), c = null;
422
+ let l = n.target;
423
+ for (; l && (l != null && l.getAttribute) && !(l != null && l.getAttribute("data-id")) && l !== ((h = u.value) == null ? void 0 : h.$el); )
424
+ l = l.parentNode;
425
+ if ((x = l == null ? void 0 : l.getAttribute) != null && x.call(l, "data-id")) {
426
+ const w = l.getAttribute("data-id"), m = Ce(w);
427
+ m && (c = ei({
428
428
  e: n,
429
- row: y,
429
+ row: m,
430
430
  menuConfig: i.menuConfig,
431
- onMenuClick: E
431
+ onMenuClick: $
432
432
  }), n.preventDefault(), n.stopPropagation());
433
433
  }
434
- }, I = (n) => {
435
- var s, f, c;
436
- if (!T.value)
434
+ }, C = (n) => {
435
+ var s, g, d;
436
+ if (!S.value)
437
437
  return;
438
- let a = n.target;
439
- for (; a && (a != null && a.getAttribute) && !(a != null && a.getAttribute("data-id")) && a !== ((s = d.value) == null ? void 0 : s.$el); )
440
- if (a = a.parentNode, a != null && a.classList && ["el-popper", "ck-body-wrapper"].some((u) => a.classList.contains(u)))
438
+ let l = n.target;
439
+ for (; l && (l != null && l.getAttribute) && !(l != null && l.getAttribute("data-id")) && l !== ((s = u.value) == null ? void 0 : s.$el); )
440
+ if (l = l.parentNode, l != null && l.classList && ["el-popper", "ck-body-wrapper"].some((h) => l.classList.contains(h)))
441
441
  return;
442
- ((f = a == null ? void 0 : a.getAttribute) == null ? void 0 : f.call(a, "data-id")) != ((c = T.value) == null ? void 0 : c.node_id) && (T.value._editing = !1, e("edit-closed", {
443
- row: T.value,
442
+ ((g = l == null ? void 0 : l.getAttribute) == null ? void 0 : g.call(l, "data-id")) != ((d = S.value) == null ? void 0 : d.node_id) && (S.value._editing = !1, e("edit-closed", {
443
+ row: S.value,
444
444
  column: {},
445
445
  $table: o == null ? void 0 : o.exposed
446
- }), T.value = null);
446
+ }), S.value = null);
447
447
  };
448
- ((vt = i.editConfig) == null ? void 0 : vt.trigger) === "dblclick" && Be(() => T.value, (n) => {
449
- document.removeEventListener("click", I, !0), n && setTimeout(() => {
450
- document.addEventListener("click", I, !0);
448
+ ((vt = i.editConfig) == null ? void 0 : vt.trigger) === "dblclick" && Be(() => S.value, (n) => {
449
+ document.removeEventListener("click", C, !0), n && setTimeout(() => {
450
+ document.addEventListener("click", C, !0);
451
451
  }, 200);
452
452
  });
453
- const D = (n) => JSON.stringify(n.map((a) => {
453
+ const I = (n) => JSON.stringify(n.map((l) => {
454
454
  var s;
455
455
  return {
456
- id: a[i.rowConfig.keyField],
457
- content: ((s = a.content) == null ? void 0 : s.length) || 0,
458
- type: a.content_type,
459
- editing: a._editing
456
+ id: l[i.rowConfig.keyField],
457
+ content: ((s = l.content) == null ? void 0 : s.length) || 0,
458
+ type: l.content_type,
459
+ editing: l._editing
460
460
  };
461
- })), _ = () => {
461
+ })), O = () => {
462
462
  if (!i.pageConfig.enabled) {
463
463
  q.value = [{
464
- items: $.value,
464
+ items: A.value,
465
465
  startIndex: 0,
466
- endIndex: $.value.length
466
+ endIndex: A.value.length
467
467
  }];
468
468
  return;
469
469
  }
470
470
  if (i.pageData && Object.keys(i.pageData).length) {
471
- const n = [], a = i.rowConfig.keyField || "node_id", s = /* @__PURE__ */ new Map();
472
- $.value.forEach((c) => {
473
- s.set(String(c[a]), c);
474
- }), Object.keys(i.pageData).sort((c, u) => parseInt(c) - parseInt(u)).forEach((c) => {
475
- const u = i.pageData[c], k = [];
476
- u.forEach((M) => {
477
- const y = s.get(String(M));
478
- y && k.push(y);
479
- }), k.length > 0 && n.push({
480
- items: k,
481
- pageNumber: parseInt(c),
482
- height: k.reduce((M, y) => M + O(y), 0)
471
+ const n = [], l = i.rowConfig.keyField || "node_id", s = /* @__PURE__ */ new Map();
472
+ A.value.forEach((d) => {
473
+ s.set(String(d[l]), d);
474
+ }), Object.keys(i.pageData).sort((d, h) => parseInt(d) - parseInt(h)).forEach((d) => {
475
+ const h = i.pageData[d], x = [];
476
+ h.forEach((w) => {
477
+ const m = s.get(String(w));
478
+ m && x.push(m);
479
+ }), x.length > 0 && n.push({
480
+ items: x,
481
+ pageNumber: parseInt(d),
482
+ height: x.reduce((w, m) => w + r(m), 0)
483
483
  });
484
484
  }), q.value = n;
485
485
  } else {
486
486
  const {
487
487
  pageHeight: n,
488
- margin: a
489
- } = i.pageConfig, s = n - a * 2, f = [];
490
- let c = [], u = 0, k = 0, M = 1;
491
- $.value.forEach((y, p) => {
492
- const w = O(y);
493
- (y.layer || 0) <= 2 && c.length > 0 ? (f.push({
494
- items: [...c],
495
- startIndex: k,
496
- endIndex: p,
497
- height: u,
498
- pageNumber: M++
499
- }), c = [y], u = w, k = p) : u + w > s && c.length > 0 ? (f.push({
500
- items: [...c],
501
- startIndex: k,
502
- endIndex: p,
503
- height: u,
504
- pageNumber: M++
505
- }), c = [y], u = Math.min(w, s), k = p) : (c.push(y), u += w);
506
- }), c.length > 0 && f.push({
507
- items: c,
508
- startIndex: k,
509
- endIndex: $.value.length,
510
- height: u,
511
- pageNumber: M
512
- }), q.value = f;
488
+ margin: l
489
+ } = i.pageConfig, s = n - l * 2, g = [];
490
+ let d = [], h = 0, x = 0, w = 1;
491
+ A.value.forEach((m, v) => {
492
+ const k = r(m);
493
+ (m.layer || 0) <= 2 && d.length > 0 ? (g.push({
494
+ items: [...d],
495
+ startIndex: x,
496
+ endIndex: v,
497
+ height: h,
498
+ pageNumber: w++
499
+ }), d = [m], h = k, x = v) : h + k > s && d.length > 0 ? (g.push({
500
+ items: [...d],
501
+ startIndex: x,
502
+ endIndex: v,
503
+ height: h,
504
+ pageNumber: w++
505
+ }), d = [m], h = Math.min(k, s), x = v) : (d.push(m), h += k);
506
+ }), d.length > 0 && g.push({
507
+ items: d,
508
+ startIndex: x,
509
+ endIndex: A.value.length,
510
+ height: h,
511
+ pageNumber: w
512
+ }), q.value = g;
513
513
  }
514
- }, pe = () => {
514
+ }, b = () => {
515
515
  try {
516
- const n = Array.isArray(i.data) ? i.data : [], a = D(n);
517
- if (!(a !== m.value) && $.value.length > 0)
516
+ const n = Array.isArray(i.data) ? i.data : [], l = I(n);
517
+ if (!(l !== K.value) && A.value.length > 0)
518
518
  return;
519
- m.value = a;
520
- const f = (i.treeConfig ? ti(n, void 0, i.treeConfig) : n).map((u, k) => {
521
- const M = u[i.rowConfig.keyField], y = V.get(M);
522
- if (!y || y.content !== u.content || y.content_type !== u.content_type) {
523
- b.add(M);
524
- const p = {
525
- ...u,
526
- index: k,
527
- _editing: u._editing || !1,
528
- _original: (y == null ? void 0 : y._original) || {
529
- ...u
519
+ K.value = l;
520
+ const g = (i.treeConfig ? ti(n, void 0, i.treeConfig) : n).map((h, x) => {
521
+ const w = h[i.rowConfig.keyField], m = N.get(w);
522
+ if (!m || m.content !== h.content || m.content_type !== h.content_type) {
523
+ y.add(w);
524
+ const v = {
525
+ ...h,
526
+ index: x,
527
+ _editing: h._editing || !1,
528
+ _original: (m == null ? void 0 : m._original) || {
529
+ ...h
530
530
  }
531
531
  // 保留原始数据,避免重复深拷贝
532
532
  };
533
- return V.set(M, p), p;
533
+ return N.set(w, v), v;
534
534
  }
535
- return y.index = k, y;
535
+ return m.index = x, m;
536
536
  });
537
- $.value = f, _();
538
- const c = new Set(f.map((u) => u[i.rowConfig.keyField]));
539
- for (const [u] of V)
540
- c.has(u) || (V.delete(u), b.delete(u));
537
+ A.value = g, O();
538
+ const d = new Set(g.map((h) => h[i.rowConfig.keyField]));
539
+ for (const [h] of N)
540
+ d.has(h) || (N.delete(h), y.delete(h));
541
541
  } catch {
542
- $.value = [], q.value = [], V.clear(), b.clear();
542
+ A.value = [], q.value = [], N.clear(), y.clear();
543
543
  }
544
544
  };
545
- Be(() => i.data, (n, a) => {
545
+ Be(() => i.data, (n, l) => {
546
546
  try {
547
547
  if (!Array.isArray(n))
548
548
  return;
549
- be(() => {
550
- if (pe(), i.pageConfig.enabled) {
551
- Z.value.clear(), Y.value.clear();
549
+ xe(() => {
550
+ if (b(), i.pageConfig.enabled) {
551
+ ee.value.clear(), Q.value.clear();
552
552
  for (let s = 0; s < Math.min(3, q.value.length); s++)
553
- Z.value.add(s);
554
- be(() => {
555
- ie();
553
+ ee.value.add(s);
554
+ xe(() => {
555
+ ne();
556
556
  });
557
557
  }
558
558
  });
@@ -563,102 +563,102 @@ const ii = /* @__PURE__ */ un({
563
563
  immediate: !1
564
564
  }), Be(() => i.pageData, () => {
565
565
  if (i.pageConfig.enabled) {
566
- _(), Z.value.clear(), Y.value.clear();
566
+ O(), ee.value.clear(), Q.value.clear();
567
567
  for (let n = 0; n < Math.min(3, q.value.length); n++)
568
- Z.value.add(n);
569
- be(() => {
570
- ie();
568
+ ee.value.add(n);
569
+ xe(() => {
570
+ ne();
571
571
  });
572
572
  }
573
573
  }, {
574
574
  deep: !0
575
575
  }), Be(() => i.pageConfig, () => {
576
576
  if (i.pageConfig.enabled) {
577
- _(), Z.value.clear(), Y.value.clear();
577
+ O(), ee.value.clear(), Q.value.clear();
578
578
  for (let n = 0; n < Math.min(3, q.value.length); n++)
579
- Z.value.add(n);
580
- be(() => {
581
- ie();
579
+ ee.value.add(n);
580
+ xe(() => {
581
+ ne();
582
582
  });
583
583
  }
584
584
  }, {
585
585
  deep: !0
586
- }), Be(N, () => e("current-change", {
587
- row: N.value
586
+ }), Be(z, () => e("current-change", {
587
+ row: z.value
588
588
  }));
589
- let ve = null;
590
- const ne = () => {
591
- window.ResizeObserver && (ve = new ResizeObserver((n) => {
592
- var a, s;
593
- for (const f of n) {
594
- const c = (a = f.target.dataset) == null ? void 0 : a.id;
595
- if (!c) continue;
596
- const u = we(c);
597
- if (!u) continue;
598
- const k = f.contentRect.height, M = ((s = B.get(u)) == null ? void 0 : s.height) || 0;
599
- if (Math.abs(M - k) > 5) {
600
- const y = B.get(u) || {};
601
- B.set(u, {
602
- ...y,
603
- height: k
589
+ let ge = null;
590
+ const de = () => {
591
+ window.ResizeObserver && (ge = new ResizeObserver((n) => {
592
+ var l, s;
593
+ for (const g of n) {
594
+ const d = (l = g.target.dataset) == null ? void 0 : l.id;
595
+ if (!d) continue;
596
+ const h = Ce(d);
597
+ if (!h) continue;
598
+ const x = g.contentRect.height, w = ((s = B.get(h)) == null ? void 0 : s.height) || 0;
599
+ if (Math.abs(w - x) > 5) {
600
+ const m = B.get(h) || {};
601
+ B.set(h, {
602
+ ...m,
603
+ height: x
604
604
  }), requestAnimationFrame(() => {
605
- var w;
606
- const p = f.target.__vueParentComponent;
607
- (w = p == null ? void 0 : p.proxy) != null && w.updateSize && p.proxy.updateSize();
605
+ var k;
606
+ const v = g.target.__vueParentComponent;
607
+ (k = v == null ? void 0 : v.proxy) != null && k.updateSize && v.proxy.updateSize();
608
608
  });
609
609
  }
610
610
  }
611
- }), be(() => {
611
+ }), xe(() => {
612
612
  var s;
613
- const n = (s = d.value) == null ? void 0 : s.$el;
613
+ const n = (s = u.value) == null ? void 0 : s.$el;
614
614
  if (!n) return;
615
- n.querySelectorAll("[data-id]").forEach((f) => {
616
- f.dataset.id && ve.observe(f);
615
+ n.querySelectorAll("[data-id]").forEach((g) => {
616
+ g.dataset.id && ge.observe(g);
617
617
  });
618
618
  }));
619
- }, ce = () => {
620
- x.value && (x.value.disconnect(), x.value = null), ve && (ve.disconnect(), ve = null);
621
- }, ie = () => {
622
- i.pageConfig.enabled && (ye.value && ye.value.disconnect(), ye.value = new IntersectionObserver((n) => {
623
- n.forEach((a) => {
624
- const s = parseInt(a.target.dataset.pageIndex);
625
- if (a.isIntersecting) {
626
- Y.value.add(s);
627
- for (let f = Math.max(0, s - W); f <= Math.min(q.value.length - 1, s + W); f++)
628
- Z.value.add(f);
619
+ }, le = () => {
620
+ T.value && (T.value.disconnect(), T.value = null), ge && (ge.disconnect(), ge = null);
621
+ }, ne = () => {
622
+ i.pageConfig.enabled && (be.value && be.value.disconnect(), be.value = new IntersectionObserver((n) => {
623
+ n.forEach((l) => {
624
+ const s = parseInt(l.target.dataset.pageIndex);
625
+ if (l.isIntersecting) {
626
+ Q.value.add(s);
627
+ for (let g = Math.max(0, s - W); g <= Math.min(q.value.length - 1, s + W); g++)
628
+ ee.value.add(g);
629
629
  } else
630
- Y.value.delete(s), setTimeout(() => {
631
- Y.value.has(s) || Array.from(Y.value).some((c) => Math.abs(c - s) <= W * 2) || Z.value.delete(s);
630
+ Q.value.delete(s), setTimeout(() => {
631
+ Q.value.has(s) || Array.from(Q.value).some((d) => Math.abs(d - s) <= W * 2) || ee.value.delete(s);
632
632
  }, 3e3);
633
633
  });
634
634
  }, {
635
635
  root: null,
636
636
  rootMargin: "100px",
637
637
  threshold: 0.01
638
- }), be(() => {
638
+ }), xe(() => {
639
639
  const n = document.querySelector(".a4-pages-container");
640
640
  n && n.querySelectorAll(".a4-page-placeholder").forEach((s) => {
641
- ye.value.observe(s);
641
+ be.value.observe(s);
642
642
  });
643
643
  }));
644
644
  };
645
- rt(() => {
646
- pe(), be(() => {
645
+ ct(() => {
646
+ b(), xe(() => {
647
647
  var n;
648
- if (ne(), he.setup(), ie(), ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (document.addEventListener("selectionchange", dt), document.addEventListener("mouseup", ut)), i.pageConfig.enabled)
649
- for (let a = 0; a < Math.min(3, q.value.length); a++)
650
- Z.value.add(a);
648
+ if (de(), ue.setup(), ne(), ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (document.addEventListener("selectionchange", dt), document.addEventListener("mouseup", ut)), i.pageConfig.enabled)
649
+ for (let l = 0; l < Math.min(3, q.value.length); l++)
650
+ ee.value.add(l);
651
651
  }), P.value = !0;
652
- }), Ze(() => {
652
+ }), et(() => {
653
653
  var n;
654
- ce(), he.cleanup(), ye.value && (ye.value.disconnect(), ye.value = null), ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (document.removeEventListener("selectionchange", dt), document.removeEventListener("mouseup", ut)), Ee && clearTimeout(Ee), X = /* @__PURE__ */ new Map(), V.clear(), Z.value.clear(), Y.value.clear();
654
+ le(), ue.cleanup(), be.value && (be.value.disconnect(), be.value = null), ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (document.removeEventListener("selectionchange", dt), document.removeEventListener("mouseup", ut)), fe && clearTimeout(fe), Z = /* @__PURE__ */ new Map(), N.clear(), ee.value.clear(), Q.value.clear();
655
655
  });
656
- const he = {
656
+ const ue = {
657
657
  handlers: /* @__PURE__ */ new Map(),
658
658
  setup() {
659
- be(() => {
660
- var a;
661
- const n = (a = d.value) == null ? void 0 : a.$el;
659
+ xe(() => {
660
+ var l;
661
+ const n = (l = u.value) == null ? void 0 : l.$el;
662
662
  n && (n.addEventListener("click", this.handleClick.bind(this), {
663
663
  passive: !0
664
664
  }), n.addEventListener("dblclick", this.handleDblClick.bind(this), {
@@ -667,51 +667,51 @@ const ii = /* @__PURE__ */ un({
667
667
  });
668
668
  },
669
669
  handleClick(n) {
670
- const a = n.target.closest("[data-id]");
671
- if (!a) return;
672
- const s = a.dataset.id, f = we(s);
673
- f && Ve(f);
670
+ const l = n.target.closest("[data-id]");
671
+ if (!l) return;
672
+ const s = l.dataset.id, g = Ce(s);
673
+ g && Ke(g);
674
674
  },
675
675
  handleDblClick(n) {
676
- var c;
677
- if (!((c = i.editConfig) != null && c.trigger) === "dblclick") return;
678
- const a = n.target.closest("[data-id]");
679
- if (!a) return;
680
- const s = a.dataset.id, f = we(s);
681
- f && Oe(f);
676
+ var d;
677
+ if (!((d = i.editConfig) != null && d.trigger) === "dblclick") return;
678
+ const l = n.target.closest("[data-id]");
679
+ if (!l) return;
680
+ const s = l.dataset.id, g = Ce(s);
681
+ g && Oe(g);
682
682
  },
683
683
  cleanup() {
684
- var a, s;
685
- const n = (s = (a = d.value) == null ? void 0 : a.$el) == null ? void 0 : s.querySelector(".virtual-table-wrapper");
684
+ var l, s;
685
+ const n = (s = (l = u.value) == null ? void 0 : l.$el) == null ? void 0 : s.querySelector(".virtual-table-wrapper");
686
686
  n && (n.removeEventListener("click", this.handleClick), n.removeEventListener("dblclick", this.handleDblClick));
687
687
  }
688
- }, se = (n) => {
689
- Ve(n);
690
- }, F = (n) => Oe(n);
691
- let Q = null, Pe;
692
- const _e = ({
688
+ }, me = (n) => {
689
+ Ke(n);
690
+ }, re = (n) => Oe(n);
691
+ let E = null, X;
692
+ const Ne = ({
693
693
  row: n,
694
- column: a
695
- }, s, f) => {
696
- var k, M;
697
- const c = f || s.target, u = Tt(c, "virtual-table-cell", (k = d.value) == null ? void 0 : k.$el);
698
- Q === u && Pe && (clearTimeout(Pe), Q = null), ((M = T.value) == null ? void 0 : M[i.rowConfig.keyField]) != (n == null ? void 0 : n[i.rowConfig.keyField]) && setTimeout(() => {
699
- var p, w;
700
- T.value = n;
701
- let y = (p = c == null ? void 0 : c.getAttribute) == null ? void 0 : p.call(c, "field");
702
- if (!y) {
694
+ column: l
695
+ }, s, g) => {
696
+ var x, w;
697
+ const d = g || s.target, h = Tt(d, "virtual-table-cell", (x = u.value) == null ? void 0 : x.$el);
698
+ E === h && X && (clearTimeout(X), E = null), ((w = S.value) == null ? void 0 : w[i.rowConfig.keyField]) != (n == null ? void 0 : n[i.rowConfig.keyField]) && setTimeout(() => {
699
+ var v, k;
700
+ S.value = n;
701
+ let m = (v = d == null ? void 0 : d.getAttribute) == null ? void 0 : v.call(d, "field");
702
+ if (!m) {
703
703
  try {
704
704
  const L = document.getSelection();
705
705
  let R = L == null ? void 0 : L.anchorNode;
706
706
  R && R.nodeType === 3 && (R = R.parentElement);
707
- const A = (w = R == null ? void 0 : R.closest) == null ? void 0 : w.call(R, "[field]");
708
- A && (y = A.getAttribute("field"));
707
+ const F = (k = R == null ? void 0 : R.closest) == null ? void 0 : k.call(R, "[field]");
708
+ F && (m = F.getAttribute("field"));
709
709
  } catch {
710
710
  }
711
- if (!y && (s != null && s.composedPath)) {
711
+ if (!m && (s != null && s.composedPath)) {
712
712
  for (const L of s.composedPath())
713
713
  if (L != null && L.getAttribute && L.getAttribute("field")) {
714
- y = L.getAttribute("field");
714
+ m = L.getAttribute("field");
715
715
  break;
716
716
  }
717
717
  }
@@ -719,134 +719,134 @@ const ii = /* @__PURE__ */ un({
719
719
  e("edit-activated", {
720
720
  row: n,
721
721
  column: {
722
- ...a,
723
- field: y
722
+ ...l,
723
+ field: m
724
724
  },
725
725
  $table: o == null ? void 0 : o.exposed
726
726
  });
727
727
  }, 200);
728
- }, xe = ({
728
+ }, ye = ({
729
729
  row: n,
730
- column: a
731
- }, s, f) => {
732
- var u;
733
- const c = f || s.target;
734
- Q = Tt(c, "virtual-table-cell", (u = d.value) == null ? void 0 : u.$el), Pe && clearTimeout(Pe), Pe = setTimeout(() => {
735
- var y, p, w, L, R;
736
- const k = n.content_type;
737
- let M = (y = c == null ? void 0 : c.getAttribute) == null ? void 0 : y.call(c, "field");
738
- if (!M) {
730
+ column: l
731
+ }, s, g) => {
732
+ var h;
733
+ const d = g || s.target;
734
+ E = Tt(d, "virtual-table-cell", (h = u.value) == null ? void 0 : h.$el), X && clearTimeout(X), X = setTimeout(() => {
735
+ var m, v, k, L, R;
736
+ const x = n.content_type;
737
+ let w = (m = d == null ? void 0 : d.getAttribute) == null ? void 0 : m.call(d, "field");
738
+ if (!w) {
739
739
  try {
740
- const A = document.getSelection();
741
- let H = A == null ? void 0 : A.anchorNode;
740
+ const F = document.getSelection();
741
+ let H = F == null ? void 0 : F.anchorNode;
742
742
  H && H.nodeType === 3 && (H = H.parentElement);
743
- const ee = (p = H == null ? void 0 : H.closest) == null ? void 0 : p.call(H, "[field]");
744
- ee && (M = ee.getAttribute("field"));
743
+ const te = (v = H == null ? void 0 : H.closest) == null ? void 0 : v.call(H, "[field]");
744
+ te && (w = te.getAttribute("field"));
745
745
  } catch {
746
746
  }
747
- if (!M && (s != null && s.composedPath)) {
748
- for (const A of s.composedPath())
749
- if (A != null && A.getAttribute && A.getAttribute("field")) {
750
- M = A.getAttribute("field");
747
+ if (!w && (s != null && s.composedPath)) {
748
+ for (const F of s.composedPath())
749
+ if (F != null && F.getAttribute && F.getAttribute("field")) {
750
+ w = F.getAttribute("field");
751
751
  break;
752
752
  }
753
753
  }
754
754
  }
755
- if (k !== "table") {
756
- if (k === "text") {
757
- let A = null, H = null;
758
- if ((w = c == null ? void 0 : c.getAttribute) != null && w.call(c, "field") ? A = c : (L = c == null ? void 0 : c.closest) != null && L.call(c, "[field]") && (A = c.closest("[field]")), A && (H = A.textContent), M && H !== void 0 && H !== null) {
755
+ if (x !== "table") {
756
+ if (x === "text") {
757
+ let F = null, H = null;
758
+ if ((k = d == null ? void 0 : d.getAttribute) != null && k.call(d, "field") ? F = d : (L = d == null ? void 0 : d.closest) != null && L.call(d, "[field]") && (F = d.closest("[field]")), F && (H = F.textContent), w && H !== void 0 && H !== null) {
759
759
  H = H.trim();
760
- const ee = ((R = n[M]) == null ? void 0 : R.trim()) || "";
761
- H !== ee && (n[M] = H);
760
+ const te = ((R = n[w]) == null ? void 0 : R.trim()) || "";
761
+ H !== te && (n[w] = H);
762
762
  }
763
763
  }
764
764
  }
765
765
  e("edit-closed", {
766
766
  row: n,
767
767
  column: {
768
- ...a,
769
- field: M
768
+ ...l,
769
+ field: w
770
770
  },
771
771
  $table: o == null ? void 0 : o.exposed
772
772
  });
773
773
  }, 50);
774
774
  };
775
- let z = null, Ee = null;
776
- const $e = (n) => {
777
- var a;
778
- ((a = i.editConfig) == null ? void 0 : a.trigger) === "contenteditable" && ct("focusin", n);
779
- }, ze = (n) => {
780
- var a, s, f, c, u;
781
- if (((a = i.editConfig) == null ? void 0 : a.trigger) === "contenteditable")
782
- if (z != null && z.cellEl) {
783
- let k = z.fieldEl;
784
- !k && z.field && (k = (f = (s = z.cellEl) == null ? void 0 : s.querySelector) == null ? void 0 : f.call(s, `[field="${z.field}"]`)), k || (k = ((u = (c = z.cellEl).querySelector) == null ? void 0 : u.call(c, "[field]")) || z.cellEl), xe(z, {
785
- target: k
786
- }, k), z = null;
775
+ let U = null, fe = null;
776
+ const Re = (n) => {
777
+ var l;
778
+ ((l = i.editConfig) == null ? void 0 : l.trigger) === "contenteditable" && Ve("focusin", n);
779
+ }, Pe = (n) => {
780
+ var l, s, g, d, h;
781
+ if (((l = i.editConfig) == null ? void 0 : l.trigger) === "contenteditable")
782
+ if (U != null && U.cellEl) {
783
+ let x = U.fieldEl;
784
+ !x && U.field && (x = (g = (s = U.cellEl) == null ? void 0 : s.querySelector) == null ? void 0 : g.call(s, `[field="${U.field}"]`)), x || (x = ((h = (d = U.cellEl).querySelector) == null ? void 0 : h.call(d, "[field]")) || U.cellEl), ye(U, {
785
+ target: x
786
+ }, x), U = null;
787
787
  } else
788
- ct("focusout", n);
789
- }, ct = (n, a) => {
790
- var s, f, c, u, k, M;
788
+ Ve("focusout", n);
789
+ }, Ve = (n, l) => {
790
+ var s, g, d, h, x, w;
791
791
  try {
792
- const y = document.getSelection();
793
- let p = y == null ? void 0 : y.anchorNode;
794
- p && p.nodeType === 3 && (p = p.parentElement);
795
- const w = (s = p == null ? void 0 : p.closest) == null ? void 0 : s.call(p, ".virtual-table-cell"), L = (f = p == null ? void 0 : p.closest) == null ? void 0 : f.call(p, ".virtual-table-row");
796
- if (!w || !L) return;
797
- const R = L.getAttribute("data-id"), A = w.getAttribute("data-prop"), H = we(R), ee = Le.value.find((fe) => `${fe.prop}` == `${A}`) || {}, de = ((c = p == null ? void 0 : p.closest) == null ? void 0 : c.call(p, "[field]")) || null, U = ((u = de == null ? void 0 : de.getAttribute) == null ? void 0 : u.call(de, "field")) || void 0;
798
- n === "focusin" ? (z = {
792
+ const m = document.getSelection();
793
+ let v = m == null ? void 0 : m.anchorNode;
794
+ v && v.nodeType === 3 && (v = v.parentElement);
795
+ const k = (s = v == null ? void 0 : v.closest) == null ? void 0 : s.call(v, ".virtual-table-cell"), L = (g = v == null ? void 0 : v.closest) == null ? void 0 : g.call(v, ".virtual-table-row");
796
+ if (!k || !L) return;
797
+ const R = L.getAttribute("data-id"), F = k.getAttribute("data-prop"), H = Ce(R), te = $e.value.find((pe) => `${pe.prop}` == `${F}`) || {}, he = ((d = v == null ? void 0 : v.closest) == null ? void 0 : d.call(v, "[field]")) || null, G = ((h = he == null ? void 0 : he.getAttribute) == null ? void 0 : h.call(he, "field")) || void 0;
798
+ n === "focusin" ? (U = {
799
799
  row: H,
800
- column: ee,
801
- cellEl: w,
800
+ column: te,
801
+ cellEl: k,
802
802
  rowEl: L,
803
- fieldEl: de,
804
- field: U
805
- }, _e({
803
+ fieldEl: he,
804
+ field: G
805
+ }, Ne({
806
806
  row: H,
807
- column: ee
808
- }, a, de || ((k = p == null ? void 0 : p.closest) == null ? void 0 : k.call(p, "[field]")))) : xe({
807
+ column: te
808
+ }, l, he || ((x = v == null ? void 0 : v.closest) == null ? void 0 : x.call(v, "[field]")))) : ye({
809
809
  row: H,
810
- column: ee
811
- }, a, de || ((M = p == null ? void 0 : p.closest) == null ? void 0 : M.call(p, "[field]")));
810
+ column: te
811
+ }, l, he || ((w = v == null ? void 0 : v.closest) == null ? void 0 : w.call(v, "[field]")));
812
812
  } catch {
813
813
  }
814
814
  }, dt = () => {
815
815
  var n;
816
- ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (Ee && clearTimeout(Ee), Ee = setTimeout(() => {
817
- var a, s, f, c, u, k, M, y, p, w, L, R, A, H;
816
+ ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && (fe && clearTimeout(fe), fe = setTimeout(() => {
817
+ var l, s, g, d, h, x, w, m, v, k, L, R, F, H;
818
818
  try {
819
- const ee = document.getSelection();
820
- if (ee.rangeCount === 0) return;
821
- const de = ee.getRangeAt(0);
822
- let U = de.startContainer;
823
- U.nodeType === 3 && (U = U.parentElement);
824
- const fe = (a = U == null ? void 0 : U.closest) == null ? void 0 : a.call(U, ".virtual-table-cell"), Ce = (s = U == null ? void 0 : U.closest) == null ? void 0 : s.call(U, ".virtual-table-row");
825
- if (!fe || !Ce) return;
826
- const et = Ce.getAttribute("data-id"), tt = fe.getAttribute("data-prop"), Se = we(et), me = Le.value.find((ae) => `${ae.prop}` == `${tt}`) || {};
827
- if (!z || ((f = z.row) == null ? void 0 : f[i.rowConfig.keyField]) !== (Se == null ? void 0 : Se[i.rowConfig.keyField]) || ((c = z.column) == null ? void 0 : c.prop) !== (me == null ? void 0 : me.prop)) {
828
- if (z) {
829
- let ae = z.fieldEl;
830
- !ae && z.field && (ae = (k = (u = z.cellEl) == null ? void 0 : u.querySelector) == null ? void 0 : k.call(u, `[field="${z.field}"]`)), ae || (ae = ((y = (M = z.cellEl) == null ? void 0 : M.querySelector) == null ? void 0 : y.call(M, "[field]")) || z.cellEl), xe(z, {
819
+ const te = document.getSelection();
820
+ if (te.rangeCount === 0) return;
821
+ const he = te.getRangeAt(0);
822
+ let G = he.startContainer;
823
+ G.nodeType === 3 && (G = G.parentElement);
824
+ const pe = (l = G == null ? void 0 : G.closest) == null ? void 0 : l.call(G, ".virtual-table-cell"), Me = (s = G == null ? void 0 : G.closest) == null ? void 0 : s.call(G, ".virtual-table-row");
825
+ if (!pe || !Me) return;
826
+ const nt = Me.getAttribute("data-id"), it = pe.getAttribute("data-prop"), Se = Ce(nt), _e = $e.value.find((ae) => `${ae.prop}` == `${it}`) || {};
827
+ if (!U || ((g = U.row) == null ? void 0 : g[i.rowConfig.keyField]) !== (Se == null ? void 0 : Se[i.rowConfig.keyField]) || ((d = U.column) == null ? void 0 : d.prop) !== (_e == null ? void 0 : _e.prop)) {
828
+ if (U) {
829
+ let ae = U.fieldEl;
830
+ !ae && U.field && (ae = (x = (h = U.cellEl) == null ? void 0 : h.querySelector) == null ? void 0 : x.call(h, `[field="${U.field}"]`)), ae || (ae = ((m = (w = U.cellEl) == null ? void 0 : w.querySelector) == null ? void 0 : m.call(w, "[field]")) || U.cellEl), ye(U, {
831
831
  target: ae
832
832
  }, ae);
833
833
  }
834
- z = {
834
+ U = {
835
835
  row: Se,
836
- column: me,
837
- cellEl: fe,
838
- rowEl: Ce,
839
- fieldEl: ((p = U == null ? void 0 : U.closest) == null ? void 0 : p.call(U, "[field]")) || null,
840
- field: ((R = (L = ((w = U == null ? void 0 : U.closest) == null ? void 0 : w.call(U, "[field]")) || null) == null ? void 0 : L.getAttribute) == null ? void 0 : R.call(L, "field")) || void 0
841
- }, _e({
836
+ column: _e,
837
+ cellEl: pe,
838
+ rowEl: Me,
839
+ fieldEl: ((v = G == null ? void 0 : G.closest) == null ? void 0 : v.call(G, "[field]")) || null,
840
+ field: ((R = (L = ((k = G == null ? void 0 : G.closest) == null ? void 0 : k.call(G, "[field]")) || null) == null ? void 0 : L.getAttribute) == null ? void 0 : R.call(L, "field")) || void 0
841
+ }, Ne({
842
842
  row: Se,
843
- column: me
843
+ column: _e
844
844
  }, {
845
- target: fe
846
- }, fe);
845
+ target: pe
846
+ }, pe);
847
847
  }
848
- if (ee.toString()) {
849
- const ae = de.endContainer.nodeType === 3 ? de.endContainer.parentElement : de.endContainer, We = (A = ae == null ? void 0 : ae.closest) == null ? void 0 : A.call(ae, ".virtual-table-cell"), Ue = (H = ae == null ? void 0 : ae.closest) == null ? void 0 : H.call(ae, ".virtual-table-row");
848
+ if (te.toString()) {
849
+ const ae = he.endContainer.nodeType === 3 ? he.endContainer.parentElement : he.endContainer, Ge = (F = ae == null ? void 0 : ae.closest) == null ? void 0 : F.call(ae, ".virtual-table-cell"), Je = (H = ae == null ? void 0 : ae.closest) == null ? void 0 : H.call(ae, ".virtual-table-row");
850
850
  }
851
851
  } catch {
852
852
  }
@@ -854,27 +854,27 @@ const ii = /* @__PURE__ */ un({
854
854
  }, ut = () => {
855
855
  var n;
856
856
  ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" && setTimeout(() => {
857
- var f, c, u, k;
858
- const a = document.getSelection();
859
- if (!a) return;
860
- const s = a.toString();
857
+ var g, d, h, x;
858
+ const l = document.getSelection();
859
+ if (!l) return;
860
+ const s = l.toString();
861
861
  if (s) {
862
- const M = a.rangeCount > 0 ? a.getRangeAt(0) : null;
863
- let y = null, p = null;
862
+ const w = l.rangeCount > 0 ? l.getRangeAt(0) : null;
863
+ let m = null, v = null;
864
864
  try {
865
- if (M) {
866
- let w = M.startContainer;
867
- (w == null ? void 0 : w.nodeType) === 3 && (w = w.parentElement);
868
- const L = (f = w == null ? void 0 : w.closest) == null ? void 0 : f.call(w, ".virtual-table-cell"), R = (c = w == null ? void 0 : w.closest) == null ? void 0 : c.call(w, ".virtual-table-row");
869
- y = L && R ? {
865
+ if (w) {
866
+ let k = w.startContainer;
867
+ (k == null ? void 0 : k.nodeType) === 3 && (k = k.parentElement);
868
+ const L = (g = k == null ? void 0 : k.closest) == null ? void 0 : g.call(k, ".virtual-table-cell"), R = (d = k == null ? void 0 : k.closest) == null ? void 0 : d.call(k, ".virtual-table-row");
869
+ m = L && R ? {
870
870
  rowId: R.getAttribute("data-id"),
871
871
  prop: L.getAttribute("data-prop")
872
872
  } : null;
873
- let A = M.endContainer;
874
- (A == null ? void 0 : A.nodeType) === 3 && (A = A.parentElement);
875
- const H = (u = A == null ? void 0 : A.closest) == null ? void 0 : u.call(A, ".virtual-table-cell"), ee = (k = A == null ? void 0 : A.closest) == null ? void 0 : k.call(A, ".virtual-table-row");
876
- p = H && ee ? {
877
- rowId: ee.getAttribute("data-id"),
873
+ let F = w.endContainer;
874
+ (F == null ? void 0 : F.nodeType) === 3 && (F = F.parentElement);
875
+ const H = (h = F == null ? void 0 : F.closest) == null ? void 0 : h.call(F, ".virtual-table-cell"), te = (x = F == null ? void 0 : F.closest) == null ? void 0 : x.call(F, ".virtual-table-row");
876
+ v = H && te ? {
877
+ rowId: te.getAttribute("data-id"),
878
878
  prop: H.getAttribute("data-prop")
879
879
  } : null;
880
880
  }
@@ -882,160 +882,160 @@ const ii = /* @__PURE__ */ un({
882
882
  }
883
883
  e("selection-change", {
884
884
  text: s,
885
- selection: a,
886
- range: M,
887
- start: y,
888
- end: p
885
+ selection: l,
886
+ range: w,
887
+ start: m,
888
+ end: v
889
889
  });
890
890
  }
891
891
  }, 10);
892
- }, Vt = (n) => (n == null ? void 0 : n._editing) === !0, jt = (n) => n != null && n.parent_id ? X.get(n.parent_id) : null, Kt = (n) => {
892
+ }, Vt = (n) => (n == null ? void 0 : n._editing) === !0, jt = (n) => n != null && n.parent_id ? Z.get(n.parent_id) : null, Kt = (n) => {
893
893
  var s;
894
- const a = $.value.findIndex((f) => f[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
895
- return a < 1 ? null : ((s = $.value[a - 1]) == null ? void 0 : s.layer) === n.layer ? $.value[a - 1] : null;
894
+ const l = A.value.findIndex((g) => g[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
895
+ return l < 1 ? null : ((s = A.value[l - 1]) == null ? void 0 : s.layer) === n.layer ? A.value[l - 1] : null;
896
896
  }, qt = (n) => {
897
- const a = $.value.findIndex((s) => s[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
898
- return a >= $.value.length - 1 ? null : $.value[a + 1];
899
- }, we = (n) => {
897
+ const l = A.value.findIndex((s) => s[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
898
+ return l >= A.value.length - 1 ? null : A.value[l + 1];
899
+ }, Ce = (n) => {
900
900
  if (!n) return null;
901
- let a = V.get(n);
902
- return a || (typeof n == "number" ? V.get(`${n}`) : typeof n == "string" && /^\d+$/.test(n) ? V.get(Number(n)) : null);
901
+ let l = N.get(n);
902
+ return l || (typeof n == "number" ? N.get(`${n}`) : typeof n == "string" && /^\d+$/.test(n) ? N.get(Number(n)) : null);
903
903
  };
904
- let Ne = null;
904
+ let je = null;
905
905
  const Wt = (n) => {
906
- Ne && cancelAnimationFrame(Ne), Ne = requestAnimationFrame(() => {
907
- var f;
908
- const a = i.rowConfig.keyField, s = n[a];
906
+ je && cancelAnimationFrame(je), je = requestAnimationFrame(() => {
907
+ var g;
908
+ const l = i.rowConfig.keyField, s = n[l];
909
909
  if (i.pageConfig.enabled) {
910
- let c = -1;
911
- for (let u = 0; u < q.value.length; u++)
912
- if (q.value[u].items.some((y) => y[a] === s)) {
913
- c = u;
910
+ let d = -1;
911
+ for (let h = 0; h < q.value.length; h++)
912
+ if (q.value[h].items.some((m) => m[l] === s)) {
913
+ d = h;
914
914
  break;
915
915
  }
916
- if (c !== -1) {
917
- for (let u = Math.max(0, c - 1); u <= Math.min(q.value.length - 1, c + 1); u++)
918
- Z.value.has(u) || Z.value.add(u);
919
- be(() => {
920
- const u = document.querySelector(".a4-pages-container");
921
- if (!u) return;
922
- const k = (M = 0) => {
923
- const y = u.querySelector(`[data-id="${s}"]`);
924
- if (y) {
925
- let p = 0, w = y;
926
- for (; w && w !== u; )
927
- p += w.offsetTop, w = w.offsetParent;
928
- const L = u.clientHeight;
929
- let R = p - L * 0.3;
916
+ if (d !== -1) {
917
+ for (let h = Math.max(0, d - 1); h <= Math.min(q.value.length - 1, d + 1); h++)
918
+ ee.value.has(h) || ee.value.add(h);
919
+ xe(() => {
920
+ const h = document.querySelector(".a4-pages-container");
921
+ if (!h) return;
922
+ const x = (w = 0) => {
923
+ const m = h.querySelector(`[data-id="${s}"]`);
924
+ if (m) {
925
+ let v = 0, k = m;
926
+ for (; k && k !== h; )
927
+ v += k.offsetTop, k = k.offsetParent;
928
+ const L = h.clientHeight;
929
+ let R = v - L * 0.3;
930
930
  R = Math.max(0, R);
931
- const A = u.scrollTop, H = Math.abs(R - A), ee = (de) => {
932
- const U = u.scrollTop, fe = de - U, Ce = Math.min(800, Math.max(300, H * 0.5)), et = performance.now(), tt = (me) => me < 0.5 ? 4 * me * me * me : 1 - Math.pow(-2 * me + 2, 3) / 2, Se = (me) => {
933
- const mt = me - et, ae = Math.min(mt / Ce, 1), We = tt(ae), Ue = U + fe * We;
934
- u.scrollTop = Ue, ae < 1 ? requestAnimationFrame(Se) : setTimeout(() => {
935
- u.scrollTop = de;
931
+ const F = h.scrollTop, H = Math.abs(R - F), te = (he) => {
932
+ const G = h.scrollTop, pe = he - G, Me = Math.min(800, Math.max(300, H * 0.5)), nt = performance.now(), it = (_e) => _e < 0.5 ? 4 * _e * _e * _e : 1 - Math.pow(-2 * _e + 2, 3) / 2, Se = (_e) => {
933
+ const mt = _e - nt, ae = Math.min(mt / Me, 1), Ge = it(ae), Je = G + pe * Ge;
934
+ h.scrollTop = Je, ae < 1 ? requestAnimationFrame(Se) : setTimeout(() => {
935
+ h.scrollTop = he;
936
936
  }, 50);
937
937
  };
938
938
  requestAnimationFrame(Se);
939
939
  };
940
- H > 3e3 ? u.scrollTo({
940
+ H > 3e3 ? h.scrollTo({
941
941
  top: R,
942
942
  behavior: "instant"
943
- }) : ee(R), y.classList.add("row--highlight"), setTimeout(() => {
944
- y.classList.remove("row--highlight");
943
+ }) : te(R), m.classList.add("row--highlight"), setTimeout(() => {
944
+ m.classList.remove("row--highlight");
945
945
  }, 1500);
946
- } else M < 10 && setTimeout(() => k(M + 1), 150);
946
+ } else w < 10 && setTimeout(() => x(w + 1), 150);
947
947
  };
948
- setTimeout(k, 200);
948
+ setTimeout(x, 200);
949
949
  });
950
950
  }
951
951
  } else {
952
- const c = $.value.findIndex((u) => u[a] === s);
953
- c !== -1 && ((f = d.value) != null && f.scrollToItem) && d.value.scrollToItem(c);
952
+ const d = A.value.findIndex((h) => h[l] === s);
953
+ d !== -1 && ((g = u.value) != null && g.scrollToItem) && u.value.scrollToItem(d);
954
954
  }
955
- Ne = null;
955
+ je = null;
956
956
  });
957
- }, Ve = (n) => {
957
+ }, Ke = (n) => {
958
958
  if (n) {
959
959
  if (!P.value) {
960
- setTimeout(() => Ve(n), 200);
960
+ setTimeout(() => Ke(n), 200);
961
961
  return;
962
962
  }
963
- N.value = n, N.value !== T.value && T.value && (T.value._editing = !1, setTimeout(() => {
964
- T.value = null;
963
+ z.value = n, z.value !== S.value && S.value && (S.value._editing = !1, setTimeout(() => {
964
+ S.value = null;
965
965
  }, 200));
966
966
  }
967
- }, Oe = (n, a) => new Promise((s) => {
968
- var f, c;
969
- if (!((f = i == null ? void 0 : i.editConfig) != null && f.beforeEditMethod && typeof ((c = i == null ? void 0 : i.editConfig) == null ? void 0 : c.beforeEditMethod) == "function" && !i.editConfig.beforeEditMethod({
967
+ }, Oe = (n, l) => new Promise((s) => {
968
+ var g, d;
969
+ if (!((g = i == null ? void 0 : i.editConfig) != null && g.beforeEditMethod && typeof ((d = i == null ? void 0 : i.editConfig) == null ? void 0 : d.beforeEditMethod) == "function" && !i.editConfig.beforeEditMethod({
970
970
  row: n
971
971
  }))) {
972
972
  if (!n || !P.value) {
973
973
  setTimeout(() => Oe(n), 200);
974
974
  return;
975
975
  }
976
- n !== T.value && ($.value.forEach((u) => {
977
- u._editing && e("edit-closed", {
978
- row: u,
976
+ n !== S.value && (A.value.forEach((h) => {
977
+ h._editing && e("edit-closed", {
978
+ row: h,
979
979
  column: {
980
- field: a
980
+ field: l
981
981
  },
982
982
  $table: o == null ? void 0 : o.exposed
983
- }), u._editing = !1;
983
+ }), h._editing = !1;
984
984
  }), n._editing = !0, setTimeout(() => {
985
- T.value = n, e("edit-activated", {
985
+ S.value = n, e("edit-activated", {
986
986
  row: n,
987
987
  column: {
988
- field: a
988
+ field: l
989
989
  },
990
990
  $table: o == null ? void 0 : o.exposed
991
991
  }), s(!0);
992
992
  }));
993
993
  }
994
- }), Ut = (n) => Oe(n), Qe = () => {
995
- if (_(), i.pageConfig.enabled) {
996
- const n = Array.from(Y.value);
994
+ }), Ut = (n) => Oe(n), tt = () => {
995
+ if (O(), i.pageConfig.enabled) {
996
+ const n = Array.from(Q.value);
997
997
  if (n.length > 0) {
998
- const a = Math.min(...n);
999
- for (let s = Math.max(0, a - 1); s <= Math.min(q.value.length - 1, a + 2); s++)
1000
- Z.value.add(s);
998
+ const l = Math.min(...n);
999
+ for (let s = Math.max(0, l - 1); s <= Math.min(q.value.length - 1, l + 2); s++)
1000
+ ee.value.add(s);
1001
1001
  } else
1002
- for (let a = 0; a < Math.min(3, q.value.length); a++)
1003
- Z.value.add(a);
1004
- be(() => {
1005
- ie();
1002
+ for (let l = 0; l < Math.min(3, q.value.length); l++)
1003
+ ee.value.add(l);
1004
+ xe(() => {
1005
+ ne();
1006
1006
  });
1007
1007
  }
1008
- be(() => {
1009
- !i.pageConfig.enabled && d.value && d.value.$forceUpdate && d.value.$forceUpdate();
1008
+ xe(() => {
1009
+ !i.pageConfig.enabled && u.value && u.value.$forceUpdate && u.value.$forceUpdate();
1010
1010
  });
1011
- }, Gt = (n, a) => new Promise((s) => {
1012
- let f = -1;
1013
- if (a == -1) {
1014
- const c = we(n.parent_id);
1015
- for (f = $.value.findIndex((u) => u[i.rowConfig.keyField] == c[i.rowConfig.keyField]) + 1; $.value[f].parent_id == c[i.rowConfig.keyField]; )
1016
- f += 1;
1011
+ }, Gt = (n, l) => new Promise((s) => {
1012
+ let g = -1;
1013
+ if (l == -1) {
1014
+ const d = Ce(n.parent_id);
1015
+ for (g = A.value.findIndex((h) => h[i.rowConfig.keyField] == d[i.rowConfig.keyField]) + 1; A.value[g].parent_id == d[i.rowConfig.keyField]; )
1016
+ g += 1;
1017
1017
  } else
1018
- f = $.value.findIndex((c) => c[i.rowConfig.keyField] == a[i.rowConfig.keyField]);
1019
- X.set(n.node_id, n), V.set(n[i.rowConfig.keyField], n), $.value.splice(f, 0, n), Qe(), s({
1018
+ g = A.value.findIndex((d) => d[i.rowConfig.keyField] == l[i.rowConfig.keyField]);
1019
+ Z.set(n.node_id, n), N.set(n[i.rowConfig.keyField], n), A.value.splice(g, 0, n), tt(), s({
1020
1020
  row: n
1021
1021
  });
1022
- }), Jt = (n, a) => new Promise((s) => {
1023
- const f = $.value.findIndex((c) => c[i.rowConfig.keyField] == a[i.rowConfig.keyField]) + 1;
1024
- X.set(n.node_id, n), V.set(n[i.rowConfig.keyField], n), $.value.splice(f, 0, n), Qe(), s({
1022
+ }), Jt = (n, l) => new Promise((s) => {
1023
+ const g = A.value.findIndex((d) => d[i.rowConfig.keyField] == l[i.rowConfig.keyField]) + 1;
1024
+ Z.set(n.node_id, n), N.set(n[i.rowConfig.keyField], n), A.value.splice(g, 0, n), tt(), s({
1025
1025
  row: n
1026
1026
  });
1027
1027
  }), ht = (n) => {
1028
- const a = $.value.findIndex((s) => s[i.rowConfig.keyField] == n[i.rowConfig.keyField] || s === n);
1029
- if (a > -1) {
1028
+ const l = A.value.findIndex((s) => s[i.rowConfig.keyField] == n[i.rowConfig.keyField] || s === n);
1029
+ if (l > -1) {
1030
1030
  const s = n[i.rowConfig.keyField];
1031
- X.delete(n.node_id), V.delete(s), $.value.splice(a, 1), Qe();
1031
+ Z.delete(n.node_id), N.delete(s), A.value.splice(l, 1), tt();
1032
1032
  }
1033
- }, Xt = (n, a) => {
1033
+ }, Xt = (n, l) => {
1034
1034
  if (!n || !n[i.rowConfig.keyField]) return !1;
1035
1035
  const s = n._original;
1036
- return s ? a ? n[a] !== s[a] : Object.keys(s).some((f) => s[f] !== n[f]) : !1;
1037
- }, Yt = (n) => n && n[i.rowConfig.keyField] && !n._original, Zt = (n, a) => {
1038
- n && n[i.rowConfig.keyField] && (a && Object.assign(n, a), n._original = {
1036
+ return s ? l ? n[l] !== s[l] : Object.keys(s).some((g) => s[g] !== n[g]) : !1;
1037
+ }, Yt = (n) => n && n[i.rowConfig.keyField] && !n._original, Zt = (n, l) => {
1038
+ n && n[i.rowConfig.keyField] && (l && Object.assign(n, l), n._original = {
1039
1039
  ...n,
1040
1040
  _editing: void 0,
1041
1041
  _X_ROW_CHILD: void 0,
@@ -1043,37 +1043,37 @@ const ii = /* @__PURE__ */ un({
1043
1043
  });
1044
1044
  }, Qt = (n) => {
1045
1045
  if (n && n[i.rowConfig.keyField]) {
1046
- const a = we(n[i.rowConfig.keyField]);
1047
- a._original ? Object.assign(a, a._original) : ht(a);
1046
+ const l = Ce(n[i.rowConfig.keyField]);
1047
+ l._original ? Object.assign(l, l._original) : ht(l);
1048
1048
  }
1049
1049
  }, en = () => {
1050
1050
  }, tn = () => {
1051
- N.value = {};
1051
+ z.value = {};
1052
1052
  }, ft = (n) => {
1053
- var s, f, c;
1054
- let a = $.value.findIndex((u) => u[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
1055
- if (a > -1 && i.treeConfig) {
1056
- const u = ((s = i.treeConfig) == null ? void 0 : s.keyField) || ((f = i.treeConfig) == null ? void 0 : f.rowField) || "node_id", k = ((c = i.treeConfig) == null ? void 0 : c.parentField) || "parent_id", M = [], y = /* @__PURE__ */ new Map();
1057
- y.set(n[u], !0);
1058
- for (let p = a + 1; p < $.value.length; p++) {
1059
- const w = $.value[p];
1060
- if (w && y.has(w[k]))
1061
- M.push(w), y.set(w[u]);
1053
+ var s, g, d;
1054
+ let l = A.value.findIndex((h) => h[i.rowConfig.keyField] == n[i.rowConfig.keyField]);
1055
+ if (l > -1 && i.treeConfig) {
1056
+ const h = ((s = i.treeConfig) == null ? void 0 : s.keyField) || ((g = i.treeConfig) == null ? void 0 : g.rowField) || "node_id", x = ((d = i.treeConfig) == null ? void 0 : d.parentField) || "parent_id", w = [], m = /* @__PURE__ */ new Map();
1057
+ m.set(n[h], !0);
1058
+ for (let v = l + 1; v < A.value.length; v++) {
1059
+ const k = A.value[v];
1060
+ if (k && m.has(k[x]))
1061
+ w.push(k), m.set(k[h]);
1062
1062
  else
1063
1063
  break;
1064
1064
  }
1065
- return M;
1065
+ return w;
1066
1066
  }
1067
1067
  return [];
1068
1068
  };
1069
- l({
1069
+ a({
1070
1070
  isEditByRow: Vt,
1071
1071
  getParentRow: jt,
1072
1072
  getSiblingRow: Kt,
1073
1073
  getNextRow: qt,
1074
- getRowById: we,
1074
+ getRowById: Ce,
1075
1075
  scrollToRow: Wt,
1076
- setCurrentRow: Ve,
1076
+ setCurrentRow: Ke,
1077
1077
  setEditRow: Oe,
1078
1078
  setEditCell: Ut,
1079
1079
  insertAt: Gt,
@@ -1087,18 +1087,18 @@ const ii = /* @__PURE__ */ un({
1087
1087
  clearCurrentRow: tn,
1088
1088
  getAllChilds: ft
1089
1089
  });
1090
- const Le = ke(() => t.default().filter((n) => {
1091
- var a;
1092
- return ((a = n.type) == null ? void 0 : a.name) === "VirtualTableColumn";
1090
+ const $e = ke(() => t.default().filter((n) => {
1091
+ var l;
1092
+ return ((l = n.type) == null ? void 0 : l.name) === "VirtualTableColumn";
1093
1093
  }).map((n) => {
1094
- var a, s, f;
1094
+ var l, s, g;
1095
1095
  return {
1096
- prop: (a = n.props) == null ? void 0 : a.prop,
1096
+ prop: (l = n.props) == null ? void 0 : l.prop,
1097
1097
  title: (s = n.props) == null ? void 0 : s.title,
1098
- width: (f = n.props) == null ? void 0 : f.width,
1098
+ width: (g = n.props) == null ? void 0 : g.width,
1099
1099
  slots: n.children
1100
1100
  };
1101
- })), je = (n) => {
1101
+ })), qe = (n) => {
1102
1102
  try {
1103
1103
  return n === 0 ? {
1104
1104
  width: "0px"
@@ -1107,154 +1107,154 @@ const ii = /* @__PURE__ */ un({
1107
1107
  } : {
1108
1108
  flex: "1 1 100%"
1109
1109
  };
1110
- } catch (a) {
1111
- return console.warn("[VirtualTable] computeColumnWidth error:", a), {
1110
+ } catch (l) {
1111
+ return console.warn("[VirtualTable] computeColumnWidth error:", l), {
1112
1112
  flex: "1 1 100%"
1113
1113
  };
1114
1114
  }
1115
1115
  }, gt = ke(() => {
1116
1116
  var n;
1117
- return (n = i.treeConfig) != null && n.childCurrent && N.value ? ft(N.value).map((a) => a[i.rowConfig.keyField]) : [];
1118
- }), pt = oe({
1117
+ return (n = i.treeConfig) != null && n.childCurrent && z.value ? ft(z.value).map((l) => l[i.rowConfig.keyField]) : [];
1118
+ }), pt = se({
1119
1119
  viewStartIndex: 0,
1120
1120
  viewEndIndex: 0,
1121
1121
  visibleStartIndex: 0,
1122
1122
  visibleEndIndex: 0
1123
1123
  });
1124
- let Ke = null, qe = null;
1125
- const nn = (n, a) => {
1126
- Ke && cancelAnimationFrame(Ke), Ke = requestAnimationFrame(() => {
1124
+ let We = null, Ue = null;
1125
+ const nn = (n, l) => {
1126
+ We && cancelAnimationFrame(We), We = requestAnimationFrame(() => {
1127
1127
  e("scroll-end", {
1128
1128
  ...pt.value
1129
- }), Ke = null;
1129
+ }), We = null;
1130
1130
  });
1131
- }, an = (n, a, s, f) => {
1132
- qe && cancelAnimationFrame(qe), qe = requestAnimationFrame(() => {
1131
+ }, ln = (n, l, s, g) => {
1132
+ Ue && cancelAnimationFrame(Ue), Ue = requestAnimationFrame(() => {
1133
1133
  pt.value = {
1134
1134
  viewStartIndex: n,
1135
- viewEndIndex: a,
1135
+ viewEndIndex: l,
1136
1136
  visibleStartIndex: s,
1137
- visibleEndIndex: f
1138
- }, qe = null;
1137
+ visibleEndIndex: g
1138
+ }, Ue = null;
1139
1139
  });
1140
- }, ln = (n, a) => {
1141
- var M, y;
1140
+ }, an = (n, l) => {
1141
+ var w, m;
1142
1142
  const {
1143
1143
  pageHeight: s,
1144
- margin: f,
1145
- showPageBorder: c,
1146
- pageBorderPadding: u,
1147
- pageBorderStyle: k
1144
+ margin: g,
1145
+ showPageBorder: d,
1146
+ pageBorderPadding: h,
1147
+ pageBorderStyle: x
1148
1148
  } = i.pageConfig;
1149
- return Z.value.has(a) ? G(J, null, [i.pageConfig.showPageHeader && t["page-header"] ? (M = t["page-header"]) == null ? void 0 : M.call(t, {
1150
- pageNumber: n.pageNumber || a + 1,
1151
- pageIndex: a
1152
- }) : null, a === 0 && i.showHeader ? G("div", {
1149
+ return ee.value.has(l) ? J(Y, null, [i.pageConfig.showPageHeader && t["page-header"] ? (w = t["page-header"]) == null ? void 0 : w.call(t, {
1150
+ pageNumber: n.pageNumber || l + 1,
1151
+ pageIndex: l
1152
+ }) : null, l === 0 && i.showHeader ? J("div", {
1153
1153
  class: "a4-table-header"
1154
- }, [G("div", {
1154
+ }, [J("div", {
1155
1155
  class: "virtual-table-header we-vt-table--header we-vt-table--header-wrapper"
1156
- }, [Le.value.map((p) => {
1157
- var w, L, R;
1158
- return G("div", {
1156
+ }, [$e.value.map((v) => {
1157
+ var k, L, R;
1158
+ return J("div", {
1159
1159
  class: "we-vt-header--column",
1160
- key: p.prop,
1161
- style: je(p.width)
1162
- }, [G("div", {
1160
+ key: v.prop,
1161
+ style: qe(v.width)
1162
+ }, [J("div", {
1163
1163
  class: "we-vt-cell"
1164
- }, [(w = p.slots) != null && w.header ? (R = (L = p.slots) == null ? void 0 : L.header) == null ? void 0 : R.call(L, {
1165
- column: p
1166
- }) : p.title])]);
1167
- })])]) : null, G("div", {
1164
+ }, [(k = v.slots) != null && k.header ? (R = (L = v.slots) == null ? void 0 : L.header) == null ? void 0 : R.call(L, {
1165
+ column: v
1166
+ }) : v.title])]);
1167
+ })])]) : null, J("div", {
1168
1168
  class: "a4-page-content",
1169
1169
  style: {
1170
- minHeight: `${s - f * 2}px`,
1171
- ...c ? {
1172
- border: k,
1173
- padding: `${u}px`
1170
+ minHeight: `${s - g * 2}px`,
1171
+ ...d ? {
1172
+ border: x,
1173
+ padding: `${h}px`
1174
1174
  } : {}
1175
1175
  }
1176
- }, [n.items.map((p) => {
1177
- var w, L;
1178
- return G("div", {
1179
- key: p[i.rowConfig.keyField],
1180
- "data-id": p[i.rowConfig.keyField],
1176
+ }, [n.items.map((v) => {
1177
+ var k, L;
1178
+ return J("div", {
1179
+ key: v[i.rowConfig.keyField],
1180
+ "data-id": v[i.rowConfig.keyField],
1181
1181
  class: {
1182
1182
  "virtual-table-row": !0,
1183
1183
  "we-vt-body--row": !0,
1184
- "row--current": p[i.rowConfig.keyField] === ((w = N.value) == null ? void 0 : w[i.rowConfig.keyField]) || ((L = i.treeConfig) == null ? void 0 : L.childCurrent) && gt.value.includes(p[i.rowConfig.keyField])
1184
+ "row--current": v[i.rowConfig.keyField] === ((k = z.value) == null ? void 0 : k[i.rowConfig.keyField]) || ((L = i.treeConfig) == null ? void 0 : L.childCurrent) && gt.value.includes(v[i.rowConfig.keyField])
1185
1185
  },
1186
1186
  style: {
1187
1187
  width: "100%"
1188
1188
  },
1189
- onClick: () => se(p),
1190
- onDblclick: () => F(p)
1191
- }, [Le.value.map((R) => {
1192
- var A, H, ee, de, U, fe, Ce;
1193
- return G("div", {
1189
+ onClick: () => me(v),
1190
+ onDblclick: () => re(v)
1191
+ }, [$e.value.map((R) => {
1192
+ var F, H, te, he, G, pe, Me;
1193
+ return J("div", {
1194
1194
  key: R.prop,
1195
1195
  class: "virtual-table-cell we-vt-cell",
1196
- style: je(R.width),
1196
+ style: qe(R.width),
1197
1197
  "data-prop": R.prop
1198
- }, [p._editing && ((A = i.editConfig) == null ? void 0 : A.trigger) === "dblclick" ? ((H = R.slots) == null ? void 0 : H.edit) && ((de = (ee = R.slots) == null ? void 0 : ee.edit) == null ? void 0 : de.call(ee, {
1199
- row: p,
1198
+ }, [v._editing && ((F = i.editConfig) == null ? void 0 : F.trigger) === "dblclick" ? ((H = R.slots) == null ? void 0 : H.edit) && ((he = (te = R.slots) == null ? void 0 : te.edit) == null ? void 0 : he.call(te, {
1199
+ row: v,
1200
1200
  column: R
1201
- })) : ((U = R.slots) == null ? void 0 : U.default) && ((Ce = (fe = R.slots) == null ? void 0 : fe.default) == null ? void 0 : Ce.call(fe, {
1202
- row: p,
1201
+ })) : ((G = R.slots) == null ? void 0 : G.default) && ((Me = (pe = R.slots) == null ? void 0 : pe.default) == null ? void 0 : Me.call(pe, {
1202
+ row: v,
1203
1203
  column: R
1204
1204
  }))]);
1205
1205
  })]);
1206
- })]), t["page-footer"] ? (y = t["page-footer"]) == null ? void 0 : y.call(t, {
1207
- pageNumber: n.pageNumber || a + 1,
1208
- pageIndex: a
1209
- }) : G("div", {
1206
+ })]), t["page-footer"] ? (m = t["page-footer"]) == null ? void 0 : m.call(t, {
1207
+ pageNumber: n.pageNumber || l + 1,
1208
+ pageIndex: l
1209
+ }) : J("div", {
1210
1210
  class: "a4-page-footer",
1211
1211
  contenteditable: "false"
1212
- }, [G("span", {
1212
+ }, [J("span", {
1213
1213
  class: "page-number",
1214
1214
  contenteditable: "false"
1215
- }, [n.pageNumber || a + 1, Re(" / "), q.value.length])])]) : G("div", {
1215
+ }, [n.pageNumber || l + 1, Le(" / "), q.value.length])])]) : J("div", {
1216
1216
  class: "a4-page-loading"
1217
- }, [G("div", {
1217
+ }, [J("div", {
1218
1218
  class: "loading-spinner"
1219
- }, null), G("div", {
1219
+ }, null), J("div", {
1220
1220
  class: "loading-text"
1221
- }, [Re("加载中...")])]);
1221
+ }, [Le("加载中...")])]);
1222
1222
  }, on = () => {
1223
- var k;
1223
+ var x;
1224
1224
  const {
1225
1225
  pageHeight: n,
1226
- pageWidth: a,
1226
+ pageWidth: l,
1227
1227
  margin: s,
1228
- gap: f,
1229
- showPageBorder: c,
1230
- pageBorderPadding: u
1228
+ gap: g,
1229
+ showPageBorder: d,
1230
+ pageBorderPadding: h
1231
1231
  } = i.pageConfig;
1232
- return G("div", {
1232
+ return J("div", {
1233
1233
  class: "virtual-table we-vt-table we-vt-table--render-default border--none"
1234
- }, [G("div", {
1234
+ }, [J("div", {
1235
1235
  class: "a4-pages-container",
1236
- contenteditable: ((k = i.editConfig) == null ? void 0 : k.trigger) === "contenteditable" ? "true" : void 0,
1237
- onContextmenu: C,
1238
- onFocusin: $e,
1239
- onFocusout: ze
1240
- }, [q.value.map((M, y) => {
1241
- const p = Z.value.has(y);
1242
- return G("div", {
1243
- key: `page-${y}`,
1244
- class: p ? "a4-page" : "a4-page-placeholder",
1245
- "data-page-index": y,
1236
+ contenteditable: ((x = i.editConfig) == null ? void 0 : x.trigger) === "contenteditable" ? "true" : void 0,
1237
+ onContextmenu: M,
1238
+ onFocusin: Re,
1239
+ onFocusout: Pe
1240
+ }, [q.value.map((w, m) => {
1241
+ const v = ee.value.has(m);
1242
+ return J("div", {
1243
+ key: `page-${m}`,
1244
+ class: v ? "a4-page" : "a4-page-placeholder",
1245
+ "data-page-index": m,
1246
1246
  style: {
1247
- width: `${a}px`,
1247
+ width: `${l}px`,
1248
1248
  // 不设置minHeight,让内容自然决定高度
1249
- marginBottom: `${f}px`,
1250
- padding: p ? `${c ? s - u : s}px` : "0",
1249
+ marginBottom: `${g}px`,
1250
+ padding: v ? `${d ? s - h : s}px` : "0",
1251
1251
  boxSizing: "border-box",
1252
1252
  // 使用relative定位,确保内部元素定位正确
1253
1253
  position: "relative",
1254
1254
  // 确保内容能够正常撑开
1255
1255
  overflow: "visible"
1256
1256
  }
1257
- }, [G("div", {
1257
+ }, [J("div", {
1258
1258
  style: {
1259
1259
  position: "absolute",
1260
1260
  top: 0,
@@ -1264,91 +1264,91 @@ const ii = /* @__PURE__ */ un({
1264
1264
  visibility: "hidden",
1265
1265
  pointerEvents: "none"
1266
1266
  }
1267
- }, null), ln(M, y)]);
1267
+ }, null), an(w, m)]);
1268
1268
  })])]);
1269
1269
  }, sn = () => {
1270
1270
  var n;
1271
- return G("div", {
1271
+ return J("div", {
1272
1272
  class: "virtual-table we-vt-table we-vt-table--render-default border--none"
1273
- }, [i.showHeader ? G("div", {
1273
+ }, [i.showHeader ? J("div", {
1274
1274
  class: "virtual-table-header we-vt-table--header we-vt-table--header-wrapper"
1275
- }, [Le.value.map((a) => {
1276
- var s, f, c;
1277
- return G("div", {
1275
+ }, [$e.value.map((l) => {
1276
+ var s, g, d;
1277
+ return J("div", {
1278
1278
  class: "we-vt-header--column",
1279
- key: a.prop,
1280
- style: je(a.width)
1281
- }, [G("div", {
1279
+ key: l.prop,
1280
+ style: qe(l.width)
1281
+ }, [J("div", {
1282
1282
  class: "we-vt-cell"
1283
- }, [(s = a.slots) != null && s.header ? (c = (f = a.slots) == null ? void 0 : f.header) == null ? void 0 : c.call(f, {
1284
- column: a
1285
- }) : a.title]), G("div", {
1283
+ }, [(s = l.slots) != null && s.header ? (d = (g = l.slots) == null ? void 0 : g.header) == null ? void 0 : d.call(g, {
1284
+ column: l
1285
+ }) : l.title]), J("div", {
1286
1286
  class: "we-vt-resizable is--line"
1287
1287
  }, null)]);
1288
- })]) : void 0, G(yn, {
1289
- ref: d,
1290
- items: r.value,
1291
- minItemSize: g.value,
1288
+ })]) : void 0, J(yn, {
1289
+ ref: u,
1290
+ items: _.value,
1291
+ minItemSize: D.value,
1292
1292
  keyField: i.rowConfig.keyField,
1293
1293
  emitUpdate: !1,
1294
1294
  buffer: 300,
1295
1295
  class: "virtual-table-wrapper",
1296
1296
  contenteditable: ((n = i.editConfig) == null ? void 0 : n.trigger) === "contenteditable" ? "true" : void 0,
1297
- onContextmenu: C,
1297
+ onContextmenu: M,
1298
1298
  onScrollend: nn,
1299
- onUpdate: an,
1300
- onFocusin: $e,
1301
- onFocusout: ze
1299
+ onUpdate: ln,
1300
+ onFocusin: Re,
1301
+ onFocusout: Pe
1302
1302
  }, {
1303
1303
  default: ({
1304
- item: a,
1304
+ item: l,
1305
1305
  index: s,
1306
- active: f
1306
+ active: g
1307
1307
  }) => {
1308
- var u, k, M;
1309
- let c;
1310
- return G(_n, {
1311
- key: a[i.rowConfig.keyField],
1312
- item: a,
1313
- active: f,
1314
- sizeDependencies: [(u = a.content) == null ? void 0 : u.length, a._editing, a.content_type],
1315
- "data-id": a[i.rowConfig.keyField],
1308
+ var h, x, w;
1309
+ let d;
1310
+ return J(_n, {
1311
+ key: l[i.rowConfig.keyField],
1312
+ item: l,
1313
+ active: g,
1314
+ sizeDependencies: [(h = l.content) == null ? void 0 : h.length, l._editing, l.content_type],
1315
+ "data-id": l[i.rowConfig.keyField],
1316
1316
  "data-index": s,
1317
- "data-active": f,
1317
+ "data-active": g,
1318
1318
  class: {
1319
1319
  "virtual-table-row": !0,
1320
1320
  "we-vt-body--row": !0,
1321
- "row--current": a[i.rowConfig.keyField] === ((k = N.value) == null ? void 0 : k[i.rowConfig.keyField]) || // 如果是树,并且配置了childCurrent高亮子节点
1322
- ((M = i.treeConfig) == null ? void 0 : M.childCurrent) && gt.value.includes(a[i.rowConfig.keyField])
1321
+ "row--current": l[i.rowConfig.keyField] === ((x = z.value) == null ? void 0 : x[i.rowConfig.keyField]) || // 如果是树,并且配置了childCurrent高亮子节点
1322
+ ((w = i.treeConfig) == null ? void 0 : w.childCurrent) && gt.value.includes(l[i.rowConfig.keyField])
1323
1323
  }
1324
- }, ni(c = Le.value.map((y) => {
1325
- var p, w, L, R, A, H, ee;
1326
- return G("div", {
1327
- key: y.prop,
1324
+ }, ni(d = $e.value.map((m) => {
1325
+ var v, k, L, R, F, H, te;
1326
+ return J("div", {
1327
+ key: m.prop,
1328
1328
  class: "virtual-table-cell we-vt-cell",
1329
- style: je(y.width),
1330
- "data-prop": y.prop
1331
- }, [a._editing && ((p = i.editConfig) == null ? void 0 : p.trigger) === "dblclick" ? ((w = y.slots) == null ? void 0 : w.edit) && ((R = (L = y.slots) == null ? void 0 : L.edit) == null ? void 0 : R.call(L, {
1332
- row: a,
1333
- column: y
1334
- })) : ((A = y.slots) == null ? void 0 : A.default) && ((ee = (H = y.slots) == null ? void 0 : H.default) == null ? void 0 : ee.call(H, {
1335
- row: a,
1336
- column: y
1329
+ style: qe(m.width),
1330
+ "data-prop": m.prop
1331
+ }, [l._editing && ((v = i.editConfig) == null ? void 0 : v.trigger) === "dblclick" ? ((k = m.slots) == null ? void 0 : k.edit) && ((R = (L = m.slots) == null ? void 0 : L.edit) == null ? void 0 : R.call(L, {
1332
+ row: l,
1333
+ column: m
1334
+ })) : ((F = m.slots) == null ? void 0 : F.default) && ((te = (H = m.slots) == null ? void 0 : H.default) == null ? void 0 : te.call(H, {
1335
+ row: l,
1336
+ column: m
1337
1337
  }))]);
1338
- })) ? c : {
1339
- default: () => [c]
1338
+ })) ? d : {
1339
+ default: () => [d]
1340
1340
  });
1341
1341
  }
1342
1342
  })]);
1343
1343
  };
1344
1344
  return () => i.pageConfig.enabled ? on() : sn();
1345
1345
  }
1346
- }), De = (i, e) => {
1346
+ }), ze = (i, e) => {
1347
1347
  const t = i.__vccOpts || i;
1348
- for (const [l, o] of e)
1349
- t[l] = o;
1348
+ for (const [a, o] of e)
1349
+ t[a] = o;
1350
1350
  return t;
1351
- }, ai = /* @__PURE__ */ De(ii, [["__scopeId", "data-v-274d8f6d"]]), li = {
1351
+ }, li = /* @__PURE__ */ ze(ii, [["__scopeId", "data-v-274d8f6d"]]), ai = {
1352
1352
  name: "VirtualTableColumn",
1353
1353
  props: {
1354
1354
  prop: String,
@@ -1356,10 +1356,10 @@ const ii = /* @__PURE__ */ un({
1356
1356
  width: [String, Number]
1357
1357
  }
1358
1358
  };
1359
- function oi(i, e, t, l, o, d) {
1359
+ function oi(i, e, t, a, o, u) {
1360
1360
  return gn(i.$slots, "default");
1361
1361
  }
1362
- const si = /* @__PURE__ */ De(li, [["render", oi]]), ri = { class: "catalog-node" }, ci = ["title"], di = { class: "catalog-node__text" }, ui = {
1362
+ const si = /* @__PURE__ */ ze(ai, [["render", oi]]), ri = { class: "catalog-node" }, ci = ["title"], di = { class: "catalog-node__text" }, ui = {
1363
1363
  key: 0,
1364
1364
  class: "catalog-node__children"
1365
1365
  }, hi = {
@@ -1371,43 +1371,43 @@ const si = /* @__PURE__ */ De(li, [["render", oi]]), ri = { class: "catalog-node
1371
1371
  },
1372
1372
  emits: ["navigate"],
1373
1373
  setup(i, { emit: e }) {
1374
- const t = i, l = e, o = oe(!0), d = ke(() => t.item.children && t.item.children.length > 0);
1375
- function P(T) {
1376
- T.stopPropagation(), o.value = !o.value;
1374
+ const t = i, a = e, o = se(!0), u = ke(() => t.item.children && t.item.children.length > 0);
1375
+ function P(S) {
1376
+ S.stopPropagation(), o.value = !o.value;
1377
1377
  }
1378
- return (T, N) => {
1379
- const $ = pn("CatalogNode", !0);
1380
- return h(), v("div", ri, [
1381
- re("div", {
1382
- class: Ie(["catalog-node__label", { "is-active": i.activeId === i.item.nodeId }]),
1383
- style: K({ paddingLeft: 10 + i.depth * 14 + "px" }),
1378
+ return (S, z) => {
1379
+ const A = pn("CatalogNode", !0);
1380
+ return f(), p("div", ri, [
1381
+ ce("div", {
1382
+ class: Ee(["catalog-node__label", { "is-active": i.activeId === i.item.nodeId }]),
1383
+ style: j({ paddingLeft: 10 + i.depth * 14 + "px" }),
1384
1384
  title: i.item.name,
1385
- onClick: N[0] || (N[0] = (X) => l("navigate", i.item))
1385
+ onClick: z[0] || (z[0] = (Z) => a("navigate", i.item))
1386
1386
  }, [
1387
- re("span", {
1387
+ ce("span", {
1388
1388
  class: "catalog-node__toggle",
1389
1389
  onClick: P
1390
1390
  }, [
1391
- d.value ? (h(), Fe(Xe(o.value ? Ae(Dn) : Ae(Ht)), {
1391
+ u.value ? (f(), Fe(Ze(o.value ? Ae(Dn) : Ae(Ht)), {
1392
1392
  key: 0,
1393
1393
  size: 14
1394
- })) : ge("", !0)
1394
+ })) : ve("", !0)
1395
1395
  ]),
1396
- re("span", di, te(i.item.name || "(无标题)"), 1)
1396
+ ce("span", di, ie(i.item.name || "(无标题)"), 1)
1397
1397
  ], 14, ci),
1398
- d.value && o.value ? (h(), v("div", ui, [
1399
- (h(!0), v(J, null, le(i.item.children, (X) => (h(), Fe($, {
1400
- key: X.nodeId,
1401
- item: X,
1398
+ u.value && o.value ? (f(), p("div", ui, [
1399
+ (f(!0), p(Y, null, oe(i.item.children, (Z) => (f(), Fe(A, {
1400
+ key: Z.nodeId,
1401
+ item: Z,
1402
1402
  depth: i.depth + 1,
1403
1403
  "active-id": i.activeId,
1404
- onNavigate: N[1] || (N[1] = (V) => l("navigate", V))
1404
+ onNavigate: z[1] || (z[1] = (N) => a("navigate", N))
1405
1405
  }, null, 8, ["item", "depth", "active-id"]))), 128))
1406
- ])) : ge("", !0)
1406
+ ])) : ve("", !0)
1407
1407
  ]);
1408
1408
  };
1409
1409
  }
1410
- }, fi = /* @__PURE__ */ De(hi, [["__scopeId", "data-v-75ca10a3"]]), gi = {
1410
+ }, fi = /* @__PURE__ */ ze(hi, [["__scopeId", "data-v-75ca10a3"]]), gi = {
1411
1411
  key: 0,
1412
1412
  class: "catalog catalog--collapsed"
1413
1413
  }, pi = {
@@ -1423,44 +1423,44 @@ const si = /* @__PURE__ */ De(li, [["render", oi]]), ri = { class: "catalog-node
1423
1423
  },
1424
1424
  emits: ["navigate"],
1425
1425
  setup(i, { emit: e }) {
1426
- const t = e, l = oe(!1), o = oe("");
1427
- function d(P) {
1426
+ const t = e, a = se(!1), o = se("");
1427
+ function u(P) {
1428
1428
  o.value = P.nodeId, t("navigate", P);
1429
1429
  }
1430
- return (P, T) => l.value ? (h(), v("div", gi, [
1431
- re("button", {
1430
+ return (P, S) => a.value ? (f(), p("div", gi, [
1431
+ ce("button", {
1432
1432
  class: "catalog__icon-btn",
1433
1433
  title: "展开目录",
1434
- onClick: T[0] || (T[0] = (N) => l.value = !1)
1434
+ onClick: S[0] || (S[0] = (z) => a.value = !1)
1435
1435
  }, [
1436
- G(Ae(zn), { size: 18 })
1436
+ J(Ae(zn), { size: 18 })
1437
1437
  ])
1438
- ])) : (h(), v("div", pi, [
1439
- re("div", vi, [
1440
- re("span", mi, [
1441
- G(Ae(Nn), { size: 16 }),
1442
- T[2] || (T[2] = Re(" 目录 ", -1))
1438
+ ])) : (f(), p("div", pi, [
1439
+ ce("div", vi, [
1440
+ ce("span", mi, [
1441
+ J(Ae(Nn), { size: 16 }),
1442
+ S[2] || (S[2] = Le(" 目录 ", -1))
1443
1443
  ]),
1444
- re("button", {
1444
+ ce("button", {
1445
1445
  class: "catalog__icon-btn",
1446
1446
  title: "收起目录",
1447
- onClick: T[1] || (T[1] = (N) => l.value = !0)
1447
+ onClick: S[1] || (S[1] = (z) => a.value = !0)
1448
1448
  }, [
1449
- G(Ae(Vn), { size: 18 })
1449
+ J(Ae(Vn), { size: 18 })
1450
1450
  ])
1451
1451
  ]),
1452
- re("div", yi, [
1453
- (h(!0), v(J, null, le(i.items, (N) => (h(), Fe(fi, {
1454
- key: N.nodeId,
1455
- item: N,
1452
+ ce("div", yi, [
1453
+ (f(!0), p(Y, null, oe(i.items, (z) => (f(), Fe(fi, {
1454
+ key: z.nodeId,
1455
+ item: z,
1456
1456
  "active-id": o.value,
1457
- onNavigate: d
1457
+ onNavigate: u
1458
1458
  }, null, 8, ["item", "active-id"]))), 128)),
1459
- i.items.length ? ge("", !0) : (h(), v("div", _i, " 暂无目录 "))
1459
+ i.items.length ? ve("", !0) : (f(), p("div", _i, " 暂无目录 "))
1460
1460
  ])
1461
1461
  ]));
1462
1462
  }
1463
- }, xi = /* @__PURE__ */ De(bi, [["__scopeId", "data-v-c64a3b3a"]]), ki = {
1463
+ }, xi = /* @__PURE__ */ ze(bi, [["__scopeId", "data-v-c64a3b3a"]]), ki = {
1464
1464
  first: 1,
1465
1465
  second: 2,
1466
1466
  third: 3,
@@ -1474,25 +1474,25 @@ function wi(i) {
1474
1474
  function Ci(i) {
1475
1475
  const e = [];
1476
1476
  for (const o of i || []) {
1477
- const d = wi(o);
1478
- d && e.push({
1477
+ const u = wi(o);
1478
+ u && e.push({
1479
1479
  id: o.node_id,
1480
1480
  nodeId: o.node_id,
1481
1481
  name: (o.content || "").trim(),
1482
- level: d,
1482
+ level: u,
1483
1483
  children: []
1484
1484
  });
1485
1485
  }
1486
1486
  if (!e.length) return [];
1487
- const t = (o, d) => {
1488
- const P = d.children[d.children.length - 1];
1489
- P && o.level > P.level ? t(o, P) : d.children.push(o);
1490
- }, l = [];
1487
+ const t = (o, u) => {
1488
+ const P = u.children[u.children.length - 1];
1489
+ P && o.level > P.level ? t(o, P) : u.children.push(o);
1490
+ }, a = [];
1491
1491
  for (const o of e) {
1492
- const d = l[l.length - 1];
1493
- d && o.level > d.level ? t(o, d) : l.push(o);
1492
+ const u = a[a.length - 1];
1493
+ u && o.level > u.level ? t(o, u) : a.push(o);
1494
1494
  }
1495
- return l;
1495
+ return a;
1496
1496
  }
1497
1497
  const Mi = {
1498
1498
  first: 0,
@@ -1504,45 +1504,45 @@ const Mi = {
1504
1504
  seventh: 6,
1505
1505
  eighth: 7
1506
1506
  };
1507
- function Ge(i, e) {
1508
- let t = "", l = i;
1507
+ function Xe(i, e) {
1508
+ let t = "", a = i;
1509
1509
  const o = e ? 65 : 97;
1510
- for (; l > 0; ) {
1511
- const d = (l - 1) % 26;
1512
- t = String.fromCharCode(o + d) + t, l = Math.floor((l - 1) / 26);
1510
+ for (; a > 0; ) {
1511
+ const u = (a - 1) % 26;
1512
+ t = String.fromCharCode(o + u) + t, a = Math.floor((a - 1) / 26);
1513
1513
  }
1514
1514
  return t;
1515
1515
  }
1516
1516
  const Ft = [
1517
1517
  (i) => i.toString(),
1518
1518
  // first:数字
1519
- (i) => Ge(i, !0),
1519
+ (i) => Xe(i, !0),
1520
1520
  // second:大写字母
1521
1521
  (i) => `(${i})`,
1522
1522
  // third:括号数字
1523
- (i) => `(${Ge(i, !1)})`,
1523
+ (i) => `(${Xe(i, !1)})`,
1524
1524
  // fourth:括号小写字母
1525
1525
  (i) => `${i})`,
1526
1526
  // fifth:数字+右括号
1527
- (i) => `${Ge(i, !1)})`,
1527
+ (i) => `${Xe(i, !1)})`,
1528
1528
  // sixth:小写字母+右括号
1529
1529
  (i) => `<${i}>`,
1530
1530
  // seventh:数字+尖括号
1531
- (i) => `<${Ge(i, !1)}>`
1531
+ (i) => `<${Xe(i, !1)}>`
1532
1532
  // eighth:小写字母+尖括号
1533
1533
  ];
1534
1534
  function Ii() {
1535
1535
  const i = new Array(8).fill(0);
1536
1536
  return {
1537
1537
  next(e, t) {
1538
- const l = Mi[e];
1539
- if (l == null) return "";
1540
- i[l]++;
1541
- for (let d = l + 1; d < i.length; d++) i[d] = 0;
1538
+ const a = Mi[e];
1539
+ if (a == null) return "";
1540
+ i[a]++;
1541
+ for (let u = a + 1; u < i.length; u++) i[u] = 0;
1542
1542
  if (t != null && t !== "")
1543
1543
  return `${t} `;
1544
- const o = Ft[Math.min(l, Ft.length - 1)];
1545
- return `${o(i[l])}. `;
1544
+ const o = Ft[Math.min(a, Ft.length - 1)];
1545
+ return `${o(i[a])}. `;
1546
1546
  }
1547
1547
  };
1548
1548
  }
@@ -1555,10 +1555,7 @@ const Ei = { class: "editor-layout word-editor-scope" }, Si = { class: "editor-c
1555
1555
  }, Ai = ["href"], Pi = ["src"], $i = ["checked"], Li = ["checked"], Ri = {
1556
1556
  key: 4,
1557
1557
  class: "ctrl-input"
1558
- }, Oi = ["checked"], Bi = ["checked"], Hi = {
1559
- key: 8,
1560
- class: "doc-tab"
1561
- }, Di = { key: 0 }, zi = ["colspan", "rowspan"], Ni = { key: 0 }, Vi = ["src"], ji = ["href"], Ki = ["checked"], qi = ["checked"], Wi = ["checked"], lt = 14, Me = 1123, At = 760, Pt = 756, Ui = {
1558
+ }, Oi = ["checked"], Bi = ["checked"], Hi = { key: 0 }, Di = ["colspan", "rowspan"], zi = { key: 0 }, Ni = ["src"], Vi = ["href"], ji = ["checked"], Ki = ["checked"], qi = ["checked"], He = 14, Ie = 1123, At = 760, Pt = 756, Wi = {
1562
1559
  __name: "index",
1563
1560
  props: {
1564
1561
  // 文档结构数据(IElement[]),来源由使用方决定
@@ -1573,276 +1570,295 @@ const Ei = { class: "editor-layout word-editor-scope" }, Si = { class: "editor-c
1573
1570
  }
1574
1571
  },
1575
1572
  setup(i) {
1576
- const e = i, t = ke(() => e.data || []), l = oe(null), o = oe({});
1577
- let d = null;
1578
- rt(() => {
1579
- d = new ResizeObserver((m) => {
1580
- const b = {};
1581
- for (const r of m) {
1582
- const O = r.target._rowKey;
1583
- if (!O) continue;
1584
- const g = Math.round(r.contentRect.height);
1585
- g > (o.value[O] || 0) && (b[O] = g);
1573
+ const e = i, t = ke(() => e.data || []), a = se(null), o = se({});
1574
+ let u = null;
1575
+ ct(() => {
1576
+ u = new ResizeObserver((y) => {
1577
+ const _ = {};
1578
+ for (const r of y) {
1579
+ const D = r.target._rowKey;
1580
+ if (!D) continue;
1581
+ const c = Math.round(r.contentRect.height);
1582
+ c > (o.value[D] || 0) && (_[D] = c);
1586
1583
  }
1587
- Object.keys(b).length && (o.value = { ...o.value, ...b });
1584
+ Object.keys(_).length && (o.value = { ...o.value, ..._ });
1588
1585
  });
1589
- }), Ze(() => {
1590
- d == null || d.disconnect(), d = null;
1586
+ }), et(() => {
1587
+ u == null || u.disconnect(), u = null;
1591
1588
  });
1592
- function P(m, b) {
1593
- !m || !d || (m._rowKey = b, d.observe(m));
1589
+ function P(y, _) {
1590
+ !y || !u || (y._rowKey = _, u.observe(y));
1594
1591
  }
1595
- const T = {
1592
+ const S = {
1596
1593
  left: "left",
1597
1594
  center: "center",
1598
1595
  right: "right",
1599
1596
  alignment: "justify",
1600
1597
  justify: "justify"
1601
1598
  };
1602
- function N(m) {
1603
- const b = [];
1599
+ function z(y) {
1600
+ const _ = [];
1604
1601
  let r = !1;
1605
- const O = (g) => {
1606
- r ? (r = !1, b.push({ ...g, _coverBreakBefore: !0 })) : b.push(g);
1602
+ const D = (c) => {
1603
+ if (r) {
1604
+ if (c && c.value != null && /^[\n\u200B]+$/.test(c.value)) {
1605
+ _.push(c);
1606
+ return;
1607
+ }
1608
+ r = !1, _.push({ ...c, _coverBreakBefore: !0 });
1609
+ } else
1610
+ _.push(c);
1607
1611
  };
1608
- for (const g of m || [])
1609
- if (g && g.type === "area") {
1610
- const S = N(g.valueList || []);
1611
- if ((g.areaId || "").includes("cover")) {
1612
- let E = !1;
1613
- for (const C of S)
1614
- !E && C.type === "table" && C.extension ? (b.push({ ...C, _coverBreakBefore: !0 }), E = !0) : O(C);
1615
- r = !0;
1616
- } else
1617
- for (const E of S) O(E);
1612
+ for (const c of y || []) {
1613
+ if (c && c.type === "pageBreak") {
1614
+ r = !0;
1615
+ continue;
1616
+ }
1617
+ if (c && c.type === "area") {
1618
+ const $ = z(c.valueList || []);
1619
+ for (const M of $) D(M);
1618
1620
  } else
1619
- O(g);
1620
- return b;
1621
+ D(c);
1622
+ }
1623
+ return _;
1621
1624
  }
1622
- function $(m) {
1623
- const b = N(m), r = [];
1624
- let O = [], g = 0, S = null;
1625
- const E = (I) => {
1626
- O.length && (r.push({ type: "paragraph", elements: [...O], rowFlex: I }), O = []);
1625
+ function A(y) {
1626
+ const _ = z(y), r = [];
1627
+ let D = [], c = 0, $ = null;
1628
+ const M = (I) => {
1629
+ D.length && (r.push({ type: "paragraph", elements: [...D], rowFlex: I }), D = []);
1627
1630
  }, C = () => {
1628
- if (g === 0) return;
1629
- const I = S;
1630
- E(I);
1631
- for (let D = 1; D < g; D++)
1631
+ if (c === 0) return;
1632
+ const I = $;
1633
+ M(I);
1634
+ for (let O = 1; O < c; O++)
1632
1635
  r.push({ type: "paragraph", elements: [], rowFlex: I });
1633
- g = 0, S = null;
1636
+ c = 0, $ = null;
1634
1637
  };
1635
- for (const I of b || [])
1638
+ for (const I of _ || [])
1636
1639
  if (I.type === "table")
1637
- C(), E(), r.push({ type: "table", el: I });
1640
+ C(), M(), r.push({ type: "table", el: I });
1638
1641
  else if (I.type === "title")
1639
- C(), E(), r.push({ type: "title", el: I });
1642
+ C(), M(), r.push({ type: "title", el: I });
1640
1643
  else if (I.type === "list") {
1641
- C(), E();
1642
- const D = [];
1643
- let _ = [];
1644
- for (const pe of I.valueList || [])
1645
- pe.value === `
1646
- ` || pe.value === "​" ? (D.push([..._]), _ = []) : _.push(pe);
1647
- (_.length || D.length === 0) && D.push([..._]), r.push({ type: "list", listType: I.listType || "ul", listStyle: I.listStyle || "disc", items: D });
1644
+ C(), M();
1645
+ const O = [];
1646
+ let b = [];
1647
+ for (const ge of I.valueList || [])
1648
+ ge.value === `
1649
+ ` || ge.value === "​" ? (O.push([...b]), b = []) : b.push(ge);
1650
+ (b.length || O.length === 0) && O.push([...b]), r.push({ type: "list", listType: I.listType || "ul", listStyle: I.listStyle || "disc", items: O });
1648
1651
  } else if (I.listId) {
1649
- C(), E();
1650
- const D = I.value === "​" || I.value === "" ? [] : [I];
1651
- r.push({ type: "list", listType: I.listType || "ul", listStyle: I.listStyle || "disc", items: [D] });
1652
- } else I.value != null && /^[\n\u200B]+$/.test(I.value) ? (g += I.value.length, I.rowFlex && (S = I.rowFlex)) : (C(), O.push(I));
1653
- return C(), E(), r;
1652
+ C(), M();
1653
+ const O = I.value === "​" || I.value === "" ? [] : [I];
1654
+ r.push({ type: "list", listType: I.listType || "ul", listStyle: I.listStyle || "disc", items: [O] });
1655
+ } else I.value != null && /^[\n\u200B]+$/.test(I.value) ? (c += I.value.length, I.rowFlex && ($ = I.rowFlex)) : (C(), D.push(I));
1656
+ return C(), M(), r;
1654
1657
  }
1655
- function X(m) {
1656
- const b = (m == null ? void 0 : m.width) || 0;
1657
- return !b || b <= Pt ? 1 : Pt / b;
1658
+ function Z(y) {
1659
+ const _ = (y == null ? void 0 : y.width) || 0;
1660
+ return !_ || _ <= Pt ? 1 : Pt / _;
1658
1661
  }
1659
- function V(m) {
1660
- const b = m.filter((D) => D.type === "image").reduce((D, _) => D + (_.height || _.width || 0), 0), r = m.filter((D) => D.type !== "image").map((D) => D.value || "").join("");
1661
- if (!r) return b || 20;
1662
- const O = m.reduce((D, _) => Math.max(D, _.size || 0), 0) || 14, g = O + 6, S = (r.match(/[一-龥]/g) || []).length, E = r.length - S, C = S * O + E * (O * 0.5), I = Math.max(1, Math.ceil(C / At));
1663
- return b + Math.max(g, I * g);
1662
+ function N(y) {
1663
+ const _ = y.filter((O) => O.type === "image").reduce((O, b) => O + (b.height || b.width || 0), 0), r = y.filter((O) => O.type !== "image").map((O) => O.value || "").join("");
1664
+ if (!r) return _ || 20;
1665
+ const D = y.reduce((O, b) => Math.max(O, b.size || 0), 0) || 14, c = D + 6, $ = (r.match(/[一-龥]/g) || []).length, M = r.length - $, C = $ * D + M * (D * 0.5), I = Math.max(1, Math.ceil(C / At));
1666
+ return _ + Math.max(c, I * c);
1664
1667
  }
1665
- function q(m) {
1666
- if (!m || !m.length) return [[]];
1667
- const b = [];
1668
+ function q(y) {
1669
+ if (!y || !y.length) return [[]];
1670
+ const _ = [];
1668
1671
  let r = [];
1669
- for (const O of m)
1670
- O.type === "image" && (O.width || 0) >= At ? (r.length && (b.push(r), r = []), b.push([O])) : r.push(O);
1671
- return r.length && b.push(r), b.length ? b : [[]];
1672
+ for (const D of y)
1673
+ D.type === "image" && (D.width || 0) >= At ? (r.length && (_.push(r), r = []), _.push([D])) : r.push(D);
1674
+ return r.length && _.push(r), _.length ? _ : [[]];
1672
1675
  }
1673
- function Y(m) {
1674
- if (m.length === 0) return [];
1675
- const b = new Array(m.length).fill(0);
1676
- m.forEach((S, E) => {
1677
- (S.tdList || []).forEach((C) => {
1676
+ function Q(y) {
1677
+ if (y.length === 0) return [];
1678
+ const _ = new Array(y.length).fill(0);
1679
+ y.forEach(($, M) => {
1680
+ ($.tdList || []).forEach((C) => {
1678
1681
  const I = C.rowspan || 1;
1679
1682
  if (I > 1) {
1680
- const D = Math.min(E + I - 1, m.length - 1);
1681
- b[E] = Math.max(b[E], D);
1682
- for (let _ = 1; _ < I && E + _ < m.length; _++)
1683
- b[E + _] = Math.max(b[E + _], D);
1683
+ const O = Math.min(M + I - 1, y.length - 1);
1684
+ _[M] = Math.max(_[M], O);
1685
+ for (let b = 1; b < I && M + b < y.length; b++)
1686
+ _[M + b] = Math.max(_[M + b], O);
1684
1687
  }
1685
1688
  });
1686
1689
  });
1687
1690
  const r = [];
1688
- let O = 0, g = 0;
1689
- for (let S = 0; S < m.length; S++)
1690
- g = Math.max(g, b[S]), g <= S && (r.push(m.slice(O, S + 1)), O = S + 1, g = 0);
1691
- return O < m.length && r.push(m.slice(O)), r;
1691
+ let D = 0, c = 0;
1692
+ for (let $ = 0; $ < y.length; $++)
1693
+ c = Math.max(c, _[$]), c <= $ && (r.push(y.slice(D, $ + 1)), D = $ + 1, c = 0);
1694
+ return D < y.length && r.push(y.slice(D)), r;
1692
1695
  }
1693
- const Z = ke(() => {
1694
- const m = $(t.value), b = [];
1696
+ const ee = ke(() => {
1697
+ const y = A(t.value), _ = [];
1695
1698
  let r = 0;
1696
- const O = Ii(), g = { first: 0, second: 1, third: 2, fourth: 3, fifth: 4, sixth: 5, seventh: 6, eighth: 7 };
1697
- let S = -1;
1698
- const E = (C) => {
1699
- var I, D, _;
1700
- return !!((I = C.el) != null && I._coverBreakBefore || (_ = (D = C.elements) == null ? void 0 : D[0]) != null && _._coverBreakBefore);
1699
+ const D = Ii(), c = { first: 0, second: 1, third: 2, fourth: 3, fifth: 4, sixth: 5, seventh: 6, eighth: 7 };
1700
+ let $ = -1;
1701
+ const M = (C) => {
1702
+ var I, O, b;
1703
+ return !!((I = C.el) != null && I._coverBreakBefore || (b = (O = C.elements) == null ? void 0 : O[0]) != null && b._coverBreakBefore);
1701
1704
  };
1702
- return m.forEach((C, I) => {
1703
- var _, pe, ve;
1704
- const D = E(C);
1705
- if (D && (r = 0), C.type === "title") {
1706
- const ue = C.el.valueList || [], ne = O.next(C.el.level, (_ = C.el.extension) == null ? void 0 : _.startIndex), ce = ue.some((F) => {
1707
- var Q;
1708
- return (Q = F.extension) == null ? void 0 : Q.isIndex;
1705
+ return y.forEach((C, I) => {
1706
+ var b, ge, we;
1707
+ const O = M(C);
1708
+ if (O && (r = 0), C.type === "title") {
1709
+ const de = C.el.valueList || [], le = D.next(C.el.level, (b = C.el.extension) == null ? void 0 : b.startIndex), ne = de.some((E) => {
1710
+ var X;
1711
+ return (X = E.extension) == null ? void 0 : X.isIndex;
1709
1712
  });
1710
- let ie = ue;
1711
- if (!ce && ne) {
1712
- const F = ue[0] || {};
1713
- ie = [
1713
+ let ue = de;
1714
+ if (!ne && le) {
1715
+ const E = de[0] || {};
1716
+ ue = [
1714
1717
  {
1715
- value: ne,
1716
- size: F.size,
1717
- bold: F.bold,
1718
- italic: F.italic,
1719
- color: F.color,
1720
- font: F.font,
1718
+ value: le,
1719
+ size: E.size,
1720
+ bold: E.bold,
1721
+ italic: E.italic,
1722
+ color: E.color,
1723
+ font: E.font,
1721
1724
  extension: { isIndex: !0 }
1722
1725
  },
1723
- ...ue
1726
+ ...de
1724
1727
  ];
1725
1728
  }
1726
- const he = ie.map((F) => F.value || "").join(""), se = V(ie);
1727
- r = r + se > Me && r > 0 ? se : r + se, S = g[C.el.level] ?? 0, b.push({
1729
+ const me = ue.map((E) => E.value || "").join(""), re = N(ue);
1730
+ r = r + re > Ie && r > 0 ? re : r + re, $ = c[C.el.level] ?? 0, _.push({
1728
1731
  node_id: `blk_${I}_0`,
1729
- layer: D ? 1 : 100,
1732
+ layer: O ? 1 : 100,
1730
1733
  blockType: "title",
1731
1734
  level: C.el.level,
1732
1735
  titleEl: C.el,
1733
- titleValueList: ie,
1736
+ titleValueList: ue,
1734
1737
  content_type: "text",
1735
- content: he,
1736
- height: se,
1737
- indentPx: S * 20
1738
+ content: me,
1739
+ height: re,
1740
+ indentPx: $ * 20
1738
1741
  });
1739
1742
  } else if (C.type === "paragraph") {
1740
- const ue = q(C.elements), ne = S >= 0 ? (S + 1) * 20 : 0;
1741
- ue.forEach((ce, ie) => {
1742
- const he = ce.map((F) => F.value || "").join(""), se = V(ce);
1743
- r = r + se > Me && r > 0 ? se : r + se, b.push({
1744
- node_id: `blk_${I}_${ie}`,
1745
- layer: D && ie === 0 ? 1 : 100,
1743
+ const de = q(C.elements), le = $ >= 0 ? ($ + 1) * 20 : 0;
1744
+ de.forEach((ne, ue) => {
1745
+ const me = ne.map((E) => E.value || "").join(""), re = N(ne);
1746
+ r = r + re > Ie && r > 0 ? re : r + re, _.push({
1747
+ node_id: `blk_${I}_${ue}`,
1748
+ layer: O && ue === 0 ? 1 : 100,
1746
1749
  blockType: "paragraph",
1747
- elements: ce,
1750
+ elements: ne,
1748
1751
  rowFlex: C.rowFlex,
1749
1752
  content_type: "text",
1750
- content: he,
1751
- height: se,
1752
- indentPx: ne
1753
+ content: me,
1754
+ height: re,
1755
+ indentPx: le
1753
1756
  });
1754
1757
  });
1755
1758
  } else if (C.type === "table") {
1756
- const ue = !!((pe = C.el.extension) != null && pe.isTitleTable), ne = ((ve = C.el.extension) == null ? void 0 : ve.elementType) === "signOff", ce = ue || ne ? 0 : S >= 0 ? (S + 1) * 20 : 0, ie = Y(C.el.trList || []), he = ie.length;
1757
- ie.forEach((se, F) => {
1758
- const Q = `blk_${I}_${F}`, Pe = se.reduce(
1759
- (xe, z) => xe + (z.height || z.minHeight || 35),
1759
+ const de = !!((ge = C.el.extension) != null && ge.isTitleTable), le = ((we = C.el.extension) == null ? void 0 : we.elementType) === "signOff", ne = de || le ? 0 : $ >= 0 ? ($ + 1) * 20 : 0, ue = Q(C.el.trList || []), me = ue.length;
1760
+ ue.forEach((re, E) => {
1761
+ const X = `blk_${I}_${E}`, Ne = re.reduce(
1762
+ (U, fe) => U + (fe.height || fe.minHeight || 35),
1760
1763
  0
1761
- ), _e = Math.max(Pe, o.value[Q] || 0);
1762
- if (_e > Me) {
1763
- const xe = Math.ceil(_e / Me);
1764
- for (let z = 0; z < xe; z++) {
1765
- const Ee = z * Me, $e = Math.min(Me, _e - Ee), ze = z > 0 || r > 0;
1766
- r = $e, b.push({
1767
- node_id: `blk_${I}_${F}_s${z}`,
1768
- layer: D && F === 0 && z === 0 ? 1 : 100,
1764
+ ), ye = Math.max(Ne, o.value[X] || 0);
1765
+ if (ye > Ie) {
1766
+ const U = Math.ceil(ye / Ie);
1767
+ for (let fe = 0; fe < U; fe++) {
1768
+ const Re = fe * Ie, Pe = Math.min(Ie, ye - Re), Ve = fe > 0 || r > 0;
1769
+ r = Pe, _.push({
1770
+ node_id: `blk_${I}_${E}_s${fe}`,
1771
+ layer: O && E === 0 && fe === 0 ? 1 : 100,
1769
1772
  blockType: "table-row-group",
1770
1773
  content_type: "table-row",
1771
- rowHeight: _e,
1772
- trGroup: se,
1774
+ rowHeight: ye,
1775
+ trGroup: re,
1773
1776
  tableEl: C.el,
1774
1777
  tableRowFlex: C.el.rowFlex || null,
1775
- isFirst: F === 0 && z === 0,
1776
- isLast: F === he - 1 && z === xe - 1,
1777
- isPageBreak: ze,
1778
- sliceOffset: Ee,
1779
- sliceHeight: $e,
1780
- _baseKey: z === 0 ? Q : void 0,
1781
- height: $e,
1782
- indentPx: ce
1778
+ isFirst: E === 0 && fe === 0,
1779
+ isLast: E === me - 1 && fe === U - 1,
1780
+ isPageBreak: Ve,
1781
+ sliceOffset: Re,
1782
+ sliceHeight: Pe,
1783
+ _baseKey: fe === 0 ? X : void 0,
1784
+ height: Pe,
1785
+ indentPx: ne
1783
1786
  });
1784
1787
  }
1785
1788
  } else {
1786
- const xe = F > 0 && r + _e > Me;
1787
- r = r + _e > Me ? _e : r + _e, b.push({
1788
- node_id: `blk_${I}_${F}`,
1789
- layer: D && F === 0 ? 1 : 100,
1789
+ const U = E > 0 && r + ye > Ie;
1790
+ r = r + ye > Ie ? ye : r + ye, _.push({
1791
+ node_id: `blk_${I}_${E}`,
1792
+ layer: O && E === 0 ? 1 : 100,
1790
1793
  blockType: "table-row-group",
1791
1794
  content_type: "table-row",
1792
- rowHeight: _e,
1793
- trGroup: se,
1795
+ rowHeight: ye,
1796
+ trGroup: re,
1794
1797
  tableEl: C.el,
1795
1798
  tableRowFlex: C.el.rowFlex || null,
1796
- isFirst: F === 0,
1797
- isLast: F === he - 1,
1798
- isPageBreak: xe,
1799
- indentPx: ce
1799
+ isFirst: E === 0,
1800
+ isLast: E === me - 1,
1801
+ isPageBreak: U,
1802
+ indentPx: ne
1800
1803
  });
1801
1804
  }
1802
1805
  });
1803
1806
  } else if (C.type === "list") {
1804
- const ue = Math.round(18);
1805
- let ne = 0;
1806
- for (const ce of C.items)
1807
- ne += ce.length ? V(ce) : ue;
1808
- ne = Math.max(ne, ue), r = r + ne > Me && r > 0 ? ne : r + ne, b.push({
1807
+ const de = Math.round(18);
1808
+ let le = 0;
1809
+ for (const ne of C.items)
1810
+ le += ne.length ? N(ne) : de;
1811
+ le = Math.max(le, de), r = r + le > Ie && r > 0 ? le : r + le, _.push({
1809
1812
  node_id: `blk_${I}_0`,
1810
- layer: D ? 1 : 100,
1813
+ layer: O ? 1 : 100,
1811
1814
  blockType: "list",
1812
1815
  listType: C.listType,
1813
1816
  listStyle: C.listStyle,
1814
1817
  items: C.items,
1815
- height: ne,
1816
- indentPx: S >= 0 ? (S + 1) * 20 : 0
1818
+ height: le,
1819
+ indentPx: $ >= 0 ? ($ + 1) * 20 : 0
1817
1820
  });
1818
1821
  }
1819
- }), b;
1820
- }), ye = ke(() => Ci(Z.value));
1821
- function W(m) {
1822
- var b;
1823
- (b = l.value) == null || b.scrollToRow({ node_id: m.nodeId });
1822
+ }), _;
1823
+ }), be = ke(() => Ci(ee.value));
1824
+ function W(y) {
1825
+ var _;
1826
+ (_ = a.value) == null || _.scrollToRow({ node_id: y.nodeId });
1827
+ }
1828
+ function B(y) {
1829
+ var $, M;
1830
+ const _ = y.elements || [], r = (($ = _.find((C) => C.rowFlex)) == null ? void 0 : $.rowFlex) || y.rowFlex, D = { textAlign: S[r] || "left" }, c = (M = _.find((C) => C.rowMargin)) == null ? void 0 : M.rowMargin;
1831
+ return c && (D.lineHeight = c), D;
1824
1832
  }
1825
- function B(m) {
1826
- var S, E;
1827
- const b = m.elements || [], r = ((S = b.find((C) => C.rowFlex)) == null ? void 0 : S.rowFlex) || m.rowFlex, O = { textAlign: T[r] || "left" }, g = (E = b.find((C) => C.rowMargin)) == null ? void 0 : E.rowMargin;
1828
- return g && (O.lineHeight = g), O;
1833
+ function T(y) {
1834
+ var $;
1835
+ const _ = A(y.value);
1836
+ let r = 0, D = 0, c = !1;
1837
+ for (const M of _)
1838
+ if (M.type === "paragraph") {
1839
+ if (!M.elements.length) continue;
1840
+ r++;
1841
+ for (const C of M.elements)
1842
+ (C.type === "image" || C.type === "table") && (c = !0), D += (C.value || "").length;
1843
+ } else M.type === "list" ? (r += (($ = M.items) == null ? void 0 : $.length) || 1, c = !0) : (r++, c = !0);
1844
+ return r > 1 || D > 30 || c ? "top" : y.verticalAlign || "middle";
1829
1845
  }
1830
- function x(m) {
1831
- const b = {};
1832
- m.font && (b.fontFamily = m.font), b.fontSize = (m.size || lt) + "px", m.bold != null && (b.fontWeight = m.bold ? "bold" : "normal"), m.italic != null && (b.fontStyle = m.italic ? "italic" : "normal"), m.color && (b.color = m.color), m.highlight && m.highlight !== "rgb(255, 255, 255)" && m.highlight !== "#ffffff" && (b.backgroundColor = m.highlight);
1833
- const r = [m.underline && "underline", m.strikeout && "line-through"].filter(Boolean).join(" ");
1834
- return r && (b.textDecoration = r), m.letterSpacing && (b.letterSpacing = m.letterSpacing + "px"), b;
1846
+ function K(y) {
1847
+ const _ = {};
1848
+ y.font && (_.fontFamily = y.font), _.fontSize = (y.size || He) + "px", y.bold != null && (_.fontWeight = y.bold ? "bold" : "normal"), y.italic != null && (_.fontStyle = y.italic ? "italic" : "normal"), y.color && (_.color = y.color), y.highlight && y.highlight !== "rgb(255, 255, 255)" && y.highlight !== "#ffffff" && (_.backgroundColor = y.highlight);
1849
+ const r = [y.underline && "underline", y.strikeout && "line-through"].filter(Boolean).join(" ");
1850
+ return r && (_.textDecoration = r), y.letterSpacing && (_.letterSpacing = y.letterSpacing + "px"), _;
1835
1851
  }
1836
- return (m, b) => (h(), v("div", Ei, [
1837
- G(xi, {
1838
- items: ye.value,
1852
+ return (y, _) => (f(), p("div", Ei, [
1853
+ J(xi, {
1854
+ items: be.value,
1839
1855
  onNavigate: W
1840
1856
  }, null, 8, ["items"]),
1841
- re("div", Si, [
1842
- i.loading ? (h(), v("div", Ti, " 加载中… ")) : (h(), Fe(Ae(ai), {
1857
+ ce("div", Si, [
1858
+ i.loading ? (f(), p("div", Ti, " 加载中… ")) : (f(), Fe(Ae(li), {
1843
1859
  key: 1,
1844
1860
  ref_key: "virtualTableRef",
1845
- ref: l,
1861
+ ref: a,
1846
1862
  "show-header": !1,
1847
1863
  "row-config": { keyField: "node_id" },
1848
1864
  "page-config": {
@@ -1856,287 +1872,295 @@ const Ei = { class: "editor-layout word-editor-scope" }, Si = { class: "editor-c
1856
1872
  pageBorderPadding: 5,
1857
1873
  pageBorderStyle: "1px solid #333"
1858
1874
  },
1859
- data: Z.value
1875
+ data: ee.value
1860
1876
  }, {
1861
- default: nt(() => [
1862
- G(Ae(si), null, {
1863
- default: nt(({ row: r }) => {
1864
- var O;
1877
+ default: lt(() => [
1878
+ J(Ae(si), null, {
1879
+ default: lt(({ row: r }) => {
1880
+ var D;
1865
1881
  return [
1866
- r.blockType === "title" ? (h(), v("p", {
1882
+ r.blockType === "title" ? (f(), p("p", {
1867
1883
  key: 0,
1868
- class: Ie(["doc-title", `doc-title--${r.level}`]),
1869
- style: K({ paddingLeft: r.indentPx ? r.indentPx + "px" : void 0 })
1884
+ class: Ee(["doc-title", `doc-title--${r.level}`]),
1885
+ style: j({ paddingLeft: r.indentPx ? r.indentPx + "px" : void 0 })
1870
1886
  }, [
1871
- (h(!0), v(J, null, le(r.titleValueList || [], (g, S) => (h(), v("span", {
1872
- key: S,
1873
- style: K(x(g))
1874
- }, te(g.value), 5))), 128))
1875
- ], 6)) : r.blockType === "paragraph" ? (h(), v("p", {
1887
+ (f(!0), p(Y, null, oe(r.titleValueList || [], (c, $) => (f(), p("span", {
1888
+ key: $,
1889
+ style: j(K(c))
1890
+ }, ie(c.value), 5))), 128))
1891
+ ], 6)) : r.blockType === "paragraph" ? (f(), p("p", {
1876
1892
  key: 1,
1877
1893
  class: "doc-para",
1878
- style: K({ ...B(r), paddingLeft: r.indentPx ? r.indentPx + "px" : void 0 })
1894
+ style: j({ ...B(r), paddingLeft: r.indentPx ? r.indentPx + "px" : void 0 })
1879
1895
  }, [
1880
- r.elements.length ? ge("", !0) : (h(), v("span", Fi, " ")),
1881
- (h(!0), v(J, null, le(r.elements, (g, S) => {
1882
- var E, C, I, D, _, pe, ve, ue, ne, ce, ie, he, se;
1883
- return h(), v(J, { key: S }, [
1884
- !g.type || g.type === "text" ? (h(), v("span", {
1896
+ r.elements.length ? ve("", !0) : (f(), p("span", Fi, " ")),
1897
+ (f(!0), p(Y, null, oe(r.elements, (c, $) => {
1898
+ var M, C, I, O, b, ge, we, de, le, ne, ue, me, re;
1899
+ return f(), p(Y, { key: $ }, [
1900
+ !c.type || c.type === "text" ? (f(), p("span", {
1885
1901
  key: 0,
1886
- style: K(x(g))
1887
- }, te(g.value), 5)) : g.type === "hyperlink" ? (h(), v("a", {
1902
+ style: j(K(c))
1903
+ }, ie(c.value), 5)) : c.type === "hyperlink" ? (f(), p("a", {
1888
1904
  key: 1,
1889
- href: g.url,
1905
+ href: c.url,
1890
1906
  class: "doc-link",
1891
1907
  target: "_blank",
1892
1908
  rel: "noopener"
1893
1909
  }, [
1894
- (h(!0), v(J, null, le(g.valueList || [], (F, Q) => (h(), v("span", {
1895
- key: Q,
1896
- style: K(x(F))
1897
- }, te(F.value), 5))), 128))
1898
- ], 8, Ai)) : g.type === "image" ? (h(), v("img", {
1910
+ (f(!0), p(Y, null, oe(c.valueList || [], (E, X) => (f(), p("span", {
1911
+ key: X,
1912
+ style: j(K(E))
1913
+ }, ie(E.value), 5))), 128))
1914
+ ], 8, Ai)) : c.type === "image" ? (f(), p("img", {
1899
1915
  key: 2,
1900
- src: g.value,
1916
+ src: c.value,
1901
1917
  class: "doc-image",
1902
- style: K({
1903
- width: g.width ? g.width + "px" : "auto",
1904
- height: g.height ? g.height + "px" : "auto"
1918
+ style: j({
1919
+ width: c.width ? c.width + "px" : "auto",
1920
+ height: c.height ? c.height + "px" : "auto"
1905
1921
  })
1906
- }, null, 12, Pi)) : g.type === "control" ? (h(), v(J, { key: 3 }, [
1907
- ((E = g.control) == null ? void 0 : E.type) === "text" ? (h(), v("span", {
1922
+ }, null, 12, Pi)) : c.type === "control" ? (f(), p(Y, { key: 3 }, [
1923
+ ((M = c.control) == null ? void 0 : M.type) === "text" ? (f(), p("span", {
1908
1924
  key: 0,
1909
- style: K({ fontSize: (g.control.size || 12) + "px" })
1925
+ style: j({ fontSize: (c.control.size || 12) + "px" })
1910
1926
  }, [
1911
- (h(!0), v(J, null, le(g.control.value || [], (F, Q) => (h(), v("span", {
1912
- key: Q,
1913
- style: K(x(F))
1914
- }, te(F.value), 5))), 128))
1915
- ], 4)) : ((C = g.control) == null ? void 0 : C.type) === "input" ? (h(), v("span", {
1927
+ (f(!0), p(Y, null, oe(c.control.value || [], (E, X) => (f(), p("span", {
1928
+ key: X,
1929
+ style: j(K(E))
1930
+ }, ie(E.value), 5))), 128))
1931
+ ], 4)) : ((C = c.control) == null ? void 0 : C.type) === "input" ? (f(), p("span", {
1916
1932
  key: 1,
1917
1933
  class: "ctrl-input",
1918
- style: K({
1919
- minWidth: (g.control.minWidth || 60) + "px",
1920
- fontSize: (g.control.size || 12) + "px"
1934
+ style: j({
1935
+ minWidth: (c.control.minWidth || 60) + "px",
1936
+ fontSize: (c.control.size || 12) + "px"
1921
1937
  })
1922
1938
  }, [
1923
- (h(!0), v(J, null, le(g.control.value || [], (F, Q) => (h(), v("span", { key: Q }, te(F.value), 1))), 128))
1924
- ], 4)) : ((I = g.control) == null ? void 0 : I.type) === "radio" ? (h(), v("span", {
1939
+ (f(!0), p(Y, null, oe(c.control.value || [], (E, X) => (f(), p("span", { key: X }, ie(E.value), 1))), 128))
1940
+ ], 4)) : ((I = c.control) == null ? void 0 : I.type) === "radio" ? (f(), p("span", {
1925
1941
  key: 2,
1926
- class: Ie(["ctrl-options", { "ctrl-options--vertical": ((_ = (D = g.control.extension) == null ? void 0 : D.elementAttributes) == null ? void 0 : _.layout) === "vertical" }]),
1927
- style: K({ fontSize: (g.control.size || lt) + "px" })
1942
+ class: Ee(["ctrl-options", { "ctrl-options--vertical": ((b = (O = c.control.extension) == null ? void 0 : O.elementAttributes) == null ? void 0 : b.layout) === "vertical" }]),
1943
+ style: j({ fontSize: (c.control.size || He) + "px" })
1928
1944
  }, [
1929
- (h(!0), v(J, null, le(g.control.valueSets || [], (F, Q) => (h(), v("label", {
1930
- key: Q,
1945
+ (f(!0), p(Y, null, oe(c.control.valueSets || [], (E, X) => (f(), p("label", {
1946
+ key: X,
1931
1947
  class: "ctrl-option"
1932
1948
  }, [
1933
- re("input", {
1949
+ ce("input", {
1934
1950
  type: "radio",
1935
1951
  disabled: "",
1936
- checked: g.control.code === F.code
1952
+ checked: c.control.code === E.code
1937
1953
  }, null, 8, $i),
1938
- Re(" " + te(F.value), 1)
1954
+ Le(" " + ie(E.value), 1)
1939
1955
  ]))), 128))
1940
- ], 6)) : ((pe = g.control) == null ? void 0 : pe.type) === "checkbox" ? (h(), v("span", {
1956
+ ], 6)) : ((ge = c.control) == null ? void 0 : ge.type) === "checkbox" ? (f(), p("span", {
1941
1957
  key: 3,
1942
- class: Ie(["ctrl-options", { "ctrl-options--vertical": ((ue = (ve = g.control.extension) == null ? void 0 : ve.elementAttributes) == null ? void 0 : ue.layout) === "vertical" }]),
1943
- style: K({ fontSize: (g.control.size || lt) + "px" })
1958
+ class: Ee(["ctrl-options", { "ctrl-options--vertical": ((de = (we = c.control.extension) == null ? void 0 : we.elementAttributes) == null ? void 0 : de.layout) === "vertical" }]),
1959
+ style: j({ fontSize: (c.control.size || He) + "px" })
1944
1960
  }, [
1945
- (h(!0), v(J, null, le(g.control.valueSets || [], (F, Q) => (h(), v("label", {
1946
- key: Q,
1961
+ (f(!0), p(Y, null, oe(c.control.valueSets || [], (E, X) => (f(), p("label", {
1962
+ key: X,
1947
1963
  class: "ctrl-option"
1948
1964
  }, [
1949
- re("input", {
1965
+ ce("input", {
1950
1966
  type: "checkbox",
1951
1967
  disabled: "",
1952
- checked: (g.control.code || "").split(",").includes(F.code)
1968
+ checked: (c.control.code || "").split(",").includes(E.code)
1953
1969
  }, null, 8, Li),
1954
- Re(" " + te(F.value), 1)
1970
+ Le(" " + ie(E.value), 1)
1955
1971
  ]))), 128))
1956
- ], 6)) : ((ne = g.control) == null ? void 0 : ne.type) === "select" ? (h(), v("span", Ri, te(((ie = (ce = g.control.value) == null ? void 0 : ce[0]) == null ? void 0 : ie.value) || g.control.placeholder || ""), 1)) : ge("", !0)
1957
- ], 64)) : g.type === "checkbox" ? (h(), v("input", {
1972
+ ], 6)) : ((le = c.control) == null ? void 0 : le.type) === "select" ? (f(), p("span", Ri, ie(((ue = (ne = c.control.value) == null ? void 0 : ne[0]) == null ? void 0 : ue.value) || c.control.placeholder || ""), 1)) : ve("", !0)
1973
+ ], 64)) : c.type === "checkbox" ? (f(), p("input", {
1958
1974
  key: 4,
1959
1975
  type: "checkbox",
1960
- checked: !!((he = g.checkbox) != null && he.value),
1976
+ checked: !!((me = c.checkbox) != null && me.value),
1961
1977
  disabled: "",
1962
1978
  class: "el-check"
1963
- }, null, 8, Oi)) : g.type === "radio" ? (h(), v("input", {
1979
+ }, null, 8, Oi)) : c.type === "radio" ? (f(), p("input", {
1964
1980
  key: 5,
1965
1981
  type: "radio",
1966
- checked: !!((se = g.radio) != null && se.value),
1982
+ checked: !!((re = c.radio) != null && re.value),
1967
1983
  disabled: "",
1968
1984
  class: "el-check"
1969
- }, null, 8, Bi)) : g.type === "superscript" ? (h(), v("sup", {
1985
+ }, null, 8, Bi)) : c.type === "superscript" ? (f(), p("sup", {
1970
1986
  key: 6,
1971
- style: K(x(g))
1972
- }, te(g.value), 5)) : g.type === "subscript" ? (h(), v("sub", {
1987
+ style: j(K(c))
1988
+ }, ie(c.value), 5)) : c.type === "subscript" ? (f(), p("sub", {
1973
1989
  key: 7,
1974
- style: K(x(g))
1975
- }, te(g.value), 5)) : g.type === "tab" ? (h(), v("span", Hi)) : ge("", !0)
1990
+ style: j(K(c))
1991
+ }, ie(c.value), 5)) : c.type === "tab" ? (f(), p("span", {
1992
+ key: 8,
1993
+ class: "doc-tab",
1994
+ style: j({ width: (c.size || He) + "px" })
1995
+ }, null, 4)) : ve("", !0)
1976
1996
  ], 64);
1977
1997
  }), 128))
1978
- ], 4)) : r.blockType === "list" ? (h(), Fe(Xe(r.listType === "ol" ? "ol" : "ul"), {
1998
+ ], 4)) : r.blockType === "list" ? (f(), Fe(Ze(r.listType === "ol" ? "ol" : "ul"), {
1979
1999
  key: 2,
1980
2000
  class: "doc-list",
1981
- style: K({ listStyleType: r.listStyle === "decimal" ? "decimal" : r.listStyle === "lower-alpha" ? "lower-alpha" : "disc", paddingLeft: r.indentPx ? r.indentPx + 24 + "px" : void 0 })
2001
+ style: j({ listStyleType: r.listStyle === "decimal" ? "decimal" : r.listStyle === "lower-alpha" ? "lower-alpha" : "disc", paddingLeft: r.indentPx ? r.indentPx + 24 + "px" : void 0 })
1982
2002
  }, {
1983
- default: nt(() => [
1984
- (h(!0), v(J, null, le(r.items, (g, S) => (h(), v("li", {
1985
- key: S,
2003
+ default: lt(() => [
2004
+ (f(!0), p(Y, null, oe(r.items, (c, $) => (f(), p("li", {
2005
+ key: $,
1986
2006
  class: "doc-list-item"
1987
2007
  }, [
1988
- (h(!0), v(J, null, le(g, (E, C) => (h(), v(J, { key: C }, [
1989
- !E.type || E.type === "text" ? (h(), v("span", {
2008
+ (f(!0), p(Y, null, oe(c, (M, C) => (f(), p(Y, { key: C }, [
2009
+ !M.type || M.type === "text" ? (f(), p("span", {
1990
2010
  key: 0,
1991
- style: K(x(E))
1992
- }, te(E.value), 5)) : E.type === "superscript" ? (h(), v("sup", {
2011
+ style: j(K(M))
2012
+ }, ie(M.value), 5)) : M.type === "superscript" ? (f(), p("sup", {
1993
2013
  key: 1,
1994
- style: K(x(E))
1995
- }, te(E.value), 5)) : E.type === "subscript" ? (h(), v("sub", {
2014
+ style: j(K(M))
2015
+ }, ie(M.value), 5)) : M.type === "subscript" ? (f(), p("sub", {
1996
2016
  key: 2,
1997
- style: K(x(E))
1998
- }, te(E.value), 5)) : ge("", !0)
2017
+ style: j(K(M))
2018
+ }, ie(M.value), 5)) : ve("", !0)
1999
2019
  ], 64))), 128))
2000
2020
  ]))), 128))
2001
2021
  ]),
2002
2022
  _: 2
2003
- }, 1032, ["style"])) : r.blockType === "table-row-group" ? (h(), v("div", {
2023
+ }, 1032, ["style"])) : r.blockType === "table-row-group" ? (f(), p("div", {
2004
2024
  key: 3,
2005
- class: Ie(["doc-table-row-wrap", { "is-first": r.isFirst, "is-last": r.isLast, "is-page-break": r.isPageBreak }]),
2006
- style: K({
2025
+ class: Ee(["doc-table-row-wrap", { "is-first": r.isFirst, "is-last": r.isLast, "is-page-break": r.isPageBreak }]),
2026
+ style: j({
2007
2027
  display: r.tableRowFlex ? "flex" : void 0,
2008
2028
  justifyContent: r.tableRowFlex === "right" ? "flex-end" : r.tableRowFlex === "center" ? "center" : r.tableRowFlex === "left" ? "flex-start" : void 0,
2009
2029
  paddingLeft: r.indentPx ? r.indentPx + "px" : void 0
2010
2030
  })
2011
2031
  }, [
2012
- re("div", {
2013
- style: K({
2032
+ ce("div", {
2033
+ style: j({
2014
2034
  overflow: r.sliceHeight != null ? "hidden" : void 0,
2015
2035
  height: r.sliceHeight != null ? (r.isLast ? r.sliceHeight + 1 : r.sliceHeight) + "px" : void 0,
2016
2036
  width: r.tableEl.width ? "max-content" : "100%"
2017
2037
  })
2018
2038
  }, [
2019
- re("table", {
2020
- ref: r._baseKey ? (g) => P(g, r._baseKey) : void 0,
2021
- class: Ie(["doc-table", { "doc-table--no-border": r.tableEl.borderType === "empty" }]),
2022
- style: K({
2023
- width: r.tableEl.width ? r.tableEl.width * X(r.tableEl) + "px" : "100%",
2039
+ ce("table", {
2040
+ ref: r._baseKey ? (c) => P(c, r._baseKey) : void 0,
2041
+ class: Ee(["doc-table", { "doc-table--no-border": r.tableEl.borderType === "empty" }]),
2042
+ style: j({
2043
+ width: r.tableEl.width ? r.tableEl.width * Z(r.tableEl) + "px" : "100%",
2024
2044
  transform: r.sliceOffset ? `translateY(-${r.sliceOffset}px)` : void 0
2025
2045
  })
2026
2046
  }, [
2027
- (O = r.tableEl.colgroup) != null && O.length ? (h(), v("colgroup", Di, [
2028
- (h(!0), v(J, null, le(r.tableEl.colgroup, (g, S) => (h(), v("col", {
2029
- key: S,
2030
- style: K({ width: g.width * X(r.tableEl) + "px" })
2047
+ (D = r.tableEl.colgroup) != null && D.length ? (f(), p("colgroup", Hi, [
2048
+ (f(!0), p(Y, null, oe(r.tableEl.colgroup, (c, $) => (f(), p("col", {
2049
+ key: $,
2050
+ style: j({ width: c.width * Z(r.tableEl) + "px" })
2031
2051
  }, null, 4))), 128))
2032
- ])) : ge("", !0),
2033
- re("tbody", null, [
2034
- (h(!0), v(J, null, le(r.trGroup, (g, S) => (h(), v("tr", {
2035
- key: S,
2036
- style: K({ height: (g.height || g.minHeight || 30) + "px" })
2052
+ ])) : ve("", !0),
2053
+ ce("tbody", null, [
2054
+ (f(!0), p(Y, null, oe(r.trGroup, (c, $) => (f(), p("tr", {
2055
+ key: $,
2056
+ style: j({ height: (c.height || c.minHeight || 30) + "px" })
2037
2057
  }, [
2038
- (h(!0), v(J, null, le(g.tdList || [], (E, C) => (h(), v("td", {
2058
+ (f(!0), p(Y, null, oe(c.tdList || [], (M, C) => (f(), p("td", {
2039
2059
  key: C,
2040
- colspan: E.colspan || 1,
2041
- rowspan: E.rowspan || 1,
2042
- style: K({
2043
- backgroundColor: E.backgroundColor || void 0,
2044
- verticalAlign: E.verticalAlign || "middle",
2045
- width: E.width ? E.width * X(r.tableEl) + "px" : void 0,
2046
- height: E.height ? E.height + "px" : void 0
2060
+ colspan: M.colspan || 1,
2061
+ rowspan: M.rowspan || 1,
2062
+ style: j({
2063
+ backgroundColor: M.backgroundColor || void 0,
2064
+ verticalAlign: T(M),
2065
+ width: M.width ? M.width * Z(r.tableEl) + "px" : void 0,
2066
+ height: M.height ? M.height + "px" : void 0
2047
2067
  })
2048
2068
  }, [
2049
- (h(!0), v(J, null, le($(E.value), (I, D) => (h(), v(J, { key: D }, [
2050
- I.type === "paragraph" ? (h(), v("p", {
2069
+ (f(!0), p(Y, null, oe(A(M.value), (I, O) => (f(), p(Y, { key: O }, [
2070
+ I.type === "paragraph" ? (f(), p("p", {
2051
2071
  key: 0,
2052
2072
  class: "cell-para",
2053
- style: K(B(I))
2073
+ style: j(B(I))
2054
2074
  }, [
2055
- I.elements.length ? ge("", !0) : (h(), v("span", Ni, " ")),
2056
- (h(!0), v(J, null, le(I.elements, (_, pe) => {
2057
- var ve, ue, ne, ce, ie, he, se;
2058
- return h(), v(J, { key: pe }, [
2059
- !_.type || _.type === "text" ? (h(), v("span", {
2075
+ I.elements.length ? ve("", !0) : (f(), p("span", zi, " ")),
2076
+ (f(!0), p(Y, null, oe(I.elements, (b, ge) => {
2077
+ var we, de, le, ne, ue, me, re;
2078
+ return f(), p(Y, { key: ge }, [
2079
+ !b.type || b.type === "text" ? (f(), p("span", {
2060
2080
  key: 0,
2061
- style: K(x(_))
2062
- }, te(_.value), 5)) : _.type === "image" ? (h(), v("img", {
2081
+ style: j(K(b))
2082
+ }, ie(b.value), 5)) : b.type === "image" ? (f(), p("img", {
2063
2083
  key: 1,
2064
- src: _.value,
2084
+ src: b.value,
2065
2085
  class: "doc-image",
2066
- style: K({
2067
- width: _.width ? _.width + "px" : "auto",
2068
- height: _.height ? _.height + "px" : "auto"
2086
+ style: j({
2087
+ width: b.width ? b.width + "px" : "auto",
2088
+ height: b.height ? b.height + "px" : "auto"
2069
2089
  })
2070
- }, null, 12, Vi)) : _.type === "hyperlink" ? (h(), v("a", {
2090
+ }, null, 12, Ni)) : b.type === "hyperlink" ? (f(), p("a", {
2071
2091
  key: 2,
2072
- href: _.url,
2092
+ href: b.url,
2073
2093
  class: "doc-link",
2074
2094
  target: "_blank"
2075
2095
  }, [
2076
- (h(!0), v(J, null, le(_.valueList || [], (F, Q) => (h(), v("span", {
2077
- key: Q,
2078
- style: K(x(F))
2079
- }, te(F.value), 5))), 128))
2080
- ], 8, ji)) : _.type === "control" ? (h(), v(J, { key: 3 }, [
2081
- ((ve = _.control) == null ? void 0 : ve.type) === "text" ? (h(), v("span", {
2096
+ (f(!0), p(Y, null, oe(b.valueList || [], (E, X) => (f(), p("span", {
2097
+ key: X,
2098
+ style: j(K(E))
2099
+ }, ie(E.value), 5))), 128))
2100
+ ], 8, Vi)) : b.type === "control" ? (f(), p(Y, { key: 3 }, [
2101
+ ((we = b.control) == null ? void 0 : we.type) === "text" ? (f(), p("span", {
2082
2102
  key: 0,
2083
- style: K({ fontSize: (_.control.size || 12) + "px" })
2103
+ style: j({ fontSize: (b.control.size || 12) + "px" })
2084
2104
  }, [
2085
- (h(!0), v(J, null, le(_.control.value || [], (F, Q) => (h(), v("span", {
2086
- key: Q,
2087
- style: K(x(F))
2088
- }, te(F.value), 5))), 128))
2089
- ], 4)) : ((ue = _.control) == null ? void 0 : ue.type) === "input" ? (h(), v("span", {
2105
+ (f(!0), p(Y, null, oe(b.control.value || [], (E, X) => (f(), p("span", {
2106
+ key: X,
2107
+ style: j(K(E))
2108
+ }, ie(E.value), 5))), 128))
2109
+ ], 4)) : ((de = b.control) == null ? void 0 : de.type) === "input" ? (f(), p("span", {
2090
2110
  key: 1,
2091
2111
  class: "ctrl-input",
2092
- style: K({ fontSize: (_.control.size || 12) + "px" })
2112
+ style: j({ fontSize: (b.control.size || 12) + "px" })
2093
2113
  }, [
2094
- (h(!0), v(J, null, le(_.control.value || [], (F, Q) => (h(), v("span", { key: Q }, te(F.value), 1))), 128))
2095
- ], 4)) : ((ne = _.control) == null ? void 0 : ne.type) === "radio" ? (h(), v("span", {
2114
+ (f(!0), p(Y, null, oe(b.control.value || [], (E, X) => (f(), p("span", { key: X }, ie(E.value), 1))), 128))
2115
+ ], 4)) : ((le = b.control) == null ? void 0 : le.type) === "radio" ? (f(), p("span", {
2096
2116
  key: 2,
2097
- class: Ie(["ctrl-options", { "ctrl-options--vertical": ((ie = (ce = _.control.extension) == null ? void 0 : ce.elementAttributes) == null ? void 0 : ie.layout) === "vertical" }])
2117
+ class: Ee(["ctrl-options", { "ctrl-options--vertical": ((ue = (ne = b.control.extension) == null ? void 0 : ne.elementAttributes) == null ? void 0 : ue.layout) === "vertical" }])
2098
2118
  }, [
2099
- (h(!0), v(J, null, le(_.control.valueSets || [], (F, Q) => (h(), v("label", {
2100
- key: Q,
2119
+ (f(!0), p(Y, null, oe(b.control.valueSets || [], (E, X) => (f(), p("label", {
2120
+ key: X,
2101
2121
  class: "ctrl-option"
2102
2122
  }, [
2103
- re("input", {
2123
+ ce("input", {
2104
2124
  type: "radio",
2105
2125
  disabled: "",
2106
- checked: _.control.code === F.code
2107
- }, null, 8, Ki),
2108
- Re(te(F.value), 1)
2126
+ checked: b.control.code === E.code
2127
+ }, null, 8, ji),
2128
+ Le(ie(E.value), 1)
2109
2129
  ]))), 128))
2110
- ], 2)) : ge("", !0)
2111
- ], 64)) : _.type === "checkbox" ? (h(), v("input", {
2130
+ ], 2)) : ve("", !0)
2131
+ ], 64)) : b.type === "checkbox" ? (f(), p("input", {
2112
2132
  key: 4,
2113
2133
  type: "checkbox",
2114
- checked: !!((he = _.checkbox) != null && he.value),
2134
+ checked: !!((me = b.checkbox) != null && me.value),
2115
2135
  disabled: "",
2116
2136
  class: "el-check"
2117
- }, null, 8, qi)) : _.type === "radio" ? (h(), v("input", {
2137
+ }, null, 8, Ki)) : b.type === "radio" ? (f(), p("input", {
2118
2138
  key: 5,
2119
2139
  type: "radio",
2120
- checked: !!((se = _.radio) != null && se.value),
2140
+ checked: !!((re = b.radio) != null && re.value),
2121
2141
  disabled: "",
2122
2142
  class: "el-check"
2123
- }, null, 8, Wi)) : _.type === "superscript" ? (h(), v("sup", {
2143
+ }, null, 8, qi)) : b.type === "superscript" ? (f(), p("sup", {
2124
2144
  key: 6,
2125
- style: K(x(_))
2126
- }, te(_.value), 5)) : _.type === "subscript" ? (h(), v("sub", {
2145
+ style: j(K(b))
2146
+ }, ie(b.value), 5)) : b.type === "subscript" ? (f(), p("sub", {
2127
2147
  key: 7,
2128
- style: K(x(_))
2129
- }, te(_.value), 5)) : ge("", !0)
2148
+ style: j(K(b))
2149
+ }, ie(b.value), 5)) : b.type === "tab" ? (f(), p("span", {
2150
+ key: 8,
2151
+ class: "doc-tab",
2152
+ style: j({ width: (b.size || He) + "px" })
2153
+ }, null, 4)) : ve("", !0)
2130
2154
  ], 64);
2131
2155
  }), 128))
2132
- ], 4)) : ge("", !0)
2156
+ ], 4)) : ve("", !0)
2133
2157
  ], 64))), 128))
2134
- ], 12, zi))), 128))
2158
+ ], 12, Di))), 128))
2135
2159
  ], 4))), 128))
2136
2160
  ])
2137
2161
  ], 6)
2138
2162
  ], 4)
2139
- ], 6)) : ge("", !0)
2163
+ ], 6)) : ve("", !0)
2140
2164
  ];
2141
2165
  }),
2142
2166
  _: 1
@@ -2147,16 +2171,16 @@ const Ei = { class: "editor-layout word-editor-scope" }, Si = { class: "editor-c
2147
2171
  ])
2148
2172
  ]));
2149
2173
  }
2150
- }, Gi = /* @__PURE__ */ De(Ui, [["__scopeId", "data-v-6f712a93"]]), $t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
2151
- function Je(i = 10) {
2174
+ }, Ui = /* @__PURE__ */ ze(Wi, [["__scopeId", "data-v-fbf35559"]]), $t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
2175
+ function Ye(i = 10) {
2152
2176
  const e = crypto.getRandomValues(new Uint8Array(i));
2153
2177
  return Array.from(e).map((t) => $t[t % $t.length]).join("");
2154
2178
  }
2155
- class Ye {
2179
+ class Qe {
2156
2180
  constructor(e) {
2157
- j(this, "data");
2181
+ V(this, "data");
2158
2182
  this.data = Bt({
2159
- id: Je(),
2183
+ id: Ye(),
2160
2184
  version: 1,
2161
2185
  sections: [this.createEmptySection()],
2162
2186
  pageWidth: 595,
@@ -2171,13 +2195,13 @@ class Ye {
2171
2195
  // ─── 工厂方法 ─────────────────────────────────────────────────────────────
2172
2196
  createEmptySection() {
2173
2197
  return {
2174
- id: Je(),
2198
+ id: Ye(),
2175
2199
  paragraphs: [this.createEmptyParagraph()]
2176
2200
  };
2177
2201
  }
2178
2202
  createEmptyParagraph(e) {
2179
2203
  return {
2180
- id: Je(),
2204
+ id: Ye(),
2181
2205
  type: "paragraph",
2182
2206
  format: e ?? {},
2183
2207
  children: []
@@ -2185,7 +2209,7 @@ class Ye {
2185
2209
  }
2186
2210
  createTextElement(e, t) {
2187
2211
  return {
2188
- id: Je(),
2212
+ id: Ye(),
2189
2213
  type: "text",
2190
2214
  value: e,
2191
2215
  format: t ?? {}
@@ -2202,15 +2226,15 @@ class Ye {
2202
2226
  /** 获取所有段落(展开所有 section) */
2203
2227
  getAllParagraphs() {
2204
2228
  const e = [];
2205
- return this.data.sections.forEach((t, l) => {
2206
- t.paragraphs.forEach((o, d) => {
2207
- e.push({ paragraph: o, sectionIndex: l, paragraphIndex: d });
2229
+ return this.data.sections.forEach((t, a) => {
2230
+ t.paragraphs.forEach((o, u) => {
2231
+ e.push({ paragraph: o, sectionIndex: a, paragraphIndex: u });
2208
2232
  });
2209
2233
  }), e;
2210
2234
  }
2211
2235
  getParagraphAt(e, t) {
2212
- var l;
2213
- return ((l = this.data.sections[e]) == null ? void 0 : l.paragraphs[t]) ?? null;
2236
+ var a;
2237
+ return ((a = this.data.sections[e]) == null ? void 0 : a.paragraphs[t]) ?? null;
2214
2238
  }
2215
2239
  getElementAt(e) {
2216
2240
  const t = this.getParagraphAt(e.sectionIndex, e.paragraphIndex);
@@ -2218,64 +2242,64 @@ class Ye {
2218
2242
  }
2219
2243
  // ─── 原子修改方法(由 Command 调用)─────────────────────────────────────
2220
2244
  /** 在指定位置插入文本(拆分/合并 text element) */
2221
- insertText(e, t, l) {
2245
+ insertText(e, t, a) {
2222
2246
  const o = this.getParagraphAt(e.sectionIndex, e.paragraphIndex);
2223
2247
  if (!o) return;
2224
- const d = o.children[e.elementIndex];
2225
- if (d && d.type === "text")
2226
- d.value = d.value.slice(0, e.offset) + t + d.value.slice(e.offset);
2248
+ const u = o.children[e.elementIndex];
2249
+ if (u && u.type === "text")
2250
+ u.value = u.value.slice(0, e.offset) + t + u.value.slice(e.offset);
2227
2251
  else {
2228
- const P = this.createTextElement(t, l);
2252
+ const P = this.createTextElement(t, a);
2229
2253
  o.children.splice(e.elementIndex, 0, P);
2230
2254
  }
2231
2255
  this.bumpVersion();
2232
2256
  }
2233
2257
  /** 删除指定范围内容 */
2234
2258
  deleteAt(e, t) {
2235
- const l = this.getParagraphAt(e.sectionIndex, e.paragraphIndex);
2236
- if (!l) return;
2237
- const o = l.children[e.elementIndex];
2238
- !o || o.type !== "text" || (o.value = o.value.slice(0, e.offset) + o.value.slice(e.offset + t), o.value === "" && l.children.splice(e.elementIndex, 1), this.bumpVersion());
2259
+ const a = this.getParagraphAt(e.sectionIndex, e.paragraphIndex);
2260
+ if (!a) return;
2261
+ const o = a.children[e.elementIndex];
2262
+ !o || o.type !== "text" || (o.value = o.value.slice(0, e.offset) + o.value.slice(e.offset + t), o.value === "" && a.children.splice(e.elementIndex, 1), this.bumpVersion());
2239
2263
  }
2240
2264
  /** 在段落后插入新段落 */
2241
- insertParagraph(e, t, l) {
2265
+ insertParagraph(e, t, a) {
2242
2266
  const o = this.data.sections[e];
2243
2267
  if (!o) throw new Error(`Section ${e} not found`);
2244
- const d = this.createEmptyParagraph(l);
2245
- return o.paragraphs.splice(t + 1, 0, d), this.bumpVersion(), d;
2268
+ const u = this.createEmptyParagraph(a);
2269
+ return o.paragraphs.splice(t + 1, 0, u), this.bumpVersion(), u;
2246
2270
  }
2247
2271
  /** 合并两个相邻段落 */
2248
2272
  mergeParagraphs(e, t) {
2249
- const l = this.data.sections[e];
2250
- if (!l) return;
2251
- const o = l.paragraphs[t], d = l.paragraphs[t + 1];
2252
- !o || !d || (o.children.push(...d.children), l.paragraphs.splice(t + 1, 1), this.bumpVersion());
2273
+ const a = this.data.sections[e];
2274
+ if (!a) return;
2275
+ const o = a.paragraphs[t], u = a.paragraphs[t + 1];
2276
+ !o || !u || (o.children.push(...u.children), a.paragraphs.splice(t + 1, 1), this.bumpVersion());
2253
2277
  }
2254
2278
  /** 更新段落格式 */
2255
- updateParagraphFormat(e, t, l) {
2279
+ updateParagraphFormat(e, t, a) {
2256
2280
  const o = this.getParagraphAt(e, t);
2257
- o && (o.format = { ...o.format, ...l }, this.bumpVersion());
2281
+ o && (o.format = { ...o.format, ...a }, this.bumpVersion());
2258
2282
  }
2259
2283
  /** 更新元素格式 */
2260
2284
  updateElementFormat(e, t) {
2261
- const l = this.getElementAt(e);
2262
- l && (l.format = { ...l.format, ...t }, this.bumpVersion());
2285
+ const a = this.getElementAt(e);
2286
+ a && (a.format = { ...a.format, ...t }, this.bumpVersion());
2263
2287
  }
2264
2288
  /** 批量更新选区内元素格式 */
2265
- updateRangeFormat(e, t, l) {
2289
+ updateRangeFormat(e, t, a) {
2266
2290
  const o = this.getAllParagraphs();
2267
- let d = !1;
2268
- for (const { paragraph: P, sectionIndex: T, paragraphIndex: N } of o) {
2269
- const $ = T === e.sectionIndex && N === e.paragraphIndex, X = T === t.sectionIndex && N === t.paragraphIndex;
2270
- if ($ && (d = !0), d)
2271
- for (let V = 0; V < P.children.length; V++) {
2272
- const q = P.children[V];
2273
- if (!($ && V < e.elementIndex)) {
2274
- if (X && V > t.elementIndex) break;
2275
- q.format = { ...q.format, ...l };
2291
+ let u = !1;
2292
+ for (const { paragraph: P, sectionIndex: S, paragraphIndex: z } of o) {
2293
+ const A = S === e.sectionIndex && z === e.paragraphIndex, Z = S === t.sectionIndex && z === t.paragraphIndex;
2294
+ if (A && (u = !0), u)
2295
+ for (let N = 0; N < P.children.length; N++) {
2296
+ const q = P.children[N];
2297
+ if (!(A && N < e.elementIndex)) {
2298
+ if (Z && N > t.elementIndex) break;
2299
+ q.format = { ...q.format, ...a };
2276
2300
  }
2277
2301
  }
2278
- if (X) break;
2302
+ if (Z) break;
2279
2303
  }
2280
2304
  this.bumpVersion();
2281
2305
  }
@@ -2288,26 +2312,26 @@ class Ye {
2288
2312
  }
2289
2313
  /** 从 JSON 恢复 */
2290
2314
  static fromJSON(e) {
2291
- const t = JSON.parse(e), l = new Ye();
2292
- return Object.assign(l.data, t), l;
2315
+ const t = JSON.parse(e), a = new Qe();
2316
+ return Object.assign(a.data, t), a;
2293
2317
  }
2294
2318
  }
2295
- function Te(i = 0, e = 0, t = 0, l = 0) {
2296
- return { sectionIndex: i, paragraphIndex: e, elementIndex: t, offset: l };
2319
+ function Te(i = 0, e = 0, t = 0, a = 0) {
2320
+ return { sectionIndex: i, paragraphIndex: e, elementIndex: t, offset: a };
2297
2321
  }
2298
2322
  function Lt(i, e) {
2299
2323
  return i.sectionIndex === e.sectionIndex && i.paragraphIndex === e.paragraphIndex && i.elementIndex === e.elementIndex && i.offset === e.offset;
2300
2324
  }
2301
- class st {
2325
+ class rt {
2302
2326
  constructor(e) {
2303
- j(this, "_selection", Bt({
2327
+ V(this, "_selection", Bt({
2304
2328
  anchor: Te(),
2305
2329
  focus: Te(),
2306
2330
  isCollapsed: !0
2307
2331
  }));
2308
- j(this, "_docModel");
2332
+ V(this, "_docModel");
2309
2333
  /** 是否有选区(非光标) */
2310
- j(this, "hasSelection", ke(() => !this._selection.isCollapsed));
2334
+ V(this, "hasSelection", ke(() => !this._selection.isCollapsed));
2311
2335
  this._docModel = e;
2312
2336
  }
2313
2337
  get selection() {
@@ -2324,32 +2348,32 @@ class st {
2324
2348
  e ? this._selection.anchor = { ...this._selection.focus } : this._selection.focus = { ...this._selection.anchor }, this._selection.isCollapsed = !0;
2325
2349
  }
2326
2350
  selectAll() {
2327
- const e = this._docModel.data.sections, t = e[e.length - 1], l = t == null ? void 0 : t.paragraphs[t.paragraphs.length - 1], o = l == null ? void 0 : l.children[l.children.length - 1], d = (o == null ? void 0 : o.type) === "text" ? o.value.length : 0;
2351
+ const e = this._docModel.data.sections, t = e[e.length - 1], a = t == null ? void 0 : t.paragraphs[t.paragraphs.length - 1], o = a == null ? void 0 : a.children[a.children.length - 1], u = (o == null ? void 0 : o.type) === "text" ? o.value.length : 0;
2328
2352
  this._selection.anchor = Te(0, 0, 0, 0), this._selection.focus = Te(
2329
2353
  e.length - 1,
2330
2354
  ((t == null ? void 0 : t.paragraphs.length) ?? 1) - 1,
2331
- ((l == null ? void 0 : l.children.length) ?? 0) === 0 ? 0 : ((l == null ? void 0 : l.children.length) ?? 1) - 1,
2332
- d
2355
+ ((a == null ? void 0 : a.children.length) ?? 0) === 0 ? 0 : ((a == null ? void 0 : a.children.length) ?? 1) - 1,
2356
+ u
2333
2357
  ), this._selection.isCollapsed = !1;
2334
2358
  }
2335
2359
  // ─── 移动光标 ─────────────────────────────────────────────────────────────
2336
2360
  /** 光标向前移动一个字符 */
2337
2361
  moveForward(e = !1) {
2338
- const t = this._selection.focus, l = this._docModel.getParagraphAt(t.sectionIndex, t.paragraphIndex);
2339
- if (!l) return;
2340
- const o = l.children[t.elementIndex];
2362
+ const t = this._selection.focus, a = this._docModel.getParagraphAt(t.sectionIndex, t.paragraphIndex);
2363
+ if (!a) return;
2364
+ const o = a.children[t.elementIndex];
2341
2365
  if ((o == null ? void 0 : o.type) === "text" && t.offset < o.value.length) {
2342
2366
  const P = { ...t, offset: t.offset + 1 };
2343
2367
  this._applyMove(P, e);
2344
2368
  return;
2345
2369
  }
2346
- if (t.elementIndex < l.children.length - 1) {
2370
+ if (t.elementIndex < a.children.length - 1) {
2347
2371
  const P = { ...t, elementIndex: t.elementIndex + 1, offset: 0 };
2348
2372
  this._applyMove(P, e);
2349
2373
  return;
2350
2374
  }
2351
- const d = this._getNextParagraphPoint(t);
2352
- d && this._applyMove(d, e);
2375
+ const u = this._getNextParagraphPoint(t);
2376
+ u && this._applyMove(u, e);
2353
2377
  }
2354
2378
  /** 光标向后移动一个字符 */
2355
2379
  moveBackward(e = !1) {
@@ -2360,12 +2384,12 @@ class st {
2360
2384
  return;
2361
2385
  }
2362
2386
  if (t.elementIndex > 0) {
2363
- const o = this._docModel.getParagraphAt(t.sectionIndex, t.paragraphIndex), d = o == null ? void 0 : o.children[t.elementIndex - 1], P = (d == null ? void 0 : d.type) === "text" ? d.value.length : 0, T = { ...t, elementIndex: t.elementIndex - 1, offset: P };
2364
- this._applyMove(T, e);
2387
+ const o = this._docModel.getParagraphAt(t.sectionIndex, t.paragraphIndex), u = o == null ? void 0 : o.children[t.elementIndex - 1], P = (u == null ? void 0 : u.type) === "text" ? u.value.length : 0, S = { ...t, elementIndex: t.elementIndex - 1, offset: P };
2388
+ this._applyMove(S, e);
2365
2389
  return;
2366
2390
  }
2367
- const l = this._getPrevParagraphPoint(t);
2368
- l && this._applyMove(l, e);
2391
+ const a = this._getPrevParagraphPoint(t);
2392
+ a && this._applyMove(a, e);
2369
2393
  }
2370
2394
  _applyMove(e, t) {
2371
2395
  t ? (this._selection.focus = e, this._selection.isCollapsed = Lt(this._selection.anchor, e)) : (this._selection.anchor = { ...e }, this._selection.focus = { ...e }, this._selection.isCollapsed = !0);
@@ -2378,14 +2402,14 @@ class st {
2378
2402
  if (e.paragraphIndex > 0) {
2379
2403
  const t = this._docModel.getParagraphAt(e.sectionIndex, e.paragraphIndex - 1);
2380
2404
  if (!t) return null;
2381
- const l = t.children.length - 1, o = t.children[l], d = (o == null ? void 0 : o.type) === "text" ? o.value.length : 0;
2382
- return Te(e.sectionIndex, e.paragraphIndex - 1, Math.max(l, 0), d);
2405
+ const a = t.children.length - 1, o = t.children[a], u = (o == null ? void 0 : o.type) === "text" ? o.value.length : 0;
2406
+ return Te(e.sectionIndex, e.paragraphIndex - 1, Math.max(a, 0), u);
2383
2407
  }
2384
2408
  if (e.sectionIndex > 0) {
2385
2409
  const t = this._docModel.data.sections[e.sectionIndex - 1];
2386
2410
  if (!t) return null;
2387
- const l = t.paragraphs.length - 1, o = t.paragraphs[l], d = ((o == null ? void 0 : o.children.length) ?? 0) - 1, P = o == null ? void 0 : o.children[d], T = (P == null ? void 0 : P.type) === "text" ? P.value.length : 0;
2388
- return Te(e.sectionIndex - 1, l, Math.max(d, 0), T);
2411
+ const a = t.paragraphs.length - 1, o = t.paragraphs[a], u = ((o == null ? void 0 : o.children.length) ?? 0) - 1, P = o == null ? void 0 : o.children[u], S = (P == null ? void 0 : P.type) === "text" ? P.value.length : 0;
2412
+ return Te(e.sectionIndex - 1, a, Math.max(u, 0), S);
2389
2413
  }
2390
2414
  return null;
2391
2415
  }
@@ -2395,26 +2419,26 @@ class st {
2395
2419
  * 渲染时每个元素需附带 data-si/data-pi/data-ei 属性
2396
2420
  */
2397
2421
  static domToModelPoint(e, t) {
2398
- let l = e instanceof Element ? e : e.parentElement;
2399
- for (; l; ) {
2400
- const o = l.getAttribute("data-si"), d = l.getAttribute("data-pi"), P = l.getAttribute("data-ei");
2401
- if (o !== null && d !== null && P !== null)
2422
+ let a = e instanceof Element ? e : e.parentElement;
2423
+ for (; a; ) {
2424
+ const o = a.getAttribute("data-si"), u = a.getAttribute("data-pi"), P = a.getAttribute("data-ei");
2425
+ if (o !== null && u !== null && P !== null)
2402
2426
  return {
2403
2427
  sectionIndex: parseInt(o),
2404
- paragraphIndex: parseInt(d),
2428
+ paragraphIndex: parseInt(u),
2405
2429
  elementIndex: parseInt(P),
2406
2430
  offset: t
2407
2431
  };
2408
- l = l.parentElement;
2432
+ a = a.parentElement;
2409
2433
  }
2410
2434
  return null;
2411
2435
  }
2412
2436
  }
2413
- const Ji = 200;
2414
- class Xi {
2437
+ const Gi = 200;
2438
+ class Ji {
2415
2439
  constructor() {
2416
- j(this, "_undoStack", []);
2417
- j(this, "_redoStack", []);
2440
+ V(this, "_undoStack", []);
2441
+ V(this, "_redoStack", []);
2418
2442
  }
2419
2443
  get canUndo() {
2420
2444
  return this._undoStack.length > 0;
@@ -2427,14 +2451,14 @@ class Xi {
2427
2451
  * 支持合并连续同类命令(如连续输入文字)
2428
2452
  */
2429
2453
  push(e) {
2430
- var l, o;
2454
+ var a, o;
2431
2455
  this._redoStack = [];
2432
2456
  const t = this._undoStack[this._undoStack.length - 1];
2433
- if (t && ((l = e.canMergeWith) != null && l.call(e, t))) {
2457
+ if (t && ((a = e.canMergeWith) != null && a.call(e, t))) {
2434
2458
  (o = t.merge) == null || o.call(t, e);
2435
2459
  return;
2436
2460
  }
2437
- this._undoStack.push(e), this._undoStack.length > Ji && this._undoStack.shift();
2461
+ this._undoStack.push(e), this._undoStack.length > Gi && this._undoStack.shift();
2438
2462
  }
2439
2463
  undo() {
2440
2464
  const e = this._undoStack.pop();
@@ -2448,13 +2472,13 @@ class Xi {
2448
2472
  this._undoStack = [], this._redoStack = [];
2449
2473
  }
2450
2474
  }
2451
- class Yi {
2452
- constructor(e, t, l, o, d) {
2453
- j(this, "name", "insertText");
2454
- j(this, "_point");
2455
- j(this, "_text");
2456
- j(this, "_format");
2457
- this.docModel = e, this.selectionManager = t, this._point = { ...l }, this._text = o, this._format = d;
2475
+ class Xi {
2476
+ constructor(e, t, a, o, u) {
2477
+ V(this, "name", "insertText");
2478
+ V(this, "_point");
2479
+ V(this, "_text");
2480
+ V(this, "_format");
2481
+ this.docModel = e, this.selectionManager = t, this._point = { ...a }, this._text = o, this._format = u;
2458
2482
  }
2459
2483
  execute() {
2460
2484
  this.docModel.insertText(this._point, this._text, this._format), this.selectionManager.setCursor({
@@ -2475,55 +2499,55 @@ class Yi {
2475
2499
  this._text += t._text;
2476
2500
  }
2477
2501
  }
2478
- class Zi {
2502
+ class Yi {
2479
2503
  constructor(e, t) {
2480
- j(this, "name", "insertParagraph");
2481
- j(this, "_insertedParagraphId", null);
2504
+ V(this, "name", "insertParagraph");
2505
+ V(this, "_insertedParagraphId", null);
2482
2506
  this.docModel = e, this.selectionManager = t;
2483
2507
  }
2484
2508
  execute() {
2485
- var N, $;
2486
- const { focus: e } = this.selectionManager.selection, { sectionIndex: t, paragraphIndex: l } = e, o = this.docModel.getParagraphAt(t, l);
2509
+ var z, A;
2510
+ const { focus: e } = this.selectionManager.selection, { sectionIndex: t, paragraphIndex: a } = e, o = this.docModel.getParagraphAt(t, a);
2487
2511
  if (!o) return;
2488
- const d = e.elementIndex, P = o.children.splice(d), T = this.docModel.createEmptyParagraph(o.format);
2489
- T.children.push(...P), this._insertedParagraphId = T.id, this.docModel.data.sections[t].paragraphs.splice(l + 1, 0, T), ($ = (N = this.docModel).bumpVersion) == null || $.call(N), this.selectionManager.setCursor({
2512
+ const u = e.elementIndex, P = o.children.splice(u), S = this.docModel.createEmptyParagraph(o.format);
2513
+ S.children.push(...P), this._insertedParagraphId = S.id, this.docModel.data.sections[t].paragraphs.splice(a + 1, 0, S), (A = (z = this.docModel).bumpVersion) == null || A.call(z), this.selectionManager.setCursor({
2490
2514
  sectionIndex: t,
2491
- paragraphIndex: l + 1,
2515
+ paragraphIndex: a + 1,
2492
2516
  elementIndex: 0,
2493
2517
  offset: 0
2494
2518
  });
2495
2519
  }
2496
2520
  undo() {
2497
- const { focus: e } = this.selectionManager.selection, { sectionIndex: t, paragraphIndex: l } = e;
2498
- l !== 0 && (this.docModel.mergeParagraphs(t, l - 1), this.selectionManager.setCursor({
2521
+ const { focus: e } = this.selectionManager.selection, { sectionIndex: t, paragraphIndex: a } = e;
2522
+ a !== 0 && (this.docModel.mergeParagraphs(t, a - 1), this.selectionManager.setCursor({
2499
2523
  sectionIndex: t,
2500
- paragraphIndex: l - 1,
2524
+ paragraphIndex: a - 1,
2501
2525
  elementIndex: 0,
2502
2526
  offset: 0
2503
2527
  }));
2504
2528
  }
2505
2529
  }
2506
2530
  class Rt {
2507
- constructor(e, t, l) {
2508
- j(this, "name");
2509
- j(this, "_deletedText", "");
2510
- this.docModel = e, this.selectionManager = t, this.name = l === "backward" ? "deleteBackward" : "deleteForward";
2531
+ constructor(e, t, a) {
2532
+ V(this, "name");
2533
+ V(this, "_deletedText", "");
2534
+ this.docModel = e, this.selectionManager = t, this.name = a === "backward" ? "deleteBackward" : "deleteForward";
2511
2535
  }
2512
2536
  execute() {
2513
2537
  const { focus: e, isCollapsed: t } = this.selectionManager.selection;
2514
2538
  if (t)
2515
2539
  if (this.name === "deleteBackward")
2516
2540
  if (e.offset > 0) {
2517
- const l = { ...e, offset: e.offset - 1 }, o = this.docModel.getElementAt(e);
2518
- (o == null ? void 0 : o.type) === "text" && (this._deletedText = o.value[e.offset - 1] ?? ""), this.docModel.deleteAt(l, 1), this.selectionManager.setCursor(l);
2541
+ const a = { ...e, offset: e.offset - 1 }, o = this.docModel.getElementAt(e);
2542
+ (o == null ? void 0 : o.type) === "text" && (this._deletedText = o.value[e.offset - 1] ?? ""), this.docModel.deleteAt(a, 1), this.selectionManager.setCursor(a);
2519
2543
  } else (e.paragraphIndex > 0 || e.elementIndex > 0) && (this.docModel.mergeParagraphs(e.sectionIndex, e.paragraphIndex - 1), this.selectionManager.setCursor({
2520
2544
  ...e,
2521
2545
  paragraphIndex: e.paragraphIndex - 1
2522
2546
  }));
2523
2547
  else {
2524
- const l = this.docModel.getElementAt(e);
2525
- if ((l == null ? void 0 : l.type) === "text" && e.offset < l.value.length)
2526
- this._deletedText = l.value[e.offset], this.docModel.deleteAt(e, 1);
2548
+ const a = this.docModel.getElementAt(e);
2549
+ if ((a == null ? void 0 : a.type) === "text" && e.offset < a.value.length)
2550
+ this._deletedText = a.value[e.offset], this.docModel.deleteAt(e, 1);
2527
2551
  else {
2528
2552
  const o = this.docModel.data.sections[e.sectionIndex];
2529
2553
  o && e.paragraphIndex < o.paragraphs.length - 1 && this.docModel.mergeParagraphs(e.sectionIndex, e.paragraphIndex);
@@ -2537,21 +2561,21 @@ class Rt {
2537
2561
  }
2538
2562
  }
2539
2563
  }
2540
- class He {
2541
- constructor(e, t, l, o) {
2542
- j(this, "name");
2543
- j(this, "_prevFormat", {});
2544
- this.docModel = e, this.selectionManager = t, this._value = o, this.name = l;
2564
+ class De {
2565
+ constructor(e, t, a, o) {
2566
+ V(this, "name");
2567
+ V(this, "_prevFormat", {});
2568
+ this.docModel = e, this.selectionManager = t, this._value = o, this.name = a;
2545
2569
  }
2546
2570
  execute() {
2547
- const { anchor: e, focus: t } = this.selectionManager.selection, l = this._getFormatKey();
2548
- if (!l) return;
2571
+ const { anchor: e, focus: t } = this.selectionManager.selection, a = this._getFormatKey();
2572
+ if (!a) return;
2549
2573
  const o = {};
2550
2574
  if (this._isToggle()) {
2551
- const d = this._getCurrentValue(l);
2552
- o[l] = !d;
2575
+ const u = this._getCurrentValue(a);
2576
+ o[a] = !u;
2553
2577
  } else
2554
- o[l] = this._value;
2578
+ o[a] = this._value;
2555
2579
  this.docModel.updateRangeFormat(e, t, o);
2556
2580
  }
2557
2581
  undo() {
@@ -2575,14 +2599,14 @@ class He {
2575
2599
  }
2576
2600
  _getCurrentValue(e) {
2577
2601
  var o;
2578
- const { focus: t } = this.selectionManager.selection, l = this.docModel.getElementAt(t);
2579
- return (o = l == null ? void 0 : l.format) == null ? void 0 : o[e];
2602
+ const { focus: t } = this.selectionManager.selection, a = this.docModel.getElementAt(t);
2603
+ return (o = a == null ? void 0 : a.format) == null ? void 0 : o[e];
2580
2604
  }
2581
2605
  }
2582
- class ot {
2583
- constructor(e, t, l, o) {
2584
- j(this, "name", "textAlign");
2585
- this.docModel = e, this.selectionManager = t, this._formatKey = l, this._value = o;
2606
+ class st {
2607
+ constructor(e, t, a, o) {
2608
+ V(this, "name", "textAlign");
2609
+ this.docModel = e, this.selectionManager = t, this._formatKey = a, this._value = o;
2586
2610
  }
2587
2611
  execute() {
2588
2612
  const { focus: e } = this.selectionManager.selection, t = {};
@@ -2591,22 +2615,22 @@ class ot {
2591
2615
  undo() {
2592
2616
  }
2593
2617
  }
2594
- class Qi {
2595
- constructor(e, t, l) {
2596
- j(this, "_factories", /* @__PURE__ */ new Map());
2597
- this.docModel = e, this.selectionManager = t, this.historyManager = l, this._registerBuiltinCommands();
2618
+ class Zi {
2619
+ constructor(e, t, a) {
2620
+ V(this, "_factories", /* @__PURE__ */ new Map());
2621
+ this.docModel = e, this.selectionManager = t, this.historyManager = a, this._registerBuiltinCommands();
2598
2622
  }
2599
2623
  // ─── 注册内置命令 ─────────────────────────────────────────────────────────
2600
2624
  _registerBuiltinCommands() {
2601
2625
  this.register("insertText", (t) => {
2602
- const { focus: l } = this.selectionManager.selection;
2603
- return new Yi(this.docModel, this.selectionManager, l, t);
2604
- }), this.register("insertParagraph", () => new Zi(this.docModel, this.selectionManager)), this.register("deleteBackward", () => new Rt(this.docModel, this.selectionManager, "backward")), this.register("deleteForward", () => new Rt(this.docModel, this.selectionManager, "forward")), this.register("undo", () => null), this.register("redo", () => null), ["bold", "italic", "underline", "strikethrough", "superscript", "subscript"].forEach((t) => {
2605
- this.register(t, () => new He(this.docModel, this.selectionManager, t));
2606
- }), this.register("fontSize", (t) => new He(this.docModel, this.selectionManager, "fontSize", t)), this.register("fontFamily", (t) => new He(this.docModel, this.selectionManager, "fontFamily", t)), this.register("color", (t) => new He(this.docModel, this.selectionManager, "color", t)), this.register("backgroundColor", (t) => new He(this.docModel, this.selectionManager, "backgroundColor", t)), this.register("textAlign", (t) => new ot(this.docModel, this.selectionManager, "textAlign", t)), this.register("lineHeight", (t) => new ot(this.docModel, this.selectionManager, "lineHeight", t)), this.register("heading", (t) => new ot(this.docModel, this.selectionManager, "heading", t)), this.register("selectAll", () => (this.selectionManager.selectAll(), null)), this.register("setSelection", (t) => {
2626
+ const { focus: a } = this.selectionManager.selection;
2627
+ return new Xi(this.docModel, this.selectionManager, a, t);
2628
+ }), this.register("insertParagraph", () => new Yi(this.docModel, this.selectionManager)), this.register("deleteBackward", () => new Rt(this.docModel, this.selectionManager, "backward")), this.register("deleteForward", () => new Rt(this.docModel, this.selectionManager, "forward")), this.register("undo", () => null), this.register("redo", () => null), ["bold", "italic", "underline", "strikethrough", "superscript", "subscript"].forEach((t) => {
2629
+ this.register(t, () => new De(this.docModel, this.selectionManager, t));
2630
+ }), this.register("fontSize", (t) => new De(this.docModel, this.selectionManager, "fontSize", t)), this.register("fontFamily", (t) => new De(this.docModel, this.selectionManager, "fontFamily", t)), this.register("color", (t) => new De(this.docModel, this.selectionManager, "color", t)), this.register("backgroundColor", (t) => new De(this.docModel, this.selectionManager, "backgroundColor", t)), this.register("textAlign", (t) => new st(this.docModel, this.selectionManager, "textAlign", t)), this.register("lineHeight", (t) => new st(this.docModel, this.selectionManager, "lineHeight", t)), this.register("heading", (t) => new st(this.docModel, this.selectionManager, "heading", t)), this.register("selectAll", () => (this.selectionManager.selectAll(), null)), this.register("setSelection", (t) => {
2607
2631
  if (t) {
2608
- const l = t;
2609
- this.selectionManager.setSelection(l.anchor, l.focus);
2632
+ const a = t;
2633
+ this.selectionManager.setSelection(a.anchor, a.focus);
2610
2634
  }
2611
2635
  return null;
2612
2636
  });
@@ -2624,27 +2648,27 @@ class Qi {
2624
2648
  this.historyManager.redo();
2625
2649
  return;
2626
2650
  }
2627
- const l = this._factories.get(e);
2628
- if (!l) {
2651
+ const a = this._factories.get(e);
2652
+ if (!a) {
2629
2653
  console.warn(`[CommandManager] 未注册命令: ${e}`);
2630
2654
  return;
2631
2655
  }
2632
- const o = l(t);
2656
+ const o = a(t);
2633
2657
  o && (o.execute(), this.historyManager.push(o));
2634
2658
  }
2635
2659
  }
2636
- class ea {
2660
+ class Qi {
2637
2661
  constructor(e, t) {
2638
- j(this, "_el", null);
2639
- j(this, "_commandManager");
2640
- j(this, "_selectionManager");
2641
- j(this, "_composing", !1);
2662
+ V(this, "_el", null);
2663
+ V(this, "_commandManager");
2664
+ V(this, "_selectionManager");
2665
+ V(this, "_composing", !1);
2642
2666
  // 正在 IME 输入中
2643
- j(this, "_boundKeydown");
2644
- j(this, "_boundBeforeInput");
2645
- j(this, "_boundCompositionStart");
2646
- j(this, "_boundCompositionEnd");
2647
- j(this, "_boundSelectionChange");
2667
+ V(this, "_boundKeydown");
2668
+ V(this, "_boundBeforeInput");
2669
+ V(this, "_boundCompositionStart");
2670
+ V(this, "_boundCompositionEnd");
2671
+ V(this, "_boundSelectionChange");
2648
2672
  this._commandManager = e, this._selectionManager = t, this._boundKeydown = this._onKeydown.bind(this), this._boundBeforeInput = this._onBeforeInput.bind(this), this._boundCompositionStart = () => {
2649
2673
  this._composing = !0;
2650
2674
  }, this._boundCompositionEnd = this._onCompositionEnd.bind(this), this._boundSelectionChange = this._onSelectionChange.bind(this);
@@ -2657,8 +2681,8 @@ class ea {
2657
2681
  }
2658
2682
  // ─── 事件处理 ─────────────────────────────────────────────────────────────
2659
2683
  _onKeydown(e) {
2660
- const t = e.key, l = e.ctrlKey || e.metaKey, o = e.shiftKey;
2661
- if (l)
2684
+ const t = e.key, a = e.ctrlKey || e.metaKey, o = e.shiftKey;
2685
+ if (a)
2662
2686
  switch (t) {
2663
2687
  case "z":
2664
2688
  e.preventDefault(), o ? this._commandManager.exec("redo") : this._commandManager.exec("undo");
@@ -2706,24 +2730,24 @@ class ea {
2706
2730
  _onSelectionChange() {
2707
2731
  const e = window.getSelection();
2708
2732
  if (!e || !this._el) return;
2709
- const t = e.anchorNode, l = e.focusNode;
2710
- if (!t || !l || !this._el.contains(t) && !this._el.contains(l)) return;
2711
- const o = st.domToModelPoint(t, e.anchorOffset), d = st.domToModelPoint(l, e.focusOffset);
2712
- o && d && this._selectionManager.setSelection(o, d);
2733
+ const t = e.anchorNode, a = e.focusNode;
2734
+ if (!t || !a || !this._el.contains(t) && !this._el.contains(a)) return;
2735
+ const o = rt.domToModelPoint(t, e.anchorOffset), u = rt.domToModelPoint(a, e.focusOffset);
2736
+ o && u && this._selectionManager.setSelection(o, u);
2713
2737
  }
2714
2738
  }
2715
- class ta {
2739
+ class el {
2716
2740
  constructor(e = {}) {
2717
- j(this, "docModel");
2718
- j(this, "selection");
2719
- j(this, "history");
2720
- j(this, "commands");
2721
- j(this, "input");
2722
- j(this, "_readonly");
2723
- j(this, "_plugins", []);
2724
- j(this, "_inputEl", null);
2741
+ V(this, "docModel");
2742
+ V(this, "selection");
2743
+ V(this, "history");
2744
+ V(this, "commands");
2745
+ V(this, "input");
2746
+ V(this, "_readonly");
2747
+ V(this, "_plugins", []);
2748
+ V(this, "_inputEl", null);
2725
2749
  var t;
2726
- this._readonly = e.readonly ?? !1, this.docModel = new Ye(e.initialDocument), this.selection = new st(this.docModel), this.history = new Xi(), this.commands = new Qi(this.docModel, this.selection, this.history), this.input = new ea(this.commands, this.selection), (t = e.plugins) == null || t.forEach((l) => this.use(l));
2750
+ this._readonly = e.readonly ?? !1, this.docModel = new Qe(e.initialDocument), this.selection = new rt(this.docModel), this.history = new Ji(), this.commands = new Zi(this.docModel, this.selection, this.history), this.input = new Qi(this.commands, this.selection), (t = e.plugins) == null || t.forEach((a) => this.use(a));
2727
2751
  }
2728
2752
  // ─── 公共 API ─────────────────────────────────────────────────────────────
2729
2753
  /**
@@ -2757,7 +2781,7 @@ class ta {
2757
2781
  }
2758
2782
  /** 从 JSON 加载文档(清空历史) */
2759
2783
  loadJSON(e) {
2760
- const t = Ye.fromJSON(e);
2784
+ const t = Qe.fromJSON(e);
2761
2785
  Object.assign(this.docModel.data, t.data), this.history.clear();
2762
2786
  }
2763
2787
  get isReadonly() {
@@ -2768,28 +2792,28 @@ class ta {
2768
2792
  }
2769
2793
  }
2770
2794
  const Nt = Symbol("editor");
2771
- function sa(i) {
2772
- const e = new ta(i);
2773
- return vn(Nt, e), Ze(() => {
2795
+ function ol(i) {
2796
+ const e = new el(i);
2797
+ return vn(Nt, e), et(() => {
2774
2798
  e.unmount();
2775
2799
  }), e;
2776
2800
  }
2777
- function ra() {
2801
+ function sl() {
2778
2802
  const i = mn(Nt);
2779
2803
  if (!i)
2780
2804
  throw new Error("[useEditor] 必须在 EditorContainer 组件内使用");
2781
2805
  return i;
2782
2806
  }
2783
- const na = Gi, ca = {
2807
+ const tl = Ui, rl = {
2784
2808
  install(i) {
2785
- i.component("EditorContainer", na);
2809
+ i.component("EditorContainer", tl);
2786
2810
  }
2787
2811
  };
2788
2812
  export {
2789
- ta as Editor,
2790
- na as EditorContainer,
2813
+ el as Editor,
2814
+ tl as EditorContainer,
2791
2815
  Nt as EditorKey,
2792
- sa as createEditor,
2793
- ca as default,
2794
- ra as useEditor
2816
+ ol as createEditor,
2817
+ rl as default,
2818
+ sl as useEditor
2795
2819
  };