@guodun/antdv 1.5.2 → 1.5.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.
Files changed (28) hide show
  1. package/dist/es/components/contract-signing-location/style/index.css +1 -1
  2. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.mjs +190 -169
  3. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.mjs +43 -43
  4. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +114 -98
  5. package/dist/es/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.mjs +29 -18
  6. package/dist/es/components/pro-contract-template-designer/src/extensions/editor-extensions.mjs +4 -1
  7. package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +62 -34
  8. package/dist/es/components/pro-contract-template-designer/src/utils/clipboard.mjs +24 -0
  9. package/dist/es/components/pro-contract-template-designer/src/utils/toolbar-overflow.mjs +4 -1
  10. package/dist/lib/components/contract-signing-location/style/index.css +1 -1
  11. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.cjs +1 -1
  12. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.cjs +1 -1
  13. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  14. package/dist/lib/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.cjs +1 -1
  15. package/dist/lib/components/pro-contract-template-designer/src/extensions/editor-extensions.cjs +1 -1
  16. package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
  17. package/dist/lib/components/pro-contract-template-designer/src/utils/clipboard.cjs +1 -0
  18. package/dist/lib/components/pro-contract-template-designer/src/utils/toolbar-overflow.cjs +1 -1
  19. package/dist/theme/contract-signing-location.css +1 -1
  20. package/dist/theme/icon.css +1 -1
  21. package/dist/theme/index.css +1 -1
  22. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.d.ts +2 -1
  23. package/dist/types/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.d.ts +1 -1
  24. package/dist/types/components/pro-contract-template-designer/src/extensions/editor-extensions.d.ts +2 -0
  25. package/dist/types/components/pro-contract-template-designer/src/extensions/word-paste.d.ts +2 -0
  26. package/dist/types/components/pro-contract-template-designer/src/utils/clipboard.d.ts +7 -0
  27. package/dist/types/components/pro-contract-template-designer/src/utils/toolbar-overflow.d.ts +2 -2
  28. package/package.json +3 -3
@@ -18,10 +18,10 @@ var l = 0, u = "application/x-gd-contract-template", d = `contract-template-${Da
18
18
  rtf: t?.rtf,
19
19
  trustedInternal: t?.trustedInternal
20
20
  });
21
- return t && (t.source = n.source, t.recoveredRtfImages = n.recoveredImageCount), m(this.editor, this.storage, n.replacedFontFamilies), n.html;
21
+ return t && (t.source = n.source, t.recoveredRtfImages = n.recoveredImageCount, t.replacedFontFamilies = n.replacedFontFamilies), m(this.editor, this.storage, n.replacedFontFamilies), n.html;
22
22
  },
23
23
  addProseMirrorPlugins() {
24
- let n = this.editor, o = this.storage, c = this.options.processImageFile;
24
+ let n = this.editor, o = this.storage, c = this.options.processImageFile, p = this.options.confirmExternalFontPaste;
25
25
  return [new s({
26
26
  key: f,
27
27
  state: {
@@ -48,42 +48,63 @@ var l = 0, u = "application/x-gd-contract-template", d = `contract-template-${Da
48
48
  },
