@guodun/antdv 1.5.2 → 1.6.0

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 (387) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +1 -1
  2. package/dist/es/components/contract-signing-location/src/template-source.mjs +16 -16
  3. package/dist/es/components/contract-signing-location/style/index.css +1 -1
  4. package/dist/es/components/dept-selector/index.mjs +1 -1
  5. package/dist/es/components/dept-selector/src/DeptSelector.mjs +5 -0
  6. package/dist/es/components/dept-selector/src/DeptSelector.vue.mjs +90 -0
  7. package/dist/es/components/dept-selector/src/style/index.mjs +1 -0
  8. package/dist/es/components/dept-selector/src/types.mjs +4 -0
  9. package/dist/es/components/index.mjs +5 -3
  10. package/dist/es/components/plus-upload/apis/plus-upload.api.mjs +19 -9
  11. package/dist/es/components/plus-upload/hook/usePlusUpload.mjs +9 -9
  12. package/dist/es/components/plus-upload/src/plus-upload.vue.mjs +1 -1
  13. package/dist/es/components/plus-upload/src/types.mjs +4 -0
  14. package/dist/es/components/pro-contract-template-designer/index.mjs +2 -2
  15. package/dist/es/components/pro-contract-template-designer/src/{ContractTemplatePreviewSigningLayer.mjs → ContractTemplateAuthoringBar.mjs} +2 -2
  16. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateAuthoringBar.vue.mjs +168 -0
  17. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateControlLibrary.mjs +5 -0
  18. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateControlLibrary.vue.mjs +120 -0
  19. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +382 -459
  20. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.mjs +278 -122
  21. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.mjs +463 -315
  22. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +76 -75
  23. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFindReplace.mjs +5 -0
  24. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateFindReplace.vue.mjs +164 -0
  25. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.mjs +380 -393
  26. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPageMap.mjs +5 -0
  27. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPageMap.vue.mjs +108 -0
  28. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPresetPicker.mjs +5 -0
  29. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPresetPicker.vue.mjs +73 -0
  30. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.mjs +109 -53
  31. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePanelTabs.mjs +5 -0
  32. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePanelTabs.vue.mjs +52 -0
  33. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.mjs +10 -14
  34. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +49 -58
  35. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.mjs +119 -196
  36. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableAdvanced.mjs +5 -0
  37. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableAdvanced.vue.mjs +115 -0
  38. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.mjs +43 -43
  39. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +224 -257
  40. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1169 -1324
  41. package/dist/es/components/pro-contract-template-designer/src/{SigningPlacementInspector.mjs → SigningLayoutCustomModal.mjs} +2 -2
  42. package/dist/es/components/pro-contract-template-designer/src/SigningLayoutCustomModal.vue.mjs +110 -0
  43. package/dist/es/components/pro-contract-template-designer/src/SigningLayoutPresetPicker.mjs +5 -0
  44. package/dist/es/components/pro-contract-template-designer/src/SigningLayoutPresetPicker.vue.mjs +98 -0
  45. package/dist/es/components/pro-contract-template-designer/src/{SigningPlacementLayer.mjs → SigningLayoutPreview.mjs} +2 -2
  46. package/dist/es/components/pro-contract-template-designer/src/SigningLayoutPreview.vue.mjs +51 -0
  47. package/dist/es/components/pro-contract-template-designer/src/composables/use-designer-files.mjs +1 -2
  48. package/dist/es/components/pro-contract-template-designer/src/composables/use-draft-cache-session.mjs +2 -3
  49. package/dist/es/components/pro-contract-template-designer/src/composables/use-page-authoring.mjs +43 -0
  50. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-authoring.mjs +99 -0
  51. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +128 -168
  52. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-draft-cache.mjs +1 -1
  53. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-files.mjs +7 -11
  54. package/dist/es/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.mjs +30 -19
  55. package/dist/es/components/pro-contract-template-designer/src/constants.mjs +36 -25
  56. package/dist/es/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.mjs +7 -0
  57. package/dist/es/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.vue.mjs +192 -0
  58. package/dist/es/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.vue_vue_type_style_index_0_scoped_a2a8e01a_lang.css +1 -0
  59. package/dist/es/components/pro-contract-template-designer/src/extensions/authoring-search.mjs +43 -0
  60. package/dist/es/components/pro-contract-template-designer/src/extensions/editor-extensions.mjs +138 -91
  61. package/dist/es/components/pro-contract-template-designer/src/extensions/signing-mark.mjs +92 -0
  62. package/dist/es/components/pro-contract-template-designer/src/extensions/word-paste.mjs +62 -34
  63. package/dist/es/components/pro-contract-template-designer/src/utils/authoring-search.mjs +59 -0
  64. package/dist/es/components/pro-contract-template-designer/src/utils/authoring-shortcuts.mjs +14 -0
  65. package/dist/es/components/pro-contract-template-designer/src/utils/clause-snippets.mjs +56 -0
  66. package/dist/es/components/pro-contract-template-designer/src/utils/clipboard.mjs +24 -0
  67. package/dist/es/components/pro-contract-template-designer/src/utils/document-outline.mjs +45 -0
  68. package/dist/es/components/pro-contract-template-designer/src/utils/panel-search.mjs +7 -0
  69. package/dist/es/components/pro-contract-template-designer/src/utils/signing-layout-presets.mjs +235 -0
  70. package/dist/es/components/pro-contract-template-designer/src/utils/signing-mark.mjs +152 -0
  71. package/dist/es/components/pro-contract-template-designer/src/utils/template-tool-icons.mjs +22 -20
  72. package/dist/es/components/pro-contract-template-designer/src/utils/toolbar-overflow.mjs +5 -1
  73. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  74. package/dist/es/components/pro-dynamic-tags/src/index.vue.mjs +74 -48
  75. package/dist/es/components/pro-selector/index.mjs +6 -5
  76. package/dist/es/components/pro-selector/src/ProUserSelector.mjs +5 -0
  77. package/dist/es/components/pro-selector/src/ProUserSelector.vue.mjs +95 -0
  78. package/dist/es/components/pro-selector/src/ProUserSelectorDrilldown.mjs +5 -0
  79. package/dist/es/components/pro-selector/src/ProUserSelectorDrilldown.vue.mjs +20 -0
  80. package/dist/es/components/pro-selector/src/components/user.mjs +38 -52
  81. package/dist/es/components/pro-selector/src/types.mjs +9 -0
  82. package/dist/es/components/pro-selector/style/index.mjs +1 -0
  83. package/dist/es/components/pro-selector-group/index.mjs +1 -1
  84. package/dist/es/components/pro-selector-group/src/index.vue.mjs +71 -142
  85. package/dist/es/components/pro-selector-group/src/style/index.mjs +1 -0
  86. package/dist/es/components/pro-selector-group/src/utils/index.mjs +16 -28
  87. package/dist/es/components/role-selector/index.mjs +2 -2
  88. package/dist/es/components/role-selector/src/RoleSelector.mjs +5 -0
  89. package/dist/es/components/role-selector/src/RoleSelector.vue.mjs +90 -0
  90. package/dist/es/components/role-selector/src/style/index.mjs +1 -0
  91. package/dist/es/components/role-selector/src/types.mjs +4 -0
  92. package/dist/es/components/selector-core/components/DepartmentTree.mjs +5 -0
  93. package/dist/es/components/selector-core/components/DepartmentTree.vue.mjs +141 -0
  94. package/dist/es/components/selector-core/components/EntityRow.mjs +5 -0
  95. package/dist/es/components/selector-core/components/EntityRow.vue.mjs +84 -0
  96. package/dist/es/components/selector-core/components/HighlightText.mjs +5 -0
  97. package/dist/es/components/selector-core/components/HighlightText.vue.mjs +19 -0
  98. package/dist/es/components/selector-core/components/PanelFeedback.mjs +5 -0
  99. package/dist/es/components/selector-core/components/PanelFeedback.vue.mjs +61 -0
  100. package/dist/es/components/selector-core/components/PeoplePane.mjs +5 -0
  101. package/dist/es/components/selector-core/components/PeoplePane.vue.mjs +237 -0
  102. package/dist/es/components/selector-core/components/RolePane.mjs +5 -0
  103. package/dist/es/components/selector-core/components/RolePane.vue.mjs +87 -0
  104. package/dist/es/components/selector-core/components/SelectionSummary.mjs +5 -0
  105. package/dist/es/components/selector-core/components/SelectionSummary.vue.mjs +73 -0
  106. package/dist/es/components/selector-core/components/SelectorDialog.mjs +5 -0
  107. package/dist/es/components/selector-core/components/SelectorDialog.vue.mjs +351 -0
  108. package/dist/es/components/selector-core/model.mjs +114 -0
  109. package/dist/es/components/selector-core/useSelectorData.mjs +87 -0
  110. package/dist/es/index.mjs +82 -80
  111. package/dist/es/node_modules/@tiptap/pm/dist/history/index.mjs +1 -0
  112. package/dist/es/node_modules/orderedmap/dist/index.mjs +67 -0
  113. package/dist/es/node_modules/prosemirror-history/dist/index.mjs +226 -0
  114. package/dist/es/node_modules/prosemirror-model/dist/index.mjs +1128 -0
  115. package/dist/es/node_modules/prosemirror-state/dist/index.mjs +325 -0
  116. package/dist/es/node_modules/prosemirror-transform/dist/index.mjs +1055 -0
  117. package/dist/es/node_modules/rope-sequence/dist/index.mjs +83 -0
  118. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  119. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  120. package/dist/lib/components/contract-signing-location/style/index.css +1 -1
  121. package/dist/lib/components/dept-selector/index.cjs +1 -1
  122. package/dist/lib/components/dept-selector/src/DeptSelector.cjs +1 -0
  123. package/dist/lib/components/dept-selector/src/DeptSelector.vue.cjs +1 -0
  124. package/dist/lib/components/dept-selector/src/style/index.cjs +1 -1
  125. package/dist/lib/components/dept-selector/src/types.cjs +1 -1
  126. package/dist/lib/components/index.cjs +1 -1
  127. package/dist/lib/components/plus-upload/apis/plus-upload.api.cjs +1 -1
  128. package/dist/lib/components/plus-upload/hook/usePlusUpload.cjs +1 -1
  129. package/dist/lib/components/plus-upload/src/plus-upload.vue.cjs +1 -1
  130. package/dist/lib/components/plus-upload/src/types.cjs +1 -1
  131. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  132. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateAuthoringBar.cjs +1 -0
  133. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateAuthoringBar.vue.cjs +1 -0
  134. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateControlLibrary.cjs +1 -0
  135. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateControlLibrary.vue.cjs +1 -0
  136. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +2 -2
  137. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.cjs +1 -1
  138. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.cjs +1 -1
  139. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -1
  140. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFindReplace.cjs +1 -0
  141. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateFindReplace.vue.cjs +1 -0
  142. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.cjs +1 -1
  143. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPageMap.cjs +1 -0
  144. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPageMap.vue.cjs +1 -0
  145. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPresetPicker.cjs +1 -0
  146. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPresetPicker.vue.cjs +1 -0
  147. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.cjs +1 -1
  148. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePanelTabs.cjs +1 -0
  149. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePanelTabs.vue.cjs +1 -0
  150. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.cjs +1 -1
  151. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
  152. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.cjs +1 -1
  153. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableAdvanced.cjs +1 -0
  154. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableAdvanced.vue.cjs +1 -0
  155. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateVariableDataModal.vue.cjs +1 -1
  156. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  157. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  158. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutCustomModal.cjs +1 -0
  159. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutCustomModal.vue.cjs +1 -0
  160. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutPresetPicker.cjs +1 -0
  161. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutPresetPicker.vue.cjs +1 -0
  162. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutPreview.cjs +1 -0
  163. package/dist/lib/components/pro-contract-template-designer/src/SigningLayoutPreview.vue.cjs +1 -0
  164. package/dist/lib/components/pro-contract-template-designer/src/composables/use-designer-files.cjs +1 -1
  165. package/dist/lib/components/pro-contract-template-designer/src/composables/use-draft-cache-session.cjs +1 -1
  166. package/dist/lib/components/pro-contract-template-designer/src/composables/use-page-authoring.cjs +1 -0
  167. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-authoring.cjs +1 -0
  168. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  169. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-draft-cache.cjs +1 -1
  170. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs +1 -1
  171. package/dist/lib/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.cjs +1 -1
  172. package/dist/lib/components/pro-contract-template-designer/src/constants.cjs +1 -1
  173. package/dist/lib/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.cjs +1 -0
  174. package/dist/lib/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.vue.cjs +1 -0
  175. package/dist/lib/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.vue_vue_type_style_index_0_scoped_a2a8e01a_lang.css +1 -0
  176. package/dist/lib/components/pro-contract-template-designer/src/extensions/authoring-search.cjs +1 -0
  177. package/dist/lib/components/pro-contract-template-designer/src/extensions/editor-extensions.cjs +1 -1
  178. package/dist/lib/components/pro-contract-template-designer/src/extensions/signing-mark.cjs +1 -0
  179. package/dist/lib/components/pro-contract-template-designer/src/extensions/word-paste.cjs +1 -1
  180. package/dist/lib/components/pro-contract-template-designer/src/utils/authoring-search.cjs +1 -0
  181. package/dist/lib/components/pro-contract-template-designer/src/utils/authoring-shortcuts.cjs +1 -0
  182. package/dist/lib/components/pro-contract-template-designer/src/utils/clause-snippets.cjs +1 -0
  183. package/dist/lib/components/pro-contract-template-designer/src/utils/clipboard.cjs +1 -0
  184. package/dist/lib/components/pro-contract-template-designer/src/utils/document-outline.cjs +1 -0
  185. package/dist/lib/components/pro-contract-template-designer/src/utils/panel-search.cjs +1 -0
  186. package/dist/lib/components/pro-contract-template-designer/src/utils/signing-layout-presets.cjs +1 -0
  187. package/dist/lib/components/pro-contract-template-designer/src/utils/signing-mark.cjs +1 -0
  188. package/dist/lib/components/pro-contract-template-designer/src/utils/template-tool-icons.cjs +1 -1
  189. package/dist/lib/components/pro-contract-template-designer/src/utils/toolbar-overflow.cjs +1 -1
  190. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  191. package/dist/lib/components/pro-dynamic-tags/src/index.vue.cjs +1 -1
  192. package/dist/lib/components/pro-selector/index.cjs +1 -1
  193. package/dist/lib/components/pro-selector/src/ProUserSelector.cjs +1 -0
  194. package/dist/lib/components/pro-selector/src/ProUserSelector.vue.cjs +1 -0
  195. package/dist/lib/components/pro-selector/src/ProUserSelectorDrilldown.cjs +1 -0
  196. package/dist/lib/components/pro-selector/src/ProUserSelectorDrilldown.vue.cjs +1 -0
  197. package/dist/lib/components/pro-selector/src/components/user.cjs +1 -1
  198. package/dist/lib/components/pro-selector/src/types.cjs +1 -1
  199. package/dist/lib/components/pro-selector/style/index.cjs +1 -1
  200. package/dist/lib/components/pro-selector-group/index.cjs +1 -1
  201. package/dist/lib/components/pro-selector-group/src/index.vue.cjs +1 -1
  202. package/dist/lib/components/pro-selector-group/src/style/index.cjs +1 -1
  203. package/dist/lib/components/pro-selector-group/src/utils/index.cjs +1 -1
  204. package/dist/lib/components/role-selector/index.cjs +1 -1
  205. package/dist/lib/components/role-selector/src/RoleSelector.cjs +1 -0
  206. package/dist/lib/components/role-selector/src/RoleSelector.vue.cjs +1 -0
  207. package/dist/lib/components/role-selector/src/style/index.cjs +1 -1
  208. package/dist/lib/components/role-selector/src/types.cjs +1 -1
  209. package/dist/lib/components/selector-core/components/DepartmentTree.cjs +1 -0
  210. package/dist/lib/components/selector-core/components/DepartmentTree.vue.cjs +1 -0
  211. package/dist/lib/components/selector-core/components/EntityRow.cjs +1 -0
  212. package/dist/lib/components/selector-core/components/EntityRow.vue.cjs +1 -0
  213. package/dist/lib/components/selector-core/components/HighlightText.cjs +1 -0
  214. package/dist/lib/components/selector-core/components/HighlightText.vue.cjs +1 -0
  215. package/dist/lib/components/selector-core/components/PanelFeedback.cjs +1 -0
  216. package/dist/lib/components/selector-core/components/PanelFeedback.vue.cjs +1 -0
  217. package/dist/lib/components/selector-core/components/PeoplePane.cjs +1 -0
  218. package/dist/lib/components/selector-core/components/PeoplePane.vue.cjs +1 -0
  219. package/dist/lib/components/selector-core/components/RolePane.cjs +1 -0
  220. package/dist/lib/components/selector-core/components/RolePane.vue.cjs +1 -0
  221. package/dist/lib/components/selector-core/components/SelectionSummary.cjs +1 -0
  222. package/dist/lib/components/selector-core/components/SelectionSummary.vue.cjs +1 -0
  223. package/dist/lib/components/selector-core/components/SelectorDialog.cjs +1 -0
  224. package/dist/lib/components/selector-core/components/SelectorDialog.vue.cjs +1 -0
  225. package/dist/lib/components/selector-core/model.cjs +1 -0
  226. package/dist/lib/components/selector-core/useSelectorData.cjs +1 -0
  227. package/dist/lib/index.cjs +1 -1
  228. package/dist/lib/node_modules/@tiptap/pm/dist/history/index.cjs +1 -0
  229. package/dist/lib/node_modules/orderedmap/dist/index.cjs +1 -0
  230. package/dist/lib/node_modules/prosemirror-history/dist/index.cjs +1 -0
  231. package/dist/lib/node_modules/prosemirror-model/dist/index.cjs +2 -0
  232. package/dist/lib/node_modules/prosemirror-state/dist/index.cjs +1 -0
  233. package/dist/lib/node_modules/prosemirror-transform/dist/index.cjs +2 -0
  234. package/dist/lib/node_modules/rope-sequence/dist/index.cjs +1 -0
  235. package/dist/theme/contract-signing-location.css +1 -1
  236. package/dist/theme/dept-selector.css +1 -1
  237. package/dist/theme/icon.css +1 -1
  238. package/dist/theme/index.css +1 -1
  239. package/dist/theme/pro-dynamic-tags.css +1 -1
  240. package/dist/theme/pro-modal.css +1 -1
  241. package/dist/theme/pro-selector-group.css +1 -1
  242. package/dist/theme/pro-selector.css +1 -1
  243. package/dist/theme/role-selector.css +1 -1
  244. package/dist/theme/selector-core.css +1 -0
  245. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +3 -3
  246. package/dist/types/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.d.ts +2 -2
  247. package/dist/types/components/dept-selector/index.d.ts +156 -45
  248. package/dist/types/components/dept-selector/src/{dept.d.ts → DeptSelector.vue.d.ts} +38 -15
  249. package/dist/types/components/dept-selector/src/types.d.ts +10 -2
  250. package/dist/types/components/plus-upload/apis/plus-upload.api.d.ts +15 -0
  251. package/dist/types/components/plus-upload/hook/usePlusUpload.d.ts +1 -1
  252. package/dist/types/components/plus-upload/index.d.ts +21 -3
  253. package/dist/types/components/plus-upload/src/plus-upload.vue.d.ts +11 -1
  254. package/dist/types/components/plus-upload/src/types.d.ts +4 -0
  255. package/dist/types/components/pro-contract-template-designer/index.d.ts +2 -1
  256. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateAuthoringBar.vue.d.ts +106 -0
  257. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateControlLibrary.vue.d.ts +18 -0
  258. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +5 -42
  259. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.d.ts +9 -11
  260. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.d.ts +44 -5
  261. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +18 -1
  262. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateFindReplace.vue.d.ts +37 -0
  263. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPageMap.vue.d.ts +29 -0
  264. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsPresetPicker.vue.d.ts +16 -0
  265. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePanelTabs.vue.d.ts +15 -0
  266. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.d.ts +1 -4
  267. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.d.ts +1 -2
  268. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.d.ts +1 -29
  269. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateVariableAdvanced.vue.d.ts +14 -0
  270. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +13 -29
  271. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +260 -121
  272. package/dist/types/components/pro-contract-template-designer/src/SigningLayoutCustomModal.vue.d.ts +15 -0
  273. package/dist/types/components/pro-contract-template-designer/src/SigningLayoutPresetPicker.vue.d.ts +19 -0
  274. package/dist/types/components/pro-contract-template-designer/src/{ContractTemplatePreviewSigningLayer.vue.d.ts → SigningLayoutPreview.vue.d.ts} +2 -3
  275. package/dist/types/components/pro-contract-template-designer/src/composables/use-designer-files.d.ts +1 -4
  276. package/dist/types/components/pro-contract-template-designer/src/composables/use-draft-cache-session.d.ts +1 -5
  277. package/dist/types/components/pro-contract-template-designer/src/composables/use-page-authoring.d.ts +13 -0
  278. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-authoring.d.ts +44 -0
  279. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +4 -20
  280. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-draft-cache.d.ts +1 -1
  281. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-files.d.ts +1 -2
  282. package/dist/types/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.d.ts +1 -1
  283. package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +20 -1
  284. package/dist/types/components/pro-contract-template-designer/src/extensions/SigningMarkNodeView.vue.d.ts +5 -0
  285. package/dist/types/components/pro-contract-template-designer/src/extensions/authoring-search.d.ts +12 -0
  286. package/dist/types/components/pro-contract-template-designer/src/extensions/editor-extensions.d.ts +2 -0
  287. package/dist/types/components/pro-contract-template-designer/src/extensions/signing-mark.d.ts +16 -0
  288. package/dist/types/components/pro-contract-template-designer/src/extensions/word-paste.d.ts +2 -0
  289. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +64 -77
  290. package/dist/types/components/pro-contract-template-designer/src/utils/authoring-search.d.ts +23 -0
  291. package/dist/types/components/pro-contract-template-designer/src/utils/authoring-shortcuts.d.ts +3 -0
  292. package/dist/types/components/pro-contract-template-designer/src/utils/clause-snippets.d.ts +10 -0
  293. package/dist/types/components/pro-contract-template-designer/src/utils/clipboard.d.ts +7 -0
  294. package/dist/types/components/pro-contract-template-designer/src/utils/document-outline.d.ts +20 -0
  295. package/dist/types/components/pro-contract-template-designer/src/utils/panel-search.d.ts +2 -0
  296. package/dist/types/components/pro-contract-template-designer/src/utils/signing-layout-presets.d.ts +49 -0
  297. package/dist/types/components/pro-contract-template-designer/src/utils/signing-mark.d.ts +57 -0
  298. package/dist/types/components/pro-contract-template-designer/src/utils/template-tool-icons.d.ts +4 -4
  299. package/dist/types/components/pro-contract-template-designer/src/utils/toolbar-overflow.d.ts +2 -2
  300. package/dist/types/components/pro-dynamic-tags/src/index.vue.d.ts +1 -0
  301. package/dist/types/components/pro-dynamic-tags/src/types.d.ts +9 -0
  302. package/dist/types/components/pro-menu-tree/index.d.ts +2 -2
  303. package/dist/types/components/pro-menu-tree/src/pro-menu-tree.d.ts +2 -2
  304. package/dist/types/components/pro-selector/index.d.ts +851 -13
  305. package/dist/types/components/pro-selector/src/{pro-user.d.ts → ProUserSelector.vue.d.ts} +50 -12
  306. package/dist/types/components/pro-selector/src/ProUserSelectorDrilldown.vue.d.ts +447 -0
  307. package/dist/types/components/pro-selector/src/components/user.d.ts +2 -2
  308. package/dist/types/components/pro-selector/src/types.d.ts +16 -0
  309. package/dist/types/components/pro-selector-group/index.d.ts +63 -13
  310. package/dist/types/components/pro-selector-group/src/index.vue.d.ts +21 -4
  311. package/dist/types/components/pro-selector-group/src/types.d.ts +6 -0
  312. package/dist/types/components/pro-selector-group/src/utils/index.d.ts +4 -2
  313. package/dist/types/components/role-selector/index.d.ts +276 -86
  314. package/dist/types/components/role-selector/src/{role.d.ts → RoleSelector.vue.d.ts} +37 -13
  315. package/dist/types/components/role-selector/src/types.d.ts +10 -2
  316. package/dist/types/components/selector-core/components/DepartmentTree.vue.d.ts +22 -0
  317. package/dist/types/components/selector-core/components/EntityRow.vue.d.ts +21 -0
  318. package/dist/types/components/selector-core/components/HighlightText.vue.d.ts +6 -0
  319. package/dist/types/components/selector-core/components/PanelFeedback.vue.d.ts +28 -0
  320. package/dist/types/components/selector-core/components/PeoplePane.vue.d.ts +31 -0
  321. package/dist/types/components/selector-core/components/RolePane.vue.d.ts +19 -0
  322. package/dist/types/components/selector-core/components/SelectionSummary.vue.d.ts +14 -0
  323. package/dist/types/components/selector-core/components/SelectorDialog.vue.d.ts +48 -0
  324. package/dist/types/components/selector-core/model.d.ts +75 -0
  325. package/dist/types/components/selector-core/useSelectorData.d.ts +104 -0
  326. package/global.d.ts +4 -0
  327. package/package.json +5 -3
  328. package/dist/es/components/dept-selector/src/dept.mjs +0 -294
  329. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.vue.mjs +0 -42
  330. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.mjs +0 -141
  331. package/dist/es/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.mjs +0 -151
  332. package/dist/es/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.mjs +0 -79
  333. package/dist/es/components/pro-contract-template-designer/src/utils/signing-placement.mjs +0 -293
  334. package/dist/es/components/pro-selector/src/components/org-tree.mjs +0 -223
  335. package/dist/es/components/pro-selector/src/pro-user.mjs +0 -167
  336. package/dist/es/components/pro-selector/src/utils/orgTree.mjs +0 -50
  337. package/dist/es/components/pro-selector-group/src/compoents/dept-tree.mjs +0 -5
  338. package/dist/es/components/pro-selector-group/src/compoents/dept-tree.vue.mjs +0 -127
  339. package/dist/es/components/pro-selector-group/src/compoents/dept.mjs +0 -5
  340. package/dist/es/components/pro-selector-group/src/compoents/dept.vue.mjs +0 -52
  341. package/dist/es/components/pro-selector-group/src/compoents/index.mjs +0 -3
  342. package/dist/es/components/pro-selector-group/src/compoents/role.mjs +0 -5
  343. package/dist/es/components/pro-selector-group/src/compoents/role.vue.mjs +0 -120
  344. package/dist/es/components/pro-selector-group/src/compoents/select-box.mjs +0 -5
  345. package/dist/es/components/pro-selector-group/src/compoents/select-box.vue.mjs +0 -59
  346. package/dist/es/components/pro-selector-group/src/compoents/user.mjs +0 -5
  347. package/dist/es/components/pro-selector-group/src/compoents/user.vue.mjs +0 -154
  348. package/dist/es/components/pro-selector-group/src/hooks/useApi.mjs +0 -76
  349. package/dist/es/components/role-selector/src/role.mjs +0 -217
  350. package/dist/lib/components/dept-selector/src/dept.cjs +0 -1
  351. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.cjs +0 -1
  352. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewSigningLayer.vue.cjs +0 -1
  353. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementInspector.cjs +0 -1
  354. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.cjs +0 -1
  355. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.cjs +0 -1
  356. package/dist/lib/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.cjs +0 -1
  357. package/dist/lib/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.cjs +0 -1
  358. package/dist/lib/components/pro-contract-template-designer/src/utils/signing-placement.cjs +0 -1
  359. package/dist/lib/components/pro-selector/src/components/org-tree.cjs +0 -1
  360. package/dist/lib/components/pro-selector/src/pro-user.cjs +0 -1
  361. package/dist/lib/components/pro-selector/src/utils/orgTree.cjs +0 -1
  362. package/dist/lib/components/pro-selector-group/src/compoents/dept-tree.cjs +0 -1
  363. package/dist/lib/components/pro-selector-group/src/compoents/dept-tree.vue.cjs +0 -1
  364. package/dist/lib/components/pro-selector-group/src/compoents/dept.cjs +0 -1
  365. package/dist/lib/components/pro-selector-group/src/compoents/dept.vue.cjs +0 -1
  366. package/dist/lib/components/pro-selector-group/src/compoents/index.cjs +0 -1
  367. package/dist/lib/components/pro-selector-group/src/compoents/role.cjs +0 -1
  368. package/dist/lib/components/pro-selector-group/src/compoents/role.vue.cjs +0 -1
  369. package/dist/lib/components/pro-selector-group/src/compoents/select-box.cjs +0 -1
  370. package/dist/lib/components/pro-selector-group/src/compoents/select-box.vue.cjs +0 -1
  371. package/dist/lib/components/pro-selector-group/src/compoents/user.cjs +0 -1
  372. package/dist/lib/components/pro-selector-group/src/compoents/user.vue.cjs +0 -1
  373. package/dist/lib/components/pro-selector-group/src/hooks/useApi.cjs +0 -1
  374. package/dist/lib/components/role-selector/src/role.cjs +0 -1
  375. package/dist/types/components/pro-contract-template-designer/src/SigningPlacementInspector.vue.d.ts +0 -17
  376. package/dist/types/components/pro-contract-template-designer/src/SigningPlacementLayer.vue.d.ts +0 -19
  377. package/dist/types/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.d.ts +0 -49
  378. package/dist/types/components/pro-contract-template-designer/src/utils/signing-placement.d.ts +0 -105
  379. package/dist/types/components/pro-selector/src/components/org-tree.d.ts +0 -45
  380. package/dist/types/components/pro-selector/src/util.d.ts +0 -26
  381. package/dist/types/components/pro-selector-group/src/compoents/dept-tree.vue.d.ts +0 -12
  382. package/dist/types/components/pro-selector-group/src/compoents/dept.vue.d.ts +0 -11
  383. package/dist/types/components/pro-selector-group/src/compoents/index.d.ts +0 -3
  384. package/dist/types/components/pro-selector-group/src/compoents/role.vue.d.ts +0 -11
  385. package/dist/types/components/pro-selector-group/src/compoents/select-box.vue.d.ts +0 -15
  386. package/dist/types/components/pro-selector-group/src/compoents/user.vue.d.ts +0 -12
  387. package/dist/types/components/pro-selector-group/src/hooks/useApi.d.ts +0 -112
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractPrintIframe.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./composables/use-template-designer.cjs`),r=require(`./ContractTemplatePreviewSigningLayer.cjs`);let i=require(`vue`);var a={class:`gd-contract-template-designer__preview-page-shell`},o=[`data-page-id`,`data-page-format`,`data-page-label`,`data-page-width`,`data-page-height`],s={key:0,class:`gd-contract-template-designer__preview-font-error`,role:`alert`},c=(0,i.defineComponent)({name:`ContractTemplatePreviewPage`,__name:`ContractTemplatePreviewPage`,props:{page:{},fallbackPageSize:{},contentHtml:{},signingPlacements:{},pageDecorations:{},pageNumber:{},totalPages:{},variables:{},fontBaseUrl:{}},setup(c){let l=c,u=(0,i.computed)(()=>n.resolvePageSize(l.page.pageSize,l.fallbackPageSize)),d=(0,i.computed)(()=>{let e=t.normalizePageDecorations(l.pageDecorations);return{top:t.hasEnabledPageHeader(e,l.pageNumber)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,bottom:t.hasEnabledPageFooter(e,l.pageNumber)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom}}),f=(0,i.computed)(()=>({width:`${u.value.width}px`,height:`${u.value.height}px`})),p=(0,i.computed)(()=>t.buildPageDecorationClassNames(l.pageDecorations,l.pageNumber)),m=(0,i.computed)(()=>t.buildPageDecorationsHtml(l.pageDecorations,l.pageNumber,l.totalPages,l.variables)),h=(0,i.shallowRef)(``);function g(e,t){h.value=e===`error`?t||`合同排版度量校验失败`:``}return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`article`,a,[(0,i.createElementVNode)(`section`,{class:`gd-contract-template-designer__preview-page`,"data-page-id":c.page.id,"data-page-format":u.value.format??`Custom`,"data-page-label":u.value.label??u.value.format??`自定义`,"data-page-width":u.value.width,"data-page-height":u.value.height,style:(0,i.normalizeStyle)(f.value)},[(0,i.createVNode)(e.default,{"page-id":c.page.id,"page-format":u.value.format,width:u.value.width,height:u.value.height,"padding-top":d.value.top,"padding-bottom":d.value.bottom,"class-names":p.value,"decorations-html":m.value,"content-html":c.contentHtml,"font-base-url":c.fontBaseUrl,title:`第 ${c.pageNumber} 页合同预览`,onStatus:g},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),(0,i.createVNode)(r.default,{"page-size":u.value,placements:c.signingPlacements},null,8,[`page-size`,`placements`]),h.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,s,(0,i.toDisplayString)(h.value),1)):(0,i.createCommentVNode)(``,!0)],12,o)]))}});exports.default=c;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractPrintIframe.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./composables/use-template-designer.cjs`);let r=require(`vue`);var i={class:`gd-contract-template-designer__preview-page-shell`},a=[`data-page-id`,`data-page-format`,`data-page-label`,`data-page-width`,`data-page-height`],o={key:0,class:`gd-contract-template-designer__preview-font-error`,role:`alert`},s=(0,r.defineComponent)({name:`ContractTemplatePreviewPage`,__name:`ContractTemplatePreviewPage`,props:{page:{},fallbackPageSize:{},contentHtml:{},pageDecorations:{},pageNumber:{},totalPages:{},variables:{},fontBaseUrl:{}},setup(s){let c=s,l=(0,r.computed)(()=>n.resolvePageSize(c.page.pageSize,c.fallbackPageSize)),u=(0,r.computed)(()=>{let e=t.normalizePageDecorations(c.pageDecorations);return{top:t.hasEnabledPageHeader(e,c.pageNumber)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,bottom:t.hasEnabledPageFooter(e,c.pageNumber)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom}}),d=(0,r.computed)(()=>({width:`${l.value.width}px`,height:`${l.value.height}px`})),f=(0,r.computed)(()=>t.buildPageDecorationClassNames(c.pageDecorations,c.pageNumber)),p=(0,r.computed)(()=>t.buildPageDecorationsHtml(c.pageDecorations,c.pageNumber,c.totalPages,c.variables)),m=(0,r.shallowRef)(``);function h(e,t){m.value=e===`error`?t||`合同排版度量校验失败`:``}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`article`,i,[(0,r.createElementVNode)(`section`,{class:`gd-contract-template-designer__preview-page`,"data-page-id":s.page.id,"data-page-format":l.value.format??`Custom`,"data-page-label":l.value.label??l.value.format??`自定义`,"data-page-width":l.value.width,"data-page-height":l.value.height,style:(0,r.normalizeStyle)(d.value)},[(0,r.createVNode)(e.default,{"page-id":s.page.id,"page-format":l.value.format,width:l.value.width,height:l.value.height,"padding-top":u.value.top,"padding-bottom":u.value.bottom,"class-names":f.value,"decorations-html":p.value,"content-html":s.contentHtml,"font-base-url":s.fontBaseUrl,title:`第 ${s.pageNumber} 页合同预览`,onStatus:h},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),m.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,o,(0,r.toDisplayString)(m.value),1)):(0,r.createCommentVNode)(``,!0)],12,a)]))}});exports.default=s;
@@ -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__text-menu-row`,role:`group`,"aria-label":`编辑历史与剪贴板`},i={key:0,class:`gd-contract-template-designer__text-menu-quick-insert`,role:`group`,"aria-label":`光标处插入`},a={class:`gd-contract-template-designer__text-menu-row gd-contract-template-designer__text-menu-row--controls`,role:`group`,"aria-label":`文字样式`},o=[`value`],s=[`aria-label`],c={class:`gd-contract-template-designer__text-menu-control-head`},l={class:`gd-contract-template-designer__text-menu-control-options`},u=[`aria-label`,`onClick`],d=[`disabled`],f={class:`gd-contract-template-designer__text-menu-bind-list`,role:`listbox`,"aria-label":`已有正文控件`},p=[`onClick`],m={class:`gd-contract-template-designer__text-menu-bind-item-label`},h={class:`gd-contract-template-designer__text-menu-bind-item-meta`},g={key:0,class:`gd-contract-template-designer__text-menu-bind-empty`},_={class:`gd-contract-template-designer__text-menu-row`,role:`group`,"aria-label":`常用格式与列表`},v={class:`gd-contract-template-designer__text-menu-row gd-contract-template-designer__text-menu-row--cleanup`,role:`group`,"aria-label":`清理格式`},y=(0,e.defineComponent)({name:`ContractTemplateTextContextMenu`,__name:`ContractTemplateTextContextMenu`,props:(0,e.mergeModels)({x:{},y:{},hasSelection:{type:Boolean},editorState:{},fontSizePresetOptions:{},currentEditorFontSize:{},editorFontSizeSearchValue:{},textAlignOptions:{},currentEditorTextColor:{},bodyControlToolItems:{},textMenuBindableVariables:{},pageLimitReached:{type:Boolean},tableInsertDraft:{},variablesCount:{},resolveBindVariableTypeLabel:{type:Function}},{bindOpen:{type:Boolean,default:!1},bindOpenModifiers:{},bindKeyword:{default:``},bindKeywordModifiers:{}}),emits:(0,e.mergeModels)([`command`,`clipboard`,`open-image`,`add-page`,`insert-variable`,`bind-variable`,`open-bind-panel`,`keydown`,`patch-font-size`,`patch-text-align`,`patch-color`,`font-size-search`,`font-size-commit`,`font-size-dropdown-change`,`font-size-keydown`],[`update:bindOpen`,`update:bindKeyword`]),setup(y,{expose:b,emit:x}){let S=(0,e.useModel)(y,`bindOpen`),C=(0,e.useModel)(y,`bindKeyword`),w=x,T=(0,e.ref)();return b({getMenuElement:()=>T.value,focusBindSearch:()=>{T.value?.querySelector(`.gd-contract-template-designer__text-menu-bind-search input`)?.focus()},focusFirstButton:()=>{T.value?.querySelector(`button:not(:disabled)`)?.focus()}}),(b,x)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`menuElement`,ref:T,class:`gd-contract-template-designer__context-menu gd-contract-template-designer__text-context-menu`,style:(0,e.normalizeStyle)({left:`${y.x}px`,top:`${y.y}px`}),role:`toolbar`,"aria-label":`正文快捷操作`,onKeydown:x[26]||=e=>w(`keydown`,e)},[(0,e.createElementVNode)(`div`,r,[(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__text-menu-icon-button`,disabled:!y.editorState.canUndo,"aria-label":`撤销`,onClick:x[0]||=e=>w(`command`,{type:`undo`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_: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__text-menu-icon-button`,disabled:!y.editorState.canRedo,"aria-label":`重做`,onClick:x[1]||=e=>w(`command`,{type:`redo`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),x[27]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-1),y.hasSelection?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:0,title:`复制`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`复制`,onClick:x[2]||=e=>w(`clipboard`,`copy`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,e.createCommentVNode)(``,!0),y.hasSelection?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:1,title:`剪切`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`剪切`,onClick:x[3]||=e=>w(`clipboard`,`cut`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ScissorOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,e.createCommentVNode)(``,!0),(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__text-menu-icon-button`,"aria-label":`粘贴`,onClick:x[4]||=e=>w(`clipboard`,`paste`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})]),y.hasSelection?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,onClick:x[5]||=e=>w(`open-image`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.PictureOutlined),{"aria-hidden":`true`}),x[28]||=(0,e.createElementVNode)(`span`,null,`图片`,-1)]),_:1}),(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,onClick:x[6]||=e=>w(`command`,{type:`insert-table`,options:y.tableInsertDraft})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.TableOutlined),{"aria-hidden":`true`}),x[29]||=(0,e.createElementVNode)(`span`,null,`表格`,-1)]),_:1}),(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,onClick:x[7]||=e=>w(`command`,{type:`insert-horizontal-rule`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.MinusOutlined),{"aria-hidden":`true`}),x[30]||=(0,e.createElementVNode)(`span`,null,`分隔线`,-1)]),_:1}),(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,disabled:y.pageLimitReached,onClick:x[8]||=e=>w(`add-page`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.FileAddOutlined),{"aria-hidden":`true`}),x[31]||=(0,e.createElementVNode)(`span`,null,`新页面`,-1)]),_:1},8,[`disabled`]),(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,onClick:x[9]||=e=>w(`command`,{type:`select-all`})},{default:(0,e.withCtx)(()=>[...x[32]||=[(0,e.createElementVNode)(`span`,null,`全选正文`,-1)]]),_:1})])),(0,e.createElementVNode)(`div`,a,[(0,e.createVNode)((0,e.unref)(t.Select),{class:`gd-contract-template-designer__context-menu-field gd-contract-template-designer__text-menu-font-size`,value:y.currentEditorFontSize,options:y.fontSizePresetOptions,"show-search":``,"filter-option":!1,"search-value":y.editorFontSizeSearchValue,onBlur:x[10]||=e=>w(`font-size-commit`),onChange:x[11]||=e=>w(`patch-font-size`,e),onDropdownVisibleChange:x[12]||=e=>w(`font-size-dropdown-change`,e),onInputKeyDown:x[13]||=e=>w(`font-size-keydown`,e),onSearch:x[14]||=e=>w(`font-size-search`,e)},null,8,[`value`,`options`,`search-value`]),(0,e.createVNode)((0,e.unref)(t.Select),{class:`gd-contract-template-designer__context-menu-field gd-contract-template-designer__text-menu-alignment`,value:y.editorState.textAlign,options:y.textAlignOptions,onChange:x[15]||=e=>w(`patch-text-align`,e)},null,8,[`value`,`options`]),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`文字颜色`},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`input`,{class:`gd-contract-template-designer__context-menu-color`,type:`color`,"aria-label":`文字颜色`,value:y.currentEditorTextColor,onInput:x[16]||=e=>w(`patch-color`,e.target.value)},null,40,o)]),_:1})]),(0,e.createElementVNode)(`div`,{class:`gd-contract-template-designer__text-menu-control-group`,role:`group`,"aria-label":y.hasSelection?`转换为正文控件`:`插入正文控件`},[(0,e.createElementVNode)(`div`,c,[(0,e.createElementVNode)(`strong`,null,(0,e.toDisplayString)(y.hasSelection?`转换为正文控件`:`插入正文控件`),1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(y.hasSelection?`替换选中内容`:`在光标处插入`),1)]),(0,e.createElementVNode)(`div`,l,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.bodyControlToolItems,n=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:n.type,title:y.hasSelection?`转换为${n.label}控件`:`插入${n.label}控件`},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":y.hasSelection?`转换为${n.label}控件`:`插入${n.label}控件`,onClick:e=>w(`insert-variable`,n.type)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon),{"aria-hidden":`true`})),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.label),1)],8,u)]),_:2},1032,[`title`]))),128))]),S.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createVNode)((0,e.unref)(t.Input),{value:C.value,"onUpdate:value":x[18]||=e=>C.value=e,class:`gd-contract-template-designer__text-menu-bind-search`,size:`small`,"allow-clear":``,placeholder:`搜索已有控件`,"aria-label":`搜索已有控件`},null,8,[`value`]),(0,e.createElementVNode)(`div`,f,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.textMenuBindableVariables,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:t.id,type:`button`,class:`gd-contract-template-designer__text-menu-bind-item`,role:`option`,onClick:e=>w(`bind-variable`,t)},[(0,e.createElementVNode)(`span`,m,(0,e.toDisplayString)(t.label),1),(0,e.createElementVNode)(`span`,h,(0,e.toDisplayString)(y.resolveBindVariableTypeLabel(t))+` · `+(0,e.toDisplayString)(t.key),1)],8,p))),128)),y.textMenuBindableVariables.length?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`p`,g,` 暂无已有控件 `))])],64)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,class:`gd-contract-template-designer__text-menu-bind-toggle`,disabled:!y.variablesCount,"aria-expanded":!1,"aria-label":`绑定已有控件`,onClick:x[17]||=e=>w(`open-bind-panel`)},[x[33]||=(0,e.createElementVNode)(`span`,null,`绑定已有`,-1),(0,e.createVNode)((0,e.unref)(n.DownOutlined),{"aria-hidden":`true`})],8,d))],8,s),(0,e.createElementVNode)(`div`,_,[(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`加粗`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":y.editorState.isBold}]),"aria-pressed":y.editorState.isBold,"aria-label":`加粗`,onClick:x[19]||=e=>w(`command`,{type:`toggle-bold`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":y.editorState.isItalic}]),"aria-pressed":y.editorState.isItalic,"aria-label":`斜体`,onClick:x[20]||=e=>w(`command`,{type:`toggle-italic`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":y.editorState.isUnderline}]),"aria-pressed":y.editorState.isUnderline,"aria-label":`下划线`,onClick:x[21]||=e=>w(`command`,{type:`toggle-underline`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),x[34]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":y.editorState.isOrderedList}]),"aria-pressed":y.editorState.isOrderedList,"aria-label":`有序列表`,onClick:x[22]||=e=>w(`command`,{type:`toggle-ordered-list`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":y.editorState.isBulletList}]),"aria-pressed":y.editorState.isBulletList,"aria-label":`无序列表`,onClick:x[23]||=e=>w(`command`,{type:`toggle-bullet-list`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1})]),(0,e.createElementVNode)(`div`,v,[(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__text-menu-clear-action`,"aria-label":`清除文字格式`,onClick:x[24]||=e=>w(`command`,{type:`clear-text-format`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ClearOutlined),{"aria-hidden":`true`}),x[35]||=(0,e.createElementVNode)(`span`,null,`清文字`,-1)]),_:1})]),_: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__text-menu-clear-action`,"aria-label":`清除段落格式`,onClick:x[25]||=e=>w(`command`,{type:`clear-block-format`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.FormatPainterOutlined),{"aria-hidden":`true`}),x[36]||=(0,e.createElementVNode)(`span`,null,`清段落`,-1)]),_:1})]),_:1})])],36))}});exports.default=y;
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__text-menu-row`,role:`group`,"aria-label":`编辑历史与剪贴板`},i={key:0,class:`gd-contract-template-designer__text-menu-quick-insert`,role:`group`,"aria-label":`光标操作`},a=[`aria-label`],o={class:`gd-contract-template-designer__text-menu-control-head`},s={class:`gd-contract-template-designer__text-menu-control-options`},c=[`aria-label`,`onClick`],l=[`disabled`],u={class:`gd-contract-template-designer__text-menu-bind-list`,role:`listbox`,"aria-label":`已有正文控件`},d=[`onClick`],f={class:`gd-contract-template-designer__text-menu-bind-item-label`},p={class:`gd-contract-template-designer__text-menu-bind-item-meta`},m={key:0,class:`gd-contract-template-designer__text-menu-bind-empty`},h={class:`gd-contract-template-designer__text-menu-row`,role:`group`,"aria-label":`常用格式与列表`},g=[`value`],_={class:`gd-contract-template-designer__text-menu-row gd-contract-template-designer__text-menu-row--cleanup`,role:`group`,"aria-label":`清理格式`},v=(0,e.defineComponent)({name:`ContractTemplateTextContextMenu`,__name:`ContractTemplateTextContextMenu`,props:(0,e.mergeModels)({x:{},y:{},hasSelection:{type:Boolean},editorState:{},currentEditorTextColor:{},bodyControlToolItems:{},textMenuBindableVariables:{},variablesCount:{},resolveBindVariableTypeLabel:{type:Function}},{bindOpen:{type:Boolean,default:!1},bindOpenModifiers:{},bindKeyword:{default:``},bindKeywordModifiers:{}}),emits:(0,e.mergeModels)([`command`,`clipboard`,`insert-variable`,`bind-variable`,`open-bind-panel`,`keydown`,`patch-color`],[`update:bindOpen`,`update:bindKeyword`]),setup(v,{expose:y,emit:b}){let x=(0,e.useModel)(v,`bindOpen`),S=(0,e.useModel)(v,`bindKeyword`),C=b,w=(0,e.ref)();return y({getMenuElement:()=>w.value,focusBindSearch:()=>{w.value?.querySelector(`.gd-contract-template-designer__text-menu-bind-search input`)?.focus()},focusFirstButton:()=>{w.value?.querySelector(`button:not(:disabled)`)?.focus()}}),(y,b)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`menuElement`,ref:w,class:`gd-contract-template-designer__context-menu gd-contract-template-designer__text-context-menu`,style:(0,e.normalizeStyle)({left:`${v.x}px`,top:`${v.y}px`}),role:`toolbar`,"aria-label":`正文快捷操作`,onKeydown:b[16]||=e=>C(`keydown`,e)},[(0,e.createElementVNode)(`div`,r,[(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__text-menu-icon-button`,disabled:!v.editorState.canUndo,"aria-label":`撤销`,onClick:b[0]||=e=>C(`command`,{type:`undo`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_: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__text-menu-icon-button`,disabled:!v.editorState.canRedo,"aria-label":`重做`,onClick:b[1]||=e=>C(`command`,{type:`redo`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),b[17]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-1),v.hasSelection?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:0,title:`复制`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`复制`,onClick:b[2]||=e=>C(`clipboard`,`copy`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,e.createCommentVNode)(``,!0),v.hasSelection?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:1,title:`剪切`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`剪切`,onClick:b[3]||=e=>C(`clipboard`,`cut`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ScissorOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,e.createCommentVNode)(``,!0),(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__text-menu-icon-button`,"aria-label":`粘贴`,onClick:b[4]||=e=>C(`clipboard`,`paste`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})]),v.hasSelection?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,onClick:b[5]||=e=>C(`command`,{type:`select-all`})},{default:(0,e.withCtx)(()=>[...b[18]||=[(0,e.createTextVNode)(`全选正文`,-1)]]),_:1}),b[19]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__authoring-note`},`插入与完整排版请使用顶栏`,-1)])),(0,e.createElementVNode)(`div`,{class:`gd-contract-template-designer__text-menu-control-group`,role:`group`,"aria-label":v.hasSelection?`转换为正文控件`:`插入正文控件`},[(0,e.createElementVNode)(`div`,o,[(0,e.createElementVNode)(`strong`,null,(0,e.toDisplayString)(v.hasSelection?`转换为正文控件`:`插入正文控件`),1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(v.hasSelection?`替换选中内容`:`在光标处插入`),1)]),(0,e.createElementVNode)(`div`,s,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(v.bodyControlToolItems,n=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:n.type,title:v.hasSelection?`转换为${n.label}控件`:`插入${n.label}控件`},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":v.hasSelection?`转换为${n.label}控件`:`插入${n.label}控件`,onClick:e=>C(`insert-variable`,n.type)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon),{"aria-hidden":`true`})),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(n.label),1)],8,c)]),_:2},1032,[`title`]))),128))]),x.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createVNode)((0,e.unref)(t.Input),{value:S.value,"onUpdate:value":b[7]||=e=>S.value=e,class:`gd-contract-template-designer__text-menu-bind-search`,size:`small`,"allow-clear":``,placeholder:`搜索已有控件`,"aria-label":`搜索已有控件`},null,8,[`value`]),(0,e.createElementVNode)(`div`,u,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(v.textMenuBindableVariables,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:t.id,type:`button`,class:`gd-contract-template-designer__text-menu-bind-item`,role:`option`,onClick:e=>C(`bind-variable`,t)},[(0,e.createElementVNode)(`span`,f,(0,e.toDisplayString)(t.label),1),(0,e.createElementVNode)(`span`,p,(0,e.toDisplayString)(v.resolveBindVariableTypeLabel(t))+` · `+(0,e.toDisplayString)(t.key),1)],8,d))),128)),v.textMenuBindableVariables.length?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`p`,m,` 暂无已有控件 `))])],64)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,class:`gd-contract-template-designer__text-menu-bind-toggle`,disabled:!v.variablesCount,"aria-expanded":!1,"aria-label":`绑定已有控件`,onClick:b[6]||=e=>C(`open-bind-panel`)},[b[20]||=(0,e.createElementVNode)(`span`,null,`绑定已有`,-1),(0,e.createVNode)((0,e.unref)(n.DownOutlined),{"aria-hidden":`true`})],8,l))],8,a),(0,e.createElementVNode)(`div`,h,[(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`文字颜色`},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`input`,{class:`gd-contract-template-designer__context-menu-color`,type:`color`,"aria-label":`文字颜色`,value:v.currentEditorTextColor,onInput:b[8]||=e=>C(`patch-color`,e.target.value)},null,40,g)]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":v.editorState.isBold}]),"aria-pressed":v.editorState.isBold,"aria-label":`加粗`,onClick:b[9]||=e=>C(`command`,{type:`toggle-bold`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":v.editorState.isItalic}]),"aria-pressed":v.editorState.isItalic,"aria-label":`斜体`,onClick:b[10]||=e=>C(`command`,{type:`toggle-italic`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":v.editorState.isUnderline}]),"aria-pressed":v.editorState.isUnderline,"aria-label":`下划线`,onClick:b[11]||=e=>C(`command`,{type:`toggle-underline`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),b[21]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":v.editorState.isOrderedList}]),"aria-pressed":v.editorState.isOrderedList,"aria-label":`有序列表`,onClick:b[12]||=e=>C(`command`,{type:`toggle-ordered-list`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_: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:(0,e.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":v.editorState.isBulletList}]),"aria-pressed":v.editorState.isBulletList,"aria-label":`无序列表`,onClick:b[13]||=e=>C(`command`,{type:`toggle-bullet-list`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1})]),(0,e.createElementVNode)(`div`,_,[(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__text-menu-clear-action`,"aria-label":`清除文字格式`,onClick:b[14]||=e=>C(`command`,{type:`clear-text-format`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ClearOutlined),{"aria-hidden":`true`}),b[22]||=(0,e.createElementVNode)(`span`,null,`清文字`,-1)]),_:1})]),_: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__text-menu-clear-action`,"aria-label":`清除段落格式`,onClick:b[15]||=e=>C(`command`,{type:`clear-block-format`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.FormatPainterOutlined),{"aria-hidden":`true`}),b[23]||=(0,e.createElementVNode)(`span`,null,`清段落`,-1)]),_:1})]),_:1})])],36))}});exports.default=v;
@@ -0,0 +1 @@
1
+ var e=require(`./ContractTemplateVariableAdvanced.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./composables/use-template-designer.cjs`);let t=require(`vue`),n=require(`ant-design-vue`),r=require(`@ant-design/icons-vue`);var i={open:``,class:`gd-contract-authoring-panel__property-group gd-contract-authoring-panel__advanced`},a={class:`gd-contract-authoring-panel__group-title`},o={class:`gd-contract-authoring-panel__fields`},s={class:`gd-contract-authoring-panel__field`},c=[`id`],l=[`id`],u={class:`gd-contract-authoring-panel__field`},d={class:`gd-contract-authoring-panel__field`},f=[`id`],p=(0,t.defineComponent)({name:`ContractTemplateVariableAdvanced`,__name:`ContractTemplateVariableAdvanced`,props:{variable:{},variables:{},readonly:{type:Boolean}},emits:[`renameVariable`,`patchVariable`],setup(p,{emit:m}){let h=p,g=m,_=`gd-contract-variable-advanced-${(0,t.useId)()}`,v=(0,t.shallowRef)(``),y=(0,t.shallowRef)(!1),b=(0,t.shallowRef)(`{}`),x=(0,t.shallowRef)(``),S=(0,t.computed)(()=>y.value?e.validateContractTemplateVariableKey(v.value,h.variables,h.variable.id):``);(0,t.watch)([()=>h.variable.id,()=>h.variable.key],([,e])=>{v.value=e,y.value=!1},{immediate:!0}),(0,t.watch)([()=>h.variable.id,()=>h.variable.componentConfig],([,e])=>{b.value=JSON.stringify(e??{},null,2),x.value=``},{immediate:!0,deep:!0});function C(e){v.value=e.target.value,y.value=!0}function w(){if(h.readonly||(y.value=!0,S.value))return;let e=v.value.trim();e!==h.variable.key&&g(`renameVariable`,e),y.value=!1}function T(){if(!h.readonly)try{let e=JSON.parse(b.value);if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(`配置必须是 JSON 对象`);x.value=``,g(`patchVariable`,{componentConfig:e})}catch(e){x.value=e instanceof Error?e.message:`JSON 配置无效`}}function E(e){h.readonly||g(`patchVariable`,{componentKey:e.target.value})}return(e,p)=>((0,t.openBlock)(),(0,t.createElementBlock)(`details`,i,[(0,t.createElementVNode)(`summary`,a,[(0,t.createVNode)((0,t.unref)(r.RightOutlined),{class:`gd-contract-authoring-panel__chevron`,"aria-hidden":`true`}),p[1]||=(0,t.createElementVNode)(`span`,null,`变量标识与高级配置`,-1)]),(0,t.createElementVNode)(`div`,o,[(0,t.createElementVNode)(`label`,s,[p[2]||=(0,t.createElementVNode)(`span`,null,`变量标识(需唯一)`,-1),(0,t.createVNode)((0,t.unref)(n.Input),{value:v.value,disabled:h.readonly,status:S.value?`error`:void 0,"aria-invalid":!!S.value,"aria-describedby":S.value?`${_}-key-error`:`${_}-key-help`,"aria-label":`变量标识`,onInput:C,onBlur:w,onKeydown:(0,t.withKeys)((0,t.withModifiers)(w,[`prevent`]),[`enter`])},null,8,[`value`,`disabled`,`status`,`aria-invalid`,`aria-describedby`,`onKeydown`])]),S.value?((0,t.openBlock)(),(0,t.createElementBlock)(`small`,{key:0,id:`${_}-key-error`,class:`gd-contract-authoring-panel__error`,role:`alert`},(0,t.toDisplayString)(S.value),9,c)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`small`,{id:`${_}-key-help`,class:`gd-contract-authoring-panel__meta`},`用于数据绑定;保存前会校验格式、系统保留字和当前文件内重复标识。`,8,l),h.variable.type===`custom`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`label`,u,[p[3]||=(0,t.createElementVNode)(`span`,null,`组件 Key`,-1),(0,t.createVNode)((0,t.unref)(n.Input),{value:h.variable.componentKey,disabled:h.readonly,"aria-label":`组件 Key`,onChange:E},null,8,[`value`,`disabled`])]),(0,t.createElementVNode)(`label`,d,[p[4]||=(0,t.createElementVNode)(`span`,null,`组件配置 JSON`,-1),(0,t.createVNode)((0,t.unref)(n.Input).TextArea,{value:b.value,"onUpdate:value":p[0]||=e=>b.value=e,rows:5,disabled:h.readonly,status:x.value?`error`:void 0,"aria-invalid":!!x.value,"aria-describedby":x.value?`${_}-config-error`:void 0,"aria-label":`组件配置 JSON`,onBlur:T},null,8,[`value`,`disabled`,`status`,`aria-invalid`,`aria-describedby`])]),x.value?((0,t.openBlock)(),(0,t.createElementBlock)(`small`,{key:0,id:`${_}-config-error`,class:`gd-contract-authoring-panel__error`,role:`alert`},(0,t.toDisplayString)(x.value),9,f)):(0,t.createCommentVNode)(``,!0)],64)):(0,t.createCommentVNode)(``,!0)])]))}});exports.default=p;
@@ -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(`./composables/use-template-designer.cjs`),r=require(`./composables/use-page-authoring.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`),ee=require(`./utils/block-style.cjs`),te=require(`./ContractTemplatePageDecorations.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),u=require(`@tiptap/vue-3`),ne=require(`@tiptap/core`),d=require(`@tiptap/pm/tables`),f=require(`@tiptap/pm/state`);var p={class:`gd-contract-template-designer__page-title`},m=`application/x-gd-contract-variable-move`,h=8,g=(0,c.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},processImageFile:{type:Function,default:void 0},searchQuery:{default:``},searchMatchCase:{type:Boolean,default:!1},activeSearchMatch:{default:void 0}},emits:[`page-update`,`variable-drop`,`variable-select`,`variable-move-blocked`,`editor-focus`,`editor-state-change`,`editor-context-menu`,`word-paste`],setup(g,{expose:re,emit:ie}){let _=g,v=ie,y=(0,c.computed)(()=>_.readonly||_.disabled),b=(0,c.ref)();function ae(e){let t=e.filter(Boolean).join(`、`);return typeof window>`u`?!1:new Promise(e=>{l.Modal.confirm({title:`粘贴内容包含不兼容字体`,content:`检测到 ${t||`外部`} 字体。为保证 Mac 与 Windows 排版一致,将统一转换为合同标准字体(GD Contract Latin + 系统宋体)。是否继续粘贴?`,okText:`继续粘贴`,cancelText:`取消粘贴`,onOk:()=>e(!0),onCancel:()=>e(!1)})})}let x=o.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:_.processImageFile,confirmExternalFontPaste:ae,getZoom:()=>Math.max(.1,_.zoom||1)}),S=(0,u.useEditor)({content:_.page.contentHtml,editable:!y.value,extensions:x,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=_.variables.find(e=>e.key===r);return i&&v(`variable-select`,i.key),!1},handleDOMEvents:{contextmenu:(e,t)=>{if(y.value)return!1;let n=B(e,t.target);if(n)return t.preventDefault(),L({pageId:_.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=S.value?.state.selection,i=r instanceof d.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||A(t.clientX,t.clientY,t.target))?(V({pageId:_.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(F({pageId:_.page.id,clientX:t.clientX,clientY:t.clientY}),!0)},dragstart:(e,t)=>y.value?(t.preventDefault(),!0):(t.target instanceof HTMLElement?t.target:null)?.closest(`[data-template-variable]`)?(t.dataTransfer?.setData(m,_.page.id),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`),b.value?.classList.add(`is-variable-dragging`),!1):!1,dragend:()=>(b.value?.classList.remove(`is-variable-dragging`),!1),drop:(e,t)=>{if(y.value)return t.preventDefault(),t.stopPropagation(),!0;let n=t.dataTransfer?.getData(m);return!n||n===_.page.id?!1:(t.preventDefault(),v(`variable-move-blocked`,_.page.id),!0)}},handleKeyDown:(e,t)=>{if(y.value||!ue(t))return!1;let n=S.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=z();if(i){let e=n.view.coordsAtPos(r.from);return L({pageId:_.page.id,clientX:e.left,clientY:e.bottom},i),!0}let a=r instanceof d.CellSelection;if(s.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=fe();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(d.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return V({pageId:_.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return F({pageId:_.page.id,clientX:o.left,clientY:o.bottom}),!0}},onUpdate:({editor:e})=>{v(`page-update`,{..._.page,contentHtml:e.getHTML(),contentJson:e.getJSON()}),W()},onFocus:()=>{v(`editor-focus`,_.page.id),W()},onBlur:W,onSelectionUpdate:W,onCreate:({editor:e})=>{e.on(`contract-word-paste`,E),W()}}),{findText:oe,revealSearchMatch:C,replaceSearchMatches:w,focusHeading:T}=r.usePageAuthoring({editor:()=>S.value,readonly:()=>y.value,search:()=>({query:_.searchQuery,matchCase:_.searchMatchCase,activeMatch:_.activeSearchMatch})});function E(e){v(`word-paste`,e)}function D(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 O(){if(!S.value)return``;let{from:e,to:t}=S.value.state.selection;return S.value.state.doc.textBetween(e,t,`
2
+ `)}function se(){let e=S.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)>h)return;let i=Math.abs(r.left-n.left)/K.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function ce(){let e=S.value,t=e?.state.selection;if(!(!e||!t||t.empty)&&!(t instanceof d.CellSelection||t instanceof f.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 le(){let e=S.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 ue(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function k(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 de(e,t){let n=S.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return k(n.state.doc.resolve(r))}function fe(){let e=S.value;if(e)return k(e.state.selection.$from)}function A(e,t,n){let r=S.value,i=n instanceof HTMLElement?n:null;if(!r||!i?.closest(`td,th`))return!1;if(r.state.selection instanceof d.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=de(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(d.CellSelection.create(r.state.doc,a))),!0):!1}function j(){let e=S.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 M(){let e=S.value,t=e?.state.selection;if(!e||!(t instanceof d.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 N(e=S.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function P(e){let t=S.value;if(!t)return 0;let n=N(t.state.doc),r=n,i=e=>{r=N(e.doc)};return e===`delete-table-row`?(0,d.deleteRow)(t.state,i):e===`delete-table-column`?(0,d.deleteColumn)(t.state,i):(0,d.deleteTable)(t.state,i),Math.max(0,n-r)}function F(e){let t=S.value?.state.selection,n=!!(t&&!t.empty);v(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?se():void 0,leadingText:le()})}function I(e,t){F({pageId:_.page.id,clientX:e,clientY:t})}function L(e,t){v(`editor-context-menu`,{type:`image`,...e,image:t})}function R(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 z(){let e=S.value?.state.selection;if(e instanceof f.NodeSelection)return R(e.node,e.from)}function B(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`&&v(`variable-select`,r.attrs.key),(!(e.state.selection instanceof f.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(f.NodeSelection.create(e.state.doc,t))),R(r,t))}catch{return}}function V(e){v(`editor-context-menu`,{type:`table`,...e,capabilities:j(),activeAlignment:M(),affectedVariableCounts:{deleteRow:P(`delete-table-row`),deleteColumn:P(`delete-table-column`),deleteTable:P(`delete-table`)}})}function pe(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function H(){let e=S.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`&&pe(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 me(){let e=H();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function he(){return H().length>1}function ge(){return[`center`,`right`].find(e=>S.value?.isActive(`heading`,{textAlign:e})||S.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function U(){let e=S.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:me(),hasMixedBlockFormats:he(),textAlign:ge(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:D(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:O(),selectedContentImage:z()}}function W(){v(`editor-state-change`,_.page.id,U())}(0,c.watch)(y,e=>{S.value?.setEditable(!e),W()}),(0,c.watch)(()=>_.page.contentHtml,e=>{!S.value||e===S.value.getHTML()||(S.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),W())});let G=(0,c.computed)(()=>{let e=t.normalizePageDecorations(_.pageDecorations),n=_.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:`${_.pageSize.width}px`,height:`${_.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,_.pageSize.height-r-i)}px`}}),K=(0,c.computed)(()=>Math.max(.1,_.zoom||1)),_e=(0,c.computed)(()=>({width:`${Math.ceil((_.pageSize.width+10)*K.value)}px`,height:`${Math.ceil((_.pageSize.height+40)*K.value)}px`})),ve=(0,c.computed)(()=>({"--gd-contract-page-zoom":String(K.value)})),ye=(0,c.computed)(()=>n.resolvePageSize(_.pageSize));function be(e){if(_.readonly||_.disabled){e.preventDefault(),e.stopPropagation();return}let t=e.dataTransfer?.getData(`application/x-gd-contract-variable`);if(t){e.preventDefault(),e.stopPropagation(),v(`variable-drop`,_.page.id,t,e.clientX,e.clientY);return}let n=e.dataTransfer?.getData(m);n&&n!==_.page.id&&(e.preventDefault(),e.stopPropagation(),v(`variable-move-blocked`,_.page.id))}function xe(e,t){let n=S.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return i.insertTemplateVariableNode(n,e,r),$(),q()}function Se(e,t){let n=S.value;if(n)return o.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),q()}function Ce(e){let t=S.value,n=t?.state.selection;if(!t||!(n instanceof f.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(f.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),q()}function we(){let e=S.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function q(){return{..._.page,pageSize:ye.value,contentHtml:S.value?.getHTML()??_.page.contentHtml,contentJson:S.value?.getJSON()??_.page.contentJson}}function J(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function Te(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function Ee(e){return(0,ne.generateHTML)(J(e),x)}function De(){if(_.pageDecorations){let e=t.normalizePageDecorations(_.pageDecorations),n=_.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,_.pageSize.height-r-i)}let e=b.value;if(!e)return _.pageSize.height-108;let n=window.getComputedStyle(e),r=Number.parseFloat(n.paddingTop)||0,i=Number.parseFloat(n.paddingBottom)||0;return Math.max(120,_.pageSize.height-r-i)}function Oe(){let e=b.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=K.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(!S.value)return;let e=S.value.getJSON();return n.splitPageContentByMeasurements(e.content,Oe(),De())}function ke(){return!!Y()}function Ae(){if(!S.value)return;let e=Y();if(e)return S.value.commands.setContent(J(e.currentContent),{emitUpdate:!1}),{page:q(),overflowContent:e.overflowContent,overflowHtml:Ee(e.overflowContent)}}function je(e){if(!S.value||!e.length)return;let t=S.value.getJSON().content,n=[...e,...Te(t)?[]:t??[]];return S.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 Me(e,t=e.key){if(!S.value)return;let n=i.buildTemplateVariableAttrs(e),r=!1;return S.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 Ne(e){if(!S.value)return;let t=0;return S.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(){b.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function Q(e){if(e)return Array.from(b.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function Pe(e){Z();let t=Q(e);return t?(t.classList.add(`is-active`),t.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),S.value?.commands.focus(),!0):!1}function $(){Z(),Q(_.selectedVariableKey)?.classList.add(`is-active`)}function Fe(t){let r=e.CONTRACT_TEXT_STYLE_PRESETS.find(e=>e.key===t),i=S.value;if(!r||!i)return;let a=i.chain().focus().clearNodes();r.headingLevel?a.setHeading({level:r.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(r.textAlign).setFontSize(`${r.fontSize}px`).setFontFamily(r.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY).setColor(n.DEFAULT_FIELD_STYLE.color||`#1f2937`),r.bold?a.setBold():a.unsetBold(),r.italic?a.setItalic():a.unsetItalic(),r.underline?a.setUnderline():a.unsetUnderline(),a.run()}(0,c.watch)([()=>_.selectedVariableKey,()=>_.variables],()=>{(0,c.nextTick)($)},{deep:!0,flush:`post`});function Ie(e){y.value||(e.type===`apply-block-style`?S.value&&ee.applyContractTemplateBlockStyle(S.value,e.format):e.type===`apply-text-style-preset`?Fe(e.preset):o.runContractTemplateEditorCommand(S.value,e),W())}function Le(){S.value?.commands.focus()}function Re(){return S.value?.getJSON()}function ze(){return S.value?.getHTML()??_.page.contentHtml}function Be(e){let t=_.variables.find(t=>t.id===e||t.key===e),n=t?Q(t.key):void 0;$(),n?.scrollIntoView({behavior:`smooth`,block:`center`})}function Ve(){b.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,c.onBeforeUnmount)(()=>{S.value?.off(`contract-word-paste`,E),S.value?.destroy()}),re({findText:oe,revealSearchMatch:C,replaceSearchMatches:w,focusHeading:T,focus:Le,getHTML:ze,getJSON:Re,getEditorState:U,getTableCommandCapabilities:j,getAffectedVariableCount:P,insertVariable:xe,insertContentImage:Se,updateSelectedContentImage:Ce,getSelectionRange:we,getSelectionViewportRect:ce,requestTextContextMenu:I,hasOverflowContent:ke,updateVariable:Me,removeVariable:Ne,splitOverflowContent:Ae,prependContent:je,runCommand:Ie,scrollIntoField:Be,scrollIntoVariable:Pe,scrollIntoPage:Ve}),(e,t)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,c.normalizeStyle)(_e.value)},[(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":g.active}]),style:(0,c.normalizeStyle)(ve.value)},[(0,c.createElementVNode)(`header`,p,[(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(g.page.title||`第 ${g.pageIndex+1} 页`),1),(0,c.createElementVNode)(`span`,null,`第 `+(0,c.toDisplayString)(g.pageIndex+1)+` 页 · `+(0,c.toDisplayString)(g.pageSize.label||`A4`)+` · `+(0,c.toDisplayString)(g.pageSize.width)+` × `+(0,c.toDisplayString)(g.pageSize.height),1)]),(0,c.createElementVNode)(`div`,{ref_key:`pageElement`,ref:b,class:`gd-contract-template-designer__page`,style:(0,c.normalizeStyle)(G.value),onDragover:t[0]||=(0,c.withModifiers)(()=>{},[`prevent`]),onDrop:be,onClick:t[1]||=e=>v(`editor-focus`,g.page.id)},[(0,c.createVNode)(te.default,{decorations:g.pageDecorations,"page-number":g.pageIndex+1,"total-pages":g.totalPages,variables:g.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,c.unref)(S)?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,c.unref)(S)},null,8,[`editor`])):(0,c.createCommentVNode)(``,!0)],36)],6)],4))}});exports.default=g;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./types.cjs`),r=require(`./utils/signing-placement.cjs`),i=require(`./composables/use-template-designer.cjs`),a=require(`./utils/image-url.cjs`),o=require(`./utils/template-renderer.cjs`),s=require(`./composables/use-fit-width-zoom.cjs`),c=require(`./utils/content-image.cjs`),ee=require(`./utils/context-variable.cjs`),te=require(`./DesignerPage.cjs`),ne=require(`./TableContextMenu.cjs`),re=require(`./ContractTemplateDesignerWorkspaceHeader.cjs`),ie=require(`./ContractTemplateDesignerToolbar.cjs`),ae=require(`./ContractTemplateTextContextMenu.cjs`),oe=require(`./ContractTemplateTextBubbleMenu.cjs`),se=require(`./ContractTemplateImageContextMenu.cjs`),ce=require(`./ContractTemplatePreviewModal.cjs`),le=require(`./ContractTemplateSubmitDataModal.cjs`),ue=require(`./ContractTemplateVariableDataModal.cjs`),de=require(`./composables/use-template-draft-cache.cjs`),fe=require(`./composables/use-auto-pagination.cjs`),pe=require(`./composables/use-designer-files.cjs`),l=require(`./composables/use-template-files.cjs`),me=require(`./composables/use-draft-cache-session.cjs`),u=require(`./composables/use-signing-placement-editor.cjs`),he=require(`./utils/template-tool-icons.cjs`),ge=require(`./ContractTemplateFileBar.cjs`),_e=require(`./ContractTemplateDesignerSidebar.cjs`),ve=require(`./ContractTemplateDesignerInspector.cjs`),ye=require(`./ContractTemplatePageDecorationsStudio.cjs`),d=require(`./utils/serialize-fingerprint.cjs`),be=require(`./utils/editor-state.cjs`),xe=require(`./utils/context-menu-viewport.cjs`);let f=require(`vue`),Se=require(`ant-design-vue`),Ce=require(`@vueuse/core`),we=require(`@ant-design/icons-vue`);var Te={key:2,class:`gd-contract-template-designer__validation`},Ee={key:0,class:`gd-contract-template-designer__validation-list`},De=[`onClick`],Oe={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},ke=.5,Ae=1.5,je=.1,Me=120,Ne=128,Pe=108,Fe=48,Ie=24,Le=10,Re=48,ze=8,p=(0,f.defineComponent)({name:`ProContractTemplateDesigner`,__name:`ProContractTemplateDesigner`,props:{modelValue:{default:void 0},files:{},activeFileId:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:760},pageSize:{default:()=>i.DEFAULT_PAGE_SIZE},pageSizeOptions:{},maxPages:{default:20},imageCompression:{type:[Object,Boolean]},imageUpload:{},variableTypes:{default:()=>i.DEFAULT_FIELD_TYPES},showAdvancedChoiceControls:{type:Boolean,default:!1},showBuiltinSelectorControls:{type:Boolean,default:!1},showCustomControls:{type:Boolean,default:!1},defaultVariableStyle:{default:()=>i.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},contractFontBaseUrl:{default:void 0},showSubmitDataViewer:{type:Boolean,default:!0},showVariableDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showSigningPlacementTools:{type:Boolean,default:!1},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:de.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:de.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:de.DEFAULT_DRAFT_CACHE_MAX_BYTES},showDraftCacheStatus:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`update:files`,`update:activeFileId`,`files-change`,`file-add`,`file-change`,`file-remove`,`file-move`,`variable-add`,`validate`,`draft-cache-change`,`page-limit`,`image-error`,`signing-placement-add`,`signing-placement-change`,`signing-placement-remove`,`signing-placement-select`],setup(p,{expose:Be,emit:Ve}){let m=p,h=Ve,He=(0,f.computed)(()=>({height:typeof m.height==`number`?`${m.height}px`:m.height})),Ue=(0,f.ref)(),We=(0,f.ref)(),Ge=(0,f.ref)(),Ke=(0,f.ref)(),qe=(0,f.ref)(),Je=`gd-contract-template-page-decorations-studio-${(0,f.useId)()}`,Ye=`gd-contract-template-workspace-chrome-${(0,f.useId)()}`,Xe=(0,f.ref)(),Ze=(0,f.ref)();function Qe(e){if(!e||!Array.isArray(e.pages)||!Array.isArray(e.signingPlacements))return[];try{return i.validateTemplateValue(e).filter(e=>e.type===`signing-placement`)}catch{return[]}}function $e(e,t){return Object.fromEntries(e.map((e,n)=>[e.id,Qe(t?.[n]?.template??e.template)]))}let et=``,tt=``,nt=(0,f.ref)(!1),g=(0,f.computed)(()=>nt.value||Array.isArray(m.files)),rt=l.normalizeContractTemplateFiles(m.files,m.modelValue,m.pageSize),it=l.constrainContractTemplateFiles(rt,m.pageSizeOptions),at=g.value?it.files:rt,ot=l.resolveContractTemplateActiveFileId(at,m.activeFileId),_=(0,f.ref)(at),v=(0,f.ref)(ot),st=at.find(e=>e.id===ot)??at[0],y=(0,f.ref)($e(at,Array.isArray(m.files)?m.files:m.modelValue?[{template:m.modelValue}]:void 0)),b=(0,f.ref)(y.value[ot]??Qe(st?.template)),ct=i.normalizeTemplateValue(st?.template??m.modelValue,m.pageSize),lt=i.constrainTemplatePageSizes(ct,m.pageSizeOptions),x=(0,f.ref)(lt.value);if(g.value){if(_.value=l.replaceContractTemplateFile(_.value,v.value,lt.value),d.serializeFingerprint(_.value)!==d.serializeFingerprint(rt)){let e=l.cloneContractTemplateFiles(_.value);et=d.serializeFingerprint(e),h(`update:files`,e),h(`files-change`,l.cloneContractTemplateFiles(e))}}else m.modelValue&&d.serializeFingerprint(lt.value)!==d.serializeFingerprint(ct)&&(tt=d.serializeFingerprint(lt.value),h(`update:modelValue`,i.cloneTemplateValue(lt.value)),h(`change`,i.cloneTemplateValue(lt.value)),Dr(lt.resizedSigningPlacementIds,lt.value));let S=(0,f.ref)(``),C=(0,f.ref)(``),w=(0,f.ref)(x.value.pages[0]?.id??``),T=(0,f.ref)(!1),E=(0,f.ref)([]),D=new Map,ut=(0,f.ref)(!1),dt=(0,f.ref)(``),ft=(0,f.ref)(!1),pt=(0,f.ref)(),mt=(0,f.ref)(),ht=(0,f.ref)(``),gt=(0,f.ref)(!1),_t=(0,f.ref)(``),vt=(0,f.ref)(!1),yt=(0,f.ref)({values:{},variables:[]}),O=(0,f.ref)(1),k=(0,f.ref)(!1),bt=(0,f.ref)(!1),xt=(0,f.ref)(!1),St=(0,f.ref)(!1),Ct=(0,f.ref)(!1),wt=(0,f.ref)(),A=(0,f.ref)(!1),Tt=(0,f.ref)(`header`),Et=(0,f.ref)(!1),Dt=(0,f.ref)({}),j=(0,f.ref)(``),M=(0,f.ref)(!1),N=(0,f.ref)(!1),Ot=(0,f.ref)(!1),kt=(0,f.ref)(!1),At=(0,f.ref)(``),jt=(0,f.ref)(),Mt=(0,f.ref)(),Nt=(0,f.ref)(``),Pt=(0,f.ref)(!1),P=(0,f.ref)(),Ft=(0,f.ref)(),F=(0,f.ref)(),It=(0,f.ref)(),Lt=(0,f.ref)(!1),Rt,zt=(0,f.ref)(!1),Bt,Vt=(0,f.ref)(!1),Ht=(0,f.ref)(``),I=(0,f.ref)(),Ut=(0,f.ref)(),L=(0,f.ref)(),Wt=(0,f.ref)(),Gt=(0,f.ref)(),Kt=(0,f.ref)(),R=(0,f.ref)(``),z=(0,f.ref)(de.createDraftCacheStatus(`idle`,`暂无本地草稿`)),qt=(0,f.ref)({rows:3,cols:3,withHeaderRow:!0}),Jt=new WeakSet,Yt=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),Xt,Zt,Qt=!1,$t=!1,en,B=(0,f.computed)(()=>m.readonly||m.disabled),tn=(0,f.computed)(()=>!!(P.value||I.value||L.value||M.value||N.value||Et.value||Ot.value||kt.value)),nn=(0,f.computed)(()=>!!m.enableDraftCache&&!B.value),rn=(0,f.computed)(()=>_.value.find(e=>e.id===v.value)??_.value[0]),an=(0,f.computed)(()=>m.draftCacheKey),V=(0,f.computed)(()=>x.value.variables.find(e=>e.key===S.value)),H=(0,f.computed)(()=>x.value.signingPlacements??[]),on=(0,f.computed)(()=>pt.value?i.buildTemplatePreviewPages(pt.value):[]),sn=(0,f.computed)(()=>(mt.value??[]).map(e=>({file:e,pages:i.buildTemplatePreviewPages(e.template)}))),cn=(0,f.computed)(()=>sn.value.find(e=>e.file.id===ht.value)??sn.value[0]),ln=(0,f.computed)(()=>H.value.find(e=>e.id===C.value)),un=(0,f.computed)(()=>H.value.map(e=>{let t=x.value.pages.findIndex(t=>t.id===e.pageId);return{placement:e,label:r.SIGNING_PLACEMENT_TYPE_LABELS[e.type],detail:`${r.SIGNING_PLACEMENT_TYPE_LABELS[e.type]} · 第 ${Math.max(0,t)+1} 页`}})),dn=(0,f.computed)(()=>{let e=ln.value?.pageId;return Z(x.value.pages.find(t=>t.id===e))}),U=(0,f.computed)(()=>x.value.pages.find(e=>e.id===w.value)??x.value.pages[0]),fn=(0,f.computed)(()=>i.resolvePageSize(U.value?.pageSize,x.value.pageSize)),pn=(0,f.computed)(()=>T.value&&E.value.length===0),mn=(0,f.computed)(()=>T.value?pn.value?`校验通过,正文变量与变量配置一致`:`发现 ${E.value.length} 个校验问题`:``),hn=(0,f.computed)(()=>{let e=U.value?.title||`合同正文`;return`${g.value&&rn.value?`${rn.value.name} · `:``}${e} · ${fn.value.label} · 共 ${x.value.pages.length} 页`}),gn=(0,f.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[t.resolvePageDecorationPreset(x.value.pageDecorations)]),_n=(0,f.computed)(()=>{let e=t.normalizePageDecorations(x.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),vn=(0,f.computed)(()=>Object.values(_n.value).filter(Boolean).length),yn=(0,f.computed)(()=>{switch(z.value.type){case`saved`:return`草稿已缓存 ${de.formatDraftCacheSavedAt(z.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),bn=(0,f.computed)(()=>({"is-success":z.value.type===`saved`||z.value.type===`restored`,"is-warning":z.value.type===`too-large`,"is-error":z.value.type===`unavailable`||z.value.type===`read-failed`||z.value.type===`write-failed`})),xn=(0,f.computed)(()=>`${Math.round(O.value*100)}%`),Sn=(0,f.computed)(()=>e.resolveFontFamilyOptions(m.fontFamilies,m.fontFamilyMode)),Cn=(0,f.computed)(()=>Sn.value.map(e=>({label:e.label,value:e.value}))),wn=e.DEFAULT_TEXT_ALIGN_OPTIONS,Tn=[...e.CONTRACT_BLOCK_STYLES.map(e=>({label:e.label,value:e.format}))],En=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],Dn=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],On=(0,f.computed)(()=>i.normalizePageSizeOptions(m.pageSizeOptions)),kn=(0,f.computed)(()=>On.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:i.getPageSizeKey(e)}))),An=(0,f.computed)(()=>i.getPageSizeKey(fn.value)),jn=(0,f.computed)(()=>r.resolveSigningPlacementToolItems({showSigningPlacementTools:m.showSigningPlacementTools})),Mn=(0,f.computed)(()=>{let e=[...m.variableTypes,...m.showAdvancedChoiceControls?i.DEFAULT_ADVANCED_CHOICE_FIELD_TYPES:[],...m.showBuiltinSelectorControls?i.DEFAULT_BUILTIN_SELECTOR_FIELD_TYPES:[],...m.showCustomControls?i.DEFAULT_CUSTOM_FIELD_TYPES:[]].filter(e=>n.isContractTemplateFieldType(e?.type));return Array.from(new Map(e.map(e=>[e.type,e])).values())}),Nn=(0,f.computed)(()=>Mn.value.map(e=>({...e,icon:he.resolveFieldTypeIcon(e.type),group:e.type===`select`||e.type===`radio`?`advanced-choice`:e.type.endsWith(`-selector`)?`builtin-selector`:e.type===`custom`?`custom`:`basic`}))),Pn=(0,f.computed)(()=>i.normalizeContractTemplateMaxPages(m.maxPages)),Fn=(0,f.computed)(()=>x.value.pages.length>=Pn.value),In=(0,f.computed)(()=>{let e=i.collectTemplateValueVariableKeys(x.value);return Array.from(t.collectPageDecorationVariableKeys(x.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:W}=fe.useAutoPagination({templateValue:x,readonlyState:B,isAutoPaginating:ut,pendingPaginationPageId:dt,activePageId:w,normalizedMaxPages:Pn,pageRefs:D,syncPageEditors:K,commitBodyChange:wr,getPageSize:Z,notifyPageLimit:Nr}),{insertSigningPlacement:Ln,handleSigningPlacementDrop:Rn,insertSigningPlacementTool:zn,handleSigningPlacementDragStart:Bn,updateSigningPlacement:Vn,patchSelectedSigningPlacement:Hn,duplicateSigningPlacement:Un,removeSigningPlacement:Wn}=u.useSigningPlacementEditor({templateValue:x,signingPlacements:H,selectedSigningPlacement:ln,selectedSigningPlacementId:C,selectedPage:U,activePageId:w,readonly:()=>m.readonly,disabled:()=>m.disabled,showSigningPlacementTools:()=>!!m.showSigningPlacementTools,getPageSize:Z,getVisiblePosition:(e,t)=>D.get(e)?.getVisibleSigningPlacementPosition(t),commitSigningPlacements:jr,selectSigningPlacement:Q,emitAdd:e=>h(`signing-placement-add`,e),emitChange:e=>h(`signing-placement-change`,e),emitRemove:e=>h(`signing-placement-remove`,e)}),{saveDraftCache:Gn,loadDraftCache:Kn,clearDraftCache:qn,restoreDraftCacheIfNeeded:Jn,stopDraftCacheTimer:Yn,restartDraftCacheTimer:Xn,resetDraftFingerprint:Zn}=me.useDraftCacheSession({draftCacheWritable:nn,multipleFilesMode:g,filesValue:_,activeFileIdValue:v,templateValue:x,draftCacheKey:an,draftCacheInterval:()=>m.draftCacheInterval,draftCacheMaxBytes:()=>m.draftCacheMaxBytes,pageSize:()=>m.pageSize,pageSizeOptions:()=>m.pageSizeOptions,syncActiveFileSnapshot:q,syncPageEditors:K,setActiveFileId:vr,emitFilesChange:J,commit:Y,setSigningPlacementInputErrorsByFile:e=>{y.value=e},buildSigningPlacementInputErrorsByFile:$e,updateDraftCacheStatus:yr,scheduleAutoPaginate:W,activePageId:w,selectedVariableKey:S}),Qn=(0,f.computed)(()=>{let e=Ht.value.trim().toLowerCase(),t=x.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),$n=(0,f.computed)(()=>Math.max(Fe,fn.value.width-Ne)),er=(0,f.computed)(()=>Math.max(Ie,fn.value.height-Pe)),G=(0,f.computed)(()=>Dt.value[w.value]??cr()),tr=(0,f.computed)(()=>G.value.hasMixedBlockFormats?void 0:G.value.currentHeadingLevel??`paragraph`),nr=(0,f.computed)(()=>G.value.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),rr=(0,f.computed)(()=>G.value.fontSize??i.DEFAULT_FIELD_STYLE.fontSize??14),ir=(0,f.computed)(()=>G.value.textColor||i.DEFAULT_FIELD_STYLE.color||`#1f2937`),ar=(0,f.computed)(()=>V.value?.style?.fontFamily||i.DEFAULT_FIELD_STYLE.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),or=(0,f.computed)(()=>{let t=e.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),n=fr(rr.value),r=fr(j.value),i=new Map;return r&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),n&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(n)&&i.set(n,{label:r===n?`使用 ${n}px`:`${n}px`,value:n}),[...Array.from(i.values()),...t]});(0,f.watch)(()=>m.modelValue,e=>{if(!e||g.value)return;let t=i.normalizeTemplateValue(e,m.pageSize),n=i.constrainTemplatePageSizes(t,m.pageSizeOptions),r=n.value,a=d.serializeFingerprint(r)!==d.serializeFingerprint(x.value),o=d.serializeFingerprint(r),s=o===tt;s&&(tt=``),(a||!s)&&(b.value=Qe(e),y.value={...y.value,[v.value]:b.value},x.value=r,_.value=l.replaceContractTemplateFile(_.value,v.value,r),w.value=r.pages[0]?.id??``,S.value=``,C.value=``,W(w.value)),d.serializeFingerprint(r)!==d.serializeFingerprint(t)&&(tt=o,h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r)),Dr(n.resizedSigningPlacementIds,r))},{deep:!0}),(0,f.watch)(()=>m.files,e=>{if(!Array.isArray(e))return;let t=l.normalizeContractTemplateFiles(e,void 0,m.pageSize),n=l.constrainContractTemplateFiles(t,m.pageSizeOptions).files,r=d.serializeFingerprint(n),i=d.serializeFingerprint(_.value),a=r===et;a||(y.value=$e(n,e)),a&&(et=``);let o=l.resolveContractTemplateActiveFileId(n,m.activeFileId||v.value);if(r===i?o!==v.value&&vr(o,{syncCurrent:!1,shouldEmit:!1}):(_.value=n,vr(o,{syncCurrent:!1,shouldEmit:!1,forceRefresh:!0,persistCurrentErrors:!1})),r!==d.serializeFingerprint(t)){let e=l.cloneContractTemplateFiles(n);et=d.serializeFingerprint(e),h(`update:files`,e),h(`files-change`,l.cloneContractTemplateFiles(e))}},{deep:!0}),(0,f.watch)(()=>m.activeFileId,e=>{!g.value||!e||e===v.value||vr(e,{syncCurrent:!0,shouldEmit:!1})});function sr(e,t){let n=d.serializeFingerprint(_.value);q(!1);let r=l.normalizeContractTemplateFiles(_.value,void 0,e),{files:a,resizedSigningPlacementIds:o}=l.constrainContractTemplateFiles(r,t),s=d.serializeFingerprint(a)!==n,c=a.find(e=>e.id===v.value);c&&d.serializeFingerprint(c.template)!==d.serializeFingerprint(x.value)&&(x.value=i.cloneTemplateValue(c.template),b.value=[...y.value[v.value]??[]]),s&&(T.value=!1,E.value=[],J(a,``));let ee=o.get(v.value);return ee?.length&&c&&Dr(ee,c.template),s}(0,f.watch)([()=>m.pageSize,()=>m.pageSizeOptions],([e,t])=>{if(g.value){sr(e,t),W(w.value);return}let n=i.normalizeTemplateValue(x.value,e),r=i.constrainTemplatePageSizes(n,t);d.serializeFingerprint(r.value)!==d.serializeFingerprint(x.value)&&Y(r.value),W(w.value)},{deep:!0}),(0,f.watch)(Pn,()=>{W(x.value.pages[0]?.id)}),(0,f.watch)(B,e=>{e&&($(),M.value=!1,N.value=!1)}),(0,f.watch)(w,()=>{F.value=void 0}),(0,f.watch)([tn,A,ft],()=>{Za()}),(0,f.watch)(H,e=>{C.value&&!e.some(e=>e.id===C.value)&&(C.value=``,h(`signing-placement-select`,void 0))},{deep:!0}),(0,f.watch)(()=>[m.enableDraftCache,an.value,m.draftCacheInterval,B.value],()=>{Zn(),Xn()}),(0,f.watch)(k,e=>{if(!(typeof document>`u`)){if(e){Xt=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=Xt??``,Xt=void 0}}),(0,f.onMounted)(()=>{Jn(),Xn(),W(w.value),window.addEventListener(`pointerdown`,ao,!0),window.addEventListener(`pointerup`,no),window.addEventListener(`keydown`,co,!0),window.addEventListener(`keydown`,lo),window.addEventListener(`resize`,ro),window.addEventListener(`scroll`,oo,!0)}),(0,f.onBeforeUnmount)(()=>{mr(),Qt=!0,k.value&&typeof document<`u`&&(document.body.style.overflow=Xt??``),window.removeEventListener(`pointerdown`,ao,!0),window.removeEventListener(`pointerup`,no),window.removeEventListener(`keydown`,co,!0),window.removeEventListener(`keydown`,lo),window.removeEventListener(`resize`,ro),window.removeEventListener(`scroll`,oo,!0),Bt!==void 0&&cancelAnimationFrame(Bt),Yn()});function cr(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:e.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:i.DEFAULT_FIELD_STYLE.fontSize??14,textColor:i.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``,hasMixedBlockFormats:!1}}function lr(e){return e===`left`||e===`center`||e===`right`}function ur(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function dr(e,t=rr.value){let n=Number(e);return Number.isFinite(n)?Math.min(Re,Math.max(Le,Math.round(n))):t}function fr(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Re,Math.max(Le,Math.round(n)))}function K(e=x.value){return{...e,pages:e.pages.map(e=>{let t=D.get(e.id);return{...e,contentHtml:t?.getHTML()??e.contentHtml,contentJson:t?.getJSON()??e.contentJson}})}}function pr(){$t=!1,en&&=(clearTimeout(en),void 0)}function mr(){let e=$t;pr(),e&&_r()}function hr(){$t=!0,en&&clearTimeout(en),en=setTimeout(()=>{en=void 0,!(!$t||Qt)&&($t=!1,_r())},Me)}function gr(e){let t=x.value.pages,n=t.findIndex(t=>t.id===e.id);if(n<0)return;let r=t[n];if(r.contentHtml===e.contentHtml&&r.contentJson===e.contentJson&&r.title===e.title&&r.pageSize===e.pageSize)return;let i=t.slice();i[n]=e,x.value={...x.value,pages:i}}function _r(){let e=K(),t=i.syncTemplateVariablesWithPages(e);S.value&&!t.variables.some(e=>e.key===S.value)&&(S.value=``),Y(t)}function q(e=!1){mr();let t=i.cloneTemplateValue(K());if(!g.value)return t;let n=_.value.find(e=>e.id===v.value)?.template,r=d.serializeFingerprint(n)!==d.serializeFingerprint(t),a=l.replaceContractTemplateFile(_.value,v.value,t);return _.value=a,r&&e&&J(a),t}function J(e,t=v.value){if(!g.value)return;let n=l.cloneContractTemplateFiles(e);_.value=n,et=d.serializeFingerprint(n),h(`update:files`,l.cloneContractTemplateFiles(n)),h(`files-change`,l.cloneContractTemplateFiles(n));let r=n.find(e=>e.id===t);r&&h(`file-change`,l.cloneContractTemplateFiles([r])[0])}function vr(e,t={}){let{syncCurrent:n,shouldEmit:r,forceRefresh:a,persistCurrentErrors:o}=pe.resolveSetActiveFileIdOptions(t),s=l.resolveContractTemplateActiveFileId(_.value,e),c=s!==v.value;if(o&&g.value&&v.value&&(y.value={...y.value,[v.value]:[...b.value]}),n?q(!0):pr(),!c&&!a)return;let ee=_.value.find(e=>e.id===s);ee&&(v.value=s,x.value=i.cloneTemplateValue(ee.template),b.value=[...y.value[s]??[]],S.value=``,C.value=``,w.value=x.value.pages[0]?.id??``,Dt.value={},D.clear(),dt.value=``,T.value=!1,E.value=[],ft.value=!1,pt.value=void 0,mt.value=void 0,Zn(),r&&c&&h(`update:activeFileId`,s),n&&c&&nn.value&&Gn(),(0,f.nextTick)(()=>{W(w.value)}))}function Y(e){pr();let t=i.normalizeTemplateValue(e,m.pageSize),n=i.constrainTemplatePageSizes(t,m.pageSizeOptions),r=n.value;return x.value=r,T.value=!1,E.value=[],g.value?J(l.replaceContractTemplateFile(_.value,v.value,r)):(_.value=l.replaceContractTemplateFile(_.value,v.value,r),tt=d.serializeFingerprint(r),h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r))),Dr(n.resizedSigningPlacementIds,r),r}function yr(e,t=e.type!==`unchanged`){z.value=e,t&&h(`draft-cache-change`,{...e})}function br(){return{...z.value}}function xr(e,t){t?D.set(e,t):D.delete(e)}function X(e,t=U.value?.id??w.value){B.value||D.get(t)?.runCommand(e)}function Sr(e){X(e),$()}function Cr(e){let t=P.value?.pageId;t&&(D.get(t)?.focus(),R.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function wr(e){let t=Y(i.syncTemplateVariablesWithPages(e));return S.value&&!t.variables.some(e=>e.key===S.value)&&(S.value=``),t}function Tr(e){gr(e),hr(),W(e.id)}function Z(e){return i.resolvePageSize(e?.pageSize,x.value.pageSize)}function Er(e){return H.value.filter(t=>t.pageId===e)}function Dr(e,t=x.value){let n=new Set(e);n.size&&(kr(n),(t.signingPlacements??[]).filter(e=>n.has(e.id)).forEach(e=>h(`signing-placement-change`,u.cloneSigningPlacement(e))))}function Q(e){let t=e?H.value.find(t=>t.id===e):void 0;C.value=t?.id??``,t&&(S.value=``,w.value=t.pageId),h(`signing-placement-select`,t?u.cloneSigningPlacement(t):void 0)}function Or(e){Q(e.id)}function kr(e){let t=new Set(e);if(!t.size)return;let n=b.value.filter(e=>e.type!==`signing-placement`||!t.has(e.id));b.value=n,y.value={...y.value,[v.value]:n}}function Ar(e){let t=b.value.filter(t=>t.type!==`signing-placement`||t.pageId!==e);b.value=t,y.value={...y.value,[v.value]:t}}function jr(e,t=[]){return kr(t),Y({...x.value,signingPlacements:e})}function Mr(e){if(B.value||!U.value)return;let t=On.value.find(t=>i.getPageSizeKey(t)===e);if(!t)return;let n=U.value.id,a=Z(U.value),o=i.resolvePageSize(t,x.value.pageSize),s=H.value.map(e=>e.pageId===n?r.scaleSigningPlacementToPage(e,a,o):e);kr(s.filter(e=>e.pageId===n).map(e=>e.id)),Y({...x.value,pages:x.value.pages.map(e=>e.id===n?{...e,pageSize:o}:e),signingPlacements:s}),s.filter(e=>e.pageId===n).forEach(e=>h(`signing-placement-change`,u.cloneSigningPlacement(e))),W(n)}function Nr(e){let t=Pn.value;R.value=`合同最多支持 ${t} 页`,h(`page-limit`,t,e)}function Pr(){if(B.value)return;if(Fn.value){Nr(`add`);return}let e=i.createDefaultPage(x.value.pages.length+1,fn.value);Y({...x.value,pages:[...x.value.pages,e]}),w.value=e.id}function Fr(e){if(B.value)return;if(Fn.value){Nr(`duplicate`);return}let t=x.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=i.cloneTemplateValue({pages:[e],variables:[],pageSize:x.value.pageSize,signingPlacements:[]}).pages[0],a=i.createBlankPage(t+2,Z(e),n.contentHtml,n.contentJson);a.title=`${e.title||`第 ${t+1} 页`}副本`;let o=[...x.value.pages];o.splice(t+1,0,a);let s=Er(e.id).map(e=>r.createSigningPlacement(e.type,a.id,Z(a),{...u.cloneSigningPlacement(e),id:void 0,pageId:a.id}));Y({...x.value,pages:o,signingPlacements:[...H.value,...s]}),w.value=a.id,s.forEach(e=>h(`signing-placement-add`,u.cloneSigningPlacement(e))),s[0]&&Q(s[0].id)}function Ir(e){if(B.value||x.value.pages.length<=1)return;let t=x.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=Er(e.id);Ar(e.id);let r=x.value.pages.filter(t=>t.id!==e.id),i=wr({...x.value,pages:r,signingPlacements:H.value.filter(t=>t.pageId!==e.id)});w.value=i.pages[Math.min(t,i.pages.length-1)]?.id??``,n.some(e=>e.id===C.value)&&Q(),n.forEach(e=>h(`signing-placement-remove`,u.cloneSigningPlacement(e)))}function Lr(e){if(B.value||x.value.pages.length<=1)return;let t=Er(e.id).length;if(!t){Ir(e);return}Se.Modal.confirm({title:`删除合同页面`,content:`此页包含 ${t} 个签署位置,删除页面会同时移除这些位置,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{Ir(e)}})}function Rr(e){let t=new Set(x.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function zr(e){let t=e.type??`text`;return i.createTemplateVariable({...e,type:t,key:e.key||Rr(t),label:e.label||i.getFieldOption(t,Mn.value).label},Mn.value,m.defaultVariableStyle)}function Br(e,t=U.value?.id??x.value.pages[0].id,n){if(B.value)return e;let r=D.get(t)?.insertVariable(e,n),i=!x.value.variables.some(t=>t.key===e.key);return Y({...x.value,pages:r?x.value.pages.map(e=>e.id===r.id?r:e):x.value.pages,variables:i?[...x.value.variables,e]:x.value.variables}),S.value=e.key,Q(),w.value=t,i&&h(`variable-add`,e),W(t),e}function Vr(e){let{width:t,height:n,...r}=e,i=c.normalizeContractImageDimension(t),a=c.normalizeContractImageDimension(n);return{...r,...i===void 0?{}:{width:i},...a===void 0?{}:{height:a}}}function Hr(e={}){let t=c.normalizeContractImageDimension(jt.value),n=c.normalizeContractImageDimension(Mt.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function Ur(){At.value=``,jt.value=void 0,Mt.value=void 0,Nt.value=``}function Wr(e,t=U.value?.id??x.value.pages[0]?.id,n){let r=Vr({...e,src:e.src.trim()});if(!(B.value||!t||!a.isSafeContractImageUrl(r.src)||!r.src||!D.get(t)?.insertContentImage(r,n)))return w.value=t,S.value=``,Q(),r.src}function Gr(e){return e instanceof Error?e:Error(`图片处理失败`)}async function Kr(e,t){t===`toolbar`&&(Pt.value=!0,Nt.value=``);try{let n=await c.processContractImageFile(e,{source:t,compression:m.imageCompression,upload:m.imageUpload});return Qt?void 0:n.src}catch(e){let n=Gr(e);t===`toolbar`&&(Nt.value=n.message),R.value=n.message,h(`image-error`,n,t);return}finally{t===`toolbar`&&(Pt.value=!1)}}let qr=0;function Jr(e){let t=e.replacedFontFamilies.filter(Boolean);if(!t.length)return;let n=Date.now();n-qr<800||(qr=n,Se.message.info(`已将 ${t.length} 种外部字体(${t.join(`、`)})统一为合同标准字体,以保证 Mac 与 Windows 排版一致`))}async function Yr(e){return await Kr(e,`paste`)??null}async function Xr(e,t={}){if(B.value)return;let n=U.value?.id??x.value.pages[0]?.id,r=n?D.get(n)?.getSelectionRange():void 0,i=typeof e==`string`?e.trim():await Kr(e,`toolbar`);if(Qt)return;if(!i||!a.isSafeContractImageUrl(i)){typeof e==`string`&&(Nt.value=`请输入安全的图片 URL`);return}if(n&&!D.has(n))return;let o=Wr({...t,src:i},n,r);return o&&(kt.value=!1,Ur(),R.value=`已插入图片`),o}function Zr(){B.value||Pt.value||($(),Nt.value=``,Ze.value&&(Ze.value.value=``),Ze.value?.click())}async function Qr(e){let t=e.target.files?.[0];t&&await Xr(t,Hr({alt:t.name}))}async function $r(){let e=At.value;await Xr(e,Hr())}function ei(e){bi(e),Ot.value=!1}function ti(){$(),Pr()}function ni(e,t,n,r){$(),Br(zr({type:t}),e,{left:n,top:r})}function ri(e){$(),S.value=e,Q()}function ii(e){let n=x.value.variables.find(t=>t.id===e.id);if(!n)return;let r=e.key.trim();if(r!==n.key){let t=i.validateContractTemplateVariableKey(r,x.value.variables,e.id);if(t){R.value=t;return}}e={...e,key:r};let a=[...x.value.pages],o=n.key,s=``;D.forEach((t,n)=>{let r=t.updateVariable(e,o);if(r){s||=n;let e=a.findIndex(e=>e.id===n);e>=0&&(a[e]=r)}}),Y({...x.value,pages:a,variables:x.value.variables.map(t=>t.id===e.id?e:t),...o!==e.key&&x.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(x.value.pageDecorations,o,e.key)}:{}}),S.value=e.key,W(s||w.value)}function ai(e){V.value&&ii({...V.value,...e,style:{...V.value.style,...e.style}})}function oi(e){B.value||!V.value||ai({key:e})}function si(e){B.value||(Y({...x.value,pageDecorations:t.normalizePageDecorations(e)}),W(x.value.pages[0]?.id))}function ci(e){(e===`left`||e===`center`||e===`right`)&&ai({style:{textAlign:e}})}function li(e){(e===`solid`||e===`dashed`)&&ai({style:{borderStyle:e}})}function ui(e){(e===`contain`||e===`cover`||e===`fill`)&&ai({style:{objectFit:e}})}function di(e){ai({style:e})}function fi(t){di({fontFamily:String(t||``).trim()||e.DEFAULT_CONTRACT_FONT_FAMILY})}function pi(e){di({fontSize:dr(e,V.value?.style?.fontSize??14)})}function mi(e){V.value&&ai({multiline:e,rows:V.value.rows||3,lineHeight:V.value.lineHeight||28,style:e?{underline:!0}:void 0})}function hi(e){V.value&&ai({rows:Number(e||3),lineHeight:V.value.lineHeight||28})}function gi(e){if(B.value)return;let n=[...x.value.pages];D.forEach((t,r)=>{let i=t.removeVariable(e.key);if(i){let e=n.findIndex(e=>e.id===r);e>=0&&(n[e]=i)}}),Y({...x.value,pages:n,variables:x.value.variables.filter(t=>t.id!==e.id),...x.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(x.value.pageDecorations,e.key)}:{}}),S.value=``,C.value=``}function _i(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(x.value.variables.map(e=>e.key));if(!n.has(t))return t;let r=2;for(;n.has(`${t}_${r}`);)r+=1;return`${t}_${r}`}function vi(e){B.value||Br(i.createTemplateVariable({...e,id:void 0,key:_i(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},Mn.value,m.defaultVariableStyle))}function yi(e){return B.value?void 0:Br(x.value.variables.find(t=>t.key===e.key)??i.createTemplateVariable(e,Mn.value,m.defaultVariableStyle))}function bi(e){if(!B.value)return Br(zr({type:e}))}function xi(e){if(B.value||!n.isContractTemplateFieldType(e))return;let t=P.value,r=Mn.value.find(t=>t.type===e);if(!t||!r)return;let i=ee.inferContextVariableLabel(t.leadingText)||r.label,a=ee.resolveContextVariableWidth(t.selectionWidth,Fe,$n.value),o=Si();Br(zr({type:e,label:i,...a?{width:a}:{},...o?{style:o}:{}}),t.pageId),R.value=t.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function Si(){let e=G.value,t={};return e.isUnderline&&(t.underline=!0),typeof e.fontSize==`number`&&Number.isFinite(e.fontSize)&&(t.fontSize=e.fontSize),e.fontFamily&&(t.fontFamily=e.fontFamily),e.textColor&&(t.color=e.textColor),Object.keys(t).length?t:void 0}function Ci(e){if(B.value)return;let t=P.value;t&&(Br(e,t.pageId),R.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function wi(e){let t=e.type&&n.isContractTemplateFieldType(e.type)?e.type:`text`;return i.getFieldOption(t,Mn.value).label}function Ti(){x.value.variables.length&&(Vt.value=!0,(0,f.nextTick)(()=>{Va(),Ft.value?.focusBindSearch()}))}function Ei(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Di(e){return O.value=Math.round(Math.min(Ae,Math.max(ke,Number.isFinite(e)?e:1))*100)/100,O.value}let{width:Oi}=(0,Ce.useElementSize)(We),ki=(0,f.computed)(()=>Math.max(...x.value.pages.map(e=>Z(e).width),i.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:Ai,applyAutoFit:ji,markUserAdjusted:Mi,userAdjusted:Ni}=s.useFitWidthZoom({viewportWidth:Oi,widestPageWidth:ki,padding:48,minZoom:ke,maxZoom:Ae,getZoom:()=>O.value,applyZoom:Di});function Pi(e){return Mi(),Di(e)}function Fi(){return ji()}function Ii(){return O.value}function Li(){Pi(O.value+je)}function Ri(){Pi(O.value-je)}function zi(){$(),M.value=!1,N.value=!1,Et.value=!1,k.value=!k.value}(0,f.watch)(Oi,e=>{Ct.value&&!Ni.value&&e>0&&Ai()});function Bi(e){St.value?Xe.value?.focus():e()}function Vi(){$(),Ja(),A.value=!1,Zt={fullscreen:k.value,sidebar:bt.value,inspector:xt.value,chrome:St.value,zoom:O.value,userAdjusted:Ni.value},k.value=!0,bt.value=!0,xt.value=!0,St.value=!0,Ct.value=!0,(0,f.nextTick)(()=>{B.value?wt.value?.focus():D.get(w.value)?.focus()})}function Hi(){let e=Zt;Ct.value=!1,Zt=void 0,e&&(k.value=e.fullscreen,bt.value=e.sidebar,xt.value=e.inspector,St.value=e.chrome,e.userAdjusted?Pi(e.zoom):ji(),(0,f.nextTick)(()=>Bi(()=>Ke.value?.focusImmersive())))}function Ui(){Ct.value?Hi():Vi()}function Wi(){$(),F.value=void 0;let e=q(!1);g.value?(mt.value=l.cloneContractTemplateFiles(_.value),pt.value=void 0,ht.value=v.value||_.value[0]?.id||``):(pt.value=i.cloneTemplateValue(e),mt.value=void 0,ht.value=``),ft.value=!0}function Gi(){ft.value=!1,pt.value=void 0,mt.value=void 0,ht.value=``}function Ki(){return xa()}function qi(){$();let e=Ki();return _t.value=JSON.stringify(e,null,2),gt.value=!0,e}function Ji(){gt.value=!1}function Yi(){return o.buildTemplateVariableData(q(!1))}function Xi(){$();let e=Yi();return yt.value=e,vt.value=!0,e}function Zi(){vt.value=!1}function Qi(){$(),F.value=void 0,M.value=!1,N.value=!1;let e=H.value.map(u.cloneSigningPlacement);b.value=[],y.value={...y.value,[v.value]:[]};let t=!!C.value;S.value=``,C.value=``,w.value=``,ft.value=!1,pt.value=void 0,mt.value=void 0,gt.value=!1,_t.value=``,vt.value=!1,yt.value={values:{},variables:[]},Dt.value={},dt.value=``;let n=Y(i.createBlankTemplate(i.DEFAULT_PAGE_SIZE));return t&&h(`signing-placement-select`,void 0),e.forEach(e=>h(`signing-placement-remove`,e)),w.value=n.pages[0]?.id??``,i.cloneTemplateValue(n)}function $i(){B.value||($(),Se.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面、模板变量和签署位置,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{Qi()}}))}function ea(e){let t=K().pages,n=t.find(e=>e.id===w.value);return(n?[n,...t.filter(e=>e.id!==n.id)]:t).find(t=>t.contentHtml.includes(`data-key="${e.key}"`)||t.contentHtml.includes(`data-key='${e.key}'`))}function ta(e){$(),S.value=e.key,Q();let t=ea(e);t&&(w.value=t.id,(0,f.nextTick)(()=>{D.get(t.id)?.scrollIntoVariable(e.key)}))}function na(e){let t=x.value.variables.find(t=>t.key===e||t.id===e);t&&ta(t)}function ra(e){let t=H.value.find(t=>t.id===e);t&&($(),S.value=``,w.value=t.pageId,Q(t.id),(0,f.nextTick)(()=>{D.get(t.pageId)?.scrollIntoSigningPlacement(t.id)}))}function ia(e,t=!0){$(),w.value=e,t&&(0,f.nextTick)(()=>{D.get(e)?.scrollIntoPage()})}function aa(e){x.value.pages.some(t=>t.id===e)&&ia(e)}function oa(){if(A.value){sa();return}A.value=!0}function sa(){A.value=!1,(0,f.nextTick)(()=>Bi(()=>Ke.value?.focusPageDecorations()))}function ca(){return mr(),i.cloneTemplateValue(K())}function la(e){b.value=Qe(e),y.value={...y.value,[v.value]:b.value};let t=Y(i.normalizeTemplateValue(e,m.pageSize));t.signingPlacements?.some(e=>e.id===C.value)||Q(),W(t.pages[0]?.id)}function ua(){let e=q(!1);return g.value?l.cloneContractTemplateFiles(_.value):l.cloneContractTemplateFiles(l.replaceContractTemplateFile(_.value,v.value,e))}function da(e,t){let n=l.normalizeContractTemplateFiles(e,void 0,m.pageSize),r=l.constrainContractTemplateFiles(n,m.pageSizeOptions),i=_.value;nt.value=!0,q(!1),_.value=r.files,y.value=$e(r.files,e),vr(l.resolveContractTemplateActiveFileId(_.value,t??v.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),d.serializeFingerprint(i)!==d.serializeFingerprint(_.value)&&J(_.value,``)}function fa(e){if(B.value)return;nt.value=!0,q(!0);let t=l.createContractTemplateFile(e||`合同文件 ${_.value.length+1}`,m.pageSize);return _.value=[..._.value,t],y.value={...y.value,[t.id]:[]},J(_.value,``),h(`file-add`,l.cloneContractTemplateFiles([t])[0]),vr(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.cloneContractTemplateFiles([t])[0]}function pa(e){!g.value&&!_.value.some(t=>t.id===e)||(nt.value=!0,vr(e))}function ma(e,t){if(B.value)return;nt.value=!0,q(!1);let n=l.renameContractTemplateFile(_.value,e,t),r=n.find(t=>t.id===e);if(r)return _.value=n,J(n,e),l.cloneContractTemplateFiles([r])[0]}function ha(e){if(B.value||_.value.length<=1)return;nt.value=!0,q(!1);let t=_.value.find(t=>t.id===e);if(!t)return;let n=l.removeContractTemplateFile(_.value,e);if(n.length===_.value.length)return;_.value=n;let{[e]:r,...i}=y.value;y.value=i,J(n,``),h(`file-remove`,l.cloneContractTemplateFiles([t])[0]);let a=t.template.signingPlacements??[];return a.forEach(e=>h(`signing-placement-remove`,u.cloneSigningPlacement(e))),a.some(e=>e.id===C.value)&&h(`signing-placement-select`,void 0),v.value===e&&vr(l.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),l.cloneContractTemplateFiles([t])[0]}function ga(e){if(B.value||_.value.length<=1)return;let t=_.value.find(t=>t.id===e);if(!t)return;let n=t.template.signingPlacements?.length??0;Se.Modal.confirm({title:`删除合同文件`,content:n?`“${t.name}”包含 ${n} 个签署位置,删除后文件内正文、变量和签署位置都会移除,是否继续?`:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{ha(e)}})}function _a(e,t){if(B.value)return;nt.value=!0,q(!1);let n=_.value.findIndex(t=>t.id===e),r=l.moveContractTemplateFile(_.value,e,t),i=r.findIndex(t=>t.id===e),a=r[i];if(!(!a||n===i))return _.value=r,J(r,``),h(`file-move`,l.cloneContractTemplateFiles([a])[0],n,i),l.cloneContractTemplateFiles([a])[0]}function va(){q(!1);let e=Ea(g.value?_.value.flatMap(e=>{let t=i.validateTemplateValue(e.template,{maxPages:Pn.value});return[...y.value[e.id]??[],...t].map(t=>({...t,fileId:e.id}))}):[...b.value,...i.validateTemplateValue(K(),{maxPages:Pn.value})]);return E.value=e,T.value=!0,h(`validate`,e),e}function ya(e){if(e.fileId&&e.fileId!==v.value){pa(e.fileId),(0,f.nextTick)(()=>ya({...e,fileId:void 0}));return}let n=t.resolvePageDecorationValidationPath(e);if(n){A.value=!0,(0,f.nextTick)(()=>qe.value?.focusField(n));return}if(e.type===`signing-placement`){let t=H.value.find(t=>t.id===e.id);if(t){ia(t.pageId),Q(t.id);return}}if(e.variableKey){na(e.variableKey);return}if(e.pageId){aa(e.pageId);return}let r=x.value.variables.find(t=>t.id===e.id||t.key===e.id);if(r){ta(r);return}x.value.pages.some(t=>t.id===e.id)&&ia(e.id)}function ba(e){return t.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`signing-placement`?`签署位置`:e.type===`variable`?`变量`:`字段`}function xa(){return mr(),i.exportTemplateValue(K())}function Sa(){let e=q(!1),t=g.value?_.value:l.replaceContractTemplateFile(_.value,v.value,e);return l.exportContractTemplateFiles(t)}function Ca(e){let t=K();try{let n=i.collectTemplateLocationRuleExportErrors(t,b.value);if(n.length)throw new r.ContractTemplateLocationRuleBuildError(n);return e(t)}catch(e){throw e instanceof r.ContractTemplateLocationRuleBuildError&&(E.value=[...e.errors],T.value=!0,h(`validate`,[...e.errors])),e}}function wa(e){return Ca(t=>r.buildSigningPlacementLocationRules(t,e))}function Ta(e){return Ca(t=>r.buildContractLocationRules(t,e))}function Ea(e){let t=new Set;return e.filter(e=>{let n=`${e.fileId??``}|${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return t.has(n)?!1:(t.add(n),!0)})}function Da(e){E.value=[...e],T.value=!0}function Oa(){E.value=[],T.value=!1}function ka(){D.get(U.value?.id??w.value)?.focus()}function Aa(e){lr(e)&&X({type:`set-text-align`,value:e})}function ja(e){(e===`paragraph`||ur(e))&&X({type:`apply-block-style`,format:e})}function Ma(e){let t=fr(e);t&&(X({type:`set-font-size`,value:t}),j.value=``)}function Na(e){let t=String(e||``).trim();if(!t){X({type:`unset-font-family`});return}X({type:`set-font-family`,value:t})}function Pa(e){Fa(e.target?.value??``)}function Fa(e){let t=e.trim();t&&X({type:`set-color`,value:t})}function Ia(e){j.value=e}function La(){j.value.trim()&&Ma(j.value)}function Ra(e){e.key===`Enter`&&(e.preventDefault(),La())}function za(e){e||(La(),j.value=``)}function Ba(e){if(B.value)return;w.value=e.pageId,M.value=!1,N.value=!1,I.value=void 0,L.value=void 0,Vt.value=!1,Ht.value=``;let t=xe.clampContextMenuPosition(e.clientX,e.clientY,304,300);P.value={pageId:e.pageId,x:t.x,y:t.y,hasSelection:e.hasSelection,selectionWidth:e.selectionWidth,leadingText:e.leadingText},(0,f.nextTick)(()=>{Va(),Ft.value?.focusFirstButton()})}function Va(){let e=Ft.value?.getMenuElement(),t=P.value;if(!e||!t)return;let n=xe.clampContextMenuToElement(t.x,t.y,e);P.value={...t,x:n.x,y:n.y}}function Ha(e){if(B.value)return;w.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,L.value=void 0;let t=xe.clampContextMenuPosition(e.clientX,e.clientY,248,400);I.value={...e,x:t.x,y:t.y},(0,f.nextTick)(()=>{let e=Ut.value?.getMenuElement(),t=I.value;if(e&&t){let n=xe.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}Ut.value?.focusFirstItem()})}function Ua(e){if(B.value)return;w.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,I.value=void 0,Gt.value=e.image.width,Kt.value=e.image.height,S.value=``,C.value&&Q();let t=xe.clampContextMenuPosition(e.clientX,e.clientY,288,196);L.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,f.nextTick)(()=>{Wa(),Wt.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function Wa(){let e=Wt.value?.getMenuElement(),t=L.value;if(!e||!t)return;let n=xe.clampContextMenuToElement(t.x,t.y,e);L.value={...t,x:n.x,y:n.y}}function Ga(){let e=L.value;!e||B.value||(D.get(e.pageId)?.updateSelectedContentImage({width:c.normalizeContractImageDimension(Gt.value),height:c.normalizeContractImageDimension(Kt.value)})&&(R.value=`已更新图片尺寸`),$())}function Ka(){let e=L.value;!e||B.value||(D.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(R.value=`已恢复图片自然尺寸`),$())}function qa(e){e.type===`table`?Ha(e):e.type===`image`?Ua(e):Ba(e)}function $(){P.value=void 0,I.value=void 0,L.value=void 0,Vt.value=!1,Ht.value=``}function Ja(){M.value=!1,N.value=!1,Et.value=!1,Ot.value=!1,kt.value=!1}function Ya(){Ja(),St.value=!St.value,(0,f.nextTick)(()=>Bi(()=>Ke.value?.focusChromeToggle()))}let Xa=[`.gd-contract-template-designer__context-menu`,`.gd-contract-template-designer__bubble-menu`,`.gd-contract-template-designer__bubble-menu-popup`].join(`,`);function Za(){let e=B.value||zt.value||Lt.value||tn.value||A.value||ft.value,t=w.value,n=e?void 0:D.get(t)?.getSelectionViewportRect();if(!n){F.value=void 0;return}let r=n.top-40-ze,i=r>=12?r:n.bottom+ze,a=(n.left+n.right)/2-380/2,o=xe.clampContextMenuPosition(a,i,380,40);F.value={pageId:t,x:o.x,y:o.y},(0,f.nextTick)(()=>Qa(n))}function Qa(e){let t=It.value?.getMenuElement(),n=F.value;if(!t||!n)return;let r=t.getBoundingClientRect(),i=e.top-r.height-ze,a=i>=12?i:e.bottom+ze,o=(e.left+e.right)/2-r.width/2,s=xe.clampContextMenuToElement(o,a,t);F.value={...n,x:s.x,y:s.y}}function $a(){let e=F.value?.pageId??w.value,t=D.get(e)?.getSelectionRange();Rt=t?{pageId:e,...t}:void 0,Lt.value=!0,F.value=void 0}function eo(e){if(!Lt.value)return;let t=Rt,n=D.get(e)?.getSelectionRange();t&&n&&t.pageId===e&&t.from===n.from&&t.to===n.to||(Lt.value=!1,Rt=void 0)}function to(){!F.value||Bt!==void 0||(Bt=requestAnimationFrame(()=>{Bt=void 0,Za()}))}function no(){zt.value&&(zt.value=!1,Za())}function ro(){$(),to()}function io(e,t){D.get(F.value?.pageId??w.value)?.requestTextContextMenu(e,t)}function ao(e){let t=e.target instanceof HTMLElement?e.target:null;t?.closest(`.ProseMirror`)&&(zt.value=!0,F.value=void 0),!(!P.value&&!I.value&&!L.value&&!F.value)&&(t?.closest(Xa)||($(),F.value&&$a()))}function oo(e){(e.target instanceof Element?e.target:null)?.closest(Xa)||($(),to())}function so(e){let t=Ue.value;if(!t||typeof document>`u`)return!1;let n=e.target instanceof Node?e.target:void 0,r=document.activeElement;return!!(n&&t.contains(n)||r&&t.contains(r)||n instanceof Element&&n.closest(`.gd-contract-template-designer__context-menu`))}function co(e){if(e.key!==`Escape`||!A.value||typeof document>`u`)return;let t=Ue.value?.querySelector(`.gd-contract-template-designer__page-decorations-studio`);if(!t)return;let n=e.target instanceof Element?e.target:null,r=document.activeElement instanceof Element?document.activeElement:null,i=!!(n?.closest(Yt)||r?.closest(Yt)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){Jt.add(e);return}!tn.value&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),sa())}function lo(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!nn.value||!so(e))return;e.preventDefault(),Gn();return}if(e.key===`Escape`){if(Jt.has(e)){Jt.delete(e);return}let t=tn.value,n=t||A.value;if(!t&&A.value&&sa(),$(),Ja(),n&&e.stopPropagation(),!n){if(F.value){$a(),e.stopPropagation();return}Ct.value?Hi():k.value=!1}}}function uo(e,t){e===w.value&&t.selectedContentImage&&(S.value=``,C.value&&Q()),e===w.value&&(eo(e),Za());let n=Dt.value[e];n&&be.isSameEditorState(n,t)||(Dt.value={...Dt.value,[e]:t})}function fo(e=qt.value.rows,t=qt.value.cols){X({type:`insert-table`,options:{rows:Math.min(10,Math.max(1,Math.round(Number(e)||3))),cols:Math.min(10,Math.max(1,Math.round(Number(t)||3))),withHeaderRow:!!qt.value.withHeaderRow}}),M.value=!1,$()}let po={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function mo(e){let t=I.value;if(!t)return;let n=()=>{X(e,t.pageId),$()},r=po[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),Se.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>D.get(t.pageId)?.focus()})}function ho(e){let t=Ut.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=I.value?.pageId;$(),D.get(t??``)?.focus();return}let n=Array.from(t.querySelectorAll(`button:not(:disabled)`));if(!n.length)return;if(e.key===`Home`||e.key===`End`){e.preventDefault(),n[e.key===`Home`?0:n.length-1]?.focus();return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let r=(Math.max(0,n.indexOf(document.activeElement))+(e.key===`ArrowUp`||e.key===`ArrowLeft`?-1:1)+n.length)%n.length;e.preventDefault(),n[r]?.focus()}function go(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=P.value?.pageId;$(),D.get(t??``)?.focus()}function _o(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=L.value?.pageId;$(),D.get(t??``)?.focus()}function vo(e){X({type:e}),N.value=!1,$()}return Be({getValue:ca,setValue:la,getFiles:ua,setFiles:da,addFile:fa,selectFile:pa,renameFile:ma,removeFile:ha,moveFile:_a,validate:va,exportTemplate:xa,exportFiles:Sa,getSubmitData:Ki,clearTemplate:Qi,saveDraftCache:Gn,loadDraftCache:Kn,clearDraftCache:qn,getDraftCacheStatus:br,insertVariable:yi,insertImage:Xr,focus:ka,openPreview:Wi,closePreview:Gi,openSubmitDataViewer:qi,closeSubmitDataViewer:Ji,getVariableData:Yi,openVariableDataViewer:Xi,closeVariableDataViewer:Zi,setServerValidationErrors:Da,clearValidationErrors:Oa,scrollToVariable:na,scrollToSigningPlacement:ra,scrollToPage:aa,setZoom:Pi,resetZoom:Fi,getZoom:Ii,fitWidth:Ai,insertSigningPlacement:Ln,selectSigningPlacement:Q,buildLocationRules:wa,buildContractLocationRules:Ta}),(e,t)=>((0,f.openBlock)(),(0,f.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Ue,class:(0,f.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":p.disabled,"is-readonly":B.value,"is-fullscreen":k.value,"is-immersive":Ct.value}]),style:(0,f.normalizeStyle)(He.value)},[g.value?((0,f.openBlock)(),(0,f.createBlock)(ge.default,{key:0,files:_.value,"active-file-id":v.value,readonly:B.value,onSelect:pa,onAdd:t[0]||=e=>fa(),onRename:ma,onRemove:ga,onMove:_a},null,8,[`files`,`active-file-id`,`readonly`])):(0,f.createCommentVNode)(``,!0),(0,f.createElementVNode)(`div`,{class:(0,f.normalizeClass)([`gd-contract-template-designer__layout`,{"is-sidebar-collapsed":bt.value,"is-inspector-collapsed":xt.value}])},[(0,f.createVNode)(_e.default,{collapsed:bt.value,pages:x.value.pages,variables:x.value.variables,"decoration-variable-keys":In.value,"signing-placement-navigation-items":un.value,"active-page-id":w.value,"selected-variable-key":S.value,"selected-signing-placement-id":C.value,"normalized-max-pages":Pn.value,"page-limit-reached":Fn.value,"selected-page":U.value,"selected-page-size":fn.value,"normalized-page-size-options":On.value,"page-size-options":kn.value,"selected-page-size-option-value":An.value,"show-signing-placement-tools":m.showSigningPlacementTools,readonly:B.value,"get-page-size":Z,"get-page-signing-placements":Er,onToggle:t[1]||=e=>bt.value=!bt.value,onAddPage:Pr,onActivatePage:ia,onDuplicatePage:Fr,onRemovePage:Lr,onPatchPageFormat:Mr,onScrollToVariable:ta,onScrollToSigningPlacement:ra},null,8,[`collapsed`,`pages`,`variables`,`decoration-variable-keys`,`signing-placement-navigation-items`,`active-page-id`,`selected-variable-key`,`selected-signing-placement-id`,`normalized-max-pages`,`page-limit-reached`,`selected-page`,`selected-page-size`,`normalized-page-size-options`,`page-size-options`,`selected-page-size-option-value`,`show-signing-placement-tools`,`readonly`]),(0,f.createElementVNode)(`main`,{ref_key:`workspaceElement`,ref:Ge,class:`gd-contract-template-designer__workspace`},[(0,f.withDirectives)((0,f.createElementVNode)(`div`,{id:Ye,class:`gd-contract-template-designer__workspace-chrome`},[(0,f.createVNode)(re.default,{ref_key:`workspaceHeaderElement`,ref:Ke,summary:hn.value,"draft-cache-status-text":yn.value,"draft-cache-status-class":bn.value,"show-draft-cache-status":p.showDraftCacheStatus,"show-clear-button":p.showClearButton,"show-submit-data-viewer":p.showSubmitDataViewer,"show-variable-data-viewer":p.showVariableDataViewer,readonly:B.value,"zoom-percent":xn.value,"zoom-out-disabled":O.value<=ke,"zoom-in-disabled":O.value>=Ae,"is-fullscreen":k.value,immersive:Ct.value,"page-decorations-open":A.value,"page-decorations-studio-id":Je,"page-decorations-preset-label":gn.value,"page-decorations-enabled-count":vn.value,"page-decorations-enabled-states":_n.value,"chrome-controls-id":Ye,onZoomOut:Ri,onZoomIn:Li,onFitWidth:(0,f.unref)(Ai),onResetZoom:Fi,onToggleFullscreen:zi,onToggleImmersive:Ui,onClear:$i,onValidate:va,onPreview:Wi,onSubmitData:qi,onVariableData:Xi,onTogglePageDecorations:oa,onToggleChrome:Ya},null,8,[`summary`,`draft-cache-status-text`,`draft-cache-status-class`,`show-draft-cache-status`,`show-clear-button`,`show-submit-data-viewer`,`show-variable-data-viewer`,`readonly`,`zoom-percent`,`zoom-out-disabled`,`zoom-in-disabled`,`is-fullscreen`,`immersive`,`page-decorations-open`,`page-decorations-preset-label`,`page-decorations-enabled-count`,`page-decorations-enabled-states`,`onFitWidth`]),(0,f.createVNode)(ie.default,{"variable-insert-popover-open":Ot.value,"onUpdate:variableInsertPopoverOpen":t[2]||=e=>Ot.value=e,"image-insert-popover-open":kt.value,"onUpdate:imageInsertPopoverOpen":t[3]||=e=>kt.value=e,"image-insert-url":At.value,"onUpdate:imageInsertUrl":t[4]||=e=>At.value=e,"image-insert-width":jt.value,"onUpdate:imageInsertWidth":t[5]||=e=>jt.value=e,"image-insert-height":Mt.value,"onUpdate:imageInsertHeight":t[6]||=e=>Mt.value=e,"table-insert-popover-open":M.value,"onUpdate:tableInsertPopoverOpen":t[7]||=e=>M.value=e,"table-actions-popover-open":N.value,"onUpdate:tableActionsPopoverOpen":t[8]||=e=>N.value=e,"table-insert-draft":qt.value,"onUpdate:tableInsertDraft":t[9]||=e=>qt.value=e,"toolbar-more-open":Et.value,"onUpdate:toolbarMoreOpen":t[10]||=e=>Et.value=e,readonly:B.value,"editor-state":G.value,"current-block-format":tr.value,"block-format-options":Tn,"font-family-select-options":Cn.value,"current-editor-font-family":nr.value,"font-size-preset-options":or.value,"current-editor-font-size":rr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":ir.value,"body-control-tool-items":Nn.value,"page-limit-reached":Fn.value,"normalized-max-pages":Pn.value,"image-processing":Pt.value,"image-insert-error":Nt.value,onCommand:t[11]||=e=>X(e),onPatchBlockFormat:ja,onPatchFontFamily:Na,onPatchFontSize:Ma,onPatchColor:Pa,onPatchTextAlign:Aa,onInsertVariable:ei,onOpenImageFile:Zr,onInsertImageUrl:$r,onAddPage:Pr,onInsertTable:fo,onTableAction:vo,onFontSizeSearch:Ia,onFontSizeCommit:La,onFontSizeDropdownChange:za,onFontSizeKeydown:Ra},null,8,[`variable-insert-popover-open`,`image-insert-popover-open`,`image-insert-url`,`image-insert-width`,`image-insert-height`,`table-insert-popover-open`,`table-actions-popover-open`,`table-insert-draft`,`toolbar-more-open`,`readonly`,`editor-state`,`current-block-format`,`font-family-select-options`,`current-editor-font-family`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`current-editor-text-color`,`body-control-tool-items`,`page-limit-reached`,`normalized-max-pages`,`image-processing`,`image-insert-error`])],512),[[f.vShow,!St.value]]),St.value?((0,f.openBlock)(),(0,f.createBlock)((0,f.unref)(Se.Tooltip),{key:0,title:`展开工具区`},{default:(0,f.withCtx)(()=>[(0,f.createElementVNode)(`button`,{ref_key:`workspaceChromeHandleElement`,ref:Xe,type:`button`,class:`gd-contract-template-designer__workspace-chrome-handle`,"aria-label":`展开工具区`,"aria-expanded":!1,"aria-controls":Ye,onClick:Ya},[(0,f.createVNode)((0,f.unref)(we.DownOutlined),{"aria-hidden":`true`})],512)]),_:1})):(0,f.createCommentVNode)(``,!0),Ct.value&&!A.value?((0,f.openBlock)(),(0,f.createElementBlock)(`button`,{key:1,ref_key:`immersiveExitElement`,ref:wt,type:`button`,class:`gd-contract-template-designer__immersive-exit`,"aria-label":`退出沉浸写作`,onClick:Hi},[(0,f.createVNode)((0,f.unref)(we.CompressOutlined),{"aria-hidden":`true`}),t[26]||=(0,f.createElementVNode)(`span`,{class:`gd-contract-template-designer__immersive-exit-label`},`退出沉浸`,-1),t[27]||=(0,f.createElementVNode)(`kbd`,null,`Esc`,-1)],512)):(0,f.createCommentVNode)(``,!0),T.value?((0,f.openBlock)(),(0,f.createElementBlock)(`section`,Te,[(0,f.createVNode)((0,f.unref)(Se.Alert),{type:pn.value?`success`:`error`,message:mn.value,"show-icon":``},null,8,[`type`,`message`]),E.value.length?((0,f.openBlock)(),(0,f.createElementBlock)(`div`,Ee,[((0,f.openBlock)(!0),(0,f.createElementBlock)(f.Fragment,null,(0,f.renderList)(E.value,e=>((0,f.openBlock)(),(0,f.createElementBlock)(`button`,{key:`${e.id}-${e.message}`,type:`button`,class:`gd-contract-template-designer__validation-item`,onClick:t=>ya(e)},[(0,f.createElementVNode)(`span`,null,(0,f.toDisplayString)(e.message),1),(0,f.createElementVNode)(`small`,null,(0,f.toDisplayString)(ba(e)),1)],8,De))),128))])):(0,f.createCommentVNode)(``,!0)])):(0,f.createCommentVNode)(``,!0),(0,f.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:We,class:`gd-contract-template-designer__canvas`},[((0,f.openBlock)(!0),(0,f.createElementBlock)(f.Fragment,null,(0,f.renderList)(x.value.pages,(e,n)=>((0,f.openBlock)(),(0,f.createBlock)(te.default,{key:`${v.value}:${e.id}`,ref_for:!0,ref:t=>xr(e.id,t),page:e,"page-index":n,"page-size":Z(e),"page-decorations":x.value.pageDecorations,"total-pages":x.value.pages.length,variables:x.value.variables,"selected-variable-key":S.value,"signing-placements":m.showSigningPlacementTools?Er(e.id):[],"selected-signing-placement-id":C.value,active:w.value===e.id,readonly:p.readonly,disabled:p.disabled,zoom:O.value,"process-image-file":Yr,onPageUpdate:Tr,onVariableDrop:ni,onVariableSelect:ri,onSigningPlacementDrop:(0,f.unref)(Rn),onSigningPlacementSelect:Or,onSigningPlacementMove:(0,f.unref)(Vn),onSigningPlacementRemove:(0,f.unref)(Wn),onEditorFocus:t[12]||=e=>ia(e,!1),onEditorStateChange:uo,onEditorContextMenu:qa,onWordPaste:Jr,onVariableMoveBlocked:t[13]||=e=>R.value=`变量只能在当前页内移动,跨页移动尚未支持。`},null,8,[`page`,`page-index`,`page-size`,`page-decorations`,`total-pages`,`variables`,`selected-variable-key`,`signing-placements`,`selected-signing-placement-id`,`active`,`readonly`,`disabled`,`zoom`,`onSigningPlacementDrop`,`onSigningPlacementMove`,`onSigningPlacementRemove`]))),128))],512),(0,f.withDirectives)((0,f.createVNode)(ye.default,{ref_key:`pageDecorationsStudioElement`,ref:qe,id:Je,open:A.value,decorations:x.value.pageDecorations,variables:x.value.variables,"font-family-options":Cn.value,readonly:p.readonly,disabled:p.disabled,"active-tab":Tt.value,"onUpdate:activeTab":t[14]||=e=>Tt.value=e,onChange:si,onClose:sa},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[f.vShow,A.value]])],512),(0,f.createVNode)(ve.default,{collapsed:xt.value,readonly:p.readonly,disabled:p.disabled,"show-signing-placement-tools":m.showSigningPlacementTools,"body-control-tool-items":Nn.value,"signing-placement-tools":jn.value,"signing-placements":H.value,"selected-signing-placement":ln.value,"selected-signing-placement-page-size":dn.value,"selected-variable":V.value,variables:x.value.variables,"current-variable-font-family":ar.value,"font-family-select-options":Cn.value,"text-align-options":(0,f.unref)(wn),"border-style-options":En,"object-fit-options":Dn,"selected-variable-width-max":$n.value,"selected-variable-height-max":er.value,"min-font-size":Le,"max-font-size":Re,"default-multiline-rows":(0,f.unref)(3),"resolve-signing-placement-type-icon":(0,f.unref)(he.resolveSigningPlacementTypeIcon),"signing-placement-type-labels":(0,f.unref)(r.SIGNING_PLACEMENT_TYPE_LABELS),onToggle:t[15]||=e=>xt.value=!xt.value,onVariableDragStart:Ei,onInsertVariable:bi,onSigningPlacementDragStart:(0,f.unref)(Bn),onInsertSigningPlacement:(0,f.unref)(zn),onPatchSigningPlacement:(0,f.unref)(Hn),onDuplicateSigningPlacement:t[16]||=e=>(0,f.unref)(Un)(),onRemoveSigningPlacement:t[17]||=e=>(0,f.unref)(Wn)(),onDuplicateVariable:vi,onRemoveVariable:gi,onPatchVariable:ai,onRenameVariable:oi,onPatchStyle:di,onPatchMultiline:mi,onPatchRows:hi,onPatchFontFamily:fi,onPatchFontSize:pi,onPatchTextAlign:ci,onPatchBorderStyle:li,onPatchObjectFit:ui},null,8,[`collapsed`,`readonly`,`disabled`,`show-signing-placement-tools`,`body-control-tool-items`,`signing-placement-tools`,`signing-placements`,`selected-signing-placement`,`selected-signing-placement-page-size`,`selected-variable`,`variables`,`current-variable-font-family`,`font-family-select-options`,`text-align-options`,`selected-variable-width-max`,`selected-variable-height-max`,`default-multiline-rows`,`resolve-signing-placement-type-icon`,`signing-placement-type-labels`,`onSigningPlacementDragStart`,`onInsertSigningPlacement`,`onPatchSigningPlacement`])],2),((0,f.openBlock)(),(0,f.createBlock)(f.Teleport,{to:`body`},[I.value?((0,f.openBlock)(),(0,f.createBlock)(ne.default,{key:0,ref_key:`tableContextMenuElement`,ref:Ut,capabilities:I.value.capabilities,"active-alignment":I.value.activeAlignment,style:(0,f.normalizeStyle)({left:`${I.value.x}px`,top:`${I.value.y}px`}),onExecute:mo,onKeydown:ho},null,8,[`capabilities`,`active-alignment`,`style`])):(0,f.createCommentVNode)(``,!0),L.value?((0,f.openBlock)(),(0,f.createBlock)(se.default,{key:1,ref_key:`imageContextMenuElement`,ref:Wt,width:Gt.value,"onUpdate:width":t[18]||=e=>Gt.value=e,height:Kt.value,"onUpdate:height":t[19]||=e=>Kt.value=e,x:L.value.x,y:L.value.y,readonly:B.value,onRestore:Ka,onApply:Ga,onKeydown:_o},null,8,[`width`,`height`,`x`,`y`,`readonly`])):(0,f.createCommentVNode)(``,!0),P.value?((0,f.openBlock)(),(0,f.createBlock)(ae.default,{key:2,ref_key:`textContextMenuElement`,ref:Ft,"bind-open":Vt.value,"onUpdate:bindOpen":t[20]||=e=>Vt.value=e,"bind-keyword":Ht.value,"onUpdate:bindKeyword":t[21]||=e=>Ht.value=e,x:P.value.x,y:P.value.y,"has-selection":P.value.hasSelection,"editor-state":G.value,"font-size-preset-options":or.value,"current-editor-font-size":rr.value,"editor-font-size-search-value":j.value,"text-align-options":(0,f.unref)(wn),"current-editor-text-color":ir.value,"body-control-tool-items":Nn.value,"text-menu-bindable-variables":Qn.value,"page-limit-reached":Fn.value,"table-insert-draft":qt.value,"variables-count":x.value.variables.length,"resolve-bind-variable-type-label":wi,onCommand:Sr,onClipboard:Cr,onOpenImage:Zr,onAddPage:ti,onInsertVariable:xi,onBindVariable:Ci,onOpenBindPanel:Ti,onKeydown:go,onPatchFontSize:Ma,onPatchTextAlign:Aa,onPatchColor:Fa,onFontSizeSearch:Ia,onFontSizeCommit:La,onFontSizeDropdownChange:za,onFontSizeKeydown:Ra},null,8,[`bind-open`,`bind-keyword`,`x`,`y`,`has-selection`,`editor-state`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`text-align-options`,`current-editor-text-color`,`body-control-tool-items`,`text-menu-bindable-variables`,`page-limit-reached`,`table-insert-draft`,`variables-count`])):(0,f.createCommentVNode)(``,!0),F.value?((0,f.openBlock)(),(0,f.createBlock)(oe.default,{key:3,ref_key:`textBubbleElement`,ref:It,x:F.value.x,y:F.value.y,"editor-state":G.value,"font-size-preset-options":or.value,"current-editor-font-size":rr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":ir.value,"text-align-options":(0,f.unref)(wn),onCommand:X,onPatchFontSize:Ma,onPatchTextAlign:Aa,onPatchColor:Fa,onFontSizeSearch:Ia,onFontSizeCommit:La,onFontSizeDropdownChange:za,onFontSizeKeydown:Ra,onMore:io},null,8,[`x`,`y`,`editor-state`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`current-editor-text-color`,`text-align-options`])):(0,f.createCommentVNode)(``,!0)])),(0,f.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:Ze,class:`gd-contract-template-designer__hidden-file-input`,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif,image/bmp`,tabindex:`-1`,"aria-hidden":`true`,onChange:Qr},null,544),(0,f.createElementVNode)(`span`,Oe,(0,f.toDisplayString)(R.value),1),(0,f.createVNode)(ce.default,{open:ft.value,"onUpdate:open":t[22]||=e=>ft.value=e,"preview-pages":on.value,"preview-file-groups":sn.value,"preview-active-group":cn.value,"preview-snapshot":pt.value,"font-base-url":p.contractFontBaseUrl,onCancel:Gi,onSelectFile:t[23]||=e=>ht.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`,`font-base-url`]),(0,f.createVNode)(le.default,{open:gt.value,"onUpdate:open":t[24]||=e=>gt.value=e,json:_t.value,onCancel:Ji},null,8,[`open`,`json`]),(0,f.createVNode)(ue.default,{open:vt.value,"onUpdate:open":t[25]||=e=>vt.value=e,data:yt.value,"file-name":rn.value?.name,onCancel:Zi},null,8,[`open`,`data`,`file-name`])],6))}});exports.default=p;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./constants.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./types.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./utils/image-url.cjs`),a=require(`./utils/template-renderer.cjs`),o=require(`./composables/use-fit-width-zoom.cjs`),s=require(`./utils/content-image.cjs`),ee=require(`./utils/signing-layout-presets.cjs`),te=require(`./utils/context-variable.cjs`),ne=require(`./DesignerPage.cjs`),re=require(`./TableContextMenu.cjs`),ie=require(`./ContractTemplateDesignerWorkspaceHeader.cjs`),ae=require(`./utils/template-tool-icons.cjs`),oe=require(`./ContractTemplateDesignerToolbar.cjs`),se=require(`./ContractTemplateAuthoringBar.cjs`),ce=require(`./composables/use-template-authoring.cjs`),le=require(`./ContractTemplateTextContextMenu.cjs`),ue=require(`./ContractTemplateTextBubbleMenu.cjs`),de=require(`./ContractTemplateImageContextMenu.cjs`),fe=require(`./ContractTemplatePreviewModal.cjs`),pe=require(`./ContractTemplateSubmitDataModal.cjs`),me=require(`./ContractTemplateVariableDataModal.cjs`),he=require(`./SigningLayoutCustomModal.cjs`),ge=require(`./composables/use-template-draft-cache.cjs`),_e=require(`./composables/use-auto-pagination.cjs`),ve=require(`./composables/use-designer-files.cjs`),c=require(`./composables/use-template-files.cjs`),ye=require(`./composables/use-draft-cache-session.cjs`),be=require(`./ContractTemplateFileBar.cjs`),xe=require(`./ContractTemplateDesignerSidebar.cjs`),Se=require(`./ContractTemplateDesignerInspector.cjs`),Ce=require(`./ContractTemplatePageDecorationsStudio.cjs`),l=require(`./utils/serialize-fingerprint.cjs`),we=require(`./utils/editor-state.cjs`),u=require(`./utils/context-menu-viewport.cjs`);let d=require(`vue`),Te=require(`ant-design-vue`),Ee=require(`@vueuse/core`),De=require(`@ant-design/icons-vue`);var Oe={key:2,class:`gd-contract-template-designer__validation`},ke={key:0,class:`gd-contract-template-designer__validation-list`},Ae=[`onClick`],je={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},Me=.5,Ne=1.5,Pe=.1,Fe=120,Ie=128,Le=108,Re=48,ze=24,Be=10,Ve=48,He=8,f=(0,d.defineComponent)({name:`ProContractTemplateDesigner`,__name:`ProContractTemplateDesigner`,props:{modelValue:{default:void 0},files:{},activeFileId:{},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:760},pageSize:{default:()=>r.DEFAULT_PAGE_SIZE},pageSizeOptions:{},maxPages:{default:20},imageCompression:{type:[Object,Boolean]},imageUpload:{},variableTypes:{default:()=>r.DEFAULT_FIELD_TYPES},signingLayoutPresets:{},showAdvancedChoiceControls:{type:Boolean,default:!1},showBuiltinSelectorControls:{type:Boolean,default:!1},showCustomControls:{type:Boolean,default:!1},defaultVariableStyle:{default:()=>r.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},contractFontBaseUrl:{default:void 0},showSubmitDataViewer:{type:Boolean,default:!0},showVariableDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:ge.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:ge.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:ge.DEFAULT_DRAFT_CACHE_MAX_BYTES},showDraftCacheStatus:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`update:files`,`update:activeFileId`,`files-change`,`file-add`,`file-change`,`file-remove`,`file-move`,`variable-add`,`validate`,`draft-cache-change`,`page-limit`,`image-error`],setup(f,{expose:Ue,emit:We}){let p=f,m=We,Ge=(0,d.computed)(()=>({height:typeof p.height==`number`?`${p.height}px`:p.height})),Ke=(0,d.ref)(),qe=(0,d.ref)(),Je=(0,d.ref)(),Ye=(0,d.ref)(),Xe=(0,d.ref)(),Ze=`gd-contract-template-page-decorations-studio-${(0,d.useId)()}`,Qe=`gd-contract-template-workspace-chrome-${(0,d.useId)()}`,$e=(0,d.ref)(),et=(0,d.ref)(),tt=(0,d.ref)(),nt=``,rt=``,it=(0,d.ref)(!1),h=(0,d.computed)(()=>it.value||Array.isArray(p.files)),at=c.normalizeContractTemplateFiles(p.files,p.modelValue,p.pageSize),ot=c.constrainContractTemplateFiles(at,p.pageSizeOptions),st=h.value?ot.files:at,ct=c.resolveContractTemplateActiveFileId(st,p.activeFileId),g=(0,d.ref)(st),_=(0,d.ref)(ct),lt=st.find(e=>e.id===ct)??st[0],ut=r.normalizeTemplateValue(lt?.template??p.modelValue,p.pageSize),v=(0,d.ref)(r.constrainTemplatePageSizes(ut,p.pageSizeOptions));if(h.value){if(g.value=c.replaceContractTemplateFile(g.value,_.value,v.value),l.serializeFingerprint(g.value)!==l.serializeFingerprint(at)){let e=c.cloneContractTemplateFiles(g.value);nt=l.serializeFingerprint(e),m(`update:files`,e),m(`files-change`,c.cloneContractTemplateFiles(e))}}else p.modelValue&&l.serializeFingerprint(v.value)!==l.serializeFingerprint(ut)&&(rt=l.serializeFingerprint(v.value),m(`update:modelValue`,r.cloneTemplateValue(v.value)),m(`change`,r.cloneTemplateValue(v.value)));let y=(0,d.ref)(``),b=(0,d.ref)(v.value.pages[0]?.id??``),x=(0,d.ref)(!1),S=(0,d.ref)([]),C=new Map,dt=(0,d.ref)(!1),ft=(0,d.ref)(``),w=(0,d.ref)(!1),T=(0,d.ref)(),pt=(0,d.ref)(),mt=(0,d.ref)(``),ht=(0,d.ref)(!1),gt=(0,d.ref)(``),_t=(0,d.ref)(!1),vt=(0,d.ref)({values:{},variables:[]}),E=(0,d.ref)(1),D=(0,d.ref)(!1),yt=(0,d.ref)(!1),bt=(0,d.ref)(!1),O=(0,d.ref)(!1),k=(0,d.ref)(!1),xt=(0,d.ref)(),A=(0,d.ref)(!1),St=(0,d.ref)(`header`),Ct=(0,d.ref)(!1),wt=(0,d.ref)({}),j=(0,d.ref)(``),M=(0,d.ref)(!1),N=(0,d.ref)(!1),Tt=(0,d.ref)(!1),Et=(0,d.ref)(!1),Dt=(0,d.ref)(!1),Ot=(0,d.ref)(!1),kt=(0,d.ref)(!1),At=(0,d.ref)(``),jt=(0,d.ref)(),Mt=(0,d.ref)(),Nt=(0,d.ref)(``),Pt=(0,d.ref)(!1),P=(0,d.ref)(),Ft=(0,d.ref)(),F=(0,d.ref)(),It=(0,d.ref)(),Lt=(0,d.ref)(!1),Rt,zt=(0,d.ref)(!1),Bt,Vt=(0,d.ref)(!1),Ht=(0,d.ref)(``),I=(0,d.ref)(),Ut=(0,d.ref)(),L=(0,d.ref)(),Wt=(0,d.ref)(),Gt=(0,d.ref)(),Kt=(0,d.ref)(),R=(0,d.ref)(``),z=(0,d.ref)(ge.createDraftCacheStatus(`idle`,`暂无本地草稿`)),qt=(0,d.ref)({rows:3,cols:3,withHeaderRow:!0}),Jt=new WeakSet,Yt=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),Xt,Zt,Qt=!1,$t=!1,en,B=(0,d.computed)(()=>p.readonly||p.disabled),{panel:tn,query:nn,replacement:rn,matchCase:an,matches:on,currentIndex:sn,currentMatch:cn,feedback:ln,highlightQuery:un,open:dn,close:fn,navigate:pn,replaceCurrent:mn,replaceAll:hn,insertSnippet:gn,handleKeydown:_n}=ce.useTemplateAuthoring({pages:()=>v.value.pages,fileId:()=>_.value,readonly:()=>B.value,root:()=>Ke.value,pageRefs:C,activatePage:ia,beforeOpen:()=>{$(),Ka(),O.value=!1},focusPanel:()=>tt.value?.focusPanel(),focusTrigger:e=>tt.value?.focusTrigger(e),command:Z}),vn=(0,d.computed)(()=>!!(P.value||tn.value||I.value||L.value||M.value||N.value||Ct.value||Tt.value||Et.value||Dt.value||Ot.value||kt.value)),yn=(0,d.computed)(()=>!!p.enableDraftCache&&!B.value),bn=(0,d.computed)(()=>g.value.find(e=>e.id===_.value)??g.value[0]),xn=(0,d.computed)(()=>T.value?r.buildTemplatePreviewPages(T.value):[]),Sn=(0,d.computed)(()=>(pt.value??[]).map(e=>({file:e,pages:r.buildTemplatePreviewPages(e.template)}))),Cn=(0,d.computed)(()=>Sn.value.find(e=>e.file.id===mt.value)??Sn.value[0]),V=(0,d.computed)(()=>v.value.pages.find(e=>e.id===b.value)??v.value.pages[0]),wn=(0,d.computed)(()=>r.resolvePageSize(V.value?.pageSize,v.value.pageSize)),Tn=(0,d.computed)(()=>x.value&&S.value.length===0),En=(0,d.computed)(()=>x.value?Tn.value?`校验通过,正文变量与变量配置一致`:`发现 ${S.value.length} 个校验问题`:``),Dn=(0,d.computed)(()=>{let e=V.value?.title||`合同正文`;return`${h.value&&bn.value?`${bn.value.name} · `:``}${e} · ${wn.value.label} · 共 ${v.value.pages.length} 页`}),On=(0,d.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[t.resolvePageDecorationPreset(v.value.pageDecorations)]),kn=(0,d.computed)(()=>{let e=t.normalizePageDecorations(v.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),An=(0,d.computed)(()=>Object.values(kn.value).filter(Boolean).length),jn=(0,d.computed)(()=>{switch(z.value.type){case`saved`:return`草稿已缓存 ${ge.formatDraftCacheSavedAt(z.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),Mn=(0,d.computed)(()=>({"is-success":z.value.type===`saved`||z.value.type===`restored`,"is-warning":z.value.type===`too-large`,"is-error":z.value.type===`unavailable`||z.value.type===`read-failed`||z.value.type===`write-failed`})),Nn=(0,d.computed)(()=>`${Math.round(E.value*100)}%`),Pn=(0,d.computed)(()=>e.resolveFontFamilyOptions(p.fontFamilies,p.fontFamilyMode)),Fn=(0,d.computed)(()=>Pn.value.map(e=>({label:e.label,value:e.value}))),In=e.DEFAULT_TEXT_ALIGN_OPTIONS,Ln=[...e.CONTRACT_BLOCK_STYLES.map(e=>({label:e.label,value:e.format}))],Rn=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],zn=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],Bn=(0,d.computed)(()=>r.normalizePageSizeOptions(p.pageSizeOptions)),Vn=(0,d.computed)(()=>Bn.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:r.getPageSizeKey(e)}))),Hn=(0,d.computed)(()=>r.getPageSizeKey(wn.value)),Un=(0,d.computed)(()=>p.draftCacheKey),H=(0,d.computed)(()=>v.value.variables.find(e=>e.key===y.value)),Wn=(0,d.computed)(()=>{let e=[...p.variableTypes,...p.showAdvancedChoiceControls?r.DEFAULT_ADVANCED_CHOICE_FIELD_TYPES:[],...p.showBuiltinSelectorControls?r.DEFAULT_BUILTIN_SELECTOR_FIELD_TYPES:[],...p.showCustomControls?r.DEFAULT_CUSTOM_FIELD_TYPES:[]].filter(e=>n.isContractTemplateFieldType(e?.type));return Array.from(new Map(e.map(e=>[e.type,e])).values())}),Gn=(0,d.computed)(()=>{let e=[...ee.SIGNING_LAYOUT_PRESET_KEYS.map(e=>ee.SIGNING_LAYOUT_PRESETS[e]),...(p.signingLayoutPresets??[]).filter(e=>!!e?.key)];return Array.from(new Map(e.map(e=>[e.key,e])).values())}),Kn=(0,d.computed)(()=>Wn.value.map(e=>({...e,icon:ae.resolveFieldTypeIcon(e.type),group:e.type===`select`||e.type===`radio`?`advanced-choice`:e.type.endsWith(`-selector`)?`builtin-selector`:e.type===`custom`?`custom`:`basic`}))),U=(0,d.computed)(()=>r.normalizeContractTemplateMaxPages(p.maxPages)),qn=(0,d.computed)(()=>v.value.pages.length>=U.value),Jn=(0,d.computed)(()=>{let e=r.collectTemplateValueVariableKeys(v.value);return Array.from(t.collectPageDecorationVariableKeys(v.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:W}=_e.useAutoPagination({templateValue:v,readonlyState:B,isAutoPaginating:dt,pendingPaginationPageId:ft,activePageId:b,normalizedMaxPages:U,pageRefs:C,syncPageEditors:K,commitBodyChange:jr,getPageSize:Nr,notifyPageLimit:Fr}),{saveDraftCache:Yn,loadDraftCache:Xn,clearDraftCache:Zn,restoreDraftCacheIfNeeded:Qn,stopDraftCacheTimer:$n,restartDraftCacheTimer:er,resetDraftFingerprint:tr}=ye.useDraftCacheSession({draftCacheWritable:yn,multipleFilesMode:h,filesValue:g,activeFileIdValue:_,templateValue:v,draftCacheKey:Un,draftCacheInterval:()=>p.draftCacheInterval,draftCacheMaxBytes:()=>p.draftCacheMaxBytes,pageSize:()=>p.pageSize,pageSizeOptions:()=>p.pageSizeOptions,syncActiveFileSnapshot:q,syncPageEditors:K,setActiveFileId:Y,emitFilesChange:J,commit:X,updateDraftCacheStatus:Sr,scheduleAutoPaginate:W,activePageId:b,selectedVariableKey:y}),nr=(0,d.computed)(()=>{let e=Ht.value.trim().toLowerCase(),t=v.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),rr=(0,d.computed)(()=>Math.max(Re,wn.value.width-Ie)),ir=(0,d.computed)(()=>Math.max(ze,wn.value.height-Le)),G=(0,d.computed)(()=>wt.value[b.value]??fr()),ar=(0,d.computed)(()=>G.value.hasMixedBlockFormats?void 0:G.value.currentHeadingLevel??`paragraph`),or=(0,d.computed)(()=>G.value.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),sr=(0,d.computed)(()=>G.value.fontSize??r.DEFAULT_FIELD_STYLE.fontSize??14),cr=(0,d.computed)(()=>G.value.textColor||r.DEFAULT_FIELD_STYLE.color||`#1f2937`),lr=(0,d.computed)(()=>H.value?.style?.fontFamily||r.DEFAULT_FIELD_STYLE.fontFamily||e.DEFAULT_CONTRACT_FONT_FAMILY),ur=(0,d.computed)(()=>{let t=e.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),n=gr(sr.value),r=gr(j.value),i=new Map;return r&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),n&&!e.DEFAULT_FONT_SIZE_PRESETS.includes(n)&&i.set(n,{label:r===n?`使用 ${n}px`:`${n}px`,value:n}),[...Array.from(i.values()),...t]});(0,d.watch)(()=>p.modelValue,e=>{if(!e||h.value)return;let t=r.normalizeTemplateValue(e,p.pageSize),n=r.constrainTemplatePageSizes(t,p.pageSizeOptions),i=l.serializeFingerprint(n)!==l.serializeFingerprint(v.value),a=l.serializeFingerprint(n),o=a===rt;o&&(rt=``),(i||!o)&&(v.value=n,g.value=c.replaceContractTemplateFile(g.value,_.value,n),b.value=n.pages[0]?.id??``,y.value=``,W(b.value)),l.serializeFingerprint(n)!==l.serializeFingerprint(t)&&(rt=a,m(`update:modelValue`,r.cloneTemplateValue(n)),m(`change`,r.cloneTemplateValue(n)))},{deep:!0}),(0,d.watch)(()=>p.files,e=>{if(!Array.isArray(e))return;let t=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),n=c.constrainContractTemplateFiles(t,p.pageSizeOptions).files,r=l.serializeFingerprint(n),i=l.serializeFingerprint(g.value);r===nt&&(nt=``);let a=c.resolveContractTemplateActiveFileId(n,p.activeFileId||_.value);if(r===i?a!==_.value&&Y(a,{syncCurrent:!1,shouldEmit:!1}):(g.value=n,Y(a,{syncCurrent:!1,shouldEmit:!1,forceRefresh:!0})),r!==l.serializeFingerprint(t)){let e=c.cloneContractTemplateFiles(n);nt=l.serializeFingerprint(e),m(`update:files`,e),m(`files-change`,c.cloneContractTemplateFiles(e))}},{deep:!0}),(0,d.watch)(()=>p.activeFileId,e=>{!h.value||!e||e===_.value||Y(e,{syncCurrent:!0,shouldEmit:!1})});function dr(e,t){let n=l.serializeFingerprint(g.value);q(!1);let i=c.normalizeContractTemplateFiles(g.value,void 0,e),{files:a}=c.constrainContractTemplateFiles(i,t),o=l.serializeFingerprint(a)!==n,s=a.find(e=>e.id===_.value);return s&&l.serializeFingerprint(s.template)!==l.serializeFingerprint(v.value)&&(v.value=r.cloneTemplateValue(s.template)),o&&(x.value=!1,S.value=[],J(a,``)),o}(0,d.watch)([()=>p.pageSize,()=>p.pageSizeOptions],([e,t])=>{if(h.value){dr(e,t),W(b.value);return}let n=r.normalizeTemplateValue(v.value,e),i=r.constrainTemplatePageSizes(n,t);l.serializeFingerprint(i)!==l.serializeFingerprint(v.value)&&X(i),W(b.value)},{deep:!0}),(0,d.watch)(U,()=>{W(v.value.pages[0]?.id)}),(0,d.watch)(B,e=>{e&&($(),M.value=!1,N.value=!1)}),(0,d.watch)(b,()=>{F.value=void 0}),(0,d.watch)([vn,A,w],()=>{Ya()}),(0,d.watch)(()=>[p.enableDraftCache,Un.value,p.draftCacheInterval,B.value],()=>{tr(),er()}),(0,d.watch)(D,e=>{if(!(typeof document>`u`)){if(e){Xt=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=Xt??``,Xt=void 0}}),(0,d.onMounted)(()=>{Qn(),er(),W(b.value),window.addEventListener(`pointerdown`,ro,!0),window.addEventListener(`pointerup`,eo),window.addEventListener(`keydown`,oo,!0),window.addEventListener(`keydown`,so),window.addEventListener(`resize`,to),window.addEventListener(`scroll`,io,!0)}),(0,d.onBeforeUnmount)(()=>{vr(),Qt=!0,D.value&&typeof document<`u`&&(document.body.style.overflow=Xt??``),window.removeEventListener(`pointerdown`,ro,!0),window.removeEventListener(`pointerup`,eo),window.removeEventListener(`keydown`,oo,!0),window.removeEventListener(`keydown`,so),window.removeEventListener(`resize`,to),window.removeEventListener(`scroll`,io,!0),Bt!==void 0&&cancelAnimationFrame(Bt),$n()});function fr(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:e.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:r.DEFAULT_FIELD_STYLE.fontSize??14,textColor:r.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``,hasMixedBlockFormats:!1}}function pr(e){return e===`left`||e===`center`||e===`right`}function mr(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function hr(e,t=sr.value){let n=Number(e);return Number.isFinite(n)?Math.min(Ve,Math.max(Be,Math.round(n))):t}function gr(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Ve,Math.max(Be,Math.round(n)))}function K(e=v.value){return{...e,pages:e.pages.map(e=>{let t=C.get(e.id);return{...e,contentHtml:t?.getHTML()??e.contentHtml,contentJson:t?.getJSON()??e.contentJson}})}}function _r(){$t=!1,en&&=(clearTimeout(en),void 0)}function vr(){let e=$t;_r(),e&&xr()}function yr(){$t=!0,en&&clearTimeout(en),en=setTimeout(()=>{en=void 0,!(!$t||Qt)&&($t=!1,xr())},Fe)}function br(e){let t=v.value.pages,n=t.findIndex(t=>t.id===e.id);if(n<0)return;let r=t[n];if(r.contentHtml===e.contentHtml&&r.contentJson===e.contentJson&&r.title===e.title&&r.pageSize===e.pageSize)return;let i=t.slice();i[n]=e,v.value={...v.value,pages:i}}function xr(){let e=K(),t=r.syncTemplateVariablesWithPages(e);y.value&&!t.variables.some(e=>e.key===y.value)&&(y.value=``),X(t)}function q(e=!1){vr();let t=r.cloneTemplateValue(K());if(!h.value)return t;let n=g.value.find(e=>e.id===_.value)?.template,i=l.serializeFingerprint(n)!==l.serializeFingerprint(t),a=c.replaceContractTemplateFile(g.value,_.value,t);return g.value=a,i&&e&&J(a),t}function J(e,t=_.value){if(!h.value)return;let n=c.cloneContractTemplateFiles(e);g.value=n,nt=l.serializeFingerprint(n),m(`update:files`,c.cloneContractTemplateFiles(n)),m(`files-change`,c.cloneContractTemplateFiles(n));let r=n.find(e=>e.id===t);r&&m(`file-change`,c.cloneContractTemplateFiles([r])[0])}function Y(e,t={}){let{syncCurrent:n,shouldEmit:i,forceRefresh:a}=ve.resolveSetActiveFileIdOptions(t),o=c.resolveContractTemplateActiveFileId(g.value,e),s=o!==_.value;if(n?q(!0):_r(),!s&&!a)return;let ee=g.value.find(e=>e.id===o);ee&&(_.value=o,v.value=r.cloneTemplateValue(ee.template),y.value=``,b.value=v.value.pages[0]?.id??``,wt.value={},C.clear(),ft.value=``,x.value=!1,S.value=[],w.value=!1,T.value=void 0,pt.value=void 0,tr(),i&&s&&m(`update:activeFileId`,o),n&&s&&yn.value&&Yn(),(0,d.nextTick)(()=>{W(b.value)}))}function X(e){_r();let t=r.normalizeTemplateValue(e,p.pageSize),n=r.constrainTemplatePageSizes(t,p.pageSizeOptions);return v.value=n,x.value=!1,S.value=[],h.value?J(c.replaceContractTemplateFile(g.value,_.value,n)):(g.value=c.replaceContractTemplateFile(g.value,_.value,n),rt=l.serializeFingerprint(n),m(`update:modelValue`,r.cloneTemplateValue(n)),m(`change`,r.cloneTemplateValue(n))),n}function Sr(e,t=e.type!==`unchanged`){z.value=e,t&&m(`draft-cache-change`,{...e})}function Cr(){return{...z.value}}function wr(e,t){t?C.set(e,t):C.delete(e)}function Tr(e){$(),Dt.value=!1,Z({type:`insert-signing-layout`,preset:ee.isSigningLayoutPresetKey(e.key)?e.key:void 0,options:e.options})}function Er(e){$(),Z({type:`insert-signing-layout`,options:e})}function Dr(){Dt.value=!1,kt.value=!0}function Or(e){$(),Ot.value=!1,Z({type:`insert-signing-mark`,mark:{markType:e}})}function Z(e,t=V.value?.id??b.value){B.value||C.get(t)?.runCommand(e)}function kr(e){Z(e),$()}function Ar(e){let t=P.value?.pageId;t&&(C.get(t)?.focus(),R.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function jr(e){let t=X(r.syncTemplateVariablesWithPages(e));return y.value&&!t.variables.some(e=>e.key===y.value)&&(y.value=``),t}function Mr(e){br(e),yr(),W(e.id)}function Nr(e){return r.resolvePageSize(e?.pageSize,v.value.pageSize)}function Pr(e){if(B.value||!V.value)return;let t=Bn.value.find(t=>r.getPageSizeKey(t)===e);if(!t)return;let n=V.value.id,i=r.resolvePageSize(t,v.value.pageSize);X({...v.value,pages:v.value.pages.map(e=>e.id===n?{...e,pageSize:i}:e)}),W(n)}function Fr(e){let t=U.value;R.value=`合同最多支持 ${t} 页`,m(`page-limit`,t,e)}function Ir(){if(B.value)return;if(qn.value){Fr(`add`);return}let e=r.createDefaultPage(v.value.pages.length+1,wn.value);X({...v.value,pages:[...v.value.pages,e]}),b.value=e.id}function Lr(e){if(B.value)return;if(qn.value){Fr(`duplicate`);return}let t=v.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=r.cloneTemplateValue({pages:[e],variables:[],pageSize:v.value.pageSize}).pages[0],i=r.createBlankPage(t+2,Nr(e),n.contentHtml,n.contentJson);i.title=`${e.title||`第 ${t+1} 页`}副本`;let a=[...v.value.pages];a.splice(t+1,0,i),X({...v.value,pages:a}),b.value=i.id}function Rr(e){if(B.value||v.value.pages.length<=1)return;let t=v.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=v.value.pages.filter(t=>t.id!==e.id),r=jr({...v.value,pages:n});b.value=r.pages[Math.min(t,r.pages.length-1)]?.id??``}function zr(e){B.value||v.value.pages.length<=1||Te.Modal.confirm({title:`删除合同页面`,content:`删除页面会同时移除页面正文,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{Rr(e)}})}function Br(e){let t=new Set(v.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function Vr(e){let t=e.type??`text`;return r.createTemplateVariable({...e,type:t,key:e.key||Br(t),label:e.label||r.getFieldOption(t,Wn.value).label},Wn.value,p.defaultVariableStyle)}function Hr(e,t=V.value?.id??v.value.pages[0].id,n){if(B.value)return e;let r=C.get(t)?.insertVariable(e,n),i=!v.value.variables.some(t=>t.key===e.key);return X({...v.value,pages:r?v.value.pages.map(e=>e.id===r.id?r:e):v.value.pages,variables:i?[...v.value.variables,e]:v.value.variables}),y.value=e.key,b.value=t,i&&m(`variable-add`,e),W(t),e}function Ur(e){let{width:t,height:n,...r}=e,i=s.normalizeContractImageDimension(t),a=s.normalizeContractImageDimension(n);return{...r,...i===void 0?{}:{width:i},...a===void 0?{}:{height:a}}}function Wr(e={}){let t=s.normalizeContractImageDimension(jt.value),n=s.normalizeContractImageDimension(Mt.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function Gr(){At.value=``,jt.value=void 0,Mt.value=void 0,Nt.value=``}function Kr(e,t=V.value?.id??v.value.pages[0]?.id,n){let r=Ur({...e,src:e.src.trim()});if(!(B.value||!t||!i.isSafeContractImageUrl(r.src)||!r.src||!C.get(t)?.insertContentImage(r,n)))return b.value=t,y.value=``,r.src}function qr(e){return e instanceof Error?e:Error(`图片处理失败`)}async function Jr(e,t){t===`toolbar`&&(Pt.value=!0,Nt.value=``);try{let n=await s.processContractImageFile(e,{source:t,compression:p.imageCompression,upload:p.imageUpload});return Qt?void 0:n.src}catch(e){let n=qr(e);t===`toolbar`&&(Nt.value=n.message),R.value=n.message,m(`image-error`,n,t);return}finally{t===`toolbar`&&(Pt.value=!1)}}let Yr=0;function Xr(e){let t=e.replacedFontFamilies.filter(Boolean);if(!t.length)return;let n=Date.now();n-Yr<800||(Yr=n,Te.message.info(`已将 ${t.length} 种外部字体(${t.join(`、`)})统一为合同标准字体,以保证 Mac 与 Windows 排版一致`))}async function Zr(e){return await Jr(e,`paste`)??null}async function Qr(e,t={}){if(B.value)return;let n=V.value?.id??v.value.pages[0]?.id,r=n?C.get(n)?.getSelectionRange():void 0,a=typeof e==`string`?e.trim():await Jr(e,`toolbar`);if(Qt)return;if(!a||!i.isSafeContractImageUrl(a)){typeof e==`string`&&(Nt.value=`请输入安全的图片 URL`);return}if(n&&!C.has(n))return;let o=Kr({...t,src:a},n,r);return o&&(Et.value=!1,Gr(),R.value=`已插入图片`),o}function $r(){B.value||Pt.value||($(),Nt.value=``,et.value&&(et.value.value=``),et.value?.click())}async function ei(e){let t=e.target.files?.[0];t&&await Qr(t,Wr({alt:t.name}))}async function ti(){let e=At.value;await Qr(e,Wr())}function ni(e){xi(e),Tt.value=!1}function ri(){$(),Ir()}function ii(e,t,n,r){$(),Hr(Vr({type:t}),e,{left:n,top:r})}function ai(e){$(),y.value=e}function oi(e){let n=v.value.variables.find(t=>t.id===e.id);if(!n)return;let i=e.key.trim();if(i!==n.key){let t=r.validateContractTemplateVariableKey(i,v.value.variables,e.id);if(t){R.value=t;return}}e={...e,key:i};let a=[...v.value.pages],o=n.key,s=``;C.forEach((t,n)=>{let r=t.updateVariable(e,o);if(r){s||=n;let e=a.findIndex(e=>e.id===n);e>=0&&(a[e]=r)}}),X({...v.value,pages:a,variables:v.value.variables.map(t=>t.id===e.id?e:t),...o!==e.key&&v.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(v.value.pageDecorations,o,e.key)}:{}}),y.value=e.key,W(s||b.value)}function Q(e){H.value&&oi({...H.value,...e,style:{...H.value.style,...e.style}})}function si(e){B.value||!H.value||Q({key:e})}function ci(e){B.value||(X({...v.value,pageDecorations:t.normalizePageDecorations(e)}),W(v.value.pages[0]?.id))}function li(e){(e===`left`||e===`center`||e===`right`)&&Q({style:{textAlign:e}})}function ui(e){(e===`solid`||e===`dashed`)&&Q({style:{borderStyle:e}})}function di(e){(e===`contain`||e===`cover`||e===`fill`)&&Q({style:{objectFit:e}})}function fi(e){Q({style:e})}function pi(t){fi({fontFamily:String(t||``).trim()||e.DEFAULT_CONTRACT_FONT_FAMILY})}function mi(e){fi({fontSize:hr(e,H.value?.style?.fontSize??14)})}function hi(e){H.value&&Q({multiline:e,rows:H.value.rows||3,lineHeight:H.value.lineHeight||28,style:e?{underline:!0}:void 0})}function gi(e){H.value&&Q({rows:Number(e||3),lineHeight:H.value.lineHeight||28})}function _i(e){if(B.value)return;let n=[...v.value.pages];C.forEach((t,r)=>{let i=t.removeVariable(e.key);if(i){let e=n.findIndex(e=>e.id===r);e>=0&&(n[e]=i)}}),X({...v.value,pages:n,variables:v.value.variables.filter(t=>t.id!==e.id),...v.value.pageDecorations?{pageDecorations:t.rewritePageDecorationVariableTokens(v.value.pageDecorations,e.key)}:{}}),y.value=``}function vi(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(v.value.variables.map(e=>e.key));if(!n.has(t))return t;let r=2;for(;n.has(`${t}_${r}`);)r+=1;return`${t}_${r}`}function yi(e){B.value||Hr(r.createTemplateVariable({...e,id:void 0,key:vi(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},Wn.value,p.defaultVariableStyle))}function bi(e){return B.value?void 0:Hr(v.value.variables.find(t=>t.key===e.key)??r.createTemplateVariable(e,Wn.value,p.defaultVariableStyle))}function xi(e){if(!B.value)return Hr(Vr({type:e}))}function Si(e){if(B.value||!n.isContractTemplateFieldType(e))return;let t=P.value,r=Wn.value.find(t=>t.type===e);if(!t||!r)return;let i=te.inferContextVariableLabel(t.leadingText)||r.label,a=te.resolveContextVariableWidth(t.selectionWidth,Re,rr.value),o=Ci();Hr(Vr({type:e,label:i,...a?{width:a}:{},...o?{style:o}:{}}),t.pageId),R.value=t.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function Ci(){let e=G.value,t={};return e.isUnderline&&(t.underline=!0),typeof e.fontSize==`number`&&Number.isFinite(e.fontSize)&&(t.fontSize=e.fontSize),e.fontFamily&&(t.fontFamily=e.fontFamily),e.textColor&&(t.color=e.textColor),Object.keys(t).length?t:void 0}function wi(e){if(B.value)return;let t=P.value;t&&(Hr(e,t.pageId),R.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function Ti(e){let t=e.type&&n.isContractTemplateFieldType(e.type)?e.type:`text`;return r.getFieldOption(t,Wn.value).label}function Ei(){v.value.variables.length&&(Vt.value=!0,(0,d.nextTick)(()=>{za(),Ft.value?.focusBindSearch()}))}function Di(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Oi(e){return E.value=Math.round(Math.min(Ne,Math.max(Me,Number.isFinite(e)?e:1))*100)/100,E.value}let{width:ki}=(0,Ee.useElementSize)(qe),Ai=(0,d.computed)(()=>Math.max(...v.value.pages.map(e=>Nr(e).width),r.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:ji,applyAutoFit:Mi,markUserAdjusted:Ni,userAdjusted:Pi}=o.useFitWidthZoom({viewportWidth:ki,widestPageWidth:Ai,padding:48,minZoom:Me,maxZoom:Ne,getZoom:()=>E.value,applyZoom:Oi});function Fi(e){return Ni(),Oi(e)}function Ii(){return Mi()}function Li(){return E.value}function Ri(){Fi(E.value+Pe)}function zi(){Fi(E.value-Pe)}function Bi(){$(),Ka(),D.value=!D.value}(0,d.watch)(ki,e=>{k.value&&!Pi.value&&e>0&&ji()});function Vi(e){O.value?$e.value?.focus():e()}function Hi(){$(),Ka(),A.value=!1,Zt={fullscreen:D.value,sidebar:yt.value,inspector:bt.value,chrome:O.value,zoom:E.value,userAdjusted:Pi.value},D.value=!0,yt.value=!0,bt.value=!0,O.value=!0,k.value=!0,(0,d.nextTick)(()=>{B.value?xt.value?.focus():C.get(b.value)?.focus()})}function Ui(){let e=Zt;k.value=!1,Zt=void 0,e&&(D.value=e.fullscreen,yt.value=e.sidebar,bt.value=e.inspector,O.value=e.chrome,e.userAdjusted?Fi(e.zoom):Mi(),(0,d.nextTick)(()=>Vi(()=>Ye.value?.focusImmersive())))}function Wi(){k.value?Ui():Hi()}function Gi(){$(),F.value=void 0;let e=q(!1);h.value?(pt.value=c.cloneContractTemplateFiles(g.value),T.value=void 0,mt.value=_.value||g.value[0]?.id||``):(T.value=r.cloneTemplateValue(e),pt.value=void 0,mt.value=``),w.value=!0}function Ki(){w.value=!1,T.value=void 0,pt.value=void 0,mt.value=``}function qi(){return Sa()}function Ji(){$();let e=qi();return gt.value=JSON.stringify(e,null,2),ht.value=!0,e}function Yi(){ht.value=!1}function Xi(){return a.buildTemplateVariableData(q(!1))}function Zi(){$();let e=Xi();return vt.value=e,_t.value=!0,e}function Qi(){_t.value=!1}function $i(){$(),F.value=void 0,M.value=!1,N.value=!1,y.value=``,b.value=``,w.value=!1,T.value=void 0,pt.value=void 0,ht.value=!1,gt.value=``,_t.value=!1,vt.value={values:{},variables:[]},wt.value={},ft.value=``;let e=X(r.createBlankTemplate(r.DEFAULT_PAGE_SIZE));return b.value=e.pages[0]?.id??``,r.cloneTemplateValue(e)}function ea(){B.value||($(),Te.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面和模板变量,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{$i()}}))}function ta(e){let t=K().pages,n=t.find(e=>e.id===b.value);return(n?[n,...t.filter(e=>e.id!==n.id)]:t).find(t=>t.contentHtml.includes(`data-key="${e.key}"`)||t.contentHtml.includes(`data-key='${e.key}'`))}function na(e){$(),y.value=e.key;let t=ta(e);t&&(b.value=t.id,(0,d.nextTick)(()=>{C.get(t.id)?.scrollIntoVariable(e.key)}))}function ra(e){let t=v.value.variables.find(t=>t.key===e||t.id===e);t&&na(t)}function ia(e,t=!0){$(),b.value=e,t&&(0,d.nextTick)(()=>{C.get(e)?.scrollIntoPage()})}function aa(e){ia(e.pageId,!1),C.get(e.pageId)?.focusHeading(e.headingIndex)}function oa(e){v.value.pages.some(t=>t.id===e)&&ia(e)}function sa(){if(A.value){ca();return}A.value=!0}function ca(){A.value=!1,(0,d.nextTick)(()=>Vi(()=>Ye.value?.focusPageDecorations()))}function la(){return vr(),r.cloneTemplateValue(K())}function ua(e){W(X(r.normalizeTemplateValue(e,p.pageSize)).pages[0]?.id)}function da(){let e=q(!1);return h.value?c.cloneContractTemplateFiles(g.value):c.cloneContractTemplateFiles(c.replaceContractTemplateFile(g.value,_.value,e))}function fa(e,t){let n=c.normalizeContractTemplateFiles(e,void 0,p.pageSize),r=c.constrainContractTemplateFiles(n,p.pageSizeOptions),i=g.value;it.value=!0,q(!1),g.value=r.files,Y(c.resolveContractTemplateActiveFileId(g.value,t??_.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.serializeFingerprint(i)!==l.serializeFingerprint(g.value)&&J(g.value,``)}function pa(e){if(B.value)return;it.value=!0,q(!0);let t=c.createContractTemplateFile(e||`合同文件 ${g.value.length+1}`,p.pageSize);return g.value=[...g.value,t],J(g.value,``),m(`file-add`,c.cloneContractTemplateFiles([t])[0]),Y(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function ma(e){!h.value&&!g.value.some(t=>t.id===e)||(it.value=!0,Y(e))}function ha(e,t){if(B.value)return;it.value=!0,q(!1);let n=c.renameContractTemplateFile(g.value,e,t),r=n.find(t=>t.id===e);if(r)return g.value=n,J(n,e),c.cloneContractTemplateFiles([r])[0]}function ga(e){if(B.value||g.value.length<=1)return;it.value=!0,q(!1);let t=g.value.find(t=>t.id===e);if(!t)return;let n=c.removeContractTemplateFile(g.value,e);if(n.length!==g.value.length)return g.value=n,J(n,``),m(`file-remove`,c.cloneContractTemplateFiles([t])[0]),_.value===e&&Y(c.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),c.cloneContractTemplateFiles([t])[0]}function _a(e){if(B.value||g.value.length<=1)return;let t=g.value.find(t=>t.id===e);t&&Te.Modal.confirm({title:`删除合同文件`,content:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{ga(e)}})}function va(e,t){if(B.value)return;it.value=!0,q(!1);let n=g.value.findIndex(t=>t.id===e),r=c.moveContractTemplateFile(g.value,e,t),i=r.findIndex(t=>t.id===e),a=r[i];if(!(!a||n===i))return g.value=r,J(r,``),m(`file-move`,c.cloneContractTemplateFiles([a])[0],n,i),c.cloneContractTemplateFiles([a])[0]}function ya(){q(!1);let e=wa(h.value?g.value.flatMap(e=>r.validateTemplateValue(e.template,{maxPages:U.value}).map(t=>({...t,fileId:e.id}))):r.validateTemplateValue(K(),{maxPages:U.value}));return S.value=e,x.value=!0,m(`validate`,e),e}function ba(e){if(e.fileId&&e.fileId!==_.value){ma(e.fileId),(0,d.nextTick)(()=>ba({...e,fileId:void 0}));return}let n=t.resolvePageDecorationValidationPath(e);if(n){A.value=!0,(0,d.nextTick)(()=>Xe.value?.focusField(n));return}if(e.variableKey){ra(e.variableKey);return}if(e.pageId){oa(e.pageId);return}let r=v.value.variables.find(t=>t.id===e.id||t.key===e.id);if(r){na(r);return}v.value.pages.some(t=>t.id===e.id)&&ia(e.id)}function xa(e){return t.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`variable`?`变量`:`字段`}function Sa(){return vr(),r.exportTemplateValue(K())}function Ca(){let e=q(!1),t=h.value?g.value:c.replaceContractTemplateFile(g.value,_.value,e);return c.exportContractTemplateFiles(t)}function wa(e){let t=new Set;return e.filter(e=>{let n=`${e.fileId??``}|${e.code??``}|${e.id}|${e.pageId??``}|${e.message}`;return t.has(n)?!1:(t.add(n),!0)})}function Ta(e){S.value=[...e],x.value=!0}function Ea(){S.value=[],x.value=!1}function Da(){C.get(V.value?.id??b.value)?.focus()}function Oa(e){pr(e)&&Z({type:`set-text-align`,value:e})}function ka(e){(e===`paragraph`||mr(e))&&Z({type:`apply-block-style`,format:e})}function Aa(e){let t=gr(e);t&&(Z({type:`set-font-size`,value:t}),j.value=``)}function ja(e){let t=String(e||``).trim();if(!t){Z({type:`unset-font-family`});return}Z({type:`set-font-family`,value:t})}function Ma(e){Na(e.target?.value??``)}function Na(e){let t=e.trim();t&&Z({type:`set-color`,value:t})}function Pa(e){j.value=e}function Fa(){j.value.trim()&&Aa(j.value)}function Ia(e){e.key===`Enter`&&(e.preventDefault(),Fa())}function La(e){e||(Fa(),j.value=``)}function Ra(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,I.value=void 0,L.value=void 0,Vt.value=!1,Ht.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,304,300);P.value={pageId:e.pageId,x:t.x,y:t.y,hasSelection:e.hasSelection,selectionWidth:e.selectionWidth,leadingText:e.leadingText},(0,d.nextTick)(()=>{za(),Ft.value?.focusFirstButton()})}function za(){let e=Ft.value?.getMenuElement(),t=P.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);P.value={...t,x:n.x,y:n.y}}function Ba(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,L.value=void 0;let t=u.clampContextMenuPosition(e.clientX,e.clientY,248,400);I.value={...e,x:t.x,y:t.y},(0,d.nextTick)(()=>{let e=Ut.value?.getMenuElement(),t=I.value;if(e&&t){let n=u.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}Ut.value?.focusFirstItem()})}function Va(e){if(B.value)return;b.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,I.value=void 0,Gt.value=e.image.width,Kt.value=e.image.height,y.value=``;let t=u.clampContextMenuPosition(e.clientX,e.clientY,288,196);L.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,d.nextTick)(()=>{Ha(),Wt.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function Ha(){let e=Wt.value?.getMenuElement(),t=L.value;if(!e||!t)return;let n=u.clampContextMenuToElement(t.x,t.y,e);L.value={...t,x:n.x,y:n.y}}function Ua(){let e=L.value;!e||B.value||(C.get(e.pageId)?.updateSelectedContentImage({width:s.normalizeContractImageDimension(Gt.value),height:s.normalizeContractImageDimension(Kt.value)})&&(R.value=`已更新图片尺寸`),$())}function Wa(){let e=L.value;!e||B.value||(C.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(R.value=`已恢复图片自然尺寸`),$())}function Ga(e){e.type===`table`?Ba(e):e.type===`image`?Va(e):Ra(e)}function $(){P.value=void 0,I.value=void 0,L.value=void 0,Vt.value=!1,Ht.value=``}function Ka(){fn(!1),M.value=!1,N.value=!1,Ct.value=!1,Tt.value=!1,Et.value=!1,Dt.value=!1,Ot.value=!1}function qa(){Ka(),O.value=!O.value,(0,d.nextTick)(()=>Vi(()=>Ye.value?.focusChromeToggle()))}let Ja=[`.gd-contract-template-designer__context-menu`,`.gd-contract-template-designer__bubble-menu`,`.gd-contract-template-designer__bubble-menu-popup`].join(`,`);function Ya(){let e=B.value||zt.value||Lt.value||vn.value||A.value||w.value,t=b.value,n=e?void 0:C.get(t)?.getSelectionViewportRect();if(!n){F.value=void 0;return}let r=n.top-40-He,i=r>=12?r:n.bottom+He,a=(n.left+n.right)/2-380/2,o=u.clampContextMenuPosition(a,i,380,40);F.value={pageId:t,x:o.x,y:o.y},(0,d.nextTick)(()=>Xa(n))}function Xa(e){let t=It.value?.getMenuElement(),n=F.value;if(!t||!n)return;let r=t.getBoundingClientRect(),i=e.top-r.height-He,a=i>=12?i:e.bottom+He,o=(e.left+e.right)/2-r.width/2,s=u.clampContextMenuToElement(o,a,t);F.value={...n,x:s.x,y:s.y}}function Za(){let e=F.value?.pageId??b.value,t=C.get(e)?.getSelectionRange();Rt=t?{pageId:e,...t}:void 0,Lt.value=!0,F.value=void 0}function Qa(e){if(!Lt.value)return;let t=Rt,n=C.get(e)?.getSelectionRange();t&&n&&t.pageId===e&&t.from===n.from&&t.to===n.to||(Lt.value=!1,Rt=void 0)}function $a(){!F.value||Bt!==void 0||(Bt=requestAnimationFrame(()=>{Bt=void 0,Ya()}))}function eo(){zt.value&&(zt.value=!1,Ya())}function to(){$(),$a()}function no(e,t){C.get(F.value?.pageId??b.value)?.requestTextContextMenu(e,t)}function ro(e){let t=e.target instanceof Element?e.target:null;t?.closest(`.ProseMirror`)&&(zt.value=!0,F.value=void 0),!(!P.value&&!I.value&&!L.value&&!F.value)&&(t?.closest(Ja)||($(),F.value&&Za()))}function io(e){(e.target instanceof Element?e.target:null)?.closest(Ja)||($(),$a())}function ao(e){let t=Ke.value;if(!t||typeof document>`u`)return!1;let n=e.target instanceof Node?e.target:void 0,r=document.activeElement;return!!(n&&t.contains(n)||r&&t.contains(r)||n instanceof Element&&n.closest(`.gd-contract-template-designer__context-menu`))}function oo(e){if(e.key!==`Escape`||!A.value||typeof document>`u`)return;let t=Ke.value?.querySelector(`.gd-contract-template-designer__page-decorations-studio`);if(!t)return;let n=e.target instanceof Element?e.target:null,r=document.activeElement instanceof Element?document.activeElement:null,i=!!(n?.closest(Yt)||r?.closest(Yt)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){Jt.add(e);return}!vn.value&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),ca())}function so(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!yn.value||!ao(e))return;e.preventDefault(),Yn();return}if(e.key===`Escape`){if(Jt.has(e)){Jt.delete(e);return}let t=vn.value,n=t||A.value;if(!t&&A.value&&ca(),$(),Ka(),n&&e.stopPropagation(),!n){if(F.value){Za(),e.stopPropagation();return}k.value?Ui():D.value=!1}}}function co(e,t){e===b.value&&t.selectedContentImage&&(y.value=``),e===b.value&&(Qa(e),Ya());let n=wt.value[e];n&&we.isSameEditorState(n,t)||(wt.value={...wt.value,[e]:t})}function lo(e=qt.value.rows,t=qt.value.cols){Z({type:`insert-table`,options:{rows:Math.min(10,Math.max(1,Math.round(Number(e)||3))),cols:Math.min(10,Math.max(1,Math.round(Number(t)||3))),withHeaderRow:!!qt.value.withHeaderRow}}),M.value=!1,$()}let uo={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function fo(e){let t=I.value;if(!t)return;let n=()=>{Z(e,t.pageId),$()},r=uo[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),Te.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>C.get(t.pageId)?.focus()})}function po(e){let t=Ut.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=I.value?.pageId;$(),C.get(t??``)?.focus();return}let n=Array.from(t.querySelectorAll(`button:not(:disabled)`));if(!n.length)return;if(e.key===`Home`||e.key===`End`){e.preventDefault(),n[e.key===`Home`?0:n.length-1]?.focus();return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let r=(Math.max(0,n.indexOf(document.activeElement))+(e.key===`ArrowUp`||e.key===`ArrowLeft`?-1:1)+n.length)%n.length;e.preventDefault(),n[r]?.focus()}function mo(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=P.value?.pageId;$(),C.get(t??``)?.focus()}function ho(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=L.value?.pageId;$(),C.get(t??``)?.focus()}function go(e){Z({type:e}),N.value=!1,$()}return Ue({getValue:la,setValue:ua,getFiles:da,setFiles:fa,addFile:pa,selectFile:ma,renameFile:ha,removeFile:ga,moveFile:va,validate:ya,exportTemplate:Sa,exportFiles:Ca,getSubmitData:qi,clearTemplate:$i,saveDraftCache:Yn,loadDraftCache:Xn,clearDraftCache:Zn,getDraftCacheStatus:Cr,insertVariable:bi,insertImage:Qr,focus:Da,openPreview:Gi,closePreview:Ki,openSubmitDataViewer:Ji,closeSubmitDataViewer:Yi,getVariableData:Xi,openVariableDataViewer:Zi,closeVariableDataViewer:Qi,setServerValidationErrors:Ta,clearValidationErrors:Ea,scrollToVariable:ra,scrollToPage:oa,setZoom:Fi,resetZoom:Ii,getZoom:Li,fitWidth:ji}),(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Ke,class:(0,d.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":f.disabled,"is-readonly":B.value,"is-fullscreen":D.value,"is-immersive":k.value}]),style:(0,d.normalizeStyle)(Ge.value),onKeydownCapture:t[31]||=(...e)=>(0,d.unref)(_n)&&(0,d.unref)(_n)(...e)},[h.value?((0,d.openBlock)(),(0,d.createBlock)(be.default,{key:0,files:g.value,"active-file-id":_.value,readonly:B.value,onSelect:ma,onAdd:t[0]||=e=>pa(),onRename:ha,onRemove:_a,onMove:va},null,8,[`files`,`active-file-id`,`readonly`])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{class:(0,d.normalizeClass)([`gd-contract-template-designer__layout`,{"is-sidebar-collapsed":yt.value,"is-inspector-collapsed":bt.value}])},[(0,d.createVNode)(xe.default,{collapsed:yt.value,pages:v.value.pages,variables:v.value.variables,"decoration-variable-keys":Jn.value,"active-page-id":b.value,"selected-variable-key":y.value,"normalized-max-pages":U.value,"page-limit-reached":qn.value,"selected-page":V.value,"selected-page-size":wn.value,"normalized-page-size-options":Bn.value,"page-size-options":Vn.value,"selected-page-size-option-value":Hn.value,readonly:B.value,"get-page-size":Nr,onToggle:t[1]||=e=>yt.value=!yt.value,onAddPage:Ir,onActivatePage:ia,onNavigateOutline:aa,onDuplicatePage:Lr,onRemovePage:zr,onPatchPageFormat:Pr,onScrollToVariable:na},null,8,[`collapsed`,`pages`,`variables`,`decoration-variable-keys`,`active-page-id`,`selected-variable-key`,`normalized-max-pages`,`page-limit-reached`,`selected-page`,`selected-page-size`,`normalized-page-size-options`,`page-size-options`,`selected-page-size-option-value`,`readonly`]),(0,d.createElementVNode)(`main`,{ref_key:`workspaceElement`,ref:Je,class:`gd-contract-template-designer__workspace`},[(0,d.withDirectives)((0,d.createElementVNode)(`div`,{id:Qe,class:`gd-contract-template-designer__workspace-chrome`},[(0,d.createVNode)(ie.default,{ref_key:`workspaceHeaderElement`,ref:Ye,summary:Dn.value,"draft-cache-status-text":jn.value,"draft-cache-status-class":Mn.value,"show-draft-cache-status":f.showDraftCacheStatus,"show-clear-button":f.showClearButton,"show-submit-data-viewer":f.showSubmitDataViewer,"show-variable-data-viewer":f.showVariableDataViewer,readonly:B.value,"zoom-percent":Nn.value,"zoom-out-disabled":E.value<=Me,"zoom-in-disabled":E.value>=Ne,"is-fullscreen":D.value,immersive:k.value,"page-decorations-open":A.value,"page-decorations-studio-id":Ze,"page-decorations-preset-label":On.value,"page-decorations-enabled-count":An.value,"page-decorations-enabled-states":kn.value,"chrome-controls-id":Qe,onZoomOut:zi,onZoomIn:Ri,onFitWidth:(0,d.unref)(ji),onResetZoom:Ii,onToggleFullscreen:Bi,onToggleImmersive:Wi,onClear:ea,onValidate:ya,onPreview:Gi,onSubmitData:Ji,onVariableData:Zi,onTogglePageDecorations:sa,onToggleChrome:qa},{authoring:(0,d.withCtx)(()=>[(0,d.createVNode)(se.default,{ref_key:`authoringBarElement`,ref:tt,compact:``,query:(0,d.unref)(nn),"onUpdate:query":t[2]||=e=>(0,d.isRef)(nn)?nn.value=e:null,replacement:(0,d.unref)(rn),"onUpdate:replacement":t[3]||=e=>(0,d.isRef)(rn)?rn.value=e:null,"match-case":(0,d.unref)(an),"onUpdate:matchCase":t[4]||=e=>(0,d.isRef)(an)?an.value=e:null,panel:(0,d.unref)(tn),readonly:B.value,total:(0,d.unref)(on).length,"current-index":(0,d.unref)(sn),"current-page":(0,d.unref)(cn)?(0,d.unref)(cn).pageIndex+1:void 0,feedback:(0,d.unref)(ln),onOpen:(0,d.unref)(dn),onClose:t[5]||=e=>(0,d.unref)(fn)(),onNavigate:(0,d.unref)(pn),onReplaceCurrent:(0,d.unref)(mn),onReplaceAll:(0,d.unref)(hn),onInsertSnippet:(0,d.unref)(gn)},null,8,[`query`,`replacement`,`match-case`,`panel`,`readonly`,`total`,`current-index`,`current-page`,`feedback`,`onOpen`,`onNavigate`,`onReplaceCurrent`,`onReplaceAll`,`onInsertSnippet`])]),_:1},8,[`summary`,`draft-cache-status-text`,`draft-cache-status-class`,`show-draft-cache-status`,`show-clear-button`,`show-submit-data-viewer`,`show-variable-data-viewer`,`readonly`,`zoom-percent`,`zoom-out-disabled`,`zoom-in-disabled`,`is-fullscreen`,`immersive`,`page-decorations-open`,`page-decorations-preset-label`,`page-decorations-enabled-count`,`page-decorations-enabled-states`,`onFitWidth`]),(0,d.createVNode)(oe.default,{"variable-insert-popover-open":Tt.value,"onUpdate:variableInsertPopoverOpen":t[6]||=e=>Tt.value=e,"signing-layout-popover-open":Dt.value,"onUpdate:signingLayoutPopoverOpen":t[7]||=e=>Dt.value=e,"signing-mark-popover-open":Ot.value,"onUpdate:signingMarkPopoverOpen":t[8]||=e=>Ot.value=e,"image-insert-popover-open":Et.value,"onUpdate:imageInsertPopoverOpen":t[9]||=e=>Et.value=e,"image-insert-url":At.value,"onUpdate:imageInsertUrl":t[10]||=e=>At.value=e,"image-insert-width":jt.value,"onUpdate:imageInsertWidth":t[11]||=e=>jt.value=e,"image-insert-height":Mt.value,"onUpdate:imageInsertHeight":t[12]||=e=>Mt.value=e,"table-insert-popover-open":M.value,"onUpdate:tableInsertPopoverOpen":t[13]||=e=>M.value=e,"table-actions-popover-open":N.value,"onUpdate:tableActionsPopoverOpen":t[14]||=e=>N.value=e,"table-insert-draft":qt.value,"onUpdate:tableInsertDraft":t[15]||=e=>qt.value=e,"toolbar-more-open":Ct.value,"onUpdate:toolbarMoreOpen":t[16]||=e=>Ct.value=e,readonly:B.value,"editor-state":G.value,"current-block-format":ar.value,"block-format-options":Ln,"font-family-select-options":Fn.value,"current-editor-font-family":or.value,"font-size-preset-options":ur.value,"current-editor-font-size":sr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":cr.value,"body-control-tool-items":Kn.value,"signing-layout-presets":Gn.value,"page-limit-reached":qn.value,"normalized-max-pages":U.value,"image-processing":Pt.value,"image-insert-error":Nt.value,onCommand:t[17]||=e=>Z(e),onPatchBlockFormat:ka,onPatchFontFamily:ja,onPatchFontSize:Aa,onPatchColor:Ma,onPatchTextAlign:Oa,onInsertVariable:ni,onInsertSigningLayout:Tr,onInsertSigningMark:Or,onOpenSigningLayoutCustom:Dr,onOpenImageFile:$r,onInsertImageUrl:ti,onAddPage:Ir,onInsertTable:lo,onTableAction:go,onFontSizeSearch:Pa,onFontSizeCommit:Fa,onFontSizeDropdownChange:La,onFontSizeKeydown:Ia},null,8,`variable-insert-popover-open.signing-layout-popover-open.signing-mark-popover-open.image-insert-popover-open.image-insert-url.image-insert-width.image-insert-height.table-insert-popover-open.table-actions-popover-open.table-insert-draft.toolbar-more-open.readonly.editor-state.current-block-format.font-family-select-options.current-editor-font-family.font-size-preset-options.current-editor-font-size.editor-font-size-search-value.current-editor-text-color.body-control-tool-items.signing-layout-presets.page-limit-reached.normalized-max-pages.image-processing.image-insert-error`.split(`.`))],512),[[d.vShow,!O.value]]),O.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(Te.Tooltip),{key:0,title:`展开工具区`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`button`,{ref_key:`workspaceChromeHandleElement`,ref:$e,type:`button`,class:`gd-contract-template-designer__workspace-chrome-handle`,"aria-label":`展开工具区`,"aria-expanded":!1,"aria-controls":Qe,onClick:qa},[(0,d.createVNode)((0,d.unref)(De.DownOutlined),{"aria-hidden":`true`})],512)]),_:1})):(0,d.createCommentVNode)(``,!0),k.value&&!A.value?((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:1,ref_key:`immersiveExitElement`,ref:xt,type:`button`,class:`gd-contract-template-designer__immersive-exit`,"aria-label":`退出沉浸写作`,onClick:Ui},[(0,d.createVNode)((0,d.unref)(De.CompressOutlined),{"aria-hidden":`true`}),t[32]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__immersive-exit-label`},`退出沉浸`,-1),t[33]||=(0,d.createElementVNode)(`kbd`,null,`Esc`,-1)],512)):(0,d.createCommentVNode)(``,!0),x.value?((0,d.openBlock)(),(0,d.createElementBlock)(`section`,Oe,[(0,d.createVNode)((0,d.unref)(Te.Alert),{type:Tn.value?`success`:`error`,message:En.value,"show-icon":``},null,8,[`type`,`message`]),S.value.length?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,ke,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(S.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:`${e.id}-${e.message}`,type:`button`,class:`gd-contract-template-designer__validation-item`,onClick:t=>ba(e)},[(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.message),1),(0,d.createElementVNode)(`small`,null,(0,d.toDisplayString)(xa(e)),1)],8,Ae))),128))])):(0,d.createCommentVNode)(``,!0)])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:qe,class:`gd-contract-template-designer__canvas`},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(v.value.pages,(e,n)=>((0,d.openBlock)(),(0,d.createBlock)(ne.default,{key:`${_.value}:${e.id}`,ref_for:!0,ref:t=>wr(e.id,t),page:e,"page-index":n,"page-size":Nr(e),"page-decorations":v.value.pageDecorations,"total-pages":v.value.pages.length,variables:v.value.variables,"selected-variable-key":y.value,active:b.value===e.id,readonly:f.readonly,disabled:f.disabled,zoom:E.value,"process-image-file":Zr,"search-query":(0,d.unref)(un),"search-match-case":(0,d.unref)(an),"active-search-match":(0,d.unref)(cn)?.pageId===e.id?(0,d.unref)(cn):void 0,onPageUpdate:Mr,onVariableDrop:ii,onVariableSelect:ai,onEditorFocus:t[18]||=e=>ia(e,!1),onEditorStateChange:co,onEditorContextMenu:Ga,onWordPaste:Xr,onVariableMoveBlocked:t[19]||=e=>R.value=`变量只能在当前页内移动,跨页移动尚未支持。`},null,8,[`page`,`page-index`,`page-size`,`page-decorations`,`total-pages`,`variables`,`selected-variable-key`,`active`,`readonly`,`disabled`,`zoom`,`search-query`,`search-match-case`,`active-search-match`]))),128))],512)],512),(0,d.createVNode)(Se.default,{collapsed:bt.value,readonly:f.readonly,disabled:f.disabled,"body-control-tool-items":Kn.value,"selected-variable":H.value,variables:v.value.variables,"current-variable-font-family":lr.value,"font-family-select-options":Fn.value,"text-align-options":(0,d.unref)(In),"border-style-options":Rn,"object-fit-options":zn,"selected-variable-width-max":rr.value,"selected-variable-height-max":ir.value,"min-font-size":Be,"max-font-size":Ve,"default-multiline-rows":(0,d.unref)(3),onToggle:t[20]||=e=>bt.value=!bt.value,onVariableDragStart:Di,onInsertVariable:xi,onDuplicateVariable:yi,onRemoveVariable:_i,onPatchVariable:Q,onRenameVariable:si,onPatchStyle:fi,onPatchMultiline:hi,onPatchRows:gi,onPatchFontFamily:pi,onPatchFontSize:mi,onPatchTextAlign:li,onPatchBorderStyle:ui,onPatchObjectFit:di},null,8,[`collapsed`,`readonly`,`disabled`,`body-control-tool-items`,`selected-variable`,`variables`,`current-variable-font-family`,`font-family-select-options`,`text-align-options`,`selected-variable-width-max`,`selected-variable-height-max`,`default-multiline-rows`])],2),(0,d.withDirectives)((0,d.createVNode)(Ce.default,{ref_key:`pageDecorationsStudioElement`,ref:Xe,id:Ze,open:A.value,decorations:v.value.pageDecorations,variables:v.value.variables,"font-family-options":Fn.value,readonly:f.readonly,disabled:f.disabled,"active-tab":St.value,"onUpdate:activeTab":t[21]||=e=>St.value=e,onChange:ci,onClose:ca},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[d.vShow,A.value]]),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{to:`body`},[I.value?((0,d.openBlock)(),(0,d.createBlock)(re.default,{key:0,ref_key:`tableContextMenuElement`,ref:Ut,capabilities:I.value.capabilities,"active-alignment":I.value.activeAlignment,style:(0,d.normalizeStyle)({left:`${I.value.x}px`,top:`${I.value.y}px`}),onExecute:fo,onKeydown:po},null,8,[`capabilities`,`active-alignment`,`style`])):(0,d.createCommentVNode)(``,!0),L.value?((0,d.openBlock)(),(0,d.createBlock)(de.default,{key:1,ref_key:`imageContextMenuElement`,ref:Wt,width:Gt.value,"onUpdate:width":t[22]||=e=>Gt.value=e,height:Kt.value,"onUpdate:height":t[23]||=e=>Kt.value=e,x:L.value.x,y:L.value.y,readonly:B.value,onRestore:Wa,onApply:Ua,onKeydown:ho},null,8,[`width`,`height`,`x`,`y`,`readonly`])):(0,d.createCommentVNode)(``,!0),P.value?((0,d.openBlock)(),(0,d.createBlock)(le.default,{key:2,ref_key:`textContextMenuElement`,ref:Ft,"bind-open":Vt.value,"onUpdate:bindOpen":t[24]||=e=>Vt.value=e,"bind-keyword":Ht.value,"onUpdate:bindKeyword":t[25]||=e=>Ht.value=e,x:P.value.x,y:P.value.y,"has-selection":P.value.hasSelection,"editor-state":G.value,"current-editor-text-color":cr.value,"body-control-tool-items":Kn.value,"text-menu-bindable-variables":nr.value,"variables-count":v.value.variables.length,"resolve-bind-variable-type-label":Ti,onCommand:kr,onClipboard:Ar,onAddPage:ri,onInsertVariable:Si,onBindVariable:wi,onOpenBindPanel:Ei,onKeydown:mo,onPatchColor:Na},null,8,[`bind-open`,`bind-keyword`,`x`,`y`,`has-selection`,`editor-state`,`current-editor-text-color`,`body-control-tool-items`,`text-menu-bindable-variables`,`variables-count`])):(0,d.createCommentVNode)(``,!0),F.value?((0,d.openBlock)(),(0,d.createBlock)(ue.default,{key:3,ref_key:`textBubbleElement`,ref:It,x:F.value.x,y:F.value.y,"editor-state":G.value,"font-size-preset-options":ur.value,"current-editor-font-size":sr.value,"editor-font-size-search-value":j.value,"current-editor-text-color":cr.value,"text-align-options":(0,d.unref)(In),onCommand:Z,onPatchFontSize:Aa,onPatchTextAlign:Oa,onPatchColor:Na,onFontSizeSearch:Pa,onFontSizeCommit:Fa,onFontSizeDropdownChange:La,onFontSizeKeydown:Ia,onMore:no},null,8,[`x`,`y`,`editor-state`,`font-size-preset-options`,`current-editor-font-size`,`editor-font-size-search-value`,`current-editor-text-color`,`text-align-options`])):(0,d.createCommentVNode)(``,!0)])),(0,d.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:et,class:`gd-contract-template-designer__hidden-file-input`,type:`file`,accept:`image/png,image/jpeg,image/webp,image/gif,image/bmp`,tabindex:`-1`,"aria-hidden":`true`,onChange:ei},null,544),(0,d.createElementVNode)(`span`,je,(0,d.toDisplayString)(R.value),1),(0,d.createVNode)(fe.default,{open:w.value,"onUpdate:open":t[26]||=e=>w.value=e,"preview-pages":xn.value,"preview-file-groups":Sn.value,"preview-active-group":Cn.value,"preview-snapshot":T.value,"font-base-url":f.contractFontBaseUrl,onCancel:Ki,onSelectFile:t[27]||=e=>mt.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`,`font-base-url`]),(0,d.createVNode)(pe.default,{open:ht.value,"onUpdate:open":t[28]||=e=>ht.value=e,json:gt.value,onCancel:Yi},null,8,[`open`,`json`]),(0,d.createVNode)(me.default,{open:_t.value,"onUpdate:open":t[29]||=e=>_t.value=e,data:vt.value,"file-name":bn.value?.name,onCancel:Qi},null,8,[`open`,`data`,`file-name`]),(0,d.createVNode)(he.default,{open:kt.value,"onUpdate:open":t[30]||=e=>kt.value=e,disabled:B.value,onInsert:Er},null,8,[`open`,`disabled`])],38))}});exports.default=f;
@@ -0,0 +1 @@
1
+ var e=require(`./SigningLayoutCustomModal.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/signing-layout-presets.cjs`),t=require(`./SigningLayoutPreview.cjs`);let n=require(`vue`),r=require(`ant-design-vue`);var i={class:`gd-contract-template-designer__signing-layout-modal-body`},a={class:`gd-contract-template-designer__signing-layout-modal-fields`},o={class:`gd-contract-template-designer__signing-layout-modal-field`},s={class:`gd-contract-template-designer__signing-layout-modal-field`},c={class:`gd-contract-template-designer__signing-layout-modal-field`},l={class:`gd-contract-template-designer__signing-layout-modal-preview`},u={class:`gd-contract-template-designer__signing-layout-modal-hint`,"aria-live":`polite`},d=(0,n.defineComponent)({name:`SigningLayoutCustomModal`,__name:`SigningLayoutCustomModal`,props:{open:{type:Boolean},disabled:{type:Boolean,default:!1}},emits:[`update:open`,`insert`],setup(d,{emit:f}){let p=d,m=f,h=e.SIGNING_LAYOUT_ARRANGEMENTS.map(t=>({value:t,label:e.SIGNING_LAYOUT_ARRANGEMENT_LABELS[t]})),g=e.SIGNING_LAYOUT_FIELD_KEYS.map(t=>({value:t,label:e.SIGNING_LAYOUT_FIELD_LABELS[t]})),_=(0,n.ref)(e.SIGNING_LAYOUT_PRESETS[`dual-party`].options.partyCount),v=(0,n.ref)(`side-by-side`),y=(0,n.ref)([`seal`,`signature`,`date`]);(0,n.watch)(()=>p.open,t=>{if(!t)return;let n=e.SIGNING_LAYOUT_PRESETS[`dual-party`].options;_.value=n.partyCount,v.value=n.arrangement,y.value=e.SIGNING_LAYOUT_FIELD_KEYS.filter(e=>n.fields[e])});let b=(0,n.computed)(()=>e.normalizeSigningLayoutOptions({partyCount:_.value,arrangement:v.value,fields:{seal:y.value.includes(`seal`),signature:y.value.includes(`signature`),date:y.value.includes(`date`),title:y.value.includes(`title`)}})),x=(0,n.computed)(()=>e.buildSigningLayoutPreviewModel(b.value)),S=(0,n.computed)(()=>e.describeSigningLayoutOptions(b.value)),C=(0,n.computed)(()=>!p.disabled);function w(){if(!C.value)return;let e=b.value;m(`insert`,e),m(`update:open`,!1)}return(e,f)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.Modal),{open:d.open,title:`自定义签署版式`,width:`min(720px, calc(100vw - 48px))`,centered:``,"ok-text":`插入`,"cancel-text":`取消`,"ok-button-props":{disabled:!C.value},"wrap-class-name":`gd-contract-template-designer__signing-layout-modal`,"onUpdate:open":f[3]||=e=>m(`update:open`,e),onOk:w},{default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,i,[(0,n.createElementVNode)(`div`,a,[(0,n.createElementVNode)(`label`,o,[f[4]||=(0,n.createElementVNode)(`span`,null,`签署方数量`,-1),(0,n.createVNode)((0,n.unref)(r.InputNumber),{value:_.value,"onUpdate:value":f[0]||=e=>_.value=e,min:(0,n.unref)(1),max:(0,n.unref)(6),precision:0,disabled:d.disabled,"aria-label":`签署方数量`},null,8,[`value`,`min`,`max`,`disabled`])]),(0,n.createElementVNode)(`div`,s,[f[5]||=(0,n.createElementVNode)(`span`,null,`排列方式`,-1),(0,n.createVNode)((0,n.unref)(r.RadioGroup),{value:v.value,"onUpdate:value":f[1]||=e=>v.value=e,options:(0,n.unref)(h),"option-type":`button`,"button-style":`solid`,size:`small`,disabled:d.disabled,"aria-label":`排列方式`},null,8,[`value`,`options`,`disabled`])]),(0,n.createElementVNode)(`div`,c,[f[6]||=(0,n.createElementVNode)(`span`,null,`包含项`,-1),(0,n.createVNode)((0,n.unref)(r.CheckboxGroup),{value:y.value,"onUpdate:value":f[2]||=e=>y.value=e,options:(0,n.unref)(g),disabled:d.disabled,"aria-label":`包含项`},null,8,[`value`,`options`,`disabled`])])]),(0,n.createElementVNode)(`div`,l,[(0,n.createVNode)(t.default,{model:x.value},null,8,[`model`]),(0,n.createElementVNode)(`span`,u,(0,n.toDisplayString)(S.value),1)])])]),_:1},8,[`open`,`ok-button-props`]))}});exports.default=d;
@@ -0,0 +1 @@
1
+ var e=require(`./SigningLayoutPresetPicker.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/signing-layout-presets.cjs`),t=require(`./SigningLayoutPreview.cjs`);let n=require(`vue`),r=require(`ant-design-vue`);var i={class:`gd-contract-template-designer__signing-layout-picker-body`},a=[`data-signing-layout-preset`,`tabindex`,`aria-selected`,`disabled`,`onFocus`,`onMouseenter`,`onClick`],o={class:`gd-contract-template-designer__signing-layout-picker-option-label`},s={class:`gd-contract-template-designer__signing-layout-picker-option-description`},c={class:`gd-contract-template-designer__signing-layout-picker-preview`},l={class:`gd-contract-template-designer__signing-layout-picker-preview-hint`,"aria-live":`polite`},u={class:`gd-contract-template-designer__signing-layout-picker-footer`},d=(0,n.defineComponent)({name:`SigningLayoutPresetPicker`,__name:`SigningLayoutPresetPicker`,props:{presets:{},disabled:{type:Boolean,default:!1}},emits:[`select`,`custom`,`close`],setup(d,{emit:f}){let p=d,m=f,h=(0,n.ref)(),g=(0,n.ref)(``),_=(0,n.ref)(``),v=(0,n.computed)(()=>_.value||p.presets[0]?.key||``),y=(0,n.computed)(()=>p.presets.find(e=>e.key===v.value)??p.presets[0]),b=(0,n.computed)(()=>e.buildSigningLayoutPreviewModel(y.value?.options??{}));(0,n.watch)(()=>p.presets,e=>{e.some(e=>e.key===_.value)||(_.value=e[0]?.key??``),e.some(e=>e.key===g.value)||(g.value=e[0]?.key??``)},{immediate:!0});function x(e){p.disabled||(_.value=e)}function S(e){g.value=e,x(e),(0,n.nextTick)(()=>{h.value?.querySelector(`[data-signing-layout-preset="${e}"]`)?.focus()})}function C(e){g.value=e,x(e)}function w(e=v.value){if(p.disabled)return;let t=p.presets.find(t=>t.key===e);t&&m(`select`,t)}function T(e){if(e.key===`Escape`){e.preventDefault(),m(`close`);return}if(e.key===`Enter`||e.key===` `){e.preventDefault(),w(g.value);return}let t=p.presets.findIndex(e=>e.key===g.value),n=e.key===`ArrowUp`||e.key===`ArrowLeft`?Math.max(0,t-1):e.key===`ArrowDown`||e.key===`ArrowRight`?Math.min(p.presets.length-1,t+1):t;n===t||n<0||(e.preventDefault(),S(p.presets[n].key))}return(e,f)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`gd-contract-template-designer__signing-layout-picker`,onKeydown:T},[(0,n.createElementVNode)(`div`,i,[(0,n.createElementVNode)(`div`,{ref_key:`listElement`,ref:h,class:`gd-contract-template-designer__signing-layout-picker-list`,role:`listbox`,"aria-label":`选择签署版式`},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(d.presets,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:e.key,type:`button`,role:`option`,class:(0,n.normalizeClass)([`gd-contract-template-designer__signing-layout-picker-option`,{"is-previewed":e.key===v.value}]),"data-signing-layout-preset":e.key,tabindex:g.value===e.key?0:-1,"aria-selected":e.key===v.value,disabled:d.disabled,onFocus:t=>C(e.key),onMouseenter:t=>x(e.key),onClick:t=>w(e.key)},[(0,n.createElementVNode)(`span`,o,(0,n.toDisplayString)(e.label),1),(0,n.createElementVNode)(`span`,s,(0,n.toDisplayString)(e.description),1)],42,a))),128))],512),(0,n.createElementVNode)(`div`,c,[(0,n.createVNode)(t.default,{model:b.value},null,8,[`model`]),(0,n.createElementVNode)(`span`,l,(0,n.toDisplayString)(y.value?.description),1)])]),(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)((0,n.unref)(r.Button),{size:`small`,disabled:d.disabled,"aria-label":`自定义签署版式`,onClick:f[0]||=e=>m(`custom`)},{default:(0,n.withCtx)(()=>[...f[1]||=[(0,n.createTextVNode)(` 自定义… `,-1)]]),_:1},8,[`disabled`])])],32))}});exports.default=d;
@@ -0,0 +1 @@
1
+ var e=require(`./SigningLayoutPreview.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`);var t=[`aria-label`],n={key:0,class:`gd-contract-template-designer__signing-layout-preview-title`},r={key:1,class:`gd-contract-template-designer__signing-layout-preview-row is-head`},i={key:0,class:`gd-contract-template-designer__signing-layout-preview-party`},a=(0,e.defineComponent)({name:`SigningLayoutPreview`,__name:`SigningLayoutPreview`,props:{model:{}},setup(a){let o=a,s=(0,e.computed)(()=>{let{arrangement:e,cells:t}=o.model;return e===`stacked`?t.map(e=>[{label:e.partyLabel,items:e.items}]):[t.map(e=>({label:e.partyLabel,items:e.items}))]}),c=(0,e.computed)(()=>`签署版式预览:${o.model.cells.length} 个签署方,${o.model.columns} 列`);return(o,l)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`gd-contract-template-designer__signing-layout-preview`,`is-${a.model.arrangement}`]),role:`img`,"aria-label":c.value},[a.model.title?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,n,(0,e.toDisplayString)(a.model.title),1)):(0,e.createCommentVNode)(``,!0),a.model.columnLabels?.length?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,r,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(a.model.columnLabels,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:t,class:`gd-contract-template-designer__signing-layout-preview-cell is-head`},(0,e.toDisplayString)(t),1))),128))])):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.value,(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n,class:`gd-contract-template-designer__signing-layout-preview-row`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t,(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:n,class:`gd-contract-template-designer__signing-layout-preview-cell`},[t.label?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,i,(0,e.toDisplayString)(t.label),1)):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.items,(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:n,class:(0,e.normalizeClass)([`gd-contract-template-designer__signing-layout-preview-item`,`gd-contract-template-designer__signing-layout-preview-item--${t}`])},null,2))),128))]))),128))]))),128))],10,t))}});exports.default=a;
@@ -1 +1 @@
1
- function e(e={}){return{syncCurrent:e.syncCurrent??!0,shouldEmit:e.shouldEmit??!0,forceRefresh:e.forceRefresh??!1,persistCurrentErrors:e.persistCurrentErrors??!0}}exports.resolveSetActiveFileIdOptions=e;
1
+ function e(e={}){return{syncCurrent:e.syncCurrent??!0,shouldEmit:e.shouldEmit??!0,forceRefresh:e.forceRefresh??!1}}exports.resolveSetActiveFileIdOptions=e;