49
49
  props: {
50
50
  handleDOMEvents: {
51
- copy: (e, t) => h(e, t, !1),
52
- cut: (e, t) => h(e, t, !0),
53
- paste: (e, n) => {
54
- let r = n.clipboardData;
55
- if (!r) return !1;
56
- let i = r.getData("text/html"), a = {
57
- html: i,
58
- plainText: r.getData("text/plain"),
59
- rtf: r.getData("text/rtf") || r.getData("application/rtf"),
60
- files: v(r),
61
- source: t(i),
51
+ copy: (e, t) => g(e, t, !1),
52
+ cut: (e, t) => g(e, t, !0),
53
+ paste: (e, i) => {
54
+ let a = i.clipboardData;
55
+ if (!a) return !1;
56
+ let s = a.getData("text/html"), c = a.getData("text/plain"), l = a.getData("text/rtf") || a.getData("application/rtf"), f = y(a), g = t(s), _ = a.getData(u) === d || s.includes(`data-gd-contract-copy="${d}"`) || s.includes(`data-gd-contract-copy='${d}'`), v = {
57
+ html: s,
58
+ plainText: c,
59
+ rtf: l,
60
+ files: f,
61
+ source: g,
62
62
  recoveredRtfImages: 0,
63
- trustedInternal: r.getData(u) === d || i.includes(`data-gd-contract-copy="${d}"`) || i.includes(`data-gd-contract-copy='${d}'`)
63
+ trustedInternal: _,
64
+ replacedFontFamilies: []
64
65
  };
65
- return o.pending = a, queueMicrotask(() => {
66
- o.pending === a && (o.pending = void 0);
66
+ if (!_ && s && !f.length && typeof p == "function") {
67
+ let e = r(s, {
68
+ plainText: c,
69
+ rtf: l
70
+ });
71
+ if (e.replacedFontFamilies.length) return i.preventDefault(), h(p, e.replacedFontFamilies).then((t) => {
72
+ !t || n.isDestroyed || (o.pending = void 0, m(n, o, e.replacedFontFamilies), n.chain().focus().insertContent(e.html).run());
73
+ }), !0;
74
+ }
75
+ return o.pending = v, queueMicrotask(() => {
76
+ o.pending === v && (o.pending = void 0);
67
77
  }), !1;
68
78
  }
69
79
  },
70
80
  handlePaste: (t, s) => {
71
81
  let u = o.pending;
72
82
  if (!u) return !1;
73
- let d = u.files.length ? u.files : v(s.clipboardData), p = u.recoveredRtfImages || y(u.rtf), h = d.length > 0 && p === 0 && !u.trustedInternal;
74
- if (o.pending = void 0, !h) return !1;
83
+ let d = u.files.length ? u.files : y(s.clipboardData), g = u.recoveredRtfImages || b(u.rtf), x = d.length > 0 && g === 0 && !u.trustedInternal;
84
+ if (o.pending = void 0, !x) return !1;
75
85
  s.preventDefault();
76
- let b = `word-paste-${++l}`, x = {
77
- token: b,
86
+ let S = `word-paste-${++l}`, C = {
87
+ token: S,
78
88
  from: t.state.selection.from,
79
89
  to: t.state.selection.to
80
90
  };
81
- return t.dispatch(t.state.tr.setMeta(f, {
91
+ t.dispatch(t.state.tr.setMeta(f, {
82
92
  type: "set",
83
- ...x
84
- }).setMeta("addToHistory", !1)), a(d, c).then((t) => {
85
- if (n.isDestroyed) return;
86
- let a = f.getState(n.state)?.get(b);
93
+ ...C
94
+ }).setMeta("addToHistory", !1));
95
+ let w = u.replacedFontFamilies.length ? u.replacedFontFamilies : u.html ? r(u.html, {
96
+ plainText: u.plainText,
97
+ rtf: u.rtf
98
+ }).replacedFontFamilies : [];
99
+ return (w.length && typeof p == "function" ? h(p, w).then((e) => {
100
+ if (!e) {
101
+ _(n, S);
102
+ return;
103
+ }
104
+ return a(d, c);
105
+ }) : a(d, c)).then((t) => {
106
+ if (!t || n.isDestroyed) return;
107
+ let a = f.getState(n.state)?.get(S);
87
108
  if (!a) return;
88
109
  let s = t.filter((e) => !!e), c = u.html ? r(u.html, {
89
110
  plainText: u.plainText,
@@ -92,11 +113,11 @@ var l = 0, u = "application/x-gd-contract-template", d = `contract-template-${Da
92
113
  preferClipboardImages: !0,
93
114
  trustedInternal: u.trustedInternal
94
115
  }) : void 0, l = c?.html || (s.length ? `<p>${s.map((t) => `<img src="${e(t)}" alt="">`).join("")}</p>` : i(u.plainText));
95
- c && m(n, o, c.replacedFontFamilies), _(n, a, l || i(u.plainText));
116
+ c && m(n, o, c.replacedFontFamilies), v(n, a, l || i(u.plainText));
96
117
  }).catch(() => {
97
118
  if (n.isDestroyed) return;
98
- let e = f.getState(n.state)?.get(b);
99
- e ? _(n, e, i(u.plainText)) : g(n, b);
119
+ let e = f.getState(n.state)?.get(S);
120
+ e ? v(n, e, i(u.plainText)) : _(n, S);
100
121
  }), !0;
101
122
  }
102
123
  }
@@ -106,7 +127,14 @@ var l = 0, u = "application/x-gd-contract-template", d = `contract-template-${Da
106
127
  function m(e, t, n) {
107
128
  t.lastReplacedFontFamilies = n, n.length && e.emit("contract-word-paste", { replacedFontFamilies: n });
108
129
  }
109
- function h(e, t, n) {
130
+ function h(e, t) {
131
+ try {
132
+ return Promise.resolve(e(t)).catch(() => !1);
133
+ } catch {
134
+ return Promise.resolve(!1);
135
+ }
136
+ }
137
+ function g(e, t, n) {
110
138
  if (e.state.selection.empty || !t.clipboardData) return !1;
111
139
  let { dom: r, text: i } = e.serializeForClipboard(e.state.selection.content());
112
140
  r.firstElementChild?.setAttribute("data-gd-contract-copy", d), t.preventDefault(), t.clipboardData.clearData(), t.clipboardData.setData("text/html", r.innerHTML), t.clipboardData.setData("text/plain", i);
@@ -115,22 +143,22 @@ function h(e, t, n) {
115
143
  } catch {}
116
144
  return n && e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent", "cut")), !0;
117
145
  }
118
- function g(e, t) {
146
+ function _(e, t) {
119
147
  e.isDestroyed || e.view.dispatch(e.state.tr.setMeta(f, {
120
148
  type: "clear",
121
149
  token: t
122
150
  }).setMeta("addToHistory", !1));
123
151
  }
124
- function _(e, t, n) {
152
+ function v(e, t, n) {
125
153
  e.chain().insertContentAt({
126
154
  from: t.from,
127
155
  to: t.to
128
156
  }, n, { updateSelection: !1 }).command(({ tr: e }) => (e.setMeta(f, {
129
157
  type: "clear",
130
158
  token: t.token
131
- }), e.setMeta("paste", !0), e.setMeta("uiEvent", "paste"), !0)).run() || g(e, t.token);
159
+ }), e.setMeta("paste", !0), e.setMeta("uiEvent", "paste"), !0)).run() || _(e, t.token);
132
160
  }
133
- function v(e) {
161
+ function y(e) {
134
162
  if (!e) return [];
135
163
  let t = [];
136
164
  for (let n of Array.from(e.items)) {
@@ -141,7 +169,7 @@ function v(e) {
141
169
  if (!t.length) for (let n of Array.from(e.files)) n.type.toLowerCase().startsWith("image/") && t.push(n);
142
170
  return t;
143
171
  }
144
- function y(e) {
172
+ function b(e) {
145
173
  return n(e).length;
146
174
  }
147
175
  //#endregion
@@ -0,0 +1,24 @@
1
+ //#region src/components/pro-contract-template-designer/src/utils/clipboard.ts
2
+ async function e(e) {
3
+ let t;
4
+ if (typeof navigator < "u" && typeof navigator.clipboard?.writeText == "function") try {
5
+ await navigator.clipboard.writeText(e);
6
+ return;
7
+ } catch (e) {
8
+ t = e;
9
+ }
10
+ if (typeof document < "u" && typeof document.execCommand == "function") {
11
+ let t = document.createElement("textarea");
12
+ t.value = e, t.setAttribute("readonly", ""), t.setAttribute("aria-hidden", "true"), t.style.position = "fixed", t.style.top = "0", t.style.left = "-9999px", t.style.opacity = "0", document.body?.appendChild(t);
13
+ let n = document.getSelection?.(), r = n ? Array.from({ length: n.rangeCount }, (e, t) => n.getRangeAt(t).cloneRange()) : [];
14
+ try {
15
+ if (t.focus({ preventScroll: !0 }), t.select(), document.execCommand("copy")) return;
16
+ } finally {
17
+ t.remove(), n && (n.removeAllRanges(), r.forEach((e) => n.addRange(e)));
18
+ }
19
+ }
20
+ let n = t instanceof Error ? t.message : "当前浏览器未授权剪贴板操作";
21
+ throw Error(n);
22
+ }
23
+ //#endregion
24
+ export { e as writeContractClipboardText };
@@ -2,7 +2,10 @@
2
2
  var e = [
3
3
  "table",
4
4
  "cleanup",
5
- "typography",
5
+ "list",
6
+ "font-family",
7
+ "alignment",
8
+ "font-appearance",
6
9
  "insert"
7
10
  ];
8
11
  function t(t) {
@@ -1 +1 @@
1
- :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-ant-contract-signing-location{height:var(--gd-ant-contract-signing-location-height,clamp(720px, 100vh - 180px, 980px));border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""error""body";display:grid;overflow:hidden;container-type:inline-size}.gd-ant-contract-signing-location__header,.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper,.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary,.gd-ant-contract-signing-location__zoom-tools,.gd-ant-contract-signing-location__error{align-items:center;display:flex}.gd-ant-contract-signing-location__header{justify-content:space-between;gap:var(--gdant-spacing-base);min-height:60px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);grid-area:header}.gd-ant-contract-signing-location__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-contract-signing-location__title>div{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__title strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__title span:last-child{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-ant-contract-signing-location__header-actions{gap:var(--gdant-spacing-sm);flex:none}.gd-ant-contract-signing-location__placement-count{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__error{justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:40px;padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-error-100);background:var(--gdant-error-50);color:var(--gdant-error-700);font-size:var(--gdant-text-body-sm);grid-area:error}.gd-ant-contract-signing-location__body{--gd-navigator-expanded:220px;--gd-inspector-expanded:280px;grid-area:body;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:minmax(0,1fr) auto}.gd-ant-contract-signing-location__body.is-inspector-hidden{grid-template-columns:auto minmax(0,1fr)}.gd-ant-contract-signing-location__body.is-single-file.is-inspector-hidden{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector{background:var(--gdant-neutral-0);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.gd-ant-contract-signing-location__inspector{overflow:hidden}.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap{width:var(--gd-navigator-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed{border-right-width:0;width:0}.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border-left-width:0;width:0}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack{visibility:hidden}.gd-ant-contract-signing-location__panel-stack{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__inspector{height:100%}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-navigator-expanded);flex:none}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-inspector-expanded);flex:none}.gd-ant-contract-signing-location__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__panel-handle .anticon{font-size:10px}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-ant-contract-signing-location__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__property-head{justify-content:space-between;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);flex:none}.gd-ant-contract-signing-location__panel-head>div,.gd-ant-contract-signing-location__property-head>div{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__panel-head strong,.gd-ant-contract-signing-location__property-head strong{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-semibold)}.gd-ant-contract-signing-location__panel-head>div>span,.gd-ant-contract-signing-location__property-head>div>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__file-list{gap:var(--gdant-spacing-base);padding:var(--gdant-spacing-md);display:grid}.gd-ant-contract-signing-location__file-group,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__tool-list,.gd-ant-contract-signing-location__property-body,.gd-ant-contract-signing-location__inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-ant-contract-signing-location__file-title{align-items:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-700);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-ant-contract-signing-location__file-title>svg{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__file-title>span{font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__file-title>small{color:var(--gdant-neutral-500);white-space:nowrap}.gd-ant-contract-signing-location__thumbnail-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__thumbnail{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);display:grid}.gd-ant-contract-signing-location__thumbnail:hover,.gd-ant-contract-signing-location__thumbnail.is-active{border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__thumbnail.is-active{color:var(--gdant-primary-600);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 16%, transparent)}.gd-ant-contract-signing-location__thumbnail.is-error:not(.is-active){border-color:var(--gdant-error-500);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__thumbnail:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:2px}.gd-ant-contract-signing-location__thumbnail-preview{aspect-ratio:3/4;border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-100);color:var(--gdant-neutral-400);place-items:center;display:grid;overflow:hidden}.gd-ant-contract-signing-location__thumbnail-preview img{object-fit:cover;object-position:top center;width:100%;height:100%}.gd-ant-contract-signing-location__workspace{background:var(--gdant-neutral-100);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__workspace-head{z-index:2;justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:54px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0)}.gd-ant-contract-signing-location__workspace-head>div:first-child{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__workspace-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__workspace-head>div:first-child>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__workspace-tools{gap:var(--gdant-spacing-md);flex:none}.gd-ant-contract-signing-location__page-jumper{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__page-jumper label{align-items:center;gap:var(--gdant-spacing-xs);white-space:nowrap;display:inline-flex}.gd-ant-contract-signing-location__page-jumper input{width:52px;height:28px;padding:0 var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-800);font:inherit;text-align:center}.gd-ant-contract-signing-location__page-jumper input:focus-visible{outline:2px solid color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__canvas-scroll{min-height:0;padding:var(--gdant-spacing-xl);position:relative;overflow:auto}.gd-ant-contract-signing-location__canvas-state,.gd-ant-contract-signing-location__panel-empty{place-content:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-500);text-align:center;display:grid}.gd-ant-contract-signing-location__canvas-state{min-height:440px}.gd-ant-contract-signing-location__canvas-state.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__canvas-state.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__canvas-state.is-error button{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-error-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-error-600);font:inherit;cursor:pointer;justify-self:center}.gd-ant-contract-signing-location__page-stack{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page-shell{position:absolute;overflow:hidden}.gd-ant-contract-signing-location__page-stage{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page{transform-origin:0 0;border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.gd-ant-contract-signing-location__page-image{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder{place-content:center;gap:var(--gdant-spacing-sm);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);text-align:center;display:grid;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder strong{color:var(--gdant-neutral-700);font-size:var(--gdant-text-h3)}.gd-ant-contract-signing-location__page-placeholder.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__page-placeholder.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__template-page{background:var(--gdant-neutral-0);pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-ant-contract-signing-location__template-page .gd-contract-print-iframe{background:var(--gdant-neutral-0);border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.gd-ant-contract-signing-location__template-warning{right:var(--gdant-spacing-md);bottom:var(--gdant-spacing-md);left:var(--gdant-spacing-md);z-index:1;gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-200);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-warning-50) 94%, transparent);color:var(--gdant-warning-700);font-size:var(--gdant-text-body-sm);display:grid;position:absolute}.gd-ant-contract-signing-location__render-region{z-index:2;box-sizing:border-box;border:1px solid #0000;position:absolute;inset:0}.gd-ant-contract-signing-location__render-region-content{width:100%;height:100%;position:relative;overflow:hidden}.gd-ant-contract-signing-location__placement{z-index:3;border-radius:var(--gdant-radius-xs);min-width:0;min-height:0;color:var(--gdant-primary-500);font:inherit;appearance:none;cursor:move;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;overflow:visible}.gd-ant-contract-signing-location__placement:hover,.gd-ant-contract-signing-location__placement:focus-visible,.gd-ant-contract-signing-location__placement.is-selected{outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);outline:1px solid}.gd-ant-contract-signing-location__placement:focus-visible{outline-width:2px}.gd-ant-contract-signing-location__placement.is-seal{color:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date{color:var(--gdant-warning-600)}.gd-ant-contract-signing-location__placement-body{pointer-events:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.gd-ant-contract-signing-location__placement-visual{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;min-width:0;height:100%;min-height:0;display:block}.gd-ant-contract-signing-location__placement-badge{z-index:4;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-500);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);pointer-events:none;white-space:nowrap;line-height:1.4;position:absolute;top:0;right:0;transform:translate(30%,-40%)}.gd-ant-contract-signing-location__placement.is-seal .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-warning-500)}.gd-ant-contract-signing-location__resize-handle{z-index:5;border:1px solid var(--gdant-primary-500);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);width:8px;height:8px;position:absolute}.gd-ant-contract-signing-location__resize-handle.is-n,.gd-ant-contract-signing-location__resize-handle.is-s{cursor:ns-resize;left:50%;transform:translate(-50%)}.gd-ant-contract-signing-location__resize-handle.is-e,.gd-ant-contract-signing-location__resize-handle.is-w{cursor:ew-resize;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__resize-handle.is-n{top:-5px}.gd-ant-contract-signing-location__resize-handle.is-s{bottom:-5px}.gd-ant-contract-signing-location__resize-handle.is-e{right:-5px}.gd-ant-contract-signing-location__resize-handle.is-w{left:-5px}.gd-ant-contract-signing-location__resize-handle.is-nw{cursor:nwse-resize;top:-5px;left:-5px}.gd-ant-contract-signing-location__resize-handle.is-ne{cursor:nesw-resize;top:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-se{cursor:nwse-resize;bottom:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.gd-ant-contract-signing-location__coordinate-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__coordinate-guides>span{border-color:var(--gdant-primary-500);border-style:dashed;display:block;position:absolute}.gd-ant-contract-signing-location__coordinate-guides>span small{padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-sm);background:var(--gdant-primary-600);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);line-height:var(--gdant-spacing-lg);white-space:nowrap;position:absolute}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal small{left:var(--gd-contract-sign-left);transform:translate(-50%)}.gd-ant-contract-signing-location__coordinate-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__coordinate-guides .is-vertical small{top:var(--gd-contract-sign-top);transform:translate(-50%,-50%)rotate(-90deg)}.gd-ant-contract-signing-location__coordinate-guides .is-top{top:var(--gd-contract-sign-top)}.gd-ant-contract-signing-location__coordinate-guides .is-top small{bottom:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom{top:var(--gd-contract-sign-bottom)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom small{top:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-left{left:var(--gd-contract-sign-left)}.gd-ant-contract-signing-location__coordinate-guides .is-left small{right:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-right{left:var(--gd-contract-sign-right)}.gd-ant-contract-signing-location__coordinate-guides .is-right small{left:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__snap-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__snap-guides>span{border-color:var(--gdant-primary-400);border-style:solid;display:block;position:absolute}.gd-ant-contract-signing-location__snap-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__snap-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__tool-list{padding:var(--gdant-spacing-sm);flex:none;grid-template-columns:repeat(3,minmax(0,1fr))}.gd-ant-contract-signing-location__tool{place-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:74px;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:center;cursor:grab;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);grid-template-columns:minmax(0,1fr);display:grid}.gd-ant-contract-signing-location__tool>svg{color:var(--gdant-primary-500);font-size:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__tool>span{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__tool strong,.gd-ant-contract-signing-location__tool small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__tool strong{font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool:hover:not(:disabled){border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__tool:disabled{cursor:not-allowed;opacity:.55}.gd-ant-contract-signing-location__inspector-divider{height:var(--gdant-spacing-sm);border-block:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50)}.gd-ant-contract-signing-location__placement-list{flex-direction:column;flex:1 1 0;min-height:168px;display:flex;overflow:hidden}.gd-ant-contract-signing-location__list-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);color:var(--gdant-neutral-800);flex:none;display:flex}.gd-ant-contract-signing-location__list-head span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-groups{gap:var(--gdant-spacing-md);min-height:0;padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid;overflow:auto}.gd-ant-contract-signing-location__placement-group{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__placement-group h3{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);margin:0}.gd-ant-contract-signing-location__placement-row{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.gd-ant-contract-signing-location__placement-row>svg{color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__placement-row>span{min-width:0;display:grid}.gd-ant-contract-signing-location__placement-row strong,.gd-ant-contract-signing-location__placement-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__placement-row small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-row em{color:var(--gdant-error-600);font-style:normal;font-size:var(--gdant-text-body-sm);flex:none}.gd-ant-contract-signing-location__placement-row:hover,.gd-ant-contract-signing-location__placement-row.is-active{border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__placement-row-delete{border-radius:var(--gdant-radius-sm);width:24px;height:24px;color:var(--gdant-neutral-500);place-items:center;display:grid}.gd-ant-contract-signing-location__placement-row-delete:hover{background:var(--gdant-neutral-100);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__property-head{flex:none}.gd-ant-contract-signing-location__property-body{min-height:176px;padding:var(--gdant-spacing-base);flex:1.2 1 0;overflow:auto}.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary{justify-content:space-between;gap:var(--gdant-spacing-sm)}.gd-ant-contract-signing-location__form-row{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);display:grid}.gd-ant-contract-signing-location__form-row.is-wide .ant-select,.gd-ant-contract-signing-location__form-row .ant-input-number{width:100%}.gd-ant-contract-signing-location__coordinate-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-ant-contract-signing-location__distance-summary{padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__distance-summary b{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-ant-contract-signing-location__panel-empty{min-height:220px;padding:var(--gdant-spacing-xl);flex:1}.gd-ant-contract-signing-location__panel-empty>svg{color:var(--gdant-neutral-400);font-size:var(--gdant-spacing-xl);justify-self:center}.gd-ant-contract-signing-location__panel-empty strong{color:var(--gdant-neutral-700)}.gd-ant-contract-signing-location__panel-empty span{font-size:var(--gdant-text-body-sm);line-height:1.6}.gd-ant-contract-signing-location__panel-empty.is-inspector,.gd-ant-contract-signing-location__panel-empty.is-list{flex:none;min-height:120px}.gd-ant-contract-signing-location__zoom-tools{gap:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__zoom-tools>button:not(.ant-btn){min-width:52px;color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;background:0 0;border:0}.gd-ant-contract-signing-location__muted{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location.is-readonly .gd-ant-contract-signing-location__placement{cursor:pointer}.gd-ant-contract-signing-location.is-disabled{opacity:.72}@media (width<=1024px){.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@media (width<=768px){.gd-ant-contract-signing-location{grid-template-rows:auto auto auto;height:auto}.gd-ant-contract-signing-location__header{flex-direction:column;align-items:stretch}.gd-ant-contract-signing-location__header-actions{justify-content:space-between}.gd-ant-contract-signing-location__body,.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:1fr;min-height:0;overflow:visible}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector,.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border:0;width:auto;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{visibility:visible;width:100%}.gd-ant-contract-signing-location__navigator-wrap{border-bottom:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{border-top:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__panel-handle{display:none!important}.gd-ant-contract-signing-location__file-list{max-height:300px;overflow:auto}.gd-ant-contract-signing-location__tool-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__placement-list,.gd-ant-contract-signing-location__property-body{flex:none;min-height:auto}.gd-ant-contract-signing-location__workspace{min-height:520px}.gd-ant-contract-signing-location__canvas-scroll{max-height:70vh}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper{justify-content:flex-start}.gd-ant-contract-signing-location__zoom-tools{justify-content:center;margin-right:0}}@media (width<=480px){.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__coordinate-grid{grid-template-columns:1fr}.gd-ant-contract-signing-location__header-actions{display:grid}.gd-ant-contract-signing-location__placement-count{justify-self:start}.gd-ant-contract-signing-location__canvas-scroll{padding:var(--gdant-spacing-md)}.gd-ant-contract-signing-location__workspace{min-height:440px}}@container (width<=1119px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:184px;--gd-inspector-expanded:244px}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@container (width<=919px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:160px;--gd-inspector-expanded:220px}}@media (prefers-reduced-motion:reduce){.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__panel-handle{transition:none}}
1
+ :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-ant-contract-signing-location{height:var(--gd-ant-contract-signing-location-height,clamp(720px, 100vh - 180px, 980px));border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""error""body";display:grid;overflow:hidden;container-type:inline-size}.gd-ant-contract-signing-location__header,.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper,.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary,.gd-ant-contract-signing-location__zoom-tools,.gd-ant-contract-signing-location__error{align-items:center;display:flex}.gd-ant-contract-signing-location__header{justify-content:space-between;gap:var(--gdant-spacing-base);min-height:60px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);grid-area:header}.gd-ant-contract-signing-location__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-ant-contract-signing-location__title>div{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__title strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__title span:last-child{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-ant-contract-signing-location__header-actions{gap:var(--gdant-spacing-sm);flex:none}.gd-ant-contract-signing-location__placement-count{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__error{justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:40px;padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-error-100);background:var(--gdant-error-50);color:var(--gdant-error-700);font-size:var(--gdant-text-body-sm);grid-area:error}.gd-ant-contract-signing-location__body{--gd-navigator-expanded:220px;--gd-inspector-expanded:280px;grid-area:body;grid-template-columns:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:minmax(0,1fr) auto}.gd-ant-contract-signing-location__body.is-inspector-hidden{grid-template-columns:auto minmax(0,1fr)}.gd-ant-contract-signing-location__body.is-single-file.is-inspector-hidden{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector{background:var(--gdant-neutral-0);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.gd-ant-contract-signing-location__inspector{overflow:hidden}.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap{width:var(--gd-navigator-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed{border-right-width:0;width:0}.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border-left-width:0;width:0}.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack{visibility:hidden}.gd-ant-contract-signing-location__panel-stack{flex:auto;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__panel-stack>.gd-ant-contract-signing-location__inspector{height:100%}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-navigator-expanded);flex:none}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{width:var(--gd-inspector-expanded);flex:none}.gd-ant-contract-signing-location__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__panel-handle .anticon{font-size:10px}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-ant-contract-signing-location__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__panel-head,.gd-ant-contract-signing-location__property-head{justify-content:space-between;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);flex:none}.gd-ant-contract-signing-location__panel-head>div,.gd-ant-contract-signing-location__property-head>div{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__panel-head strong,.gd-ant-contract-signing-location__property-head strong{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-semibold)}.gd-ant-contract-signing-location__panel-head>div>span,.gd-ant-contract-signing-location__property-head>div>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__file-list{gap:var(--gdant-spacing-base);padding:var(--gdant-spacing-md);display:grid}.gd-ant-contract-signing-location__file-group,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__tool-list,.gd-ant-contract-signing-location__property-body,.gd-ant-contract-signing-location__inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-ant-contract-signing-location__file-title{align-items:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-700);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-ant-contract-signing-location__file-title>svg{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__file-title>span{font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__file-title>small{color:var(--gdant-neutral-500);white-space:nowrap}.gd-ant-contract-signing-location__thumbnail-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__thumbnail{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);display:grid}.gd-ant-contract-signing-location__thumbnail:hover,.gd-ant-contract-signing-location__thumbnail.is-active{border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__thumbnail.is-active{color:var(--gdant-primary-600);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 16%, transparent)}.gd-ant-contract-signing-location__thumbnail.is-error:not(.is-active){border-color:var(--gdant-error-500);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__thumbnail:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:2px}.gd-ant-contract-signing-location__thumbnail-preview{aspect-ratio:3/4;border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-100);color:var(--gdant-neutral-400);place-items:center;display:grid;overflow:hidden}.gd-ant-contract-signing-location__thumbnail-preview img{object-fit:cover;object-position:top center;width:100%;height:100%}.gd-ant-contract-signing-location__workspace{background:var(--gdant-neutral-100);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-ant-contract-signing-location__workspace-head{z-index:2;justify-content:space-between;gap:var(--gdant-spacing-sm);min-height:54px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0)}.gd-ant-contract-signing-location__workspace-head>div:first-child{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__workspace-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__workspace-head>div:first-child>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);white-space:nowrap}.gd-ant-contract-signing-location__workspace-tools{gap:var(--gdant-spacing-md);flex:none}.gd-ant-contract-signing-location__page-jumper{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__page-jumper label{align-items:center;gap:var(--gdant-spacing-xs);white-space:nowrap;display:inline-flex}.gd-ant-contract-signing-location__page-jumper input{width:52px;height:28px;padding:0 var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-800);font:inherit;text-align:center}.gd-ant-contract-signing-location__page-jumper input:focus-visible{outline:2px solid color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);border-color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__canvas-scroll{min-height:0;padding:var(--gdant-spacing-xl);position:relative;overflow:auto}.gd-ant-contract-signing-location__canvas-state,.gd-ant-contract-signing-location__panel-empty{place-content:center;gap:var(--gdant-spacing-sm);color:var(--gdant-neutral-500);text-align:center;display:grid}.gd-ant-contract-signing-location__canvas-state{min-height:440px}.gd-ant-contract-signing-location__canvas-state.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__canvas-state.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__canvas-state.is-error button{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-error-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-error-600);font:inherit;cursor:pointer;justify-self:center}.gd-ant-contract-signing-location__page-stack{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page-shell{position:absolute;overflow:hidden}.gd-ant-contract-signing-location__page-stage{min-height:100%;margin:0 auto;position:relative}.gd-ant-contract-signing-location__page{transform-origin:0 0;border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.gd-ant-contract-signing-location__page-image{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder{place-content:center;gap:var(--gdant-spacing-sm);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);text-align:center;display:grid;position:absolute;inset:0}.gd-ant-contract-signing-location__page-placeholder strong{color:var(--gdant-neutral-700);font-size:var(--gdant-text-h3)}.gd-ant-contract-signing-location__page-placeholder.is-error{color:var(--gdant-error-600)}.gd-ant-contract-signing-location__page-placeholder.is-error strong{color:var(--gdant-error-700)}.gd-ant-contract-signing-location__template-page{background:var(--gdant-neutral-0);pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-ant-contract-signing-location__template-page .gd-contract-print-iframe{background:var(--gdant-neutral-0);border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.gd-ant-contract-signing-location__template-warning{right:var(--gdant-spacing-md);bottom:var(--gdant-spacing-md);left:var(--gdant-spacing-md);z-index:1;gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-200);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-warning-50) 94%, transparent);color:var(--gdant-warning-700);font-size:var(--gdant-text-body-sm);display:grid;position:absolute}.gd-ant-contract-signing-location__render-region{z-index:2;box-sizing:border-box;border:1px solid #0000;position:absolute;inset:0}.gd-ant-contract-signing-location__render-region-content{width:100%;height:100%;position:relative;overflow:hidden}.gd-ant-contract-signing-location__placement{z-index:3;border-radius:var(--gdant-radius-xs);min-width:0;min-height:0;color:var(--gdant-primary-500);font:inherit;appearance:none;cursor:move;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;overflow:visible}.gd-ant-contract-signing-location__placement:hover,.gd-ant-contract-signing-location__placement:focus-visible,.gd-ant-contract-signing-location__placement.is-selected{outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);outline:1px solid}.gd-ant-contract-signing-location__placement.is-selected,.gd-ant-contract-signing-location__placement:focus-visible{outline-width:2px}.gd-ant-contract-signing-location__placement.is-seal{color:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date{color:var(--gdant-warning-600)}.gd-ant-contract-signing-location__placement-body{pointer-events:none;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;display:flex;overflow:hidden}.gd-ant-contract-signing-location__placement-visual{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;min-width:0;height:100%;min-height:0;display:block}.gd-ant-contract-signing-location__placement-badge{z-index:4;padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-500);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);pointer-events:none;white-space:nowrap;line-height:1.4;position:absolute;top:0;right:0;transform:translate(30%,-40%)}.gd-ant-contract-signing-location__placement.is-seal .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-error-500)}.gd-ant-contract-signing-location__placement.is-date .gd-ant-contract-signing-location__placement-badge{background:var(--gdant-warning-500)}.gd-ant-contract-signing-location__resize-handle{z-index:5;border:1px solid var(--gdant-primary-500);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);width:8px;height:8px;position:absolute}.gd-ant-contract-signing-location__resize-handle.is-n,.gd-ant-contract-signing-location__resize-handle.is-s{cursor:ns-resize;left:50%;transform:translate(-50%)}.gd-ant-contract-signing-location__resize-handle.is-e,.gd-ant-contract-signing-location__resize-handle.is-w{cursor:ew-resize;top:50%;transform:translateY(-50%)}.gd-ant-contract-signing-location__resize-handle.is-n{top:-5px}.gd-ant-contract-signing-location__resize-handle.is-s{bottom:-5px}.gd-ant-contract-signing-location__resize-handle.is-e{right:-5px}.gd-ant-contract-signing-location__resize-handle.is-w{left:-5px}.gd-ant-contract-signing-location__resize-handle.is-nw{cursor:nwse-resize;top:-5px;left:-5px}.gd-ant-contract-signing-location__resize-handle.is-ne{cursor:nesw-resize;top:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-se{cursor:nwse-resize;bottom:-5px;right:-5px}.gd-ant-contract-signing-location__resize-handle.is-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.gd-ant-contract-signing-location__coordinate-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__coordinate-guides>span{border-color:var(--gdant-primary-500);border-style:dashed;display:block;position:absolute}.gd-ant-contract-signing-location__coordinate-guides>span small{padding:0 var(--gdant-spacing-xs);border-radius:var(--gdant-radius-sm);background:var(--gdant-primary-600);color:var(--gdant-neutral-0);font-size:var(--gdant-text-body-sm);line-height:var(--gdant-spacing-lg);white-space:nowrap;position:absolute}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__coordinate-guides .is-horizontal small{left:var(--gd-contract-sign-left);transform:translate(-50%)}.gd-ant-contract-signing-location__coordinate-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__coordinate-guides .is-vertical small{top:var(--gd-contract-sign-top);transform:translate(-50%,-50%)rotate(-90deg)}.gd-ant-contract-signing-location__coordinate-guides .is-top{top:var(--gd-contract-sign-top)}.gd-ant-contract-signing-location__coordinate-guides .is-top small{bottom:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom{top:var(--gd-contract-sign-bottom)}.gd-ant-contract-signing-location__coordinate-guides .is-bottom small{top:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-left{left:var(--gd-contract-sign-left)}.gd-ant-contract-signing-location__coordinate-guides .is-left small{right:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__coordinate-guides .is-right{left:var(--gd-contract-sign-right)}.gd-ant-contract-signing-location__coordinate-guides .is-right small{left:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__snap-guides{z-index:2;pointer-events:none;position:absolute;inset:0}.gd-ant-contract-signing-location__snap-guides>span{border-color:var(--gdant-primary-400);border-style:solid;display:block;position:absolute}.gd-ant-contract-signing-location__snap-guides .is-horizontal{border-width:1px 0 0;width:100%;left:0}.gd-ant-contract-signing-location__snap-guides .is-vertical{border-width:0 0 0 1px;height:100%;top:0}.gd-ant-contract-signing-location__tool-list{padding:var(--gdant-spacing-sm);flex:none;grid-template-columns:repeat(3,minmax(0,1fr))}.gd-ant-contract-signing-location__tool{place-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:74px;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:center;cursor:grab;transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);grid-template-columns:minmax(0,1fr);display:grid}.gd-ant-contract-signing-location__tool>svg{color:var(--gdant-primary-500);font-size:var(--gdant-spacing-lg)}.gd-ant-contract-signing-location__tool>span{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-ant-contract-signing-location__tool strong,.gd-ant-contract-signing-location__tool small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__tool strong{font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__tool:hover:not(:disabled){border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__tool:disabled{cursor:not-allowed;opacity:.55}.gd-ant-contract-signing-location__inspector-divider{height:var(--gdant-spacing-sm);border-block:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50)}.gd-ant-contract-signing-location__placement-list{flex-direction:column;flex:1 1 0;min-height:168px;display:flex;overflow:hidden}.gd-ant-contract-signing-location__list-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);color:var(--gdant-neutral-800);flex:none;display:flex}.gd-ant-contract-signing-location__list-head span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-groups{gap:var(--gdant-spacing-md);min-height:0;padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid;overflow:auto}.gd-ant-contract-signing-location__placement-group{gap:var(--gdant-spacing-xs);display:grid}.gd-ant-contract-signing-location__placement-group h3{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium);margin:0}.gd-ant-contract-signing-location__placement-row{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.gd-ant-contract-signing-location__placement-row>svg{color:var(--gdant-primary-500)}.gd-ant-contract-signing-location__placement-row>span{min-width:0;display:grid}.gd-ant-contract-signing-location__placement-row strong,.gd-ant-contract-signing-location__placement-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-ant-contract-signing-location__placement-row small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__placement-row em{color:var(--gdant-error-600);font-style:normal;font-size:var(--gdant-text-body-sm);flex:none}.gd-ant-contract-signing-location__placement-row:hover,.gd-ant-contract-signing-location__placement-row.is-active{border-color:var(--gdant-primary-500);background:var(--gdant-primary-50)}.gd-ant-contract-signing-location__placement-row-delete{border-radius:var(--gdant-radius-sm);width:24px;height:24px;color:var(--gdant-neutral-500);place-items:center;display:grid}.gd-ant-contract-signing-location__placement-row-delete:hover{background:var(--gdant-neutral-100);color:var(--gdant-error-600)}.gd-ant-contract-signing-location__property-head{flex:none}.gd-ant-contract-signing-location__property-body{min-height:176px;padding:var(--gdant-spacing-base);flex:1.2 1 0;overflow:auto}.gd-ant-contract-signing-location__switch-row,.gd-ant-contract-signing-location__distance-summary{justify-content:space-between;gap:var(--gdant-spacing-sm)}.gd-ant-contract-signing-location__form-row{gap:var(--gdant-spacing-xs);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);display:grid}.gd-ant-contract-signing-location__form-row.is-wide .ant-select,.gd-ant-contract-signing-location__form-row .ant-input-number{width:100%}.gd-ant-contract-signing-location__coordinate-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-ant-contract-signing-location__distance-summary{padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location__distance-summary b{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-ant-contract-signing-location__panel-empty{min-height:220px;padding:var(--gdant-spacing-xl);flex:1}.gd-ant-contract-signing-location__panel-empty>svg{color:var(--gdant-neutral-400);font-size:var(--gdant-spacing-xl);justify-self:center}.gd-ant-contract-signing-location__panel-empty strong{color:var(--gdant-neutral-700)}.gd-ant-contract-signing-location__panel-empty span{font-size:var(--gdant-text-body-sm);line-height:1.6}.gd-ant-contract-signing-location__panel-empty.is-inspector,.gd-ant-contract-signing-location__panel-empty.is-list{flex:none;min-height:120px}.gd-ant-contract-signing-location__zoom-tools{gap:var(--gdant-spacing-xs)}.gd-ant-contract-signing-location__zoom-tools>button:not(.ant-btn){min-width:52px;color:var(--gdant-neutral-600);font:inherit;font-size:var(--gdant-text-body-sm);cursor:pointer;background:0 0;border:0}.gd-ant-contract-signing-location__muted{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-ant-contract-signing-location.is-readonly .gd-ant-contract-signing-location__placement{cursor:pointer}.gd-ant-contract-signing-location.is-disabled{opacity:.72}@media (width<=1024px){.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@media (width<=768px){.gd-ant-contract-signing-location{grid-template-rows:auto auto auto;height:auto}.gd-ant-contract-signing-location__header{flex-direction:column;align-items:stretch}.gd-ant-contract-signing-location__header-actions{justify-content:space-between}.gd-ant-contract-signing-location__body,.gd-ant-contract-signing-location__body.is-single-file{grid-template-columns:1fr;min-height:0;overflow:visible}.gd-ant-contract-signing-location__navigator,.gd-ant-contract-signing-location__inspector,.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed{border:0;width:auto;overflow:visible}.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__inspector-wrap.is-collapsed .gd-ant-contract-signing-location__panel-stack,.gd-ant-contract-signing-location__navigator-wrap .gd-ant-contract-signing-location__panel-stack>*,.gd-ant-contract-signing-location__inspector-wrap .gd-ant-contract-signing-location__panel-stack>*{visibility:visible;width:100%}.gd-ant-contract-signing-location__navigator-wrap{border-bottom:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__inspector-wrap{border-top:1px solid var(--gdant-neutral-200)}.gd-ant-contract-signing-location__panel-handle{display:none!important}.gd-ant-contract-signing-location__file-list{max-height:300px;overflow:auto}.gd-ant-contract-signing-location__tool-list{grid-template-columns:minmax(0,1fr)}.gd-ant-contract-signing-location__placement-list,.gd-ant-contract-signing-location__property-body{flex:none;min-height:auto}.gd-ant-contract-signing-location__workspace{min-height:520px}.gd-ant-contract-signing-location__canvas-scroll{max-height:70vh}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools,.gd-ant-contract-signing-location__page-jumper{justify-content:flex-start}.gd-ant-contract-signing-location__zoom-tools{justify-content:center;margin-right:0}}@media (width<=480px){.gd-ant-contract-signing-location__header-actions,.gd-ant-contract-signing-location__thumbnail-list,.gd-ant-contract-signing-location__coordinate-grid{grid-template-columns:1fr}.gd-ant-contract-signing-location__header-actions{display:grid}.gd-ant-contract-signing-location__placement-count{justify-self:start}.gd-ant-contract-signing-location__canvas-scroll{padding:var(--gdant-spacing-md)}.gd-ant-contract-signing-location__workspace{min-height:440px}}@container (width<=1119px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:184px;--gd-inspector-expanded:244px}.gd-ant-contract-signing-location__workspace-head,.gd-ant-contract-signing-location__workspace-tools{flex-wrap:wrap}}@container (width<=919px){.gd-ant-contract-signing-location__body{--gd-navigator-expanded:160px;--gd-inspector-expanded:220px}}@media (prefers-reduced-motion:reduce){.gd-ant-contract-signing-location__navigator-wrap,.gd-ant-contract-signing-location__inspector-wrap,.gd-ant-contract-signing-location__panel-handle{transition:none}}
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/content-image.cjs`),t=require(`./TableSizePicker.cjs`),n=require(`./composables/use-toolbar-overflow.cjs`);let r=require(`vue`),i=require(`ant-design-vue`),a=require(`@vueuse/core`),o=require(`@ant-design/icons-vue`);var s={class:`gd-contract-template-designer__toolbar`},c={class:`gd-contract-template-designer__toolbar-group`},l={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--style`},u={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--format`},d={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--insert`,"data-toolbar-overflow-key":`insert`},f={class:`gd-contract-template-designer__popover gd-contract-template-designer__control-insert-popover`},p={class:`gd-contract-template-designer__text-menu-control-options`},m=[`aria-label`,`onClick`],h={class:`gd-contract-template-designer__popover gd-contract-template-designer__image-insert-popover`},g={class:`gd-contract-template-designer__image-size-fields`,role:`group`,"aria-label":`图片尺寸`},_={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--typography`,"data-toolbar-overflow-key":`typography`},v=[`value`,`disabled`],y={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--cleanup`,"data-toolbar-overflow-key":`cleanup`},b={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--table`,"data-toolbar-overflow-key":`table`},x={class:`gd-contract-template-designer__popover`},S={class:`gd-contract-template-designer__switch-row`},C={class:`gd-contract-template-designer__popover`},w={class:`gd-contract-template-designer__table-actions`},T={class:`gd-contract-template-designer__toolbar-more-panel`,role:`menu`,"aria-label":`更多编辑工具`},E={class:`gd-contract-template-designer__toolbar-more-section`},D={class:`gd-contract-template-designer__toolbar-more-section`},O={class:`gd-contract-template-designer__toolbar-more-section`},k={class:`gd-contract-template-designer__toolbar-more-section`},A=(0,r.defineComponent)({name:`ContractTemplateDesignerToolbar`,__name:`ContractTemplateDesignerToolbar`,props:(0,r.mergeModels)({readonly:{type:Boolean},editorState:{},currentBlockFormat:{},blockFormatOptions:{},fontFamilySelectOptions:{},currentEditorFontFamily:{},fontSizePresetOptions:{},currentEditorFontSize:{},editorFontSizeSearchValue:{},currentEditorTextColor:{},bodyControlToolItems:{},pageLimitReached:{type:Boolean},normalizedMaxPages:{},imageProcessing:{type:Boolean},imageInsertError:{}},{variableInsertPopoverOpen:{type:Boolean,default:!1},variableInsertPopoverOpenModifiers:{},imageInsertPopoverOpen:{type:Boolean,default:!1},imageInsertPopoverOpenModifiers:{},imageInsertUrl:{default:``},imageInsertUrlModifiers:{},imageInsertWidth:{},imageInsertWidthModifiers:{},imageInsertHeight:{},imageInsertHeightModifiers:{},tableInsertPopoverOpen:{type:Boolean,default:!1},tableInsertPopoverOpenModifiers:{},tableActionsPopoverOpen:{type:Boolean,default:!1},tableActionsPopoverOpenModifiers:{},tableInsertDraft:{required:!0},tableInsertDraftModifiers:{},toolbarMoreOpen:{type:Boolean,default:!1},toolbarMoreOpenModifiers:{}}),emits:(0,r.mergeModels)([`command`,`patch-block-format`,`patch-font-family`,`patch-font-size`,`patch-color`,`patch-text-align`,`insert-variable`,`open-image-file`,`insert-image-url`,`add-page`,`insert-table`,`table-action`,`font-size-search`,`font-size-commit`,`font-size-dropdown-change`,`font-size-keydown`],[`update:variableInsertPopoverOpen`,`update:imageInsertPopoverOpen`,`update:imageInsertUrl`,`update:imageInsertWidth`,`update:imageInsertHeight`,`update:tableInsertPopoverOpen`,`update:tableActionsPopoverOpen`,`update:tableInsertDraft`,`update:toolbarMoreOpen`]),setup(A,{emit:j}){let M=A,N=(0,r.useModel)(A,`variableInsertPopoverOpen`),P=(0,r.useModel)(A,`imageInsertPopoverOpen`),F=(0,r.useModel)(A,`imageInsertUrl`),I=(0,r.useModel)(A,`imageInsertWidth`),L=(0,r.useModel)(A,`imageInsertHeight`),R=(0,r.useModel)(A,`tableInsertPopoverOpen`),z=(0,r.useModel)(A,`tableActionsPopoverOpen`),B=(0,r.useModel)(A,`tableInsertDraft`),V=(0,r.useModel)(A,`toolbarMoreOpen`),H=j,U=(0,r.ref)(),W=(0,r.ref)(),G=(0,r.ref)(),K=(0,r.ref)(),q=(0,r.ref)(),J=(0,r.ref)(),Y=!1;(0,r.onBeforeUnmount)(()=>{Y=!0});let{width:X}=(0,a.useElementSize)(U),{isToolbarGroupOverflowed:Z,toolbarHasOverflow:Q}=n.useToolbarOverflow({toolbarMainElement:U,toolbarMoreElement:W,toolbarMoreOpen:V,measureDependencies:()=>[X.value,M.currentBlockFormat,M.currentEditorFontFamily,M.currentEditorFontSize,M.readonly],isDisposed:()=>Y});return(n,a)=>((0,r.openBlock)(),(0,r.createElementBlock)(`header`,s,[(0,r.createElementVNode)(`div`,{ref_key:`toolbarMainElement`,ref:U,class:`gd-contract-template-designer__toolbar-section gd-contract-template-designer__toolbar-section--main`},[(0,r.createElementVNode)(`div`,c,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`撤销`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly||!A.editorState.canUndo,"aria-label":`撤销`,onClick:a[0]||=e=>H(`command`,{type:`undo`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`重做`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly||!A.editorState.canRedo,"aria-label":`重做`,onClick:a[1]||=e=>H(`command`,{type:`redo`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),(0,r.createElementVNode)(`div`,l,[(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select`,value:A.currentBlockFormat,options:A.blockFormatOptions,disabled:A.readonly,placeholder:`多种样式`,"aria-label":`段落样式`,onChange:a[2]||=e=>H(`patch-block-format`,e)},{option:(0,r.withCtx)(({label:e,value:t})=>[(0,r.createElementVNode)(`span`,{class:(0,r.normalizeClass)([`gd-contract-template-designer__block-format-option`,`is-level-${String(t)}`])},(0,r.toDisplayString)(e),3)]),_:1},8,[`value`,`options`,`disabled`])]),(0,r.createElementVNode)(`div`,u,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`加粗`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:A.editorState.isBold?`primary`:`default`,disabled:A.readonly,"aria-label":`加粗`,onClick:a[3]||=e=>H(`command`,{type:`toggle-bold`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`斜体`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:A.editorState.isItalic?`primary`:`default`,disabled:A.readonly,"aria-label":`斜体`,onClick:a[4]||=e=>H(`command`,{type:`toggle-italic`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`下划线`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:A.editorState.isUnderline?`primary`:`default`,disabled:A.readonly,"aria-label":`下划线`,onClick:a[5]||=e=>H(`command`,{type:`toggle-underline`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`编号列表`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:A.editorState.isOrderedList?`primary`:`default`,disabled:A.readonly,"aria-label":`编号列表`,onClick:a[6]||=e=>H(`command`,{type:`toggle-ordered-list`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`项目列表`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:A.editorState.isBulletList?`primary`:`default`,disabled:A.readonly,"aria-label":`项目列表`,onClick:a[7]||=e=>H(`command`,{type:`toggle-bullet-list`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1})]),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)(Z)(`insert`)||!G.value,to:G.value||`body`},[(0,r.createElementVNode)(`div`,d,[(0,r.createVNode)((0,r.unref)(i.Popover),{open:N.value,"onUpdate:open":a[8]||=e=>N.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,f,[a[45]||=(0,r.createElementVNode)(`strong`,null,`插入正文控件`,-1),(0,r.createElementVNode)(`div`,p,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(A.bodyControlToolItems,e=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.Tooltip),{key:e.type,title:`插入${e.label}控件`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":`插入${e.label}控件`,onClick:t=>H(`insert-variable`,e.type)},[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.icon),{"aria-hidden":`true`})),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)(e.label),1)],8,m)]),_:2},1032,[`title`]))),128))])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入正文控件`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`插入正文控件`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PlusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Popover),{open:P.value,"onUpdate:open":a[15]||=e=>P.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,h,[a[50]||=(0,r.createElementVNode)(`strong`,null,`插入正文图片`,-1),(0,r.createVNode)((0,r.unref)(i.Button),{block:``,loading:A.imageProcessing,disabled:A.readonly,onClick:a[9]||=e=>H(`open-image-file`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PictureOutlined),{"aria-hidden":`true`}),a[46]||=(0,r.createTextVNode)(` 本地图片 `,-1)]),_:1},8,[`loading`,`disabled`]),(0,r.createVNode)((0,r.unref)(i.Input),{value:F.value,"onUpdate:value":a[10]||=e=>F.value=e,"allow-clear":``,disabled:A.readonly||A.imageProcessing,placeholder:`https:// 或 data:image/...`,"aria-label":`图片 URL`,onPressEnter:a[11]||=e=>H(`insert-image-url`)},null,8,[`value`,`disabled`]),(0,r.createElementVNode)(`div`,g,[(0,r.createElementVNode)(`label`,null,[a[47]||=(0,r.createElementVNode)(`span`,null,`宽度`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:I.value,"onUpdate:value":a[12]||=e=>I.value=e,min:(0,r.unref)(16),max:(0,r.unref)(e.MAX_CONTRACT_IMAGE_DIMENSION),disabled:A.readonly||A.imageProcessing,placeholder:`自然`,"aria-label":`图片宽度`},null,8,[`value`,`min`,`max`,`disabled`])]),(0,r.createElementVNode)(`label`,null,[a[48]||=(0,r.createElementVNode)(`span`,null,`高度`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:L.value,"onUpdate:value":a[13]||=e=>L.value=e,min:(0,r.unref)(16),max:(0,r.unref)(e.MAX_CONTRACT_IMAGE_DIMENSION),disabled:A.readonly||A.imageProcessing,placeholder:`自然`,"aria-label":`图片高度`},null,8,[`value`,`min`,`max`,`disabled`])])]),(0,r.createVNode)((0,r.unref)(i.Button),{type:`primary`,block:``,disabled:A.readonly||A.imageProcessing||!F.value.trim(),onClick:a[14]||=e=>H(`insert-image-url`)},{default:(0,r.withCtx)(()=>[...a[49]||=[(0,r.createTextVNode)(` 插入 URL `,-1)]]),_:1},8,[`disabled`]),A.imageInsertError?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.Alert),{key:0,type:`error`,"show-icon":``,message:A.imageInsertError},null,8,[`message`])):(0,r.createCommentVNode)(``,!0)])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入图片`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`插入图片`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PictureOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入分隔线`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`插入分隔线`,onClick:a[16]||=e=>H(`command`,{type:`insert-horizontal-rule`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.MinusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:A.pageLimitReached?`已达 ${A.normalizedMaxPages} 页上限`:`新增页面`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly||A.pageLimitReached,"aria-label":`新增页面`,onClick:a[17]||=e=>H(`add-page`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.FileAddOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1},8,[`title`])])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)(Z)(`typography`)||!K.value,to:K.value||`body`},[(0,r.createElementVNode)(`div`,_,[(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select is-wide`,value:A.currentEditorFontFamily,options:A.fontFamilySelectOptions,disabled:A.readonly,onChange:a[18]||=e=>H(`patch-font-family`,e)},null,8,[`value`,`options`,`disabled`]),(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select`,value:A.currentEditorFontSize,options:A.fontSizePresetOptions,"show-search":``,"filter-option":!1,"search-value":A.editorFontSizeSearchValue,disabled:A.readonly,onBlur:a[19]||=e=>H(`font-size-commit`),onChange:a[20]||=e=>H(`patch-font-size`,e),onDropdownVisibleChange:a[21]||=e=>H(`font-size-dropdown-change`,e),onInputKeyDown:a[22]||=e=>H(`font-size-keydown`,e),onSearch:a[23]||=e=>H(`font-size-search`,e)},null,8,[`value`,`options`,`search-value`,`disabled`]),(0,r.createElementVNode)(`input`,{class:`gd-contract-template-designer__color`,type:`color`,value:A.currentEditorTextColor,disabled:A.readonly,onInput:a[24]||=e=>H(`patch-color`,e)},null,40,v),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`左对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":A.editorState.textAlign===`left`}]),type:A.editorState.textAlign===`left`?`primary`:`default`,disabled:A.readonly,"aria-label":`左对齐`,onClick:a[25]||=e=>H(`patch-text-align`,`left`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignLeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`居中对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":A.editorState.textAlign===`center`}]),type:A.editorState.textAlign===`center`?`primary`:`default`,disabled:A.readonly,"aria-label":`居中对齐`,onClick:a[26]||=e=>H(`patch-text-align`,`center`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignCenterOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`右对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":A.editorState.textAlign===`right`}]),type:A.editorState.textAlign===`right`?`primary`:`default`,disabled:A.readonly,"aria-label":`右对齐`,onClick:a[27]||=e=>H(`patch-text-align`,`right`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignRightOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)(Z)(`cleanup`)||!q.value,to:q.value||`body`},[(0,r.createElementVNode)(`div`,y,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`清文字`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`清文字`,onClick:a[28]||=e=>H(`command`,{type:`clear-text-format`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.ClearOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`清段落`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`清段落`,onClick:a[29]||=e=>H(`command`,{type:`clear-block-format`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.FormatPainterOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)(Z)(`table`)||!J.value,to:J.value||`body`},[(0,r.createElementVNode)(`div`,b,[(0,r.createVNode)((0,r.unref)(i.Popover),{open:R.value,"onUpdate:open":a[33]||=e=>R.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,x,[a[52]||=(0,r.createElementVNode)(`strong`,null,`插入表格`,-1),(0,r.createVNode)(t.default,{disabled:A.readonly,onSelect:a[30]||=e=>H(`insert-table`,e.rows,e.cols),onClose:a[31]||=e=>R.value=!1},null,8,[`disabled`]),(0,r.createElementVNode)(`label`,S,[a[51]||=(0,r.createElementVNode)(`span`,null,`表头行`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:B.value.withHeaderRow,"onUpdate:checked":a[32]||=e=>B.value.withHeaderRow=e,disabled:A.readonly},null,8,[`checked`,`disabled`])])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入表格`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly,"aria-label":`插入表格`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Popover),{open:z.value,"onUpdate:open":a[43]||=e=>z.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,C,[a[62]||=(0,r.createElementVNode)(`strong`,null,`表格操作`,-1),(0,r.createElementVNode)(`div`,w,[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[34]||=e=>H(`table-action`,`add-table-row-before`)},{default:(0,r.withCtx)(()=>[...a[53]||=[(0,r.createTextVNode)(` 上方插行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[35]||=e=>H(`table-action`,`add-table-row-after`)},{default:(0,r.withCtx)(()=>[...a[54]||=[(0,r.createTextVNode)(` 下方插行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[36]||=e=>H(`table-action`,`add-table-column-before`)},{default:(0,r.withCtx)(()=>[...a[55]||=[(0,r.createTextVNode)(` 左侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[37]||=e=>H(`table-action`,`add-table-column-after`)},{default:(0,r.withCtx)(()=>[...a[56]||=[(0,r.createTextVNode)(` 右侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[38]||=e=>H(`table-action`,`delete-table-row`)},{default:(0,r.withCtx)(()=>[...a[57]||=[(0,r.createTextVNode)(` 删除当前行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[39]||=e=>H(`table-action`,`delete-table-column`)},{default:(0,r.withCtx)(()=>[...a[58]||=[(0,r.createTextVNode)(` 删除当前列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[40]||=e=>H(`table-action`,`toggle-table-header-row`)},{default:(0,r.withCtx)(()=>[...a[59]||=[(0,r.createTextVNode)(` 切换表头行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:A.readonly,onClick:a[41]||=e=>H(`table-action`,`toggle-table-header-column`)},{default:(0,r.withCtx)(()=>[...a[60]||=[(0,r.createTextVNode)(` 切换表头列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{danger:``,size:`small`,disabled:A.readonly,onClick:a[42]||=e=>H(`table-action`,`delete-table`)},{default:(0,r.withCtx)(()=>[...a[61]||=[(0,r.createTextVNode)(` 删除表格 `,-1)]]),_:1},8,[`disabled`])])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`表格操作`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.readonly||!A.editorState.isTableActive,"aria-label":`表格操作`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`])])],8,[`disabled`,`to`])),(0,r.withDirectives)((0,r.createElementVNode)(`div`,{ref_key:`toolbarMoreElement`,ref:W,class:`gd-contract-template-designer__toolbar-more`},[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`更多工具`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":V.value}]),"aria-label":`更多工具`,"aria-haspopup":`true`,"aria-expanded":V.value,onClick:a[44]||=(0,r.withModifiers)(e=>V.value=!V.value,[`stop`])},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.EllipsisOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-expanded`])]),_:1}),(0,r.withDirectives)((0,r.createElementVNode)(`div`,T,[(0,r.withDirectives)((0,r.createElementVNode)(`div`,E,[a[63]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`插入`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarInsertSlotElement`,ref:G,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)(Z)(`insert`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,D,[a[64]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`文字排版`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarTypographySlotElement`,ref:K,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)(Z)(`typography`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,O,[a[65]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`清除格式`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarCleanupSlotElement`,ref:q,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)(Z)(`cleanup`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,k,[a[66]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`表格`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarTableSlotElement`,ref:J,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)(Z)(`table`)]])],512),[[r.vShow,V.value]])],512),[[r.vShow,(0,r.unref)(Q)]])],512)]))}});exports.default=A;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/content-image.cjs`),t=require(`./TableSizePicker.cjs`),n=require(`./composables/use-toolbar-overflow.cjs`);let r=require(`vue`),i=require(`ant-design-vue`),a=require(`@vueuse/core`),o=require(`@ant-design/icons-vue`);var s={class:`gd-contract-template-designer__toolbar`},c={class:`gd-contract-template-designer__toolbar-group`},l={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--style`},u={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--format`},d={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--insert`,"data-toolbar-overflow-key":`insert`},f={class:`gd-contract-template-designer__popover gd-contract-template-designer__control-insert-popover`},ee={class:`gd-contract-template-designer__text-menu-control-options`},p=[`aria-label`,`onClick`],m={class:`gd-contract-template-designer__popover gd-contract-template-designer__image-insert-popover`},h={class:`gd-contract-template-designer__image-size-fields`,role:`group`,"aria-label":`图片尺寸`},g={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--font-family`,"data-toolbar-overflow-key":`font-family`},_={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--font-appearance`,"data-toolbar-overflow-key":`font-appearance`},v=[`value`,`disabled`],y={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--list`,"data-toolbar-overflow-key":`list`},b={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--alignment`,"data-toolbar-overflow-key":`alignment`},x={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--cleanup`,"data-toolbar-overflow-key":`cleanup`},S={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--table`,"data-toolbar-overflow-key":`table`},C={class:`gd-contract-template-designer__popover`},w={class:`gd-contract-template-designer__switch-row`},T={class:`gd-contract-template-designer__popover`},E={class:`gd-contract-template-designer__table-actions`},te={class:`gd-contract-template-designer__toolbar-more-panel`,role:`menu`,"aria-label":`更多编辑工具`},D={class:`gd-contract-template-designer__toolbar-more-section`},O={class:`gd-contract-template-designer__toolbar-more-section`},k={class:`gd-contract-template-designer__toolbar-more-section`},A={class:`gd-contract-template-designer__toolbar-more-section`},j={class:`gd-contract-template-designer__toolbar-more-section`},M=(0,r.defineComponent)({name:`ContractTemplateDesignerToolbar`,__name:`ContractTemplateDesignerToolbar`,props:(0,r.mergeModels)({readonly:{type:Boolean},editorState:{},currentBlockFormat:{},blockFormatOptions:{},fontFamilySelectOptions:{},currentEditorFontFamily:{},fontSizePresetOptions:{},currentEditorFontSize:{},editorFontSizeSearchValue:{},currentEditorTextColor:{},bodyControlToolItems:{},pageLimitReached:{type:Boolean},normalizedMaxPages:{},imageProcessing:{type:Boolean},imageInsertError:{}},{variableInsertPopoverOpen:{type:Boolean,default:!1},variableInsertPopoverOpenModifiers:{},imageInsertPopoverOpen:{type:Boolean,default:!1},imageInsertPopoverOpenModifiers:{},imageInsertUrl:{default:``},imageInsertUrlModifiers:{},imageInsertWidth:{},imageInsertWidthModifiers:{},imageInsertHeight:{},imageInsertHeightModifiers:{},tableInsertPopoverOpen:{type:Boolean,default:!1},tableInsertPopoverOpenModifiers:{},tableActionsPopoverOpen:{type:Boolean,default:!1},tableActionsPopoverOpenModifiers:{},tableInsertDraft:{required:!0},tableInsertDraftModifiers:{},toolbarMoreOpen:{type:Boolean,default:!1},toolbarMoreOpenModifiers:{}}),emits:(0,r.mergeModels)([`command`,`patch-block-format`,`patch-font-family`,`patch-font-size`,`patch-color`,`patch-text-align`,`insert-variable`,`open-image-file`,`insert-image-url`,`add-page`,`insert-table`,`table-action`,`font-size-search`,`font-size-commit`,`font-size-dropdown-change`,`font-size-keydown`],[`update:variableInsertPopoverOpen`,`update:imageInsertPopoverOpen`,`update:imageInsertUrl`,`update:imageInsertWidth`,`update:imageInsertHeight`,`update:tableInsertPopoverOpen`,`update:tableActionsPopoverOpen`,`update:tableInsertDraft`,`update:toolbarMoreOpen`]),setup(M,{emit:N}){let P=M,F=(0,r.useModel)(M,`variableInsertPopoverOpen`),I=(0,r.useModel)(M,`imageInsertPopoverOpen`),L=(0,r.useModel)(M,`imageInsertUrl`),R=(0,r.useModel)(M,`imageInsertWidth`),z=(0,r.useModel)(M,`imageInsertHeight`),B=(0,r.useModel)(M,`tableInsertPopoverOpen`),V=(0,r.useModel)(M,`tableActionsPopoverOpen`),H=(0,r.useModel)(M,`tableInsertDraft`),U=(0,r.useModel)(M,`toolbarMoreOpen`),W=N,G=(0,r.ref)(),K=(0,r.ref)(),q=(0,r.ref)(),J=(0,r.ref)(),Y=(0,r.ref)(),X=(0,r.ref)(),Z=(0,r.ref)(),Q=!1;(0,r.onBeforeUnmount)(()=>{Q=!0});let{width:ne}=(0,a.useElementSize)(G),{isToolbarGroupOverflowed:$,toolbarHasOverflow:re}=n.useToolbarOverflow({toolbarMainElement:G,toolbarMoreElement:K,toolbarMoreOpen:U,measureDependencies:()=>[ne.value,P.currentBlockFormat,P.currentEditorFontFamily,P.currentEditorFontSize,P.readonly],isDisposed:()=>Q});return(n,a)=>((0,r.openBlock)(),(0,r.createElementBlock)(`header`,s,[(0,r.createElementVNode)(`div`,{ref_key:`toolbarMainElement`,ref:G,class:`gd-contract-template-designer__toolbar-section gd-contract-template-designer__toolbar-section--main`},[(0,r.createElementVNode)(`div`,c,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`撤销`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly||!M.editorState.canUndo,"aria-label":`撤销`,onClick:a[0]||=e=>W(`command`,{type:`undo`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`重做`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly||!M.editorState.canRedo,"aria-label":`重做`,onClick:a[1]||=e=>W(`command`,{type:`redo`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),(0,r.createElementVNode)(`div`,l,[(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select`,value:M.currentBlockFormat,options:M.blockFormatOptions,disabled:M.readonly,placeholder:`多种样式`,"aria-label":`段落样式`,onChange:a[2]||=e=>W(`patch-block-format`,e)},{option:(0,r.withCtx)(({label:e,value:t})=>[(0,r.createElementVNode)(`span`,{class:(0,r.normalizeClass)([`gd-contract-template-designer__block-format-option`,`is-level-${String(t)}`])},(0,r.toDisplayString)(e),3)]),_:1},8,[`value`,`options`,`disabled`])]),(0,r.createElementVNode)(`div`,u,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`加粗`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:M.editorState.isBold?`primary`:`default`,disabled:M.readonly,"aria-label":`加粗`,onClick:a[3]||=e=>W(`command`,{type:`toggle-bold`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`斜体`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:M.editorState.isItalic?`primary`:`default`,disabled:M.readonly,"aria-label":`斜体`,onClick:a[4]||=e=>W(`command`,{type:`toggle-italic`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`下划线`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:M.editorState.isUnderline?`primary`:`default`,disabled:M.readonly,"aria-label":`下划线`,onClick:a[5]||=e=>W(`command`,{type:`toggle-underline`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1})]),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`insert`)||!q.value,to:q.value||`body`},[(0,r.createElementVNode)(`div`,d,[(0,r.createVNode)((0,r.unref)(i.Popover),{open:F.value,"onUpdate:open":a[6]||=e=>F.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,f,[a[45]||=(0,r.createElementVNode)(`strong`,null,`插入正文控件`,-1),(0,r.createElementVNode)(`div`,ee,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)(M.bodyControlToolItems,e=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.Tooltip),{key:e.type,title:`插入${e.label}控件`},{default:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":`插入${e.label}控件`,onClick:t=>W(`insert-variable`,e.type)},[((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(e.icon),{"aria-hidden":`true`})),(0,r.createElementVNode)(`span`,null,(0,r.toDisplayString)(e.label),1)],8,p)]),_:2},1032,[`title`]))),128))])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入正文控件`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`插入正文控件`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PlusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Popover),{open:I.value,"onUpdate:open":a[13]||=e=>I.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,m,[a[50]||=(0,r.createElementVNode)(`strong`,null,`插入正文图片`,-1),(0,r.createVNode)((0,r.unref)(i.Button),{block:``,loading:M.imageProcessing,disabled:M.readonly,onClick:a[7]||=e=>W(`open-image-file`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PictureOutlined),{"aria-hidden":`true`}),a[46]||=(0,r.createTextVNode)(` 本地图片 `,-1)]),_:1},8,[`loading`,`disabled`]),(0,r.createVNode)((0,r.unref)(i.Input),{value:L.value,"onUpdate:value":a[8]||=e=>L.value=e,"allow-clear":``,disabled:M.readonly||M.imageProcessing,placeholder:`https:// 或 data:image/...`,"aria-label":`图片 URL`,onPressEnter:a[9]||=e=>W(`insert-image-url`)},null,8,[`value`,`disabled`]),(0,r.createElementVNode)(`div`,h,[(0,r.createElementVNode)(`label`,null,[a[47]||=(0,r.createElementVNode)(`span`,null,`宽度`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:R.value,"onUpdate:value":a[10]||=e=>R.value=e,min:(0,r.unref)(16),max:(0,r.unref)(e.MAX_CONTRACT_IMAGE_DIMENSION),disabled:M.readonly||M.imageProcessing,placeholder:`自然`,"aria-label":`图片宽度`},null,8,[`value`,`min`,`max`,`disabled`])]),(0,r.createElementVNode)(`label`,null,[a[48]||=(0,r.createElementVNode)(`span`,null,`高度`,-1),(0,r.createVNode)((0,r.unref)(i.InputNumber),{value:z.value,"onUpdate:value":a[11]||=e=>z.value=e,min:(0,r.unref)(16),max:(0,r.unref)(e.MAX_CONTRACT_IMAGE_DIMENSION),disabled:M.readonly||M.imageProcessing,placeholder:`自然`,"aria-label":`图片高度`},null,8,[`value`,`min`,`max`,`disabled`])])]),(0,r.createVNode)((0,r.unref)(i.Button),{type:`primary`,block:``,disabled:M.readonly||M.imageProcessing||!L.value.trim(),onClick:a[12]||=e=>W(`insert-image-url`)},{default:(0,r.withCtx)(()=>[...a[49]||=[(0,r.createTextVNode)(` 插入 URL `,-1)]]),_:1},8,[`disabled`]),M.imageInsertError?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(i.Alert),{key:0,type:`error`,"show-icon":``,message:M.imageInsertError},null,8,[`message`])):(0,r.createCommentVNode)(``,!0)])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入图片`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`插入图片`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.PictureOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入分隔线`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`插入分隔线`,onClick:a[14]||=e=>W(`command`,{type:`insert-horizontal-rule`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.MinusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:M.pageLimitReached?`已达 ${M.normalizedMaxPages} 页上限`:`新增页面`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly||M.pageLimitReached,"aria-label":`新增页面`,onClick:a[15]||=e=>W(`add-page`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.FileAddOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1},8,[`title`])])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`font-family`)||!J.value,to:J.value||`body`},[(0,r.createElementVNode)(`div`,g,[(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select is-wide`,value:M.currentEditorFontFamily,options:M.fontFamilySelectOptions,disabled:M.readonly,onChange:a[16]||=e=>W(`patch-font-family`,e)},null,8,[`value`,`options`,`disabled`])])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`font-appearance`)||!J.value,to:J.value||`body`},[(0,r.createElementVNode)(`div`,_,[(0,r.createVNode)((0,r.unref)(i.Select),{class:`gd-contract-template-designer__toolbar-select`,value:M.currentEditorFontSize,options:M.fontSizePresetOptions,"show-search":``,"filter-option":!1,"search-value":M.editorFontSizeSearchValue,disabled:M.readonly,onBlur:a[17]||=e=>W(`font-size-commit`),onChange:a[18]||=e=>W(`patch-font-size`,e),onDropdownVisibleChange:a[19]||=e=>W(`font-size-dropdown-change`,e),onInputKeyDown:a[20]||=e=>W(`font-size-keydown`,e),onSearch:a[21]||=e=>W(`font-size-search`,e)},null,8,[`value`,`options`,`search-value`,`disabled`]),(0,r.createElementVNode)(`input`,{class:`gd-contract-template-designer__color`,type:`color`,value:M.currentEditorTextColor,disabled:M.readonly,onInput:a[22]||=e=>W(`patch-color`,e)},null,40,v)])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`list`)||!Y.value,to:Y.value||`body`},[(0,r.createElementVNode)(`div`,y,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`编号列表`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:M.editorState.isOrderedList?`primary`:`default`,disabled:M.readonly,"aria-label":`编号列表`,onClick:a[23]||=e=>W(`command`,{type:`toggle-ordered-list`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`项目列表`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:M.editorState.isBulletList?`primary`:`default`,disabled:M.readonly,"aria-label":`项目列表`,onClick:a[24]||=e=>W(`command`,{type:`toggle-bullet-list`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`alignment`)||!Y.value,to:Y.value||`body`},[(0,r.createElementVNode)(`div`,b,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`左对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":M.editorState.textAlign===`left`}]),type:M.editorState.textAlign===`left`?`primary`:`default`,disabled:M.readonly,"aria-label":`左对齐`,onClick:a[25]||=e=>W(`patch-text-align`,`left`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignLeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`居中对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":M.editorState.textAlign===`center`}]),type:M.editorState.textAlign===`center`?`primary`:`default`,disabled:M.readonly,"aria-label":`居中对齐`,onClick:a[26]||=e=>W(`patch-text-align`,`center`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignCenterOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`右对齐`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":M.editorState.textAlign===`right`}]),type:M.editorState.textAlign===`right`?`primary`:`default`,disabled:M.readonly,"aria-label":`右对齐`,onClick:a[27]||=e=>W(`patch-text-align`,`right`)},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.AlignRightOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`cleanup`)||!X.value,to:X.value||`body`},[(0,r.createElementVNode)(`div`,x,[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`清文字`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`清文字`,onClick:a[28]||=e=>W(`command`,{type:`clear-text-format`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.ClearOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`清段落`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`清段落`,onClick:a[29]||=e=>W(`command`,{type:`clear-block-format`})},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.FormatPainterOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,r.openBlock)(),(0,r.createBlock)(r.Teleport,{disabled:!(0,r.unref)($)(`table`)||!Z.value,to:Z.value||`body`},[(0,r.createElementVNode)(`div`,S,[(0,r.createVNode)((0,r.unref)(i.Popover),{open:B.value,"onUpdate:open":a[33]||=e=>B.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,C,[a[52]||=(0,r.createElementVNode)(`strong`,null,`插入表格`,-1),(0,r.createVNode)(t.default,{disabled:M.readonly,onSelect:a[30]||=e=>W(`insert-table`,e.rows,e.cols),onClose:a[31]||=e=>B.value=!1},null,8,[`disabled`]),(0,r.createElementVNode)(`label`,w,[a[51]||=(0,r.createElementVNode)(`span`,null,`表头行`,-1),(0,r.createVNode)((0,r.unref)(i.Switch),{checked:H.value.withHeaderRow,"onUpdate:checked":a[32]||=e=>H.value.withHeaderRow=e,disabled:M.readonly},null,8,[`checked`,`disabled`])])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`插入表格`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly,"aria-label":`插入表格`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,r.createVNode)((0,r.unref)(i.Popover),{open:V.value,"onUpdate:open":a[43]||=e=>V.value=e,trigger:`click`,placement:`bottom`},{content:(0,r.withCtx)(()=>[(0,r.createElementVNode)(`div`,T,[a[62]||=(0,r.createElementVNode)(`strong`,null,`表格操作`,-1),(0,r.createElementVNode)(`div`,E,[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[34]||=e=>W(`table-action`,`add-table-row-before`)},{default:(0,r.withCtx)(()=>[...a[53]||=[(0,r.createTextVNode)(` 上方插行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[35]||=e=>W(`table-action`,`add-table-row-after`)},{default:(0,r.withCtx)(()=>[...a[54]||=[(0,r.createTextVNode)(` 下方插行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[36]||=e=>W(`table-action`,`add-table-column-before`)},{default:(0,r.withCtx)(()=>[...a[55]||=[(0,r.createTextVNode)(` 左侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[37]||=e=>W(`table-action`,`add-table-column-after`)},{default:(0,r.withCtx)(()=>[...a[56]||=[(0,r.createTextVNode)(` 右侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[38]||=e=>W(`table-action`,`delete-table-row`)},{default:(0,r.withCtx)(()=>[...a[57]||=[(0,r.createTextVNode)(` 删除当前行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[39]||=e=>W(`table-action`,`delete-table-column`)},{default:(0,r.withCtx)(()=>[...a[58]||=[(0,r.createTextVNode)(` 删除当前列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[40]||=e=>W(`table-action`,`toggle-table-header-row`)},{default:(0,r.withCtx)(()=>[...a[59]||=[(0,r.createTextVNode)(` 切换表头行 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,disabled:M.readonly,onClick:a[41]||=e=>W(`table-action`,`toggle-table-header-column`)},{default:(0,r.withCtx)(()=>[...a[60]||=[(0,r.createTextVNode)(` 切换表头列 `,-1)]]),_:1},8,[`disabled`]),(0,r.createVNode)((0,r.unref)(i.Button),{danger:``,size:`small`,disabled:M.readonly,onClick:a[42]||=e=>W(`table-action`,`delete-table`)},{default:(0,r.withCtx)(()=>[...a[61]||=[(0,r.createTextVNode)(` 删除表格 `,-1)]]),_:1},8,[`disabled`])])])]),default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`表格操作`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:M.readonly||!M.editorState.isTableActive,"aria-label":`表格操作`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`])])],8,[`disabled`,`to`])),(0,r.withDirectives)((0,r.createElementVNode)(`div`,{ref_key:`toolbarMoreElement`,ref:K,class:`gd-contract-template-designer__toolbar-more`},[(0,r.createVNode)((0,r.unref)(i.Tooltip),{title:`更多工具`},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(i.Button),{size:`small`,class:(0,r.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":U.value}]),"aria-label":`更多工具`,"aria-haspopup":`true`,"aria-expanded":U.value,onClick:a[44]||=(0,r.withModifiers)(e=>U.value=!U.value,[`stop`])},{default:(0,r.withCtx)(()=>[(0,r.createVNode)((0,r.unref)(o.EllipsisOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-expanded`])]),_:1}),(0,r.withDirectives)((0,r.createElementVNode)(`div`,te,[(0,r.withDirectives)((0,r.createElementVNode)(`div`,D,[a[63]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`插入`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarInsertSlotElement`,ref:q,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)($)(`insert`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,O,[a[64]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`字体`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarFontSlotElement`,ref:J,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)($)(`font-family`)||(0,r.unref)($)(`font-appearance`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,k,[a[65]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`段落`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarParagraphSlotElement`,ref:Y,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)($)(`list`)||(0,r.unref)($)(`alignment`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,A,[a[66]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`清除格式`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarCleanupSlotElement`,ref:X,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)($)(`cleanup`)]]),(0,r.withDirectives)((0,r.createElementVNode)(`div`,j,[a[67]||=(0,r.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`表格`,-1),(0,r.createElementVNode)(`div`,{ref_key:`toolbarTableSlotElement`,ref:Z,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[r.vShow,(0,r.unref)($)(`table`)]])],512),[[r.vShow,U.value]])],512),[[r.vShow,(0,r.unref)(re)]])],512)]))}});exports.default=M;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`ant-design-vue`),n=require(`@ant-design/icons-vue`);var r={class:`gd-contract-template-designer__variable-data-grid`},i={class:`gd-contract-template-designer__variable-data-section`},a={class:`gd-contract-template-designer__variable-data-section-head`},o={class:`gd-contract-template-designer__variable-data-code`},s={key:0,class:`gd-contract-template-designer__variable-data-error`},c={class:`gd-contract-template-designer__variable-data-section`},l={class:`gd-contract-template-designer__variable-data-section-head`},u={class:`gd-contract-template-designer__variable-data-code`},d={key:0,class:`gd-contract-template-designer__variable-data-error`},f=(0,e.defineComponent)({__name:`ContractTemplateVariableDataModal`,props:{open:{type:Boolean},data:{},fileName:{}},emits:[`update:open`,`cancel`],setup(f,{emit:p}){let m=f,h=p,g=(0,e.ref)(),_=(0,e.ref)(),v=(0,e.ref)(``),y=(0,e.ref)(),b=(0,e.computed)(()=>JSON.stringify(m.data.values,null,2)),x=(0,e.computed)(()=>JSON.stringify(m.data.variables,null,2));(0,e.watch)(()=>m.open,e=>{e||(g.value=void 0,_.value=void 0,v.value=``,y.value=void 0)});async function S(e){let n=e===`values`?b.value:x.value;g.value=e,_.value=void 0,v.value=``,y.value=void 0;try{if(typeof navigator>`u`||!navigator.clipboard?.writeText)throw Error(`当前浏览器未授权剪贴板操作`);await navigator.clipboard.writeText(n),_.value=e,t.message.success(e===`values`?`控件值对象已复制`:`控件变量定义已复制`)}catch(n){let r=n instanceof Error?n.message:`未知错误`;v.value=`复制失败:${r}`,y.value=e,t.message.error(`复制失败:${r}`)}finally{g.value=void 0}}return(p,m)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Modal),{open:f.open,title:f.fileName?`控件变量 · ${f.fileName}`:`控件变量`,width:`min(1100px, calc(100vw - 48px))`,centered:``,footer:null,"wrap-class-name":`gd-contract-template-designer__variable-data-modal`,"onUpdate:open":m[2]||=e=>h(`update:open`,e),onCancel:m[3]||=e=>h(`cancel`)},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,r,[(0,e.createElementVNode)(`section`,i,[(0,e.createElementVNode)(`div`,a,[m[4]||=(0,e.createElementVNode)(`div`,null,[(0,e.createElementVNode)(`strong`,null,`接口请求值`),(0,e.createElementVNode)(`small`,null,`按控件 key 生成,可直接作为请求 body`)],-1),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`复制接口请求值`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,loading:g.value===`values`,"aria-label":`复制接口请求值`,onClick:m[0]||=e=>S(`values`)},{default:(0,e.withCtx)(()=>[_.value===`values`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.CheckOutlined),{key:1,"aria-hidden":`true`})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.CopyOutlined),{key:0,"aria-hidden":`true`}))]),_:1},8,[`loading`])]),_:1})]),(0,e.createElementVNode)(`pre`,o,(0,e.toDisplayString)(b.value),1),v.value&&y.value===`values`?((0,e.openBlock)(),(0,e.createElementBlock)(`small`,s,(0,e.toDisplayString)(v.value),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`section`,c,[(0,e.createElementVNode)(`div`,l,[m[5]||=(0,e.createElementVNode)(`div`,null,[(0,e.createElementVNode)(`strong`,null,`控件变量定义`),(0,e.createElementVNode)(`small`,null,`当前文件完整 variables 数组`)],-1),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`复制控件变量定义`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,loading:g.value===`variables`,"aria-label":`复制控件变量定义`,onClick:m[1]||=e=>S(`variables`)},{default:(0,e.withCtx)(()=>[_.value===`variables`?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.CheckOutlined),{key:1,"aria-hidden":`true`})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.CopyOutlined),{key:0,"aria-hidden":`true`}))]),_:1},8,[`loading`])]),_:1})]),(0,e.createElementVNode)(`pre`,u,(0,e.toDisplayString)(x.value),1),v.value&&y.value===`variables`?((0,e.openBlock)(),(0,e.createElementBlock)(`small`,d,(0,e.toDisplayString)(v.value),1)):(0,e.createCommentVNode)(``,!0)])])]),_:1},8,[`open`,`title`]))}});exports.default=f;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/clipboard.cjs`);let t=require(`vue`),n=require(`ant-design-vue`),r=require(`@ant-design/icons-vue`);var i={class:`gd-contract-template-designer__variable-data-grid`},a={class:`gd-contract-template-designer__variable-data-section`},o={class:`gd-contract-template-designer__variable-data-section-head`},s={class:`gd-contract-template-designer__variable-data-code`},c={key:0,class:`gd-contract-template-designer__variable-data-error`},l={class:`gd-contract-template-designer__variable-data-section`},u={class:`gd-contract-template-designer__variable-data-section-head`},d={class:`gd-contract-template-designer__variable-data-code`},f={key:0,class:`gd-contract-template-designer__variable-data-error`},p=(0,t.defineComponent)({__name:`ContractTemplateVariableDataModal`,props:{open:{type:Boolean},data:{},fileName:{}},emits:[`update:open`,`cancel`],setup(p,{emit:m}){let h=p,g=m,_=(0,t.ref)(),v=(0,t.ref)(),y=(0,t.ref)(``),b=(0,t.ref)(),x=(0,t.computed)(()=>JSON.stringify(h.data.values,null,2)),S=(0,t.computed)(()=>JSON.stringify(h.data.variables,null,2));(0,t.watch)(()=>h.open,e=>{e||(_.value=void 0,v.value=void 0,y.value=``,b.value=void 0)});async function C(t){let r=t===`values`?x.value:S.value;_.value=t,v.value=void 0,y.value=``,b.value=void 0;try{await e.writeContractClipboardText(r),v.value=t,n.message.success(t===`values`?`控件值对象已复制`:`控件变量定义已复制`)}catch(e){let r=e instanceof Error?e.message:`未知错误`;y.value=`复制失败:${r}`,b.value=t,n.message.error(`复制失败:${r}`)}finally{_.value=void 0}}return(e,m)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Modal),{open:p.open,title:p.fileName?`控件变量 · ${p.fileName}`:`控件变量`,width:`min(1100px, calc(100vw - 48px))`,centered:``,footer:null,"wrap-class-name":`gd-contract-template-designer__variable-data-modal`,"onUpdate:open":m[2]||=e=>g(`update:open`,e),onCancel:m[3]||=e=>g(`cancel`)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,i,[(0,t.createElementVNode)(`section`,a,[(0,t.createElementVNode)(`div`,o,[m[4]||=(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`strong`,null,`接口请求值`),(0,t.createElementVNode)(`small`,null,`按控件 key 生成,可直接作为请求 body`)],-1),(0,t.createVNode)((0,t.unref)(n.Tooltip),{title:`复制接口请求值`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,loading:_.value===`values`,"aria-label":`复制接口请求值`,onClick:m[0]||=e=>C(`values`)},{default:(0,t.withCtx)(()=>[v.value===`values`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r.CheckOutlined),{key:1,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r.CopyOutlined),{key:0,"aria-hidden":`true`}))]),_:1},8,[`loading`])]),_:1})]),(0,t.createElementVNode)(`pre`,s,(0,t.toDisplayString)(x.value),1),y.value&&b.value===`values`?((0,t.openBlock)(),(0,t.createElementBlock)(`small`,c,(0,t.toDisplayString)(y.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`section`,l,[(0,t.createElementVNode)(`div`,u,[m[5]||=(0,t.createElementVNode)(`div`,null,[(0,t.createElementVNode)(`strong`,null,`控件变量定义`),(0,t.createElementVNode)(`small`,null,`当前文件完整 variables 数组`)],-1),(0,t.createVNode)((0,t.unref)(n.Tooltip),{title:`复制控件变量定义`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,loading:_.value===`variables`,"aria-label":`复制控件变量定义`,onClick:m[1]||=e=>C(`variables`)},{default:(0,t.withCtx)(()=>[v.value===`variables`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r.CheckOutlined),{key:1,"aria-hidden":`true`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r.CopyOutlined),{key:0,"aria-hidden":`true`}))]),_:1},8,[`loading`])]),_:1})]),(0,t.createElementVNode)(`pre`,d,(0,t.toDisplayString)(S.value),1),y.value&&b.value===`variables`?((0,t.openBlock)(),(0,t.createElementBlock)(`small`,f,(0,t.toDisplayString)(y.value),1)):(0,t.createCommentVNode)(``,!0)])])]),_:1},8,[`open`,`title`]))}});exports.default=p;
@@ -1,2 +1,2 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./utils/signing-placement.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./extensions/template-variable.cjs`),a=require(`./utils/content-image.cjs`),o=require(`./extensions/editor-extensions.cjs`),s=require(`./utils/context-variable.cjs`),c=require(`./utils/block-style.cjs`),l=require(`./SigningPlacementLayer.cjs`),ee=require(`./ContractTemplatePageDecorations.cjs`);let u=require(`vue`),d=require(`@tiptap/vue-3`),te=require(`@tiptap/core`),f=require(`@tiptap/pm/tables`),p=require(`@tiptap/pm/state`);var ne={class:`gd-contract-template-designer__page-title`},m=`application/x-gd-contract-variable-move`,re=8,h=(0,u.defineComponent)({name:`ProContractTemplateDesignerPage`,__name:`DesignerPage`,props:{page:{},pageIndex:{},pageSize:{},pageDecorations:{default:void 0},totalPages:{default:1},variables:{},selectedVariableKey:{default:``},active:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},zoom:{default:1},signingPlacements:{default:()=>[]},selectedSigningPlacementId:{default:``},processImageFile:{type:Function,default:void 0}},emits:[`page-update`,`variable-drop`,`signing-placement-drop`,`signing-placement-select`,`signing-placement-move`,`signing-placement-remove`,`variable-select`,`variable-move-blocked`,`editor-focus`,`editor-state-change`,`editor-context-menu`,`word-paste`],setup(h,{expose:ie,emit:ae}){let g=h,_=ae,v=(0,u.computed)(()=>g.readonly||g.disabled),y=(0,u.ref)(),b=o.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:g.processImageFile,getZoom:()=>Math.max(.1,g.zoom||1)}),x=(0,d.useEditor)({content:g.page.contentHtml,editable:!v.value,extensions:b,editorProps:{attributes:{class:`gd-contract-template-designer__editor-prose`},handleClick:(e,t,n)=>{let r=(n.target instanceof HTMLElement?n.target.closest(`[data-template-variable]`):void 0)?.dataset.key;if(!r)return!1;let i=g.variables.find(e=>e.key===r);return i&&_(`variable-select`,i.key),!1},handleDOMEvents:{contextmenu:(e,t)=>{if(v.value)return!1;let n=F(e,t.target);if(n)return t.preventDefault(),M({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=x.value?.state.selection,i=r instanceof f.CellSelection,a=t.target instanceof HTMLElement?!!t.target.closest(`td, th`):!1,o=s.resolveEditorContextMenuKind({isCellSelection:i,selectionEmpty:!r||r.empty,inTable:a});return t.preventDefault(),o===`table`&&(i||ue(t.clientX,t.clientY,t.target))?(I({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(j({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY}),!0)},dragstart:(e,t)=>v.value?(t.preventDefault(),!0):(t.target instanceof HTMLElement?t.target:null)?.closest(`[data-template-variable]`)?(t.dataTransfer?.setData(m,g.page.id),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`),y.value?.classList.add(`is-variable-dragging`),!1):!1,dragend:()=>(y.value?.classList.remove(`is-variable-dragging`),!1),drop:(e,t)=>{if(v.value)return t.preventDefault(),t.stopPropagation(),!0;let n=t.dataTransfer?.getData(m);return!n||n===g.page.id?!1:(t.preventDefault(),_(`variable-move-blocked`,g.page.id),!0)}},handleKeyDown:(e,t)=>{if(v.value||!se(t))return!1;let n=x.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=P();if(i){let e=n.view.coordsAtPos(r.from);return M({pageId:g.page.id,clientX:e.left,clientY:e.bottom},i),!0}let a=r instanceof f.CellSelection;if(s.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=le();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(f.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return I({pageId:g.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return j({pageId:g.page.id,clientX:o.left,clientY:o.bottom}),!0}},onUpdate:({editor:e})=>{_(`page-update`,{...g.page,contentHtml:e.getHTML(),contentJson:e.getJSON()}),U()},onFocus:()=>{_(`editor-focus`,g.page.id),U()},onBlur:U,onSelectionUpdate:U,onCreate:({editor:e})=>{e.on(`contract-word-paste`,S),U()}});function S(e){_(`word-paste`,e)}function C(e){if(typeof e==`number`&&Number.isFinite(e))return e;let t=String(e||``).match(/(\d+(\.\d+)?)/);return t?Number(t[1]):void 0}function w(){if(!x.value)return``;let{from:e,to:t}=x.value.state.selection;return x.value.state.doc.textBetween(e,t,`
2
- `)}function T(){let e=x.value,t=e?.state.selection;if(!(!e||!t||t.empty))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);if(Math.abs(r.top-n.top)>re)return;let i=Math.abs(r.left-n.left)/W.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function E(){let e=x.value,t=e?.state.selection;if(!(!e||!t||t.empty)&&!(t instanceof f.CellSelection||t instanceof p.NodeSelection))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);return{top:Math.min(n.top,r.top),bottom:Math.max(n.bottom,r.bottom),left:Math.min(n.left,r.left),right:Math.max(n.left,r.right)}}catch{return}}function oe(){let e=x.value;if(!e)return``;let t=e.state.selection.$from,n=t.pos;for(let e=t.depth;e>0;--e){let r=t.node(e).type.name;if(r===`paragraph`||r===`heading`){n=t.start(e);break}}return e.state.doc.textBetween(n,e.state.selection.from,``)}function se(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function D(e){for(let t=e.depth;t>0;--t){let n=e.node(t).type.spec.tableRole;if(n===`cell`||n===`header_cell`)return e.before(t)}}function ce(e,t){let n=x.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return D(n.state.doc.resolve(r))}function le(){let e=x.value;if(e)return D(e.state.selection.$from)}function ue(e,t,n){let r=x.value,i=n instanceof HTMLElement?n:null;if(!r||!i?.closest(`td,th`))return!1;if(r.state.selection instanceof f.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=ce(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(f.CellSelection.create(r.state.doc,a))),!0):!1}function O(){let e=x.value,t=e?.isActive(`table`)?e.can():void 0,n=e=>!!(t&&e(t));return{addRowBefore:n(e=>e.addRowBefore()),addRowAfter:n(e=>e.addRowAfter()),deleteRow:n(e=>e.deleteRow()),addColumnBefore:n(e=>e.addColumnBefore()),addColumnAfter:n(e=>e.addColumnAfter()),deleteColumn:n(e=>e.deleteColumn()),mergeCells:n(e=>e.mergeCells()),splitCell:n(e=>e.splitCell()),alignLeft:n(e=>e.setCellAttribute(`textAlign`,`left`)),alignCenter:n(e=>e.setCellAttribute(`textAlign`,`center`)),alignRight:n(e=>e.setCellAttribute(`textAlign`,`right`)),toggleHeaderRow:n(e=>e.toggleHeaderRow()),toggleHeaderColumn:n(e=>e.toggleHeaderColumn()),deleteTable:n(e=>e.deleteTable())}}function de(){let e=x.value,t=e?.state.selection;if(!e||!(t instanceof f.CellSelection))return`left`;let n=new Set;return t.forEachCell(e=>{let t=e.attrs.textAlign;n.add(t===`center`||t===`right`?t:`left`)}),n.size===1?n.values().next().value??`left`:`mixed`}function k(e=x.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function A(e){let t=x.value;if(!t)return 0;let n=k(t.state.doc),r=n,i=e=>{r=k(e.doc)};return e===`delete-table-row`?(0,f.deleteRow)(t.state,i):e===`delete-table-column`?(0,f.deleteColumn)(t.state,i):(0,f.deleteTable)(t.state,i),Math.max(0,n-r)}function j(e){let t=x.value?.state.selection,n=!!(t&&!t.empty);_(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?T():void 0,leadingText:oe()})}function fe(e,t){j({pageId:g.page.id,clientX:e,clientY:t})}function M(e,t){_(`editor-context-menu`,{type:`image`,...e,image:t})}function N(e,t){if(!(e.type.name!==`image`||typeof e.attrs.src!=`string`||!e.attrs.src))return{position:t,src:e.attrs.src,alt:typeof e.attrs.alt==`string`?e.attrs.alt:void 0,title:typeof e.attrs.title==`string`?e.attrs.title:void 0,width:a.normalizeContractImageDimension(e.attrs.width),height:a.normalizeContractImageDimension(e.attrs.height)}}function P(){let e=x.value?.state.selection;if(e instanceof p.NodeSelection)return N(e.node,e.from)}function F(e,t){let n=t instanceof HTMLElement?t.closest(`[data-template-variable], img[src]`):null;if(n)try{let t=e.posAtDOM(n,0),r=e.state.doc.nodeAt(t);return!r||r.type.name!==`templateVariable`&&r.type.name!==`image`?void 0:(r.type.name===`templateVariable`&&typeof r.attrs.key==`string`&&_(`variable-select`,r.attrs.key),(!(e.state.selection instanceof p.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(p.NodeSelection.create(e.state.doc,t))),N(r,t))}catch{return}}function I(e){_(`editor-context-menu`,{type:`table`,...e,capabilities:O(),activeAlignment:de(),affectedVariableCounts:{deleteRow:A(`delete-table-row`),deleteColumn:A(`delete-table-column`),deleteTable:A(`delete-table`)}})}function L(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function R(){let e=x.value;if(!e)return[];let{doc:t,selection:n}=e.state,r=[],i=e=>{e.type.name===`paragraph`?r.push(`paragraph`):e.type.name===`heading`&&L(e.attrs.level)&&r.push(e.attrs.level)};if(n.empty)for(let e=n.$from.depth;e>0;e--){let t=n.$from.node(e);if(t.type.name===`paragraph`||t.type.name===`heading`){i(t);break}}else t.nodesBetween(n.from,n.to,e=>(i(e),!0));return Array.from(new Set(r))}function z(){let e=R();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function B(){return R().length>1}function V(){return[`center`,`right`].find(e=>x.value?.isActive(`heading`,{textAlign:e})||x.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function H(){let e=x.value,t=t=>!!e?.isActive(t),n=e?.getAttributes(`textStyle`)??{};return{isFocused:!!e?.isFocused,canUndo:!!e?.can().undo(),canRedo:!!e?.can().redo(),isBold:t(`bold`),isItalic:t(`italic`),isUnderline:t(`underline`),isBulletList:t(`bulletList`),isOrderedList:t(`orderedList`),isTableActive:t(`table`),currentHeadingLevel:z(),hasMixedBlockFormats:B(),textAlign:V(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:C(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:w(),selectedContentImage:P()}}function U(){_(`editor-state-change`,g.page.id,H())}(0,u.watch)(v,e=>{x.value?.setEditable(!e),U()}),(0,u.watch)(()=>g.page.contentHtml,e=>{!x.value||e===x.value.getHTML()||(x.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),U())});let pe=(0,u.computed)(()=>{let e=t.normalizePageDecorations(g.pageDecorations),n=g.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return{width:`${g.pageSize.width}px`,height:`${g.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,g.pageSize.height-r-i)}px`}}),W=(0,u.computed)(()=>Math.max(.1,g.zoom||1)),me=(0,u.computed)(()=>({width:`${Math.ceil((g.pageSize.width+10)*W.value)}px`,height:`${Math.ceil((g.pageSize.height+40)*W.value)}px`})),he=(0,u.computed)(()=>({"--gd-contract-page-zoom":String(W.value)})),ge=(0,u.computed)(()=>r.resolvePageSize(g.pageSize));function G(e,t){let n=y.value?.getBoundingClientRect();return n?{x:Math.min(g.pageSize.width,Math.max(0,(e-n.left)/W.value)),y:Math.min(g.pageSize.height,Math.max(0,(t-n.top)/W.value))}:{x:g.pageSize.width/2,y:g.pageSize.height/2}}function _e(e){let t=y.value?.getBoundingClientRect(),r=y.value?.closest(`.gd-contract-template-designer__canvas`)?.getBoundingClientRect(),i=n.getSigningPlacementDefaultSize(e);if(!t||!r)return{x:Math.max(0,(g.pageSize.width-i.width)/2),y:Math.max(0,(g.pageSize.height-i.height)/2)};let a=Math.max(t.left,r.left),o=Math.max(t.top,r.top),s=Math.min(t.right,r.right),c=Math.min(t.bottom,r.bottom),l=G(s>a?(a+s)/2:(t.left+t.right)/2,c>o?(o+c)/2:(t.top+t.bottom)/2);return{x:l.x-i.width/2,y:l.y-i.height/2}}function ve(e){if(!n.canMutateSigningPlacements(g.readonly,g.disabled)){e.preventDefault(),e.stopPropagation();return}let t=n.parseSigningPlacementDragPayload(e.dataTransfer?.getData(n.SIGNING_PLACEMENT_MIME));if(t){e.preventDefault(),e.stopPropagation();let n=G(e.clientX,e.clientY);_(`signing-placement-drop`,g.page.id,t,n.x,n.y);return}let r=e.dataTransfer?.getData(`application/x-gd-contract-variable`);if(r){e.preventDefault(),e.stopPropagation(),_(`variable-drop`,g.page.id,r,e.clientX,e.clientY);return}let i=e.dataTransfer?.getData(m);i&&i!==g.page.id&&(e.preventDefault(),e.stopPropagation(),_(`variable-move-blocked`,g.page.id))}function ye(e,t){let n=x.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return i.insertTemplateVariableNode(n,e,r),$(),K()}function be(e,t){let n=x.value;if(n)return o.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),K()}function xe(e){let t=x.value,n=t?.state.selection;if(!t||!(n instanceof p.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:a.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let o=t.state.tr.setNodeMarkup(n.from,void 0,r);return o.setSelection(p.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),K()}function Se(){let e=x.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function K(){return{...g.page,pageSize:ge.value,contentHtml:x.value?.getHTML()??g.page.contentHtml,contentJson:x.value?.getJSON()??g.page.contentJson}}function q(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function Ce(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function we(e){return(0,te.generateHTML)(q(e),b)}function Te(){if(g.pageDecorations){let e=t.normalizePageDecorations(g.pageDecorations),n=g.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return Math.max(120,g.pageSize.height-r-i)}let e=y.value;if(!e)return g.pageSize.height-108;let n=window.getComputedStyle(e),r=Number.parseFloat(n.paddingTop)||0,i=Number.parseFloat(n.paddingBottom)||0;return Math.max(120,g.pageSize.height-r-i)}function Ee(){let e=y.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=W.value;return Array.from(e.children).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}})}function J(){if(!x.value)return;let e=x.value.getJSON();return r.splitPageContentByMeasurements(e.content,Ee(),Te())}function De(){return!!J()}function Oe(){if(!x.value)return;let e=J();if(e)return x.value.commands.setContent(q(e.currentContent),{emitUpdate:!1}),{page:K(),overflowContent:e.overflowContent,overflowHtml:we(e.overflowContent)}}function ke(e){if(!x.value||!e.length)return;let t=x.value.getJSON().content,n=[...e,...Ce(t)?[]:t??[]];return x.value.commands.setContent(q(n),{emitUpdate:!1}),K()}function Y(e,t){let n=[];return e.descendants((e,r)=>{e.type.name===`templateVariable`&&e.attrs.key===t&&n.push({node:e,pos:r})}),n}function Ae(e,t=e.key){if(!x.value)return;let n=i.buildTemplateVariableAttrs(e),r=!1;return x.value.commands.command(({tr:e,state:i,dispatch:a})=>(Y(i.doc,t).forEach(({node:t,pos:i})=>{e.setNodeMarkup(i,void 0,{...t.attrs,...n}),r=!0}),r&&a?.(e),r)),$(),r?K():void 0}function X(e){if(!x.value)return;let t=0;return x.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=Y(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?K():void 0}function Z(){y.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function Q(e){if(e)return Array.from(y.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function je(e){Z();let t=Q(e);return t?(t.classList.add(`is-active`),t.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),x.value?.commands.focus(),!0):!1}function Me(e){let t=Array.from(y.value?.querySelectorAll(`[data-signing-placement-id]`)??[]).find(t=>t.dataset.signingPlacementId===e);return t?.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),!!t}function $(){Z(),Q(g.selectedVariableKey)?.classList.add(`is-active`)}function Ne(t){let n=e.CONTRACT_TEXT_STYLE_PRESETS.find(e=>e.key===t),i=x.value;if(!n||!i)return;let a=i.chain().focus().clearNodes();n.headingLevel?a.setHeading({level:n.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(n.textAlign).setFontSize(`${n.fontSize}px`).setFontFamily(n.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY).setColor(r.DEFAULT_FIELD_STYLE.color||`#1f2937`),n.bold?a.setBold():a.unsetBold(),n.italic?a.setItalic():a.unsetItalic(),n.underline?a.setUnderline():a.unsetUnderline(),a.run()}(0,u.watch)([()=>g.selectedVariableKey,()=>g.variables],()=>{(0,u.nextTick)($)},{deep:!0,flush:`post`});function Pe(e){e.type===`apply-block-style`?x.value&&c.applyContractTemplateBlockStyle(x.value,e.format):e.type===`apply-text-style-preset`?Ne(e.preset):o.runContractTemplateEditorCommand(x.value,e),U()}function Fe(){x.value?.commands.focus()}function Ie(){return x.value?.getJSON()}function Le(){return x.value?.getHTML()??g.page.contentHtml}function Re(e){let t=g.variables.find(t=>t.id===e||t.key===e),n=t?Q(t.key):void 0;$(),n?.scrollIntoView({behavior:`smooth`,block:`center`})}function ze(){y.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,u.onBeforeUnmount)(()=>{x.value?.off(`contract-word-paste`,S),x.value?.destroy()}),ie({focus:Fe,getHTML:Le,getJSON:Ie,getEditorState:H,getTableCommandCapabilities:O,getAffectedVariableCount:A,getVisibleSigningPlacementPosition:_e,insertVariable:ye,insertContentImage:be,updateSelectedContentImage:xe,getSelectionRange:Se,getSelectionViewportRect:E,requestTextContextMenu:fe,hasOverflowContent:De,updateVariable:Ae,removeVariable:X,splitOverflowContent:Oe,prependContent:ke,runCommand:Pe,scrollIntoField:Re,scrollIntoVariable:je,scrollIntoSigningPlacement:Me,scrollIntoPage:ze}),(e,t)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,u.normalizeStyle)(me.value)},[(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":h.active}]),style:(0,u.normalizeStyle)(he.value)},[(0,u.createElementVNode)(`header`,ne,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(h.page.title||`第 ${h.pageIndex+1} 页`),1),(0,u.createElementVNode)(`span`,null,`第 `+(0,u.toDisplayString)(h.pageIndex+1)+` 页 · `+(0,u.toDisplayString)(h.pageSize.label||`A4`)+` · `+(0,u.toDisplayString)(h.pageSize.width)+` × `+(0,u.toDisplayString)(h.pageSize.height),1)]),(0,u.createElementVNode)(`div`,{ref_key:`pageElement`,ref:y,class:`gd-contract-template-designer__page`,style:(0,u.normalizeStyle)(pe.value),onDragover:t[3]||=(0,u.withModifiers)(()=>{},[`prevent`]),onDrop:ve,onClick:t[4]||=e=>_(`editor-focus`,h.page.id)},[(0,u.createVNode)(ee.default,{decorations:h.pageDecorations,"page-number":h.pageIndex+1,"total-pages":h.totalPages,variables:h.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,u.unref)(x)?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,u.unref)(x)},null,8,[`editor`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(l.default,{"page-size":h.pageSize,placements:h.signingPlacements,"selected-id":h.selectedSigningPlacementId,zoom:W.value,readonly:h.readonly,disabled:h.disabled,onSelect:t[0]||=e=>_(`signing-placement-select`,e),onMove:t[1]||=e=>_(`signing-placement-move`,e),onRemove:t[2]||=e=>_(`signing-placement-remove`,e)},null,8,[`page-size`,`placements`,`selected-id`,`zoom`,`readonly`,`disabled`])],36)],6)],4))}});exports.default=h;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./utils/signing-placement.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./extensions/template-variable.cjs`),a=require(`./utils/content-image.cjs`),o=require(`./extensions/editor-extensions.cjs`),s=require(`./utils/context-variable.cjs`),c=require(`./utils/block-style.cjs`),l=require(`./SigningPlacementLayer.cjs`),ee=require(`./ContractTemplatePageDecorations.cjs`);let u=require(`vue`),te=require(`ant-design-vue`),d=require(`@tiptap/vue-3`),ne=require(`@tiptap/core`),f=require(`@tiptap/pm/tables`),p=require(`@tiptap/pm/state`);var re={class:`gd-contract-template-designer__page-title`},m=`application/x-gd-contract-variable-move`,ie=8,h=(0,u.defineComponent)({name:`ProContractTemplateDesignerPage`,__name:`DesignerPage`,props:{page:{},pageIndex:{},pageSize:{},pageDecorations:{default:void 0},totalPages:{default:1},variables:{},selectedVariableKey:{default:``},active:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},zoom:{default:1},signingPlacements:{default:()=>[]},selectedSigningPlacementId:{default:``},processImageFile:{type:Function,default:void 0}},emits:[`page-update`,`variable-drop`,`signing-placement-drop`,`signing-placement-select`,`signing-placement-move`,`signing-placement-remove`,`variable-select`,`variable-move-blocked`,`editor-focus`,`editor-state-change`,`editor-context-menu`,`word-paste`],setup(h,{expose:ae,emit:oe}){let g=h,_=oe,v=(0,u.computed)(()=>g.readonly||g.disabled),y=(0,u.ref)();function se(e){let t=e.filter(Boolean).join(`、`);return typeof window>`u`?!1:new Promise(e=>{te.Modal.confirm({title:`粘贴内容包含不兼容字体`,content:`检测到 ${t||`外部`} 字体。为保证 Mac 与 Windows 排版一致,将统一转换为合同标准字体(GD Contract Latin + 系统宋体)。是否继续粘贴?`,okText:`继续粘贴`,cancelText:`取消粘贴`,onOk:()=>e(!0),onCancel:()=>e(!1)})})}let b=o.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:g.processImageFile,confirmExternalFontPaste:se,getZoom:()=>Math.max(.1,g.zoom||1)}),x=(0,d.useEditor)({content:g.page.contentHtml,editable:!v.value,extensions:b,editorProps:{attributes:{class:`gd-contract-template-designer__editor-prose`},handleClick:(e,t,n)=>{let r=(n.target instanceof HTMLElement?n.target.closest(`[data-template-variable]`):void 0)?.dataset.key;if(!r)return!1;let i=g.variables.find(e=>e.key===r);return i&&_(`variable-select`,i.key),!1},handleDOMEvents:{contextmenu:(e,t)=>{if(v.value)return!1;let n=L(e,t.target);if(n)return t.preventDefault(),P({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=x.value?.state.selection,i=r instanceof f.CellSelection,a=t.target instanceof HTMLElement?!!t.target.closest(`td, th`):!1,o=s.resolveEditorContextMenuKind({isCellSelection:i,selectionEmpty:!r||r.empty,inTable:a});return t.preventDefault(),o===`table`&&(i||de(t.clientX,t.clientY,t.target))?(R({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(M({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY}),!0)},dragstart:(e,t)=>v.value?(t.preventDefault(),!0):(t.target instanceof HTMLElement?t.target:null)?.closest(`[data-template-variable]`)?(t.dataTransfer?.setData(m,g.page.id),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`),y.value?.classList.add(`is-variable-dragging`),!1):!1,dragend:()=>(y.value?.classList.remove(`is-variable-dragging`),!1),drop:(e,t)=>{if(v.value)return t.preventDefault(),t.stopPropagation(),!0;let n=t.dataTransfer?.getData(m);return!n||n===g.page.id?!1:(t.preventDefault(),_(`variable-move-blocked`,g.page.id),!0)}},handleKeyDown:(e,t)=>{if(v.value||!E(t))return!1;let n=x.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=I();if(i){let e=n.view.coordsAtPos(r.from);return P({pageId:g.page.id,clientX:e.left,clientY:e.bottom},i),!0}let a=r instanceof f.CellSelection;if(s.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=ue();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(f.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return R({pageId:g.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return M({pageId:g.page.id,clientX:o.left,clientY:o.bottom}),!0}},onUpdate:({editor:e})=>{_(`page-update`,{...g.page,contentHtml:e.getHTML(),contentJson:e.getJSON()}),U()},onFocus:()=>{_(`editor-focus`,g.page.id),U()},onBlur:U,onSelectionUpdate:U,onCreate:({editor:e})=>{e.on(`contract-word-paste`,S),U()}});function S(e){_(`word-paste`,e)}function C(e){if(typeof e==`number`&&Number.isFinite(e))return e;let t=String(e||``).match(/(\d+(\.\d+)?)/);return t?Number(t[1]):void 0}function ce(){if(!x.value)return``;let{from:e,to:t}=x.value.state.selection;return x.value.state.doc.textBetween(e,t,`
2
+ `)}function le(){let e=x.value,t=e?.state.selection;if(!(!e||!t||t.empty))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);if(Math.abs(r.top-n.top)>ie)return;let i=Math.abs(r.left-n.left)/W.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function w(){let e=x.value,t=e?.state.selection;if(!(!e||!t||t.empty)&&!(t instanceof f.CellSelection||t instanceof p.NodeSelection))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);return{top:Math.min(n.top,r.top),bottom:Math.max(n.bottom,r.bottom),left:Math.min(n.left,r.left),right:Math.max(n.left,r.right)}}catch{return}}function T(){let e=x.value;if(!e)return``;let t=e.state.selection.$from,n=t.pos;for(let e=t.depth;e>0;--e){let r=t.node(e).type.name;if(r===`paragraph`||r===`heading`){n=t.start(e);break}}return e.state.doc.textBetween(n,e.state.selection.from,``)}function E(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function D(e){for(let t=e.depth;t>0;--t){let n=e.node(t).type.spec.tableRole;if(n===`cell`||n===`header_cell`)return e.before(t)}}function O(e,t){let n=x.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return D(n.state.doc.resolve(r))}function ue(){let e=x.value;if(e)return D(e.state.selection.$from)}function de(e,t,n){let r=x.value,i=n instanceof HTMLElement?n:null;if(!r||!i?.closest(`td,th`))return!1;if(r.state.selection instanceof f.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=O(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(f.CellSelection.create(r.state.doc,a))),!0):!1}function k(){let e=x.value,t=e?.isActive(`table`)?e.can():void 0,n=e=>!!(t&&e(t));return{addRowBefore:n(e=>e.addRowBefore()),addRowAfter:n(e=>e.addRowAfter()),deleteRow:n(e=>e.deleteRow()),addColumnBefore:n(e=>e.addColumnBefore()),addColumnAfter:n(e=>e.addColumnAfter()),deleteColumn:n(e=>e.deleteColumn()),mergeCells:n(e=>e.mergeCells()),splitCell:n(e=>e.splitCell()),alignLeft:n(e=>e.setCellAttribute(`textAlign`,`left`)),alignCenter:n(e=>e.setCellAttribute(`textAlign`,`center`)),alignRight:n(e=>e.setCellAttribute(`textAlign`,`right`)),toggleHeaderRow:n(e=>e.toggleHeaderRow()),toggleHeaderColumn:n(e=>e.toggleHeaderColumn()),deleteTable:n(e=>e.deleteTable())}}function fe(){let e=x.value,t=e?.state.selection;if(!e||!(t instanceof f.CellSelection))return`left`;let n=new Set;return t.forEachCell(e=>{let t=e.attrs.textAlign;n.add(t===`center`||t===`right`?t:`left`)}),n.size===1?n.values().next().value??`left`:`mixed`}function A(e=x.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function j(e){let t=x.value;if(!t)return 0;let n=A(t.state.doc),r=n,i=e=>{r=A(e.doc)};return e===`delete-table-row`?(0,f.deleteRow)(t.state,i):e===`delete-table-column`?(0,f.deleteColumn)(t.state,i):(0,f.deleteTable)(t.state,i),Math.max(0,n-r)}function M(e){let t=x.value?.state.selection,n=!!(t&&!t.empty);_(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?le():void 0,leadingText:T()})}function N(e,t){M({pageId:g.page.id,clientX:e,clientY:t})}function P(e,t){_(`editor-context-menu`,{type:`image`,...e,image:t})}function F(e,t){if(!(e.type.name!==`image`||typeof e.attrs.src!=`string`||!e.attrs.src))return{position:t,src:e.attrs.src,alt:typeof e.attrs.alt==`string`?e.attrs.alt:void 0,title:typeof e.attrs.title==`string`?e.attrs.title:void 0,width:a.normalizeContractImageDimension(e.attrs.width),height:a.normalizeContractImageDimension(e.attrs.height)}}function I(){let e=x.value?.state.selection;if(e instanceof p.NodeSelection)return F(e.node,e.from)}function L(e,t){let n=t instanceof HTMLElement?t.closest(`[data-template-variable], img[src]`):null;if(n)try{let t=e.posAtDOM(n,0),r=e.state.doc.nodeAt(t);return!r||r.type.name!==`templateVariable`&&r.type.name!==`image`?void 0:(r.type.name===`templateVariable`&&typeof r.attrs.key==`string`&&_(`variable-select`,r.attrs.key),(!(e.state.selection instanceof p.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(p.NodeSelection.create(e.state.doc,t))),F(r,t))}catch{return}}function R(e){_(`editor-context-menu`,{type:`table`,...e,capabilities:k(),activeAlignment:fe(),affectedVariableCounts:{deleteRow:j(`delete-table-row`),deleteColumn:j(`delete-table-column`),deleteTable:j(`delete-table`)}})}function z(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function B(){let e=x.value;if(!e)return[];let{doc:t,selection:n}=e.state,r=[],i=e=>{e.type.name===`paragraph`?r.push(`paragraph`):e.type.name===`heading`&&z(e.attrs.level)&&r.push(e.attrs.level)};if(n.empty)for(let e=n.$from.depth;e>0;e--){let t=n.$from.node(e);if(t.type.name===`paragraph`||t.type.name===`heading`){i(t);break}}else t.nodesBetween(n.from,n.to,e=>(i(e),!0));return Array.from(new Set(r))}function V(){let e=B();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function pe(){return B().length>1}function me(){return[`center`,`right`].find(e=>x.value?.isActive(`heading`,{textAlign:e})||x.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function H(){let e=x.value,t=t=>!!e?.isActive(t),n=e?.getAttributes(`textStyle`)??{};return{isFocused:!!e?.isFocused,canUndo:!!e?.can().undo(),canRedo:!!e?.can().redo(),isBold:t(`bold`),isItalic:t(`italic`),isUnderline:t(`underline`),isBulletList:t(`bulletList`),isOrderedList:t(`orderedList`),isTableActive:t(`table`),currentHeadingLevel:V(),hasMixedBlockFormats:pe(),textAlign:me(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:C(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:ce(),selectedContentImage:I()}}function U(){_(`editor-state-change`,g.page.id,H())}(0,u.watch)(v,e=>{x.value?.setEditable(!e),U()}),(0,u.watch)(()=>g.page.contentHtml,e=>{!x.value||e===x.value.getHTML()||(x.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),U())});let he=(0,u.computed)(()=>{let e=t.normalizePageDecorations(g.pageDecorations),n=g.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return{width:`${g.pageSize.width}px`,height:`${g.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,g.pageSize.height-r-i)}px`}}),W=(0,u.computed)(()=>Math.max(.1,g.zoom||1)),ge=(0,u.computed)(()=>({width:`${Math.ceil((g.pageSize.width+10)*W.value)}px`,height:`${Math.ceil((g.pageSize.height+40)*W.value)}px`})),_e=(0,u.computed)(()=>({"--gd-contract-page-zoom":String(W.value)})),ve=(0,u.computed)(()=>r.resolvePageSize(g.pageSize));function G(e,t){let n=y.value?.getBoundingClientRect();return n?{x:Math.min(g.pageSize.width,Math.max(0,(e-n.left)/W.value)),y:Math.min(g.pageSize.height,Math.max(0,(t-n.top)/W.value))}:{x:g.pageSize.width/2,y:g.pageSize.height/2}}function K(e){let t=y.value?.getBoundingClientRect(),r=y.value?.closest(`.gd-contract-template-designer__canvas`)?.getBoundingClientRect(),i=n.getSigningPlacementDefaultSize(e);if(!t||!r)return{x:Math.max(0,(g.pageSize.width-i.width)/2),y:Math.max(0,(g.pageSize.height-i.height)/2)};let a=Math.max(t.left,r.left),o=Math.max(t.top,r.top),s=Math.min(t.right,r.right),c=Math.min(t.bottom,r.bottom),l=G(s>a?(a+s)/2:(t.left+t.right)/2,c>o?(o+c)/2:(t.top+t.bottom)/2);return{x:l.x-i.width/2,y:l.y-i.height/2}}function ye(e){if(!n.canMutateSigningPlacements(g.readonly,g.disabled)){e.preventDefault(),e.stopPropagation();return}let t=n.parseSigningPlacementDragPayload(e.dataTransfer?.getData(n.SIGNING_PLACEMENT_MIME));if(t){e.preventDefault(),e.stopPropagation();let n=G(e.clientX,e.clientY);_(`signing-placement-drop`,g.page.id,t,n.x,n.y);return}let r=e.dataTransfer?.getData(`application/x-gd-contract-variable`);if(r){e.preventDefault(),e.stopPropagation(),_(`variable-drop`,g.page.id,r,e.clientX,e.clientY);return}let i=e.dataTransfer?.getData(m);i&&i!==g.page.id&&(e.preventDefault(),e.stopPropagation(),_(`variable-move-blocked`,g.page.id))}function be(e,t){let n=x.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return i.insertTemplateVariableNode(n,e,r),$(),q()}function xe(e,t){let n=x.value;if(n)return o.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),q()}function Se(e){let t=x.value,n=t?.state.selection;if(!t||!(n instanceof p.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:a.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let o=t.state.tr.setNodeMarkup(n.from,void 0,r);return o.setSelection(p.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),q()}function Ce(){let e=x.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function q(){return{...g.page,pageSize:ve.value,contentHtml:x.value?.getHTML()??g.page.contentHtml,contentJson:x.value?.getJSON()??g.page.contentJson}}function J(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function we(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function Te(e){return(0,ne.generateHTML)(J(e),b)}function Ee(){if(g.pageDecorations){let e=t.normalizePageDecorations(g.pageDecorations),n=g.pageIndex+1,r=t.hasEnabledPageHeader(e,n)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,i=t.hasEnabledPageFooter(e,n)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom;return Math.max(120,g.pageSize.height-r-i)}let e=y.value;if(!e)return g.pageSize.height-108;let n=window.getComputedStyle(e),r=Number.parseFloat(n.paddingTop)||0,i=Number.parseFloat(n.paddingBottom)||0;return Math.max(120,g.pageSize.height-r-i)}function De(){let e=y.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=W.value;return Array.from(e.children).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}})}function Y(){if(!x.value)return;let e=x.value.getJSON();return r.splitPageContentByMeasurements(e.content,De(),Ee())}function Oe(){return!!Y()}function ke(){if(!x.value)return;let e=Y();if(e)return x.value.commands.setContent(J(e.currentContent),{emitUpdate:!1}),{page:q(),overflowContent:e.overflowContent,overflowHtml:Te(e.overflowContent)}}function Ae(e){if(!x.value||!e.length)return;let t=x.value.getJSON().content,n=[...e,...we(t)?[]:t??[]];return x.value.commands.setContent(J(n),{emitUpdate:!1}),q()}function X(e,t){let n=[];return e.descendants((e,r)=>{e.type.name===`templateVariable`&&e.attrs.key===t&&n.push({node:e,pos:r})}),n}function je(e,t=e.key){if(!x.value)return;let n=i.buildTemplateVariableAttrs(e),r=!1;return x.value.commands.command(({tr:e,state:i,dispatch:a})=>(X(i.doc,t).forEach(({node:t,pos:i})=>{e.setNodeMarkup(i,void 0,{...t.attrs,...n}),r=!0}),r&&a?.(e),r)),$(),r?q():void 0}function Me(e){if(!x.value)return;let t=0;return x.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=X(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?q():void 0}function Z(){y.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function Q(e){if(e)return Array.from(y.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function Ne(e){Z();let t=Q(e);return t?(t.classList.add(`is-active`),t.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),x.value?.commands.focus(),!0):!1}function Pe(e){let t=Array.from(y.value?.querySelectorAll(`[data-signing-placement-id]`)??[]).find(t=>t.dataset.signingPlacementId===e);return t?.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),!!t}function $(){Z(),Q(g.selectedVariableKey)?.classList.add(`is-active`)}function Fe(t){let n=e.CONTRACT_TEXT_STYLE_PRESETS.find(e=>e.key===t),i=x.value;if(!n||!i)return;let a=i.chain().focus().clearNodes();n.headingLevel?a.setHeading({level:n.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(n.textAlign).setFontSize(`${n.fontSize}px`).setFontFamily(n.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY).setColor(r.DEFAULT_FIELD_STYLE.color||`#1f2937`),n.bold?a.setBold():a.unsetBold(),n.italic?a.setItalic():a.unsetItalic(),n.underline?a.setUnderline():a.unsetUnderline(),a.run()}(0,u.watch)([()=>g.selectedVariableKey,()=>g.variables],()=>{(0,u.nextTick)($)},{deep:!0,flush:`post`});function Ie(e){e.type===`apply-block-style`?x.value&&c.applyContractTemplateBlockStyle(x.value,e.format):e.type===`apply-text-style-preset`?Fe(e.preset):o.runContractTemplateEditorCommand(x.value,e),U()}function Le(){x.value?.commands.focus()}function Re(){return x.value?.getJSON()}function ze(){return x.value?.getHTML()??g.page.contentHtml}function Be(e){let t=g.variables.find(t=>t.id===e||t.key===e),n=t?Q(t.key):void 0;$(),n?.scrollIntoView({behavior:`smooth`,block:`center`})}function Ve(){y.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,u.onBeforeUnmount)(()=>{x.value?.off(`contract-word-paste`,S),x.value?.destroy()}),ae({focus:Le,getHTML:ze,getJSON:Re,getEditorState:H,getTableCommandCapabilities:k,getAffectedVariableCount:j,getVisibleSigningPlacementPosition:K,insertVariable:be,insertContentImage:xe,updateSelectedContentImage:Se,getSelectionRange:Ce,getSelectionViewportRect:w,requestTextContextMenu:N,hasOverflowContent:Oe,updateVariable:je,removeVariable:Me,splitOverflowContent:ke,prependContent:Ae,runCommand:Ie,scrollIntoField:Be,scrollIntoVariable:Ne,scrollIntoSigningPlacement:Pe,scrollIntoPage:Ve}),(e,t)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,u.normalizeStyle)(ge.value)},[(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":h.active}]),style:(0,u.normalizeStyle)(_e.value)},[(0,u.createElementVNode)(`header`,re,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(h.page.title||`第 ${h.pageIndex+1} 页`),1),(0,u.createElementVNode)(`span`,null,`第 `+(0,u.toDisplayString)(h.pageIndex+1)+` 页 · `+(0,u.toDisplayString)(h.pageSize.label||`A4`)+` · `+(0,u.toDisplayString)(h.pageSize.width)+` × `+(0,u.toDisplayString)(h.pageSize.height),1)]),(0,u.createElementVNode)(`div`,{ref_key:`pageElement`,ref:y,class:`gd-contract-template-designer__page`,style:(0,u.normalizeStyle)(he.value),onDragover:t[3]||=(0,u.withModifiers)(()=>{},[`prevent`]),onDrop:ye,onClick:t[4]||=e=>_(`editor-focus`,h.page.id)},[(0,u.createVNode)(ee.default,{decorations:h.pageDecorations,"page-number":h.pageIndex+1,"total-pages":h.totalPages,variables:h.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,u.unref)(x)?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,u.unref)(x)},null,8,[`editor`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(l.default,{"page-size":h.pageSize,placements:h.signingPlacements,"selected-id":h.selectedSigningPlacementId,zoom:W.value,readonly:h.readonly,disabled:h.disabled,onSelect:t[0]||=e=>_(`signing-placement-select`,e),onMove:t[1]||=e=>_(`signing-placement-move`,e),onRemove:t[2]||=e=>_(`signing-placement-remove`,e)},null,8,[`page-size`,`placements`,`selected-id`,`zoom`,`readonly`,`disabled`])],36)],6)],4))}});exports.default=h;