@guodun/antdv 1.4.1 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +304 -293
  2. package/dist/es/components/contract-signing-location/src/coordinates.mjs +23 -23
  3. package/dist/es/components/contract-signing-location/src/location-rules.mjs +20 -10
  4. package/dist/es/components/contract-signing-location/src/page-layout.mjs +12 -9
  5. package/dist/es/components/contract-signing-location/src/template-source.mjs +2 -0
  6. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +208 -180
  7. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.mjs +2 -1
  8. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.mjs +5 -0
  9. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.mjs +690 -0
  10. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.mjs +5 -0
  11. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +253 -0
  12. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.mjs +5 -0
  13. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.mjs +87 -0
  14. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.mjs +5 -0
  15. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.mjs +98 -0
  16. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.mjs +5 -0
  17. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.mjs +550 -0
  18. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.mjs +5 -0
  19. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.mjs +117 -0
  20. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.mjs +5 -0
  21. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.mjs +96 -0
  22. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +51 -26
  23. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.mjs +56 -33
  24. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.mjs +5 -0
  25. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.mjs +29 -0
  26. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.mjs +5 -0
  27. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.mjs +179 -0
  28. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.mjs +5 -0
  29. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.mjs +390 -0
  30. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +332 -263
  31. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1442 -2287
  32. package/dist/es/components/pro-contract-template-designer/src/composables/use-auto-pagination.mjs +71 -0
  33. package/dist/es/components/pro-contract-template-designer/src/composables/use-designer-files.mjs +11 -0
  34. package/dist/es/components/pro-contract-template-designer/src/composables/use-draft-cache-session.mjs +111 -0
  35. package/dist/es/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.mjs +79 -0
  36. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +189 -160
  37. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-files.mjs +35 -22
  38. package/dist/es/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.mjs +71 -0
  39. package/dist/es/components/pro-contract-template-designer/src/constants.mjs +71 -10
  40. package/dist/es/components/pro-contract-template-designer/src/extensions/editor-extensions.mjs +1 -0
  41. package/dist/es/components/pro-contract-template-designer/src/utils/block-style.mjs +43 -0
  42. package/dist/es/components/pro-contract-template-designer/src/utils/context-menu-viewport.mjs +13 -0
  43. package/dist/es/components/pro-contract-template-designer/src/utils/editor-state.mjs +7 -0
  44. package/dist/es/components/pro-contract-template-designer/src/utils/page-decorations.mjs +398 -0
  45. package/dist/es/components/pro-contract-template-designer/src/utils/serialize-fingerprint.mjs +6 -0
  46. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +88 -72
  47. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  48. package/dist/es/index.mjs +20 -20
  49. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  50. package/dist/lib/components/contract-signing-location/src/coordinates.cjs +1 -1
  51. package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
  52. package/dist/lib/components/contract-signing-location/src/page-layout.cjs +1 -1
  53. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  54. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -1
  55. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.cjs +1 -1
  56. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.cjs +1 -0
  57. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.cjs +1 -0
  58. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.cjs +1 -0
  59. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -0
  60. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.cjs +1 -0
  61. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.cjs +1 -0
  62. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.cjs +1 -0
  63. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.cjs +1 -0
  64. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.cjs +1 -0
  65. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.cjs +1 -0
  66. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.cjs +1 -0
  67. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.cjs +1 -0
  68. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.cjs +1 -0
  69. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.cjs +1 -0
  70. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
  71. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.cjs +1 -1
  72. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.cjs +1 -0
  73. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.cjs +1 -0
  74. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.cjs +1 -0
  75. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.cjs +1 -0
  76. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.cjs +1 -0
  77. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.cjs +1 -0
  78. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  79. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  80. package/dist/lib/components/pro-contract-template-designer/src/composables/use-auto-pagination.cjs +1 -0
  81. package/dist/lib/components/pro-contract-template-designer/src/composables/use-designer-files.cjs +1 -0
  82. package/dist/lib/components/pro-contract-template-designer/src/composables/use-draft-cache-session.cjs +1 -0
  83. package/dist/lib/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.cjs +1 -0
  84. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  85. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs +2 -2
  86. package/dist/lib/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.cjs +1 -0
  87. package/dist/lib/components/pro-contract-template-designer/src/constants.cjs +1 -1
  88. package/dist/lib/components/pro-contract-template-designer/src/extensions/editor-extensions.cjs +1 -1
  89. package/dist/lib/components/pro-contract-template-designer/src/utils/block-style.cjs +1 -0
  90. package/dist/lib/components/pro-contract-template-designer/src/utils/context-menu-viewport.cjs +1 -0
  91. package/dist/lib/components/pro-contract-template-designer/src/utils/editor-state.cjs +1 -0
  92. package/dist/lib/components/pro-contract-template-designer/src/utils/page-decorations.cjs +1 -0
  93. package/dist/lib/components/pro-contract-template-designer/src/utils/serialize-fingerprint.cjs +1 -0
  94. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
  95. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  96. package/dist/lib/index.cjs +1 -1
  97. package/dist/theme/icon.css +1 -1
  98. package/dist/theme/index.css +1 -1
  99. package/dist/types/components/contract-signing-location/src/coordinates.d.ts +2 -2
  100. package/dist/types/components/contract-signing-location/src/page-layout.d.ts +2 -2
  101. package/dist/types/components/contract-signing-location/src/template-source.d.ts +2 -0
  102. package/dist/types/components/contract-signing-location/src/types.d.ts +3 -0
  103. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +3 -0
  104. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.d.ts +1 -0
  105. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.d.ts +104 -0
  106. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +60 -0
  107. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.d.ts +27 -0
  108. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.d.ts +13 -0
  109. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.d.ts +28 -0
  110. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.d.ts +77 -0
  111. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.d.ts +36 -0
  112. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.d.ts +5 -1
  113. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.d.ts +4 -4
  114. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererToolbar.vue.d.ts +4 -4
  115. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.d.ts +12 -0
  116. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.d.ts +43 -0
  117. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.d.ts +77 -0
  118. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +30 -32
  119. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +456 -12
  120. package/dist/types/components/pro-contract-template-designer/src/composables/use-auto-pagination.d.ts +43 -0
  121. package/dist/types/components/pro-contract-template-designer/src/composables/use-designer-files.d.ts +22 -0
  122. package/dist/types/components/pro-contract-template-designer/src/composables/use-draft-cache-session.d.ts +41 -0
  123. package/dist/types/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.d.ts +49 -0
  124. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +15 -1
  125. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-files.d.ts +13 -0
  126. package/dist/types/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.d.ts +19 -0
  127. package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +7 -1
  128. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +89 -0
  129. package/dist/types/components/pro-contract-template-designer/src/utils/block-style.d.ts +4 -0
  130. package/dist/types/components/pro-contract-template-designer/src/utils/context-menu-viewport.d.ts +25 -0
  131. package/dist/types/components/pro-contract-template-designer/src/utils/editor-state.d.ts +8 -0
  132. package/dist/types/components/pro-contract-template-designer/src/utils/page-decorations.d.ts +90 -0
  133. package/dist/types/components/pro-contract-template-designer/src/utils/serialize-fingerprint.d.ts +8 -0
  134. package/dist/types/components/pro-contract-template-designer/src/utils/template-renderer.d.ts +4 -1
  135. package/package.json +3 -3
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`);var t=[`data-render-page-id`],n={key:0,class:`gd-contract-template-renderer__page-meta`},r=[`data-page-id`,`data-page-format`,`data-page-width`,`data-page-height`,`innerHTML`],i=(0,e.defineComponent)({name:`ContractTemplateRendererPage`,__name:`ContractTemplateRendererPage`,props:{page:{},index:{},total:{},zoom:{},showMeta:{type:Boolean}},setup(i){let a=i,o=(0,e.computed)(()=>({width:`${a.page.width*a.zoom}px`,height:`${a.page.height*a.zoom}px`})),s=(0,e.computed)(()=>({width:`${a.page.width}px`,minHeight:`${a.page.height}px`,transform:`scale(${a.zoom})`}));return(a,c)=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{class:`gd-contract-template-renderer__page-shell`,"data-render-page-id":i.page.id},[i.showMeta?((0,e.openBlock)(),(0,e.createElementBlock)(`header`,n,[(0,e.createElementVNode)(`strong`,null,`第 `+(0,e.toDisplayString)(i.index+1)+` / `+(0,e.toDisplayString)(i.total)+` 页`,1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(i.page.title),1),(0,e.createElementVNode)(`small`,null,(0,e.toDisplayString)(i.page.format)+` · `+(0,e.toDisplayString)(i.page.width)+` × `+(0,e.toDisplayString)(i.page.height)+` px`,1)])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{class:`gd-contract-template-renderer__page-frame`,style:(0,e.normalizeStyle)(o.value)},[(0,e.createElementVNode)(`section`,{class:`gd-contract-template-page`,"data-page-id":i.page.id,"data-page-format":i.page.format,"data-page-width":i.page.width,"data-page-height":i.page.height,style:(0,e.normalizeStyle)(s.value),innerHTML:i.page.contentHtml},null,12,r)],4)],8,t))}});exports.default=i;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/page-decorations.cjs`),t=require(`./ContractTemplatePageDecorations.cjs`);let n=require(`vue`);var r=[`data-render-page-id`],i={key:0,class:`gd-contract-template-renderer__page-meta`},a=[`data-page-id`,`data-page-format`,`data-page-width`,`data-page-height`],o=[`innerHTML`],s=(0,n.defineComponent)({name:`ContractTemplateRendererPage`,__name:`ContractTemplateRendererPage`,props:{page:{},index:{},total:{},zoom:{},showMeta:{type:Boolean}},setup(s){let c=s,l=(0,n.computed)(()=>({width:`${c.page.width*c.zoom}px`,height:`${c.page.height*c.zoom}px`})),u=(0,n.computed)(()=>{let t=e.normalizePageDecorations(c.page.pageDecorations);return{width:`${c.page.width}px`,minHeight:`${c.page.height}px`,paddingTop:`${e.hasEnabledPageHeader(t,c.index+1)?e.getPageDecorationSafePadding(t.header):e.CONTRACT_PAGE_BASE_PADDING.top}px`,paddingBottom:`${e.hasEnabledPageFooter(t,c.index+1)?e.getPageDecorationSafePadding(t.footer):e.CONTRACT_PAGE_BASE_PADDING.bottom}px`,transform:`scale(${c.zoom})`}});return(c,d)=>((0,n.openBlock)(),(0,n.createElementBlock)(`article`,{class:`gd-contract-template-renderer__page-shell`,"data-render-page-id":s.page.id},[s.showMeta?((0,n.openBlock)(),(0,n.createElementBlock)(`header`,i,[(0,n.createElementVNode)(`strong`,null,`第 `+(0,n.toDisplayString)(s.index+1)+` / `+(0,n.toDisplayString)(s.total)+` 页`,1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(s.page.title),1),(0,n.createElementVNode)(`small`,null,(0,n.toDisplayString)(s.page.format)+` · `+(0,n.toDisplayString)(s.page.width)+` × `+(0,n.toDisplayString)(s.page.height)+` px`,1)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,{class:`gd-contract-template-renderer__page-frame`,style:(0,n.normalizeStyle)(l.value)},[(0,n.createElementVNode)(`section`,{class:(0,n.normalizeClass)([`gd-contract-template-page`,{"has-contract-header":(0,n.unref)(e.hasEnabledPageHeader)(s.page.pageDecorations,s.index+1),"has-contract-footer":(0,n.unref)(e.hasEnabledPageFooter)(s.page.pageDecorations,s.index+1)}]),"data-page-id":s.page.id,"data-page-format":s.page.format,"data-page-width":s.page.width,"data-page-height":s.page.height,style:(0,n.normalizeStyle)(u.value)},[(0,n.createVNode)(t.default,{decorations:s.page.pageDecorations,"page-number":s.index+1,"total-pages":s.total,variables:s.page.decorationVariables,values:s.page.decorationValues},null,8,[`decorations`,`page-number`,`total-pages`,`variables`,`values`]),(0,n.createElementVNode)(`div`,{class:`gd-contract-template-page__content`,innerHTML:s.page.contentHtml},null,8,o)],14,a)],4)],8,r))}});exports.default=s;
@@ -0,0 +1 @@
1
+ var e=require(`./ContractTemplateSubmitDataModal.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`ant-design-vue`);var n={class:`gd-contract-template-designer__submit-data`},r=(0,e.defineComponent)({__name:`ContractTemplateSubmitDataModal`,props:{open:{type:Boolean},json:{}},emits:[`update:open`,`cancel`],setup(r,{emit:i}){let a=i;return(i,o)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Modal),{open:r.open,title:`提交数据查看`,width:`min(960px, calc(100vw - 48px))`,centered:``,footer:null,"wrap-class-name":`gd-contract-template-designer__submit-data-modal`,"onUpdate:open":o[0]||=e=>a(`update:open`,e),onCancel:o[1]||=e=>a(`cancel`)},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`pre`,n,(0,e.toDisplayString)(r.json),1)]),_:1},8,[`open`]))}});exports.default=r;
@@ -0,0 +1 @@
1
+ var e=require(`./ContractTemplateTextBubbleMenu.vue.cjs`).default;exports.default=e;
@@ -0,0 +1 @@
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`ant-design-vue`),n=require(`@ant-design/icons-vue`);var r=[`value`],i=(0,e.defineComponent)({name:`ContractTemplateTextBubbleMenu`,__name:`ContractTemplateTextBubbleMenu`,props:{x:{},y:{},editorState:{},fontSizePresetOptions:{},currentEditorFontSize:{},editorFontSizeSearchValue:{},currentEditorTextColor:{},textAlignOptions:{}},emits:[`command`,`patch-font-size`,`patch-text-align`,`patch-color`,`font-size-search`,`font-size-commit`,`font-size-dropdown-change`,`font-size-keydown`,`more`],setup(i,{expose:a,emit:o}){let s=o,c={left:n.AlignLeftOutlined,center:n.AlignCenterOutlined,right:n.AlignRightOutlined},l=(0,e.ref)();function u(e){let t=e.currentTarget?.getBoundingClientRect();s(`more`,t?.left??e.clientX,t?.bottom??e.clientY)}return a({getMenuElement:()=>l.value}),(a,o)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`menuElement`,ref:l,class:`gd-contract-template-designer__bubble-menu`,style:(0,e.normalizeStyle)({left:`${i.x}px`,top:`${i.y}px`}),role:`toolbar`,"aria-label":`选区格式工具条`},[(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__icon-button`,{"is-selected":i.editorState.isBold}]),"aria-pressed":i.editorState.isBold,"aria-label":`加粗`,onClick:o[0]||=e=>s(`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__icon-button`,{"is-selected":i.editorState.isItalic}]),"aria-pressed":i.editorState.isItalic,"aria-label":`斜体`,onClick:o[1]||=e=>s(`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__icon-button`,{"is-selected":i.editorState.isUnderline}]),"aria-pressed":i.editorState.isUnderline,"aria-label":`下划线`,onClick:o[2]||=e=>s(`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}),o[10]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__bubble-divider`,"aria-hidden":`true`},null,-1),(0,e.createVNode)((0,e.unref)(t.Select),{class:`gd-contract-template-designer__bubble-font-size`,"popup-class-name":`gd-contract-template-designer__bubble-menu-popup`,value:i.currentEditorFontSize,options:i.fontSizePresetOptions,"show-search":``,"filter-option":!1,"search-value":i.editorFontSizeSearchValue,size:`small`,onBlur:o[3]||=e=>s(`font-size-commit`),onChange:o[4]||=e=>s(`patch-font-size`,e),onDropdownVisibleChange:o[5]||=e=>s(`font-size-dropdown-change`,e),onInputKeyDown:o[6]||=e=>s(`font-size-keydown`,e),onSearch:o[7]||=e=>s(`font-size-search`,e)},null,8,[`value`,`options`,`search-value`]),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:`文字颜色`},{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`input`,{class:`gd-contract-template-designer__bubble-color`,type:`color`,"aria-label":`文字颜色`,value:i.currentEditorTextColor,onInput:o[8]||=e=>s(`patch-color`,e.target.value)},null,40,r)]),_:1}),o[11]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__bubble-divider`,"aria-hidden":`true`},null,-1),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.textAlignOptions,n=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(t.Tooltip),{key:n.value,title:n.label},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:(0,e.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":i.editorState.textAlign===n.value}]),"aria-pressed":i.editorState.textAlign===n.value,"aria-label":n.label,onClick:e=>s(`patch-text-align`,n.value)},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(c[n.value]),{"aria-hidden":`true`}))]),_:2},1032,[`class`,`aria-pressed`,`aria-label`,`onClick`])]),_:2},1032,[`title`]))),128)),o[12]||=(0,e.createElementVNode)(`span`,{class:`gd-contract-template-designer__bubble-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:`gd-contract-template-designer__icon-button`,"aria-label":`清除文字格式`,onClick:o[9]||=e=>s(`command`,{type:`clear-text-format`})},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ClearOutlined),{"aria-hidden":`true`})]),_: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__icon-button`,"aria-label":`更多操作`,onClick:u},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.EllipsisOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})],4))}});exports.default=i;
@@ -0,0 +1 @@
1
+ var e=require(`./ContractTemplateTextContextMenu.vue.cjs`).default;exports.default=e;
@@ -0,0 +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,2 +1,2 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/signing-placement.cjs`),t=require(`./constants.cjs`),n=require(`./composables/use-template-designer.cjs`),r=require(`./extensions/template-variable.cjs`),i=require(`./utils/content-image.cjs`),a=require(`./extensions/editor-extensions.cjs`),o=require(`./utils/context-variable.cjs`),s=require(`./SigningPlacementLayer.cjs`);let c=require(`vue`),l=require(`@tiptap/vue-3`),ee=require(`@tiptap/core`),u=require(`@tiptap/pm/tables`),d=require(`@tiptap/pm/state`);var f={class:`gd-contract-template-designer__page-title`},p=`application/x-gd-contract-variable-move`,te=8,m=(0,c.defineComponent)({name:`ProContractTemplateDesignerPage`,__name:`DesignerPage`,props:{page:{},pageIndex:{},pageSize:{},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`],setup(m,{expose:h,emit:ne}){let g=m,_=ne,v=(0,c.computed)(()=>g.readonly||g.disabled),y=(0,c.ref)(),b=a.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:g.processImageFile,getZoom:()=>Math.max(.1,g.zoom||1)}),x=(0,l.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=ce(e,t.target);if(n)return t.preventDefault(),j({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=x.value?.state.selection,i=r instanceof u.CellSelection,a=t.target instanceof HTMLElement?!!t.target.closest(`td, th`):!1,s=o.resolveEditorContextMenuKind({isCellSelection:i,selectionEmpty:!r||r.empty,inTable:a});return t.preventDefault(),s===`table`&&(i||T(t.clientX,t.clientY,t.target))?(P({pageId:g.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(A({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(p,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(p);return!n||n===g.page.id?!1:(t.preventDefault(),_(`variable-move-blocked`,g.page.id),!0)}},handleKeyDown:(e,t)=>{if(v.value||!ae(t))return!1;let n=x.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=N();if(i){let e=n.view.coordsAtPos(r.from);return j({pageId:g.page.id,clientX:e.left,clientY:e.bottom},i),!0}let a=r instanceof u.CellSelection;if(o.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=se();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(u.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return P({pageId:g.page.id,clientX:e.left,clientY:e.bottom}),!0}let s=n.view.coordsAtPos(n.state.selection.from);return A({pageId:g.page.id,clientX:s.left,clientY:s.bottom}),!0}},onUpdate:({editor:e})=>{_(`page-update`,{...g.page,contentHtml:e.getHTML(),contentJson:e.getJSON()}),R()},onFocus:()=>{_(`editor-focus`,g.page.id),R()},onBlur:R,onSelectionUpdate:R,onCreate:R});function re(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 ie(){if(!x.value)return``;let{from:e,to:t}=x.value.state.selection;return x.value.state.doc.textBetween(e,t,`
2
- `)}function S(){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)>te)return;let i=Math.abs(r.left-n.left)/B.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function C(){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 ae(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function w(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 oe(e,t){let n=x.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return w(n.state.doc.resolve(r))}function se(){let e=x.value;if(e)return w(e.state.selection.$from)}function T(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 u.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=oe(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(u.CellSelection.create(r.state.doc,a))),!0):!1}function E(){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 D(){let e=x.value,t=e?.state.selection;if(!e||!(t instanceof u.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 O(e=x.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function k(e){let t=x.value;if(!t)return 0;let n=O(t.state.doc),r=n,i=e=>{r=O(e.doc)};return e===`delete-table-row`?(0,u.deleteRow)(t.state,i):e===`delete-table-column`?(0,u.deleteColumn)(t.state,i):(0,u.deleteTable)(t.state,i),Math.max(0,n-r)}function A(e){let t=x.value?.state.selection,n=!!(t&&!t.empty);_(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?S():void 0,leadingText:C()})}function j(e,t){_(`editor-context-menu`,{type:`image`,...e,image:t})}function M(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:i.normalizeContractImageDimension(e.attrs.width),height:i.normalizeContractImageDimension(e.attrs.height)}}function N(){let e=x.value?.state.selection;if(e instanceof d.NodeSelection)return M(e.node,e.from)}function ce(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 d.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(d.NodeSelection.create(e.state.doc,t))),M(r,t))}catch{return}}function P(e){_(`editor-context-menu`,{type:`table`,...e,capabilities:E(),activeAlignment:D(),affectedVariableCounts:{deleteRow:k(`delete-table-row`),deleteColumn:k(`delete-table-column`),deleteTable:k(`delete-table`)}})}function F(){return x.value?[1,2,3,4,5,6].find(e=>x.value?.isActive(`heading`,{level:e})):void 0}function I(){return[`center`,`right`].find(e=>x.value?.isActive(`heading`,{textAlign:e})||x.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function L(){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:F(),textAlign:I(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:re(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:ie(),selectedContentImage:N()}}function R(){_(`editor-state-change`,g.page.id,L())}(0,c.watch)(v,e=>{x.value?.setEditable(!e),R()}),(0,c.watch)(()=>g.page.contentHtml,e=>{!x.value||e===x.value.getHTML()||(x.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),R())});let z=(0,c.computed)(()=>({width:`${g.pageSize.width}px`,height:`${g.pageSize.height}px`,"--gd-contract-page-content-height":`${J()}px`})),B=(0,c.computed)(()=>Math.max(.1,g.zoom||1)),V=(0,c.computed)(()=>({width:`${Math.ceil((g.pageSize.width+10)*B.value)}px`,height:`${Math.ceil((g.pageSize.height+40)*B.value)}px`})),H=(0,c.computed)(()=>({"--gd-contract-page-zoom":String(B.value)})),U=(0,c.computed)(()=>n.resolvePageSize(g.pageSize));function W(e,t){let n=y.value?.getBoundingClientRect();return n?{x:Math.min(g.pageSize.width,Math.max(0,(e-n.left)/B.value)),y:Math.min(g.pageSize.height,Math.max(0,(t-n.top)/B.value))}:{x:g.pageSize.width/2,y:g.pageSize.height/2}}function G(t){let n=y.value?.getBoundingClientRect(),r=y.value?.closest(`.gd-contract-template-designer__canvas`)?.getBoundingClientRect(),i=e.getSigningPlacementDefaultSize(t);if(!n||!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(n.left,r.left),o=Math.max(n.top,r.top),s=Math.min(n.right,r.right),c=Math.min(n.bottom,r.bottom),l=W(s>a?(a+s)/2:(n.left+n.right)/2,c>o?(o+c)/2:(n.top+n.bottom)/2);return{x:l.x-i.width/2,y:l.y-i.height/2}}function le(t){if(!e.canMutateSigningPlacements(g.readonly,g.disabled)){t.preventDefault(),t.stopPropagation();return}let n=e.parseSigningPlacementDragPayload(t.dataTransfer?.getData(e.SIGNING_PLACEMENT_MIME));if(n){t.preventDefault(),t.stopPropagation();let e=W(t.clientX,t.clientY);_(`signing-placement-drop`,g.page.id,n,e.x,e.y);return}let r=t.dataTransfer?.getData(`application/x-gd-contract-variable`);if(r){t.preventDefault(),t.stopPropagation(),_(`variable-drop`,g.page.id,r,t.clientX,t.clientY);return}let i=t.dataTransfer?.getData(p);i&&i!==g.page.id&&(t.preventDefault(),t.stopPropagation(),_(`variable-move-blocked`,g.page.id))}function ue(e,t){let n=x.value;if(!n)return;let i=t?n.view.posAtCoords(t)?.pos:void 0;return r.insertTemplateVariableNode(n,e,i),$(),K()}function de(e,t){let n=x.value;if(n)return a.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),K()}function fe(e){let t=x.value,n=t?.state.selection;if(!t||!(n instanceof d.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},a=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:i.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,a=!0)}),!a)return;let o=t.state.tr.setNodeMarkup(n.from,void 0,r);return o.setSelection(d.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),K()}function pe(){let e=x.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function K(){return{...g.page,pageSize:U.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 me(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function he(e){return(0,ee.generateHTML)(q(e),b)}function J(){let e=y.value;if(!e)return g.pageSize.height-108;let t=window.getComputedStyle(e),n=Number.parseFloat(t.paddingTop)||0,r=Number.parseFloat(t.paddingBottom)||0;return Math.max(120,g.pageSize.height-n-r)}function ge(){let e=y.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=B.value;return Array.from(e.children).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}})}function Y(){if(!x.value)return;let e=x.value.getJSON();return n.splitPageContentByMeasurements(e.content,ge(),J())}function _e(){return!!Y()}function ve(){if(!x.value)return;let e=Y();if(e)return x.value.commands.setContent(q(e.currentContent),{emitUpdate:!1}),{page:K(),overflowContent:e.overflowContent,overflowHtml:he(e.overflowContent)}}function ye(e){if(!x.value||!e.length)return;let t=x.value.getJSON().content,n=[...e,...me(t)?[]:t??[]];return x.value.commands.setContent(q(n),{emitUpdate:!1}),K()}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 be(e,t=e.key){if(!x.value)return;let n=r.buildTemplateVariableAttrs(e),i=!1;return x.value.commands.command(({tr:e,state:r,dispatch:a})=>(X(r.doc,t).forEach(({node:t,pos:r})=>{e.setNodeMarkup(r,void 0,{...t.attrs,...n}),i=!0}),i&&a?.(e),i)),$(),i?K():void 0}function xe(e){if(!x.value)return;let t=0;return x.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=X(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?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 Se(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 Ce(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 we(e){let r=t.CONTRACT_TEXT_STYLE_PRESETS.find(t=>t.key===e),i=x.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||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`).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)([()=>g.selectedVariableKey,()=>g.variables],()=>{(0,c.nextTick)($)},{deep:!0,flush:`post`});function Te(e){e.type===`apply-text-style-preset`?we(e.preset):a.runContractTemplateEditorCommand(x.value,e),R()}function Ee(){x.value?.commands.focus()}function De(){return x.value?.getJSON()}function Oe(){return x.value?.getHTML()??g.page.contentHtml}function ke(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 Ae(){y.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,c.onBeforeUnmount)(()=>{x.value?.destroy()}),h({focus:Ee,getHTML:Oe,getJSON:De,getEditorState:L,getTableCommandCapabilities:E,getAffectedVariableCount:k,getVisibleSigningPlacementPosition:G,insertVariable:ue,insertContentImage:de,updateSelectedContentImage:fe,getSelectionRange:pe,hasOverflowContent:_e,updateVariable:be,removeVariable:xe,splitOverflowContent:ve,prependContent:ye,runCommand:Te,scrollIntoField:ke,scrollIntoVariable:Se,scrollIntoSigningPlacement:Ce,scrollIntoPage:Ae}),(e,t)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,c.normalizeStyle)(V.value)},[(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":m.active}]),style:(0,c.normalizeStyle)(H.value)},[(0,c.createElementVNode)(`header`,f,[(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(m.page.title||`第 ${m.pageIndex+1} 页`),1),(0,c.createElementVNode)(`span`,null,`第 `+(0,c.toDisplayString)(m.pageIndex+1)+` 页 · `+(0,c.toDisplayString)(m.pageSize.label||`A4`)+` · `+(0,c.toDisplayString)(m.pageSize.width)+` × `+(0,c.toDisplayString)(m.pageSize.height),1)]),(0,c.createElementVNode)(`div`,{ref_key:`pageElement`,ref:y,class:`gd-contract-template-designer__page`,style:(0,c.normalizeStyle)(z.value),onDragover:t[3]||=(0,c.withModifiers)(()=>{},[`prevent`]),onDrop:le,onClick:t[4]||=e=>_(`editor-focus`,m.page.id)},[(0,c.unref)(x)?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.EditorContent),{key:0,editor:(0,c.unref)(x)},null,8,[`editor`])):(0,c.createCommentVNode)(``,!0),(0,c.createVNode)(s.default,{"page-size":m.pageSize,placements:m.signingPlacements,"selected-id":m.selectedSigningPlacementId,zoom:B.value,readonly:m.readonly,disabled:m.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=m;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/signing-placement.cjs`),t=require(`./constants.cjs`),n=require(`./utils/page-decorations.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`,h=8,g=(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`],setup(g,{expose:re,emit:ie}){let _=g,v=ie,y=(0,u.computed)(()=>_.readonly||_.disabled),b=(0,u.ref)(),x=o.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:_.processImageFile,getZoom:()=>Math.max(.1,_.zoom||1)}),S=(0,d.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=I(e,t.target);if(n)return t.preventDefault(),N({pageId:_.page.id,clientX:t.clientX,clientY:t.clientY},n),!0;let r=S.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||D(t.clientX,t.clientY,t.target))?(L({pageId:_.page.id,clientX:t.clientX,clientY:t.clientY}),!0):(M({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||!le(t))return!1;let n=S.value;if(!n)return!1;t.preventDefault();let r=n.state.selection,i=F();if(i){let e=n.view.coordsAtPos(r.from);return N({pageId:_.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=E();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 L({pageId:_.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return M({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:W});function ae(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 oe(){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)/G.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 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 C(){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 le(e){return e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`}function w(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 T(e,t){let n=S.value,r=n?.view.posAtCoords({left:e,top:t})?.pos;if(!(!n||typeof r!=`number`))return w(n.state.doc.resolve(r))}function E(){let e=S.value;if(e)return w(e.state.selection.$from)}function D(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 f.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=T(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=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 k(){let e=S.value,t=e?.state.selection;if(!e||!(t instanceof f.CellSelection))return`left`;let n=new Set;return t.forEachCell(e=>{let t=e.attrs.textAlign;n.add(t===`center`||t===`right`?t:`left`)}),n.size===1?n.values().next().value??`left`:`mixed`}function A(e=S.value?.state.doc){let t=0;return e?.descendants(e=>{e.type.name===`templateVariable`&&(t+=1)}),t}function j(e){let t=S.value;if(!t)return 0;let n=A(t.state.doc),r=n,i=e=>{r=A(e.doc)};return e===`delete-table-row`?(0,f.deleteRow)(t.state,i):e===`delete-table-column`?(0,f.deleteColumn)(t.state,i):(0,f.deleteTable)(t.state,i),Math.max(0,n-r)}function M(e){let t=S.value?.state.selection,n=!!(t&&!t.empty);v(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?se():void 0,leadingText:C()})}function ue(e,t){M({pageId:_.page.id,clientX:e,clientY:t})}function N(e,t){v(`editor-context-menu`,{type:`image`,...e,image:t})}function P(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 F(){let e=S.value?.state.selection;if(e instanceof p.NodeSelection)return P(e.node,e.from)}function I(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 p.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(p.NodeSelection.create(e.state.doc,t))),P(r,t))}catch{return}}function L(e){v(`editor-context-menu`,{type:`table`,...e,capabilities:O(),activeAlignment:k(),affectedVariableCounts:{deleteRow:j(`delete-table-row`),deleteColumn:j(`delete-table-column`),deleteTable:j(`delete-table`)}})}function R(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function z(){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`&&R(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 B(){let e=z();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function V(){return z().length>1}function H(){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:B(),hasMixedBlockFormats:V(),textAlign:H(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:ae(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:oe(),selectedContentImage:F()}}function W(){v(`editor-state-change`,_.page.id,U())}(0,u.watch)(y,e=>{S.value?.setEditable(!e),W()}),(0,u.watch)(()=>_.page.contentHtml,e=>{!S.value||e===S.value.getHTML()||(S.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),W())});let de=(0,u.computed)(()=>{let e=n.normalizePageDecorations(_.pageDecorations),t=_.pageIndex+1,r=n.hasEnabledPageHeader(e,t)?n.getPageDecorationSafePadding(e.header):n.CONTRACT_PAGE_BASE_PADDING.top,i=n.hasEnabledPageFooter(e,t)?n.getPageDecorationSafePadding(e.footer):n.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`}}),G=(0,u.computed)(()=>Math.max(.1,_.zoom||1)),fe=(0,u.computed)(()=>({width:`${Math.ceil((_.pageSize.width+10)*G.value)}px`,height:`${Math.ceil((_.pageSize.height+40)*G.value)}px`})),pe=(0,u.computed)(()=>({"--gd-contract-page-zoom":String(G.value)})),me=(0,u.computed)(()=>r.resolvePageSize(_.pageSize));function K(e,t){let n=b.value?.getBoundingClientRect();return n?{x:Math.min(_.pageSize.width,Math.max(0,(e-n.left)/G.value)),y:Math.min(_.pageSize.height,Math.max(0,(t-n.top)/G.value))}:{x:_.pageSize.width/2,y:_.pageSize.height/2}}function he(t){let n=b.value?.getBoundingClientRect(),r=b.value?.closest(`.gd-contract-template-designer__canvas`)?.getBoundingClientRect(),i=e.getSigningPlacementDefaultSize(t);if(!n||!r)return{x:Math.max(0,(_.pageSize.width-i.width)/2),y:Math.max(0,(_.pageSize.height-i.height)/2)};let a=Math.max(n.left,r.left),o=Math.max(n.top,r.top),s=Math.min(n.right,r.right),c=Math.min(n.bottom,r.bottom),l=K(s>a?(a+s)/2:(n.left+n.right)/2,c>o?(o+c)/2:(n.top+n.bottom)/2);return{x:l.x-i.width/2,y:l.y-i.height/2}}function ge(t){if(!e.canMutateSigningPlacements(_.readonly,_.disabled)){t.preventDefault(),t.stopPropagation();return}let n=e.parseSigningPlacementDragPayload(t.dataTransfer?.getData(e.SIGNING_PLACEMENT_MIME));if(n){t.preventDefault(),t.stopPropagation();let e=K(t.clientX,t.clientY);v(`signing-placement-drop`,_.page.id,n,e.x,e.y);return}let r=t.dataTransfer?.getData(`application/x-gd-contract-variable`);if(r){t.preventDefault(),t.stopPropagation(),v(`variable-drop`,_.page.id,r,t.clientX,t.clientY);return}let i=t.dataTransfer?.getData(m);i&&i!==_.page.id&&(t.preventDefault(),t.stopPropagation(),v(`variable-move-blocked`,_.page.id))}function _e(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 ve(e,t){let n=S.value;if(n)return o.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),q()}function ye(e){let t=S.value,n=t?.state.selection;if(!t||!(n instanceof p.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:a.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let o=t.state.tr.setNodeMarkup(n.from,void 0,r);return o.setSelection(p.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),q()}function be(){let e=S.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function q(){return{..._.page,pageSize:me.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 xe(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function Se(e){return(0,te.generateHTML)(J(e),x)}function Ce(){if(_.pageDecorations){let e=n.normalizePageDecorations(_.pageDecorations),t=_.pageIndex+1,r=n.hasEnabledPageHeader(e,t)?n.getPageDecorationSafePadding(e.header):n.CONTRACT_PAGE_BASE_PADDING.top,i=n.hasEnabledPageFooter(e,t)?n.getPageDecorationSafePadding(e.footer):n.CONTRACT_PAGE_BASE_PADDING.bottom;return Math.max(120,_.pageSize.height-r-i)}let e=b.value;if(!e)return _.pageSize.height-108;let t=window.getComputedStyle(e),r=Number.parseFloat(t.paddingTop)||0,i=Number.parseFloat(t.paddingBottom)||0;return Math.max(120,_.pageSize.height-r-i)}function we(){let e=b.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=G.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 r.splitPageContentByMeasurements(e.content,we(),Ce())}function Te(){return!!Y()}function Ee(){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:Se(e.overflowContent)}}function De(e){if(!S.value||!e.length)return;let t=S.value.getJSON().content,n=[...e,...xe(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 Oe(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 ke(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 Ae(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 je(e){let t=Array.from(b.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(_.selectedVariableKey)?.classList.add(`is-active`)}function Me(e){let n=t.CONTRACT_TEXT_STYLE_PRESETS.find(t=>t.key===e),i=S.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||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`).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)([()=>_.selectedVariableKey,()=>_.variables],()=>{(0,u.nextTick)($)},{deep:!0,flush:`post`});function Ne(e){e.type===`apply-block-style`?S.value&&c.applyContractTemplateBlockStyle(S.value,e.format):e.type===`apply-text-style-preset`?Me(e.preset):o.runContractTemplateEditorCommand(S.value,e),W()}function Pe(){S.value?.commands.focus()}function Fe(){return S.value?.getJSON()}function Ie(){return S.value?.getHTML()??_.page.contentHtml}function Le(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 Re(){b.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,u.onBeforeUnmount)(()=>{S.value?.destroy()}),re({focus:Pe,getHTML:Ie,getJSON:Fe,getEditorState:U,getTableCommandCapabilities:O,getAffectedVariableCount:j,getVisibleSigningPlacementPosition:he,insertVariable:_e,insertContentImage:ve,updateSelectedContentImage:ye,getSelectionRange:be,getSelectionViewportRect:ce,requestTextContextMenu:ue,hasOverflowContent:Te,updateVariable:Oe,removeVariable:ke,splitOverflowContent:Ee,prependContent:De,runCommand:Ne,scrollIntoField:Le,scrollIntoVariable:Ae,scrollIntoSigningPlacement:je,scrollIntoPage:Re}),(e,t)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,u.normalizeStyle)(fe.value)},[(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":g.active}]),style:(0,u.normalizeStyle)(pe.value)},[(0,u.createElementVNode)(`header`,ne,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(g.page.title||`第 ${g.pageIndex+1} 页`),1),(0,u.createElementVNode)(`span`,null,`第 `+(0,u.toDisplayString)(g.pageIndex+1)+` 页 · `+(0,u.toDisplayString)(g.pageSize.label||`A4`)+` · `+(0,u.toDisplayString)(g.pageSize.width)+` × `+(0,u.toDisplayString)(g.pageSize.height),1)]),(0,u.createElementVNode)(`div`,{ref_key:`pageElement`,ref:b,class:`gd-contract-template-designer__page`,style:(0,u.normalizeStyle)(de.value),onDragover:t[3]||=(0,u.withModifiers)(()=>{},[`prevent`]),onDrop:ge,onClick:t[4]||=e=>v(`editor-focus`,g.page.id)},[(0,u.createVNode)(ee.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,u.unref)(S)?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,u.unref)(S)},null,8,[`editor`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(l.default,{"page-size":g.pageSize,placements:g.signingPlacements,"selected-id":g.selectedSigningPlacementId,zoom:G.value,readonly:g.readonly,disabled:g.disabled,onSelect:t[0]||=e=>v(`signing-placement-select`,e),onMove:t[1]||=e=>v(`signing-placement-move`,e),onRemove:t[2]||=e=>v(`signing-placement-remove`,e)},null,8,[`page-size`,`placements`,`selected-id`,`zoom`,`readonly`,`disabled`])],36)],6)],4))}});exports.default=g;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./types.cjs`),t=require(`./utils/signing-placement.cjs`),n=require(`./constants.cjs`),r=require(`./composables/use-template-designer.cjs`),i=require(`./utils/image-url.cjs`),a=require(`./composables/use-fit-width-zoom.cjs`),o=require(`./utils/content-image.cjs`),s=require(`./utils/context-variable.cjs`),c=require(`./DesignerPage.cjs`),ee=require(`./ContractTemplatePreviewPage.cjs`),te=require(`./TableContextMenu.cjs`),ne=require(`./TableSizePicker.cjs`),l=require(`./composables/use-template-draft-cache.cjs`),u=require(`./composables/use-template-files.cjs`),re=require(`./utils/template-tool-icons.cjs`),ie=require(`./ContractTemplateFileBar.cjs`),ae=require(`./ContractTemplateDesignerSidebar.cjs`),oe=require(`./ContractTemplateDesignerInspector.cjs`),se=require(`./utils/toolbar-overflow.cjs`);let d=require(`vue`),f=require(`ant-design-vue`),ce=require(`@vueuse/core`),p=require(`@ant-design/icons-vue`);var le={class:`gd-contract-template-designer__workspace-header`},ue={class:`gd-contract-template-designer__workspace-meta`},de={class:`gd-contract-template-designer__workspace-actions`},fe={class:`gd-contract-template-designer__workspace-controls`},pe={class:`gd-contract-template-designer__zoom`},me={class:`gd-contract-template-designer__workspace-buttons`},he={class:`gd-contract-template-designer__toolbar`},ge={class:`gd-contract-template-designer__toolbar-group`},_e={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--style`},ve={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--format`},ye={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--insert`,"data-toolbar-overflow-key":`insert`},be={class:`gd-contract-template-designer__popover gd-contract-template-designer__control-insert-popover`},xe={class:`gd-contract-template-designer__text-menu-control-options`},Se=[`aria-label`,`onClick`],Ce={class:`gd-contract-template-designer__popover gd-contract-template-designer__image-insert-popover`},we={class:`gd-contract-template-designer__image-size-fields`,role:`group`,"aria-label":`图片尺寸`},Te={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--typography`,"data-toolbar-overflow-key":`typography`},Ee=[`value`,`disabled`],De={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--cleanup`,"data-toolbar-overflow-key":`cleanup`},Oe={class:`gd-contract-template-designer__toolbar-group gd-contract-template-designer__toolbar-group--table`,"data-toolbar-overflow-key":`table`},ke={class:`gd-contract-template-designer__popover`},Ae={class:`gd-contract-template-designer__switch-row`},je={class:`gd-contract-template-designer__popover`},Me={class:`gd-contract-template-designer__table-actions`},Ne={class:`gd-contract-template-designer__toolbar-more-panel`,role:`menu`,"aria-label":`更多编辑工具`},Pe={class:`gd-contract-template-designer__toolbar-more-section`},Fe={class:`gd-contract-template-designer__toolbar-more-section`},Ie={class:`gd-contract-template-designer__toolbar-more-section`},Le={class:`gd-contract-template-designer__toolbar-more-section`},Re={key:0,class:`gd-contract-template-designer__validation`},ze={key:0,class:`gd-contract-template-designer__validation-list`},Be=[`onClick`],Ve={class:`gd-contract-template-designer__image-size-fields`,role:`group`,"aria-label":`图片尺寸`},He={class:`gd-contract-template-designer__popover-actions`},Ue={class:`gd-contract-template-designer__text-menu-row`,role:`group`,"aria-label":`编辑历史与剪贴板`},We={key:0,class:`gd-contract-template-designer__text-menu-quick-insert`,role:`group`,"aria-label":`光标处插入`},Ge={class:`gd-contract-template-designer__text-menu-row gd-contract-template-designer__text-menu-row--controls`,role:`group`,"aria-label":`文字样式`},Ke=[`value`],qe=[`aria-label`],Je={class:`gd-contract-template-designer__text-menu-control-head`},Ye={class:`gd-contract-template-designer__text-menu-control-options`},Xe=[`aria-label`,`onClick`],Ze=[`disabled`],Qe={class:`gd-contract-template-designer__text-menu-bind-list`,role:`listbox`,"aria-label":`已有正文控件`},$e=[`onClick`],et={class:`gd-contract-template-designer__text-menu-bind-item-label`},tt={class:`gd-contract-template-designer__text-menu-bind-item-meta`},nt={key:0,class:`gd-contract-template-designer__text-menu-bind-empty`},rt={class:`gd-contract-template-designer__text-menu-row`,role:`group`,"aria-label":`常用格式与列表`},it={class:`gd-contract-template-designer__text-menu-row gd-contract-template-designer__text-menu-row--cleanup`,role:`group`,"aria-label":`清理格式`},at={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},ot={key:0,class:`gd-contract-template-designer__preview-layout`},st={class:`gd-contract-template-designer__preview-file-nav`,"aria-label":`合同文件预览切换`},ct=[`aria-current`,`onClick`],lt={key:0,class:`gd-contract-template-designer__preview-file`},ut={class:`gd-contract-template-designer__preview-file-title`},dt={class:`gd-contract-template-designer__submit-data`},ft=.5,pt=1.5,mt=.1,ht=128,gt=108,_t=48,vt=24,yt=10,bt=48,xt=304,St=300,Ct=288,wt=196,m=12,Tt=43,Et=6,Dt=4,h=(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},defaultVariableStyle:{default:()=>r.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},showSubmitDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showSigningPlacementTools:{type:Boolean,default:!1},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:l.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:l.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:l.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(h,{expose:Ot,emit:kt}){let g=h,_=kt,At=(0,d.computed)(()=>({height:typeof g.height==`number`?`${g.height}px`:g.height})),jt=(0,d.ref)(),Mt=(0,d.ref)(),Nt=(0,d.ref)(),Pt=(0,d.ref)(),Ft=(0,d.ref)(),It=(0,d.ref)(),Lt=(0,d.ref)(),Rt=(0,d.ref)(),zt=(0,d.ref)(),Bt=(0,d.ref)();function Vt(e){if(!e||!Array.isArray(e.pages)||!Array.isArray(e.signingPlacements))return[];try{return r.validateTemplateValue(e).filter(e=>e.type===`signing-placement`)}catch{return[]}}function Ht(e,t){return Object.fromEntries(e.map((e,n)=>[e.id,Vt(t?.[n]?.template??e.template)]))}function Ut(e,t){let n=new Map;return{files:e.map(e=>{let i=r.constrainTemplatePageSizes(e.template,t);return i.resizedSigningPlacementIds.length&&n.set(e.id,i.resizedSigningPlacementIds),{...e,template:i.value}}),resizedSigningPlacementIds:n}}let Wt=``,Gt=``,Kt=(0,d.ref)(!1),v=(0,d.computed)(()=>Kt.value||Array.isArray(g.files)),qt=u.normalizeContractTemplateFiles(g.files,g.modelValue,g.pageSize),Jt=Ut(qt,g.pageSizeOptions),Yt=v.value?Jt.files:qt,Xt=u.resolveContractTemplateActiveFileId(Yt,g.activeFileId),y=(0,d.ref)(Yt),b=(0,d.ref)(Xt),Zt=Yt.find(e=>e.id===Xt)??Yt[0],x=(0,d.ref)(Ht(Yt,Array.isArray(g.files)?g.files:g.modelValue?[{template:g.modelValue}]:void 0)),S=(0,d.ref)(x.value[Xt]??Vt(Zt?.template)),Qt=r.normalizeTemplateValue(Zt?.template??g.modelValue,g.pageSize),$t=r.constrainTemplatePageSizes(Qt,g.pageSizeOptions),C=(0,d.ref)($t.value);if(v.value){if(y.value=u.replaceContractTemplateFile(y.value,b.value,$t.value),JSON.stringify(y.value)!==JSON.stringify(qt)){let e=u.cloneContractTemplateFiles(y.value);Wt=JSON.stringify(e),_(`update:files`,e),_(`files-change`,u.cloneContractTemplateFiles(e))}}else g.modelValue&&JSON.stringify($t.value)!==JSON.stringify(Qt)&&(Gt=JSON.stringify($t.value),_(`update:modelValue`,r.cloneTemplateValue($t.value)),_(`change`,r.cloneTemplateValue($t.value)),Vr($t.resizedSigningPlacementIds,$t.value));let w=(0,d.ref)(``),T=(0,d.ref)(``),E=(0,d.ref)(C.value.pages[0]?.id??``),D=(0,d.ref)(!1),O=(0,d.ref)([]),k=new Map,en=(0,d.ref)(!1),tn=(0,d.ref)(``),nn=(0,d.ref)(!1),rn=(0,d.ref)(),an=(0,d.ref)(),on=(0,d.ref)(``),sn=(0,d.ref)(!1),cn=(0,d.ref)(``),A=(0,d.ref)(1),ln=(0,d.ref)(!1),un=(0,d.ref)(!1),dn=(0,d.ref)(!1),fn=(0,d.ref)(!1),pn=(0,d.ref)({}),mn=(0,d.ref)(),hn=(0,d.ref)(``),j=(0,d.ref)(!1),M=(0,d.ref)(!1),gn=(0,d.ref)(!1),_n=(0,d.ref)(!1),vn=(0,d.ref)(``),yn=(0,d.ref)(),bn=(0,d.ref)(),xn=(0,d.ref)(``),Sn=(0,d.ref)(!1),N=(0,d.ref)(),Cn=(0,d.ref)(),wn=(0,d.ref)(!1),Tn=(0,d.ref)(``),P=(0,d.ref)(),En=(0,d.ref)(),F=(0,d.ref)(),Dn=(0,d.ref)(),On=(0,d.ref)(),kn=(0,d.ref)(),I=(0,d.ref)(``),L=(0,d.ref)(l.createDraftCacheStatus(`idle`,`暂无本地草稿`)),An=(0,d.ref)({rows:3,cols:3,withHeaderRow:!0}),jn,Mn,R=``,z=(0,d.computed)(()=>g.readonly||g.disabled),Nn=(0,d.computed)(()=>!!g.enableDraftCache&&!z.value),Pn=(0,d.computed)(()=>y.value.find(e=>e.id===b.value)??y.value[0]),Fn=(0,d.computed)(()=>g.draftCacheKey),B=(0,d.computed)(()=>C.value.variables.find(e=>e.key===w.value)),V=(0,d.computed)(()=>C.value.signingPlacements??[]),In=(0,d.computed)(()=>rn.value?r.buildTemplatePreviewPages(rn.value):[]),Ln=(0,d.computed)(()=>(an.value??[]).map(e=>({file:e,pages:r.buildTemplatePreviewPages(e.template)}))),Rn=(0,d.computed)(()=>Ln.value.find(e=>e.file.id===on.value)??Ln.value[0]),zn=(0,d.computed)(()=>V.value.find(e=>e.id===T.value)),Bn=(0,d.computed)(()=>V.value.map(e=>{let n=C.value.pages.findIndex(t=>t.id===e.pageId);return{placement:e,label:t.SIGNING_PLACEMENT_TYPE_LABELS[e.type],detail:`${t.SIGNING_PLACEMENT_TYPE_LABELS[e.type]} · 第 ${Math.max(0,n)+1} 页`}})),Vn=(0,d.computed)(()=>{let e=zn.value?.pageId;return Y(C.value.pages.find(t=>t.id===e))}),H=(0,d.computed)(()=>C.value.pages.find(e=>e.id===E.value)??C.value.pages[0]),Hn=(0,d.computed)(()=>r.resolvePageSize(H.value?.pageSize,C.value.pageSize)),Un=(0,d.computed)(()=>D.value&&O.value.length===0),Wn=(0,d.computed)(()=>D.value?Un.value?`校验通过,正文变量与变量配置一致`:`发现 ${O.value.length} 个校验问题`:``),Gn=(0,d.computed)(()=>{let e=H.value?.title||`合同正文`;return`${v.value&&Pn.value?`${Pn.value.name} · `:``}${e} · ${Hn.value.label} · 共 ${C.value.pages.length} 页`}),Kn=(0,d.computed)(()=>{switch(L.value.type){case`saved`:return`草稿已缓存 ${l.formatDraftCacheSavedAt(L.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),qn=(0,d.computed)(()=>({"is-success":L.value.type===`saved`||L.value.type===`restored`,"is-warning":L.value.type===`too-large`,"is-error":L.value.type===`unavailable`||L.value.type===`read-failed`||L.value.type===`write-failed`})),Jn=(0,d.computed)(()=>`${Math.round(A.value*100)}%`),Yn=(0,d.computed)(()=>n.resolveFontFamilyOptions(g.fontFamilies,g.fontFamilyMode)),Xn=(0,d.computed)(()=>Yn.value.map(e=>({label:e.label,value:e.value}))),Zn=(0,d.computed)(()=>n.CONTRACT_TEXT_STYLE_PRESETS.map(e=>({label:e.label,value:e.key}))),Qn=n.DEFAULT_TEXT_ALIGN_OPTIONS,$n=[{label:`正文`,value:`paragraph`},{label:`H1`,value:1},{label:`H2`,value:2},{label:`H3`,value:3},{label:`H4`,value:4},{label:`H5`,value:5},{label:`H6`,value:6}],er=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],tr=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],nr=(0,d.computed)(()=>r.normalizePageSizeOptions(g.pageSizeOptions)),rr=(0,d.computed)(()=>nr.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:r.getPageSizeKey(e)}))),ir=(0,d.computed)(()=>r.getPageSizeKey(Hn.value)),ar=(0,d.computed)(()=>t.resolveSigningPlacementToolItems({showSigningPlacementTools:g.showSigningPlacementTools})),or=(0,d.computed)(()=>g.variableTypes.filter(t=>e.isContractTemplateFieldType(t?.type))),sr=(0,d.computed)(()=>or.value.map(e=>({...e,icon:re.resolveFieldTypeIcon(e.type)}))),cr=(0,d.computed)(()=>r.normalizeContractTemplateMaxPages(g.maxPages)),lr=(0,d.computed)(()=>C.value.pages.length>=cr.value),ur=(0,d.computed)(()=>{let e=Tn.value.trim().toLowerCase(),t=C.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),dr=(0,d.computed)(()=>Math.max(_t,Hn.value.width-ht)),fr=(0,d.computed)(()=>Math.max(vt,Hn.value.height-gt)),U=(0,d.computed)(()=>pn.value[E.value]??br()),pr=(0,d.computed)(()=>U.value.currentHeadingLevel??`paragraph`),mr=(0,d.computed)(()=>U.value.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),hr=(0,d.computed)(()=>U.value.fontSize??r.DEFAULT_FIELD_STYLE.fontSize??14),gr=(0,d.computed)(()=>U.value.textColor||r.DEFAULT_FIELD_STYLE.color||`#1f2937`),_r=(0,d.computed)(()=>B.value?.style?.fontFamily||r.DEFAULT_FIELD_STYLE.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),vr=(0,d.computed)(()=>{let e=n.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),t=Tr(hr.value),r=Tr(hn.value),i=new Map;return r&&!n.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),t&&!n.DEFAULT_FONT_SIZE_PRESETS.includes(t)&&i.set(t,{label:r===t?`使用 ${t}px`:`${t}px`,value:t}),[...Array.from(i.values()),...e]});(0,d.watch)(()=>g.modelValue,e=>{if(!e||v.value)return;let t=r.normalizeTemplateValue(e,g.pageSize),n=r.constrainTemplatePageSizes(t,g.pageSizeOptions),i=n.value,a=JSON.stringify(i)!==JSON.stringify(C.value),o=JSON.stringify(i),s=o===Gt;s&&(Gt=``),(a||!s)&&(S.value=Vt(e),x.value={...x.value,[b.value]:S.value},C.value=i,y.value=u.replaceContractTemplateFile(y.value,b.value,i),E.value=i.pages[0]?.id??``,w.value=``,T.value=``,Q(E.value)),JSON.stringify(i)!==JSON.stringify(t)&&(Gt=o,_(`update:modelValue`,r.cloneTemplateValue(i)),_(`change`,r.cloneTemplateValue(i)),Vr(n.resizedSigningPlacementIds,i))},{deep:!0}),(0,d.watch)(()=>g.files,e=>{if(!Array.isArray(e))return;let t=u.normalizeContractTemplateFiles(e,void 0,g.pageSize),n=Ut(t,g.pageSizeOptions).files,r=JSON.stringify(n),i=JSON.stringify(y.value),a=r===Wt;a||(x.value=Ht(n,e)),a&&(Wt=``);let o=u.resolveContractTemplateActiveFileId(n,g.activeFileId||b.value);if(r===i?o!==b.value&&Dr(o,!1,!1):(y.value=n,Dr(o,!1,!1,!0,!1)),r!==JSON.stringify(t)){let e=u.cloneContractTemplateFiles(n);Wt=JSON.stringify(e),_(`update:files`,e),_(`files-change`,u.cloneContractTemplateFiles(e))}},{deep:!0}),(0,d.watch)(()=>g.activeFileId,e=>{!v.value||!e||e===b.value||Dr(e,!0,!1)});function yr(e,t){let n=JSON.stringify(y.value);W(!1);let{files:i,resizedSigningPlacementIds:a}=Ut(u.normalizeContractTemplateFiles(y.value,void 0,e),t),o=JSON.stringify(i)!==n,s=i.find(e=>e.id===b.value);s&&JSON.stringify(s.template)!==JSON.stringify(C.value)&&(C.value=r.cloneTemplateValue(s.template),S.value=[...x.value[b.value]??[]]),o&&(D.value=!1,O.value=[],G(i,``));let c=a.get(b.value);return c?.length&&s&&Vr(c,s.template),o}(0,d.watch)([()=>g.pageSize,()=>g.pageSizeOptions],([e,t])=>{if(v.value){yr(e,t),Q(E.value);return}let n=r.normalizeTemplateValue(C.value,e),i=r.constrainTemplatePageSizes(n,t);JSON.stringify(i.value)!==JSON.stringify(C.value)&&K(i.value),Q(E.value)},{deep:!0}),(0,d.watch)(cr,()=>{Q(C.value.pages[0]?.id)}),(0,d.watch)(z,e=>{e&&($(),j.value=!1,M.value=!1)}),(0,d.watch)(V,e=>{T.value&&!e.some(e=>e.id===T.value)&&(T.value=``,_(`signing-placement-select`,void 0))},{deep:!0}),(0,d.watch)(()=>[g.enableDraftCache,Fn.value,g.draftCacheInterval,z.value],()=>{R=``,Fr()}),(0,d.watch)(ln,e=>{if(!(typeof document>`u`)){if(e){jn=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=jn??``,jn=void 0}}),(0,d.onMounted)(()=>{Nr(),Fr(),Q(E.value),window.addEventListener(`pointerdown`,go,!0),window.addEventListener(`keydown`,vo),window.addEventListener(`resize`,$),window.addEventListener(`scroll`,$,!0)}),(0,d.onBeforeUnmount)(()=>{ln.value&&typeof document<`u`&&(document.body.style.overflow=jn??``),window.removeEventListener(`pointerdown`,go,!0),window.removeEventListener(`keydown`,vo),window.removeEventListener(`resize`,$),window.removeEventListener(`scroll`,$,!0),Pr()});function br(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:n.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:r.DEFAULT_FIELD_STYLE.fontSize??14,textColor:r.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``}}function xr(e){return e===`left`||e===`center`||e===`right`}function Sr(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function Cr(e){return typeof e==`string`&&n.CONTRACT_TEXT_STYLE_PRESETS.some(t=>t.key===e)}function wr(e,t=hr.value){let n=Number(e);return Number.isFinite(n)?Math.min(bt,Math.max(yt,Math.round(n))):t}function Tr(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(bt,Math.max(yt,Math.round(n)))}function Er(e=C.value){return{...e,pages:e.pages.map(e=>{let t=k.get(e.id);return{...e,contentHtml:t?.getHTML()??e.contentHtml,contentJson:t?.getJSON()??e.contentJson}})}}function W(e=!1){let t=r.cloneTemplateValue(Er());if(!v.value)return t;let n=y.value.find(e=>e.id===b.value)?.template,i=JSON.stringify(n)!==JSON.stringify(t),a=u.replaceContractTemplateFile(y.value,b.value,t);return y.value=a,i&&e&&G(a),t}function G(e,t=b.value){if(!v.value)return;let n=u.cloneContractTemplateFiles(e);y.value=n,Wt=JSON.stringify(n),_(`update:files`,u.cloneContractTemplateFiles(n)),_(`files-change`,u.cloneContractTemplateFiles(n));let r=n.find(e=>e.id===t);r&&_(`file-change`,u.cloneContractTemplateFiles([r])[0])}function Dr(e,t=!0,n=!0,i=!1,a=!0){let o=u.resolveContractTemplateActiveFileId(y.value,e),s=o!==b.value;if(a&&v.value&&b.value&&(x.value={...x.value,[b.value]:[...S.value]}),t&&W(!0),!s&&!i)return;let c=y.value.find(e=>e.id===o);c&&(b.value=o,C.value=r.cloneTemplateValue(c.template),S.value=[...x.value[o]??[]],w.value=``,T.value=``,E.value=C.value.pages[0]?.id??``,pn.value={},k.clear(),tn.value=``,D.value=!1,O.value=[],nn.value=!1,rn.value=void 0,an.value=void 0,R=``,n&&s&&_(`update:activeFileId`,o),t&&s&&Nn.value&&kr(),(0,d.nextTick)(()=>{Q(E.value)}))}function K(e){let t=r.normalizeTemplateValue(e,g.pageSize),n=r.constrainTemplatePageSizes(t,g.pageSizeOptions),i=n.value;return C.value=i,D.value=!1,O.value=[],v.value?G(u.replaceContractTemplateFile(y.value,b.value,i)):(y.value=u.replaceContractTemplateFile(y.value,b.value,i),Gt=JSON.stringify(i),_(`update:modelValue`,r.cloneTemplateValue(i)),_(`change`,r.cloneTemplateValue(i))),Vr(n.resizedSigningPlacementIds,i),i}function Or(e,t=e.type!==`unchanged`){L.value=e,t&&_(`draft-cache-change`,{...e})}function kr(){if(!Nn.value){let e=l.createDraftCacheStatus(`unavailable`,`草稿缓存未启用`);return Or(e),e}let e=l.getBrowserDraftCacheStorage();v.value&&W(!1);let t=v.value?l.saveTemplateFilesDraftCache({storage:e,key:Fn.value,value:{files:u.cloneContractTemplateFiles(y.value),activeFileId:b.value},maxBytes:g.draftCacheMaxBytes,previousValueSerialized:R}):l.saveTemplateDraftCache({storage:e,key:Fn.value,value:r.cloneTemplateValue(Er()),maxBytes:g.draftCacheMaxBytes,previousValueSerialized:R});return t.valueSerialized&&(R=t.valueSerialized),t.status.type!==`unchanged`&&Or(t.status),t.status}function Ar(){if(v.value){let e=l.loadTemplateFilesDraftCache(l.getBrowserDraftCacheStorage(),Fn.value);e.valueSerialized&&(R=e.valueSerialized),e.status.type!==`idle`&&Or(e.status);let t=u.resolveContractTemplateActiveFileId(e.value?.files??[],e.value?.activeFileId),n=e.value?.files.find(e=>e.id===t)?.template;return n?r.cloneTemplateValue(n):void 0}let e=l.loadTemplateDraftCache(l.getBrowserDraftCacheStorage(),Fn.value);return e.valueSerialized&&(R=e.valueSerialized),e.status.type!==`idle`&&Or(e.status),e.value?r.cloneTemplateValue(e.value):void 0}function jr(){let e=l.clearTemplateDraftCache(l.getBrowserDraftCacheStorage(),Fn.value);R=``,Or(e)}function Mr(){return{...L.value}}function Nr(){if(!Nn.value)return;if(v.value){let e={files:u.cloneContractTemplateFiles(y.value),activeFileId:b.value};if(!l.isBlankTemplateFilesDraftValue(e))return;let t=l.loadTemplateFilesDraftCache(l.getBrowserDraftCacheStorage(),Fn.value);if(t.valueSerialized&&(R=t.valueSerialized),t.value){let e=Ut(u.normalizeContractTemplateFiles(t.value.files,void 0,g.pageSize),g.pageSizeOptions);y.value=e.files,x.value=Ht(e.files,t.value.files),Dr(u.resolveContractTemplateActiveFileId(y.value,t.value.activeFileId),!1,!0,!0,!1),G(y.value,``),Or(t.status);return}t.status.type!==`idle`&&t.status.type!==`invalid`&&Or(t.status);return}if(!l.isBlankTemplateDraftValue(C.value))return;let e=l.loadTemplateDraftCache(l.getBrowserDraftCacheStorage(),Fn.value);if(e.valueSerialized&&(R=e.valueSerialized),e.value){E.value=K(e.value).pages[0]?.id??``,w.value=``,Q(E.value),Or(e.status);return}e.status.type!==`idle`&&e.status.type!==`invalid`&&Or(e.status)}function Pr(){Mn&&=(clearInterval(Mn),void 0)}function Fr(){if(Pr(),!Nn.value||typeof window>`u`)return;let e=Math.max(1e3,Math.round(Number(g.draftCacheInterval)||5e3));Mn=window.setInterval(()=>{kr()},e)}function Ir(e,t){t?k.set(e,t):k.delete(e)}function q(e,t=H.value?.id??E.value){z.value||k.get(t)?.runCommand(e)}function J(e){q(e),$()}function Lr(e){let t=N.value?.pageId;t&&(k.get(t)?.focus(),I.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function Rr(e){let t=K(r.syncTemplateVariablesWithPages(e));return w.value&&!t.variables.some(e=>e.key===w.value)&&(w.value=``),t}function zr(e){Rr({...C.value,pages:C.value.pages.map(t=>t.id===e.id?e:t)}),Q(e.id)}function Y(e){return r.resolvePageSize(e?.pageSize,C.value.pageSize)}function Br(e){return V.value.filter(t=>t.pageId===e)}function X(e){return{...e,...e.sealTypes?{sealTypes:[...e.sealTypes]}:{}}}function Vr(e,t=C.value){let n=new Set(e);n.size&&(Ur(n),(t.signingPlacements??[]).filter(e=>n.has(e.id)).forEach(e=>_(`signing-placement-change`,X(e))))}function Z(e){let t=e?V.value.find(t=>t.id===e):void 0;T.value=t?.id??``,t&&(w.value=``,E.value=t.pageId),_(`signing-placement-select`,t?X(t):void 0)}function Hr(e){Z(e.id)}function Ur(e){let t=new Set(e);if(!t.size)return;let n=S.value.filter(e=>e.type!==`signing-placement`||!t.has(e.id));S.value=n,x.value={...x.value,[b.value]:n}}function Wr(e){let t=S.value.filter(t=>t.type!==`signing-placement`||t.pageId!==e);S.value=t,x.value={...x.value,[b.value]:t}}function Gr(e,t=[]){return Ur(t),K({...C.value,signingPlacements:e})}function Kr(e,n=H.value?.id??C.value.pages[0]?.id,r){if(!t.canMutateSigningPlacements(g.readonly,g.disabled)||!n)return;let i=C.value.pages.find(e=>e.id===n);if(!i)return;let a=t.createSigningPlacement(e,n,Y(i),{...r??k.get(n)?.getVisibleSigningPlacementPosition(e)});return Gr([...V.value,a]),E.value=n,Z(a.id),_(`signing-placement-add`,X(a)),a}function qr(e,n,r,i){if(!g.showSigningPlacementTools)return;let a=t.getSigningPlacementDefaultSize(n.type);Kr(n.type,e,{x:r-a.width/2,y:i-a.height/2})}function Jr(e){return Kr(e.type)}function Yr(e,n){if(!t.canMutateSigningPlacements(g.readonly,g.disabled)){e.preventDefault();return}e.dataTransfer?.setData(t.SIGNING_PLACEMENT_MIME,t.serializeSigningPlacementDragPayload(n)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Xr(e){if(!t.canMutateSigningPlacements(g.readonly,g.disabled))return;let n=C.value.pages.find(t=>t.id===e.pageId);if(!n)return;let r=t.clampSigningPlacement({...e,...e.type===`seal`?{}:{sealTypes:void 0}},Y(n));Gr(V.value.map(e=>e.id===r.id?r:e),[r.id]),T.value=r.id,_(`signing-placement-change`,X(r))}function Zr(e){let n=zn.value;if(!n)return;let r=C.value.pages.find(e=>e.id===n.pageId);r&&Xr(t.applySigningPlacementPatch(n,e,Y(r)))}function Qr(e=zn.value){if(!t.canMutateSigningPlacements(g.readonly,g.disabled)||!e)return;let n=C.value.pages.find(t=>t.id===e.pageId);if(!n)return;let r=t.createSigningPlacement(e.type,e.pageId,Y(n),{...X(e),id:void 0,x:e.x+16,y:e.y+16});Gr([...V.value,r]),Z(r.id),_(`signing-placement-add`,X(r))}function $r(e=zn.value){!t.canMutateSigningPlacements(g.readonly,g.disabled)||!e||(Gr(V.value.filter(t=>t.id!==e.id),[e.id]),T.value===e.id&&Z(),_(`signing-placement-remove`,X(e)))}function ei(e){if(z.value||!H.value)return;let n=nr.value.find(t=>r.getPageSizeKey(t)===e);if(!n)return;let i=H.value.id,a=Y(H.value),o=r.resolvePageSize(n,C.value.pageSize),s=V.value.map(e=>e.pageId===i?t.scaleSigningPlacementToPage(e,a,o):e);Ur(s.filter(e=>e.pageId===i).map(e=>e.id)),K({...C.value,pages:C.value.pages.map(e=>e.id===i?{...e,pageSize:o}:e),signingPlacements:s}),s.filter(e=>e.pageId===i).forEach(e=>_(`signing-placement-change`,X(e))),Q(i)}function ti(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function ni(e){return e.replace(/<p>\s*(<br>)?\s*<\/p>/gi,``).trim().length===0}function ri(e,t,n){let r=e.contentJson?.content,i=[...t,...r?.length?r:[]],a=ni(e.contentHtml||``)?``:e.contentHtml;return{...e,contentHtml:`${n}${a}`,contentJson:ti(i)}}function Q(e=E.value){if(z.value)return;let t=C.value.pages.findIndex(e=>e.id===tn.value),n=C.value.pages.findIndex(t=>t.id===e);(!tn.value||t<0||n>=0&&n<t)&&(tn.value=e),!en.value&&(0,d.nextTick)(()=>ai())}function ii(e){let t=cr.value;I.value=`合同最多支持 ${t} 页`,_(`page-limit`,t,e)}async function ai(){if(!en.value){en.value=!0;try{let e=tn.value;tn.value=``;let t=0,n=Math.max(40,cr.value+1);for(;t<n;){await(0,d.nextTick)();let n=Er().pages,i=Math.max(0,n.findIndex(t=>t.id===e)),a=!1;for(let t=i;t<n.length;t+=1){let i=n[t];if(t===n.length-1&&n.length>=cr.value&&k.get(i.id)?.hasOverflowContent()){ii(`auto-pagination`);break}let o=k.get(i.id)?.splitOverflowContent();if(!o)continue;let s=Er().pages,c=s.findIndex(e=>e.id===i.id);if(c<0)break;s[c]=o.page;let ee=s[c+1];ee?s[c+1]=k.get(ee.id)?.prependContent(o.overflowContent)??ri(ee,o.overflowContent,o.overflowHtml):s.push(r.createBlankPage(s.length+1,Y(o.page),o.overflowHtml,ti(o.overflowContent))),Rr({...C.value,pages:s}),e=s[c+1]?.id??o.page.id,a=!0;break}if(!a)break;t+=1}}finally{en.value=!1,tn.value&&(0,d.nextTick)(()=>ai())}}}function oi(){if(z.value)return;if(lr.value){ii(`add`);return}let e=r.createDefaultPage(C.value.pages.length+1,Hn.value);K({...C.value,pages:[...C.value.pages,e]}),E.value=e.id}function si(e){if(z.value)return;if(lr.value){ii(`duplicate`);return}let n=C.value.pages.findIndex(t=>t.id===e.id);if(n<0)return;let i=r.cloneTemplateValue({pages:[e],variables:[],pageSize:C.value.pageSize,signingPlacements:[]}).pages[0],a=r.createBlankPage(n+2,Y(e),i.contentHtml,i.contentJson);a.title=`${e.title||`第 ${n+1} 页`}副本`;let o=[...C.value.pages];o.splice(n+1,0,a);let s=Br(e.id).map(e=>t.createSigningPlacement(e.type,a.id,Y(a),{...X(e),id:void 0,pageId:a.id}));K({...C.value,pages:o,signingPlacements:[...V.value,...s]}),E.value=a.id,s.forEach(e=>_(`signing-placement-add`,X(e))),s[0]&&Z(s[0].id)}function ci(e){if(z.value||C.value.pages.length<=1)return;let t=C.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=Br(e.id);Wr(e.id);let r=C.value.pages.filter(t=>t.id!==e.id),i=Rr({...C.value,pages:r,signingPlacements:V.value.filter(t=>t.pageId!==e.id)});E.value=i.pages[Math.min(t,i.pages.length-1)]?.id??``,n.some(e=>e.id===T.value)&&Z(),n.forEach(e=>_(`signing-placement-remove`,X(e)))}function li(e){if(z.value||C.value.pages.length<=1)return;let t=Br(e.id).length;if(!t){ci(e);return}f.Modal.confirm({title:`删除合同页面`,content:`此页包含 ${t} 个签署位置,删除页面会同时移除这些位置,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{ci(e)}})}function ui(e){let t=new Set(C.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function di(e){let t=e.type??`text`;return r.createTemplateVariable({...e,type:t,key:e.key||ui(t),label:e.label||r.getFieldOption(t,g.variableTypes).label},g.variableTypes,g.defaultVariableStyle)}function fi(e,t=H.value?.id??C.value.pages[0].id,n){if(z.value)return e;let r=k.get(t)?.insertVariable(e,n),i=!C.value.variables.some(t=>t.key===e.key);return K({...C.value,pages:r?C.value.pages.map(e=>e.id===r.id?r:e):C.value.pages,variables:i?[...C.value.variables,e]:C.value.variables}),w.value=e.key,Z(),E.value=t,i&&_(`variable-add`,e),Q(t),e}function pi(e){let{width:t,height:n,...r}=e,i=o.normalizeContractImageDimension(t),a=o.normalizeContractImageDimension(n);return{...r,...i===void 0?{}:{width:i},...a===void 0?{}:{height:a}}}function mi(e={}){let t=o.normalizeContractImageDimension(yn.value),n=o.normalizeContractImageDimension(bn.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function hi(){vn.value=``,yn.value=void 0,bn.value=void 0,xn.value=``}function gi(e,t=H.value?.id??C.value.pages[0]?.id,n){let r=pi({...e,src:e.src.trim()});if(!(z.value||!t||!i.isSafeContractImageUrl(r.src)||!r.src||!k.get(t)?.insertContentImage(r,n)))return E.value=t,w.value=``,Z(),r.src}function _i(e){return e instanceof Error?e:Error(`图片处理失败`)}async function vi(e,t){t===`toolbar`&&(Sn.value=!0,xn.value=``);try{return(await o.processContractImageFile(e,{source:t,compression:g.imageCompression,upload:g.imageUpload})).src}catch(e){let n=_i(e);t===`toolbar`&&(xn.value=n.message),I.value=n.message,_(`image-error`,n,t);return}finally{t===`toolbar`&&(Sn.value=!1)}}async function yi(e){return await vi(e,`paste`)??null}async function bi(e,t={}){if(z.value)return;let n=H.value?.id??C.value.pages[0]?.id,r=n?k.get(n)?.getSelectionRange():void 0,a=typeof e==`string`?e.trim():await vi(e,`toolbar`);if(!a||!i.isSafeContractImageUrl(a)){typeof e==`string`&&(xn.value=`请输入安全的图片 URL`);return}let o=gi({...t,src:a},n,r);return o&&(_n.value=!1,hi(),I.value=`已插入图片`),o}function xi(){z.value||Sn.value||($(),xn.value=``,Bt.value&&(Bt.value.value=``),Bt.value?.click())}async function Si(e){let t=e.target.files?.[0];t&&await bi(t,mi({alt:t.name}))}async function Ci(){let e=vn.value;await bi(e,mi())}function wi(e){Hi(e),gn.value=!1}function Ti(){$(),oi()}function Ei(e,t,n,r){$(),fi(di({type:t}),e,{left:n,top:r})}function Di(e){$(),w.value=e,Z()}function Oi(e){let t=C.value.variables.find(t=>t.id===e.id),n=[...C.value.pages],r=t?.key??e.key,i=``;k.forEach((t,a)=>{let o=t.updateVariable(e,r);if(o){i||=a;let e=n.findIndex(e=>e.id===a);e>=0&&(n[e]=o)}}),K({...C.value,pages:n,variables:C.value.variables.map(t=>t.id===e.id?e:t)}),w.value=e.key,Q(i||E.value)}function ki(e){B.value&&Oi({...B.value,...e,style:{...B.value.style,...e.style}})}function Ai(e){(e===`left`||e===`center`||e===`right`)&&ki({style:{textAlign:e}})}function ji(e){(e===`solid`||e===`dashed`)&&ki({style:{borderStyle:e}})}function Mi(e){(e===`contain`||e===`cover`||e===`fill`)&&ki({style:{objectFit:e}})}function Ni(e){ki({style:e})}function Pi(e){Ni({fontFamily:String(e||``).trim()||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`})}function Fi(e){Ni({fontSize:wr(e,B.value?.style?.fontSize??14)})}function Ii(e){B.value&&ki({multiline:e,rows:B.value.rows||3,lineHeight:B.value.lineHeight||28,style:e?{underline:!0}:void 0})}function Li(e){B.value&&ki({rows:Number(e||3),lineHeight:B.value.lineHeight||28})}function Ri(e){if(z.value)return;let t=[...C.value.pages];k.forEach((n,r)=>{let i=n.removeVariable(e.key);if(i){let e=t.findIndex(e=>e.id===r);e>=0&&(t[e]=i)}}),K({...C.value,pages:t,variables:C.value.variables.filter(t=>t.id!==e.id)}),w.value=``,T.value=``}function zi(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(C.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 Bi(e){z.value||fi(r.createTemplateVariable({...e,id:void 0,key:zi(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},g.variableTypes,g.defaultVariableStyle))}function Vi(e){return z.value?void 0:fi(C.value.variables.find(t=>t.key===e.key)??r.createTemplateVariable(e,g.variableTypes,g.defaultVariableStyle))}function Hi(e){if(!z.value)return fi(di({type:e}))}function Ui(t){if(z.value||!e.isContractTemplateFieldType(t))return;let n=N.value,r=or.value.find(e=>e.type===t);if(!n||!r)return;let i=s.inferContextVariableLabel(n.leadingText)||r.label,a=s.resolveContextVariableWidth(n.selectionWidth,_t,dr.value),o=Wi();fi(di({type:t,label:i,...a?{width:a}:{},...o?{style:o}:{}}),n.pageId),I.value=n.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function Wi(){let e=U.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 Gi(e){if(z.value)return;let t=N.value;t&&(fi(e,t.pageId),I.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function Ki(t){let n=t.type&&e.isContractTemplateFieldType(t.type)?t.type:`text`;return r.getFieldOption(n,or.value).label}function qi(){C.value.variables.length&&(wn.value=!0,(0,d.nextTick)(()=>{co(),Cn.value?.querySelector(`.gd-contract-template-designer__text-menu-bind-search input`)?.focus()}))}function Ji(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function Yi(e){return A.value=Math.round(Math.min(pt,Math.max(ft,Number.isFinite(e)?e:1))*100)/100,A.value}let{width:Xi}=(0,ce.useElementSize)(Mt),{width:Zi}=(0,ce.useElementSize)(Pt),Qi=(0,d.computed)(()=>Math.max(...C.value.pages.map(e=>Y(e).width),r.DEFAULT_PAGE_SIZE.width)+10),$i=(0,d.ref)([]),ea=new Map,ta=0,na=(0,d.computed)(()=>$i.value.length>0);function ra(e){return $i.value.includes(e)}function ia(e,t){let n=$i.value;n.length===e.length&&e.every(e=>n.includes(e))||($i.value=e,e.length||(fn.value=!1),!(t>=Dt)&&(0,d.nextTick)(()=>aa(t+1)))}function aa(e=0){let t=Pt.value;if(!t)return;if(typeof window<`u`&&window.matchMedia(`(max-width: 760px)`).matches){ia([],e);return}let n=t.clientWidth;if(n<=0)return;let r=Ft.value,i=0;for(let e of Array.from(t.children)){if(!(e instanceof HTMLElement))continue;if(e===r){e.offsetWidth>0&&(ta=e.offsetWidth);continue}let t=e.dataset.toolbarOverflowKey;if(t){e.offsetWidth>0&&ea.set(t,e.offsetWidth);continue}i+=e.offsetWidth}let a=Object.fromEntries(se.CONTRACT_TEMPLATE_TOOLBAR_OVERFLOW_PRIORITY.map(e=>[e,ea.get(e)??0]));ia(se.resolveContractTemplateToolbarOverflowKeys({availableWidth:n,fixedWidth:i,groupWidths:a,moreWidth:ta||Tt,buffer:Et}),e)}(0,d.watch)([Zi,pr,mn,mr,hr,z],()=>{(0,d.nextTick)(()=>aa())},{immediate:!0}),(0,d.onMounted)(()=>{(0,d.nextTick)(()=>aa()),typeof document<`u`&&document.fonts?.ready&&document.fonts.ready.then(()=>{Pt.value&&(0,d.nextTick)(()=>aa())})});let{fitWidth:oa,applyAutoFit:sa,markUserAdjusted:ca}=a.useFitWidthZoom({viewportWidth:Xi,widestPageWidth:Qi,padding:48,minZoom:ft,maxZoom:pt,getZoom:()=>A.value,applyZoom:Yi});function la(e){return ca(),Yi(e)}function ua(){return sa()}function da(){return A.value}function fa(){la(A.value+mt)}function pa(){la(A.value-mt)}function ma(e){let t=e.target instanceof HTMLElement?e.target:null;t&&(t.closest(`.gd-contract-template-designer__toolbar-more, .ant-popover, .ant-select-dropdown`)||(fn.value=!1))}(0,d.watch)(fn,e=>{typeof document>`u`||(e?document.addEventListener(`mousedown`,ma,!0):document.removeEventListener(`mousedown`,ma,!0))}),(0,d.onBeforeUnmount)(()=>{typeof document<`u`&&document.removeEventListener(`mousedown`,ma,!0)});function ha(){$(),j.value=!1,M.value=!1,fn.value=!1,ln.value=!ln.value}function ga(){$();let e=W(!1);v.value?(an.value=u.cloneContractTemplateFiles(y.value),rn.value=void 0,on.value=b.value||y.value[0]?.id||``):(rn.value=r.cloneTemplateValue(e),an.value=void 0,on.value=``),nn.value=!0}function _a(){nn.value=!1,rn.value=void 0,an.value=void 0,on.value=``}function va(){return Va()}function ya(){$();let e=va();return cn.value=JSON.stringify(e,null,2),sn.value=!0,e}function ba(){sn.value=!1}function xa(){$(),j.value=!1,M.value=!1;let e=V.value.map(X);S.value=[],x.value={...x.value,[b.value]:[]};let t=!!T.value;w.value=``,T.value=``,E.value=``,nn.value=!1,rn.value=void 0,an.value=void 0,sn.value=!1,cn.value=``,pn.value={},tn.value=``;let n=K(r.createBlankTemplate(r.DEFAULT_PAGE_SIZE));return t&&_(`signing-placement-select`,void 0),e.forEach(e=>_(`signing-placement-remove`,e)),E.value=n.pages[0]?.id??``,r.cloneTemplateValue(n)}function Sa(){z.value||($(),f.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面、模板变量和签署位置,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{xa()}}))}function Ca(e){let t=Er().pages,n=t.find(e=>e.id===E.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 wa(e){$(),w.value=e.key,Z();let t=Ca(e);t&&(E.value=t.id,(0,d.nextTick)(()=>{k.get(t.id)?.scrollIntoVariable(e.key)}))}function Ta(e){let t=C.value.variables.find(t=>t.key===e||t.id===e);t&&wa(t)}function Ea(e){let t=V.value.find(t=>t.id===e);t&&($(),w.value=``,E.value=t.pageId,Z(t.id),(0,d.nextTick)(()=>{k.get(t.pageId)?.scrollIntoSigningPlacement(t.id)}))}function Da(e,t=!0){$(),E.value=e,t&&(0,d.nextTick)(()=>{k.get(e)?.scrollIntoPage()})}function Oa(e){C.value.pages.some(t=>t.id===e)&&Da(e)}function ka(){return r.cloneTemplateValue(Er())}function Aa(e){S.value=Vt(e),x.value={...x.value,[b.value]:S.value};let t=K(r.normalizeTemplateValue(e,g.pageSize));t.signingPlacements?.some(e=>e.id===T.value)||Z(),Q(t.pages[0]?.id)}function ja(){let e=W(!1);return v.value?u.cloneContractTemplateFiles(y.value):u.cloneContractTemplateFiles(u.replaceContractTemplateFile(y.value,b.value,e))}function Ma(e,t){let n=Ut(u.normalizeContractTemplateFiles(e,void 0,g.pageSize),g.pageSizeOptions),r=y.value;Kt.value=!0,W(!1),y.value=n.files,x.value=Ht(n.files,e),Dr(u.resolveContractTemplateActiveFileId(y.value,t??b.value),!1,!0,!0,!1),JSON.stringify(r)!==JSON.stringify(y.value)&&G(y.value,``)}function Na(e){if(z.value)return;Kt.value=!0,W(!0);let t=u.createContractTemplateFile(e||`合同文件 ${y.value.length+1}`,g.pageSize);return y.value=[...y.value,t],x.value={...x.value,[t.id]:[]},G(y.value,``),_(`file-add`,u.cloneContractTemplateFiles([t])[0]),Dr(t.id,!1,!0,!0),u.cloneContractTemplateFiles([t])[0]}function Pa(e){!v.value&&!y.value.some(t=>t.id===e)||(Kt.value=!0,Dr(e))}function Fa(e,t){if(z.value)return;Kt.value=!0,W(!1);let n=u.renameContractTemplateFile(y.value,e,t),r=n.find(t=>t.id===e);if(r)return y.value=n,G(n,e),u.cloneContractTemplateFiles([r])[0]}function Ia(e){if(z.value||y.value.length<=1)return;Kt.value=!0,W(!1);let t=y.value.find(t=>t.id===e);if(!t)return;let n=u.removeContractTemplateFile(y.value,e);if(n.length===y.value.length)return;y.value=n;let{[e]:r,...i}=x.value;x.value=i,G(n,``),_(`file-remove`,u.cloneContractTemplateFiles([t])[0]);let a=t.template.signingPlacements??[];return a.forEach(e=>_(`signing-placement-remove`,X(e))),a.some(e=>e.id===T.value)&&_(`signing-placement-select`,void 0),b.value===e&&Dr(u.resolveContractTemplateActiveFileId(n,n[0]?.id),!1,!0,!0,!1),u.cloneContractTemplateFiles([t])[0]}function La(e){if(z.value||y.value.length<=1)return;let t=y.value.find(t=>t.id===e);if(!t)return;let n=t.template.signingPlacements?.length??0;f.Modal.confirm({title:`删除合同文件`,content:n?`“${t.name}”包含 ${n} 个签署位置,删除后文件内正文、变量和签署位置都会移除,是否继续?`:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{Ia(e)}})}function Ra(e,t){if(z.value)return;Kt.value=!0,W(!1);let n=y.value.findIndex(t=>t.id===e),r=u.moveContractTemplateFile(y.value,e,t),i=r.findIndex(t=>t.id===e),a=r[i];if(!(!a||n===i))return y.value=r,G(r,``),_(`file-move`,u.cloneContractTemplateFiles([a])[0],n,i),u.cloneContractTemplateFiles([a])[0]}function za(){W(!1);let e=Ka(v.value?y.value.flatMap(e=>{let t=r.validateTemplateValue(e.template,{maxPages:cr.value});return[...x.value[e.id]??[],...t].map(t=>({...t,fileId:e.id}))}):[...S.value,...r.validateTemplateValue(Er(),{maxPages:cr.value})]);return O.value=e,D.value=!0,_(`validate`,e),e}function Ba(e){if(e.fileId&&e.fileId!==b.value){Pa(e.fileId),(0,d.nextTick)(()=>Ba({...e,fileId:void 0}));return}if(e.type===`signing-placement`){let t=V.value.find(t=>t.id===e.id);if(t){Da(t.pageId),Z(t.id);return}}if(e.variableKey){Ta(e.variableKey);return}if(e.pageId){Oa(e.pageId);return}let t=C.value.variables.find(t=>t.id===e.id||t.key===e.id);if(t){wa(t);return}C.value.pages.some(t=>t.id===e.id)&&Da(e.id)}function Va(){return r.exportTemplateValue(Er())}function Ha(){let e=W(!1),t=v.value?y.value:u.replaceContractTemplateFile(y.value,b.value,e);return u.exportContractTemplateFiles(t)}function Ua(e){let n=Er();try{let i=r.collectTemplateLocationRuleExportErrors(n,S.value);if(i.length)throw new t.ContractTemplateLocationRuleBuildError(i);return e(n)}catch(e){throw e instanceof t.ContractTemplateLocationRuleBuildError&&(O.value=[...e.errors],D.value=!0,_(`validate`,[...e.errors])),e}}function Wa(e){return Ua(n=>t.buildSigningPlacementLocationRules(n,e))}function Ga(e){return Ua(n=>t.buildContractLocationRules(n,e))}function Ka(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 qa(e){O.value=[...e],D.value=!0}function Ja(){O.value=[],D.value=!1}function Ya(){k.get(H.value?.id??E.value)?.focus()}function Xa(e){xr(e)&&q({type:`set-text-align`,value:e})}function Za(e){if(e===`paragraph`){q({type:`set-paragraph`});return}Sr(e)&&q({type:`set-heading`,level:e})}function Qa(e){let t=Tr(e);t&&(q({type:`set-font-size`,value:t}),hn.value=``)}function $a(e){let t=String(e||``).trim();if(!t){q({type:`unset-font-family`});return}q({type:`set-font-family`,value:t})}function eo(e){to(e.target?.value??``)}function to(e){let t=e.trim();t&&q({type:`set-color`,value:t})}function no(e){hn.value=e}function ro(){hn.value.trim()&&Qa(hn.value)}function io(e){e.key===`Enter`&&(e.preventDefault(),ro())}function ao(e){e||(ro(),hn.value=``)}function oo(e){Cr(e)&&(q({type:`apply-text-style-preset`,preset:e}),mn.value=void 0,$())}function so(e){if(z.value)return;E.value=e.pageId,j.value=!1,M.value=!1,P.value=void 0,F.value=void 0,wn.value=!1,Tn.value=``;let t=Math.max(m,Math.min(e.clientX,window.innerWidth-xt)),n=Math.max(m,Math.min(e.clientY,window.innerHeight-St));N.value={pageId:e.pageId,x:t,y:n,hasSelection:e.hasSelection,selectionWidth:e.selectionWidth,leadingText:e.leadingText},(0,d.nextTick)(()=>{co(),Cn.value?.querySelector(`button:not(:disabled)`)?.focus()})}function co(){let e=Cn.value,t=N.value;if(!e||!t)return;let n=e.getBoundingClientRect();N.value={...t,x:Math.max(m,Math.min(t.x,window.innerWidth-n.width-m)),y:Math.max(m,Math.min(t.y,window.innerHeight-n.height-m))}}function lo(e){z.value||(E.value=e.pageId,j.value=!1,M.value=!1,N.value=void 0,F.value=void 0,P.value={...e,x:Math.max(8,Math.min(e.clientX,window.innerWidth-248)),y:Math.max(8,Math.min(e.clientY,window.innerHeight-400))},(0,d.nextTick)(()=>{let e=En.value?.getMenuElement(),t=P.value;if(e&&t){let n=e.getBoundingClientRect();P.value={...t,x:Math.max(8,Math.min(t.x,window.innerWidth-n.width-8)),y:Math.max(8,Math.min(t.y,window.innerHeight-n.height-8))}}En.value?.focusFirstItem()}))}function uo(e){z.value||(E.value=e.pageId,j.value=!1,M.value=!1,N.value=void 0,P.value=void 0,On.value=e.image.width,kn.value=e.image.height,w.value=``,T.value&&Z(),F.value={pageId:e.pageId,image:e.image,x:Math.max(m,Math.min(e.clientX,window.innerWidth-Ct)),y:Math.max(m,Math.min(e.clientY,window.innerHeight-wt))},(0,d.nextTick)(()=>{fo(),Dn.value?.querySelector(`input, button:not(:disabled)`)?.focus()}))}function fo(){let e=Dn.value,t=F.value;if(!e||!t)return;let n=e.getBoundingClientRect();F.value={...t,x:Math.max(m,Math.min(t.x,window.innerWidth-n.width-m)),y:Math.max(m,Math.min(t.y,window.innerHeight-n.height-m))}}function po(){let e=F.value;!e||z.value||(k.get(e.pageId)?.updateSelectedContentImage({width:o.normalizeContractImageDimension(On.value),height:o.normalizeContractImageDimension(kn.value)})&&(I.value=`已更新图片尺寸`),$())}function mo(){let e=F.value;!e||z.value||(k.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(I.value=`已恢复图片自然尺寸`),$())}function ho(e){e.type===`table`?lo(e):e.type===`image`?uo(e):so(e)}function $(){N.value=void 0,P.value=void 0,F.value=void 0,wn.value=!1,Tn.value=``}function go(e){!N.value&&!P.value&&!F.value||(e.target instanceof HTMLElement?e.target:null)?.closest(`.gd-contract-template-designer__context-menu`)||$()}function _o(e){let t=jt.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 vo(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!Nn.value||!_o(e))return;e.preventDefault(),kr();return}e.key===`Escape`&&($(),j.value=!1,M.value=!1,ln.value=!1)}function yo(e,t){e===E.value&&t.selectedContentImage&&(w.value=``,T.value&&Z());let n=pn.value[e];n&&JSON.stringify(n)===JSON.stringify(t)||(pn.value={...pn.value,[e]:t})}function bo(e=An.value.rows,t=An.value.cols){q({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:!!An.value.withHeaderRow}}),j.value=!1,$()}let xo={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function So(e){let t=P.value;if(!t)return;let n=()=>{q(e,t.pageId),$()},r=xo[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),f.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>k.get(t.pageId)?.focus()})}function Co(e){let t=En.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault();let t=P.value?.pageId;$(),k.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 wo(e){if(e.key!==`Escape`)return;e.preventDefault();let t=N.value?.pageId;$(),k.get(t??``)?.focus()}function To(e){if(e.key!==`Escape`)return;e.preventDefault();let t=F.value?.pageId;$(),k.get(t??``)?.focus()}function Eo(e){q({type:e}),M.value=!1,$()}return Ot({getValue:ka,setValue:Aa,getFiles:ja,setFiles:Ma,addFile:Na,selectFile:Pa,renameFile:Fa,removeFile:Ia,moveFile:Ra,validate:za,exportTemplate:Va,exportFiles:Ha,getSubmitData:va,clearTemplate:xa,saveDraftCache:kr,loadDraftCache:Ar,clearDraftCache:jr,getDraftCacheStatus:Mr,insertVariable:Vi,insertImage:bi,focus:Ya,openPreview:ga,closePreview:_a,openSubmitDataViewer:ya,closeSubmitDataViewer:ba,setServerValidationErrors:qa,clearValidationErrors:Ja,scrollToVariable:Ta,scrollToSigningPlacement:Ea,scrollToPage:Oa,setZoom:la,resetZoom:ua,getZoom:da,fitWidth:oa,insertSigningPlacement:Kr,selectSigningPlacement:Z,buildLocationRules:Wa,buildContractLocationRules:Ga}),(e,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`designerElement`,ref:jt,class:(0,d.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":h.disabled,"is-readonly":z.value,"is-fullscreen":ln.value}]),style:(0,d.normalizeStyle)(At.value)},[v.value?((0,d.openBlock)(),(0,d.createBlock)(ie.default,{key:0,files:y.value,"active-file-id":b.value,readonly:z.value,onSelect:Pa,onAdd:n[0]||=e=>Na(),onRename:Fa,onRemove:La,onMove:Ra},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":un.value,"is-inspector-collapsed":dn.value}])},[(0,d.createVNode)(ae.default,{collapsed:un.value,pages:C.value.pages,variables:C.value.variables,"signing-placement-navigation-items":Bn.value,"active-page-id":E.value,"selected-variable-key":w.value,"selected-signing-placement-id":T.value,"normalized-max-pages":cr.value,"page-limit-reached":lr.value,"selected-page":H.value,"selected-page-size":Hn.value,"normalized-page-size-options":nr.value,"page-size-options":rr.value,"selected-page-size-option-value":ir.value,"show-signing-placement-tools":g.showSigningPlacementTools,readonly:z.value,"get-page-size":Y,"get-page-signing-placements":Br,onToggle:n[1]||=e=>un.value=!un.value,onAddPage:oi,onActivatePage:Da,onDuplicatePage:si,onRemovePage:li,onPatchPageFormat:ei,onScrollToVariable:wa,onScrollToSigningPlacement:Ea},null,8,[`collapsed`,`pages`,`variables`,`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,d.createElementVNode)(`main`,{ref_key:`workspaceElement`,ref:Nt,class:`gd-contract-template-designer__workspace`},[(0,d.createElementVNode)(`header`,le,[(0,d.createElementVNode)(`div`,ue,[(0,d.createElementVNode)(`strong`,null,(0,d.toDisplayString)(Gn.value),1),h.showDraftCacheStatus&&Kn.value?((0,d.openBlock)(),(0,d.createElementBlock)(`small`,{key:0,class:(0,d.normalizeClass)([`gd-contract-template-designer__draft-cache-status`,qn.value])},(0,d.toDisplayString)(Kn.value),3)):(0,d.createCommentVNode)(``,!0)]),(0,d.createElementVNode)(`div`,de,[(0,d.createElementVNode)(`div`,fe,[(0,d.createElementVNode)(`div`,pe,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`缩小`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.value<=ft,"aria-label":`缩小`,onClick:pa},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(Jn.value),1),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`放大`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:A.value>=pt,"aria-label":`放大`,onClick:fa},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ZoomInOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`适应宽度`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":`适应宽度`,onClick:(0,d.unref)(oa)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ColumnWidthOutlined),{"aria-hidden":`true`})]),_:1},8,[`onClick`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`重置缩放`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":`重置缩放`,onClick:ua},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ReloadOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:ln.value?`退出全屏`:`全屏显示`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":ln.value?`退出全屏`:`全屏显示`,onClick:ha},{default:(0,d.withCtx)(()=>[ln.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(p.FullscreenExitOutlined),{key:0,"aria-hidden":`true`})):((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(p.FullscreenOutlined),{key:1,"aria-hidden":`true`}))]),_:1},8,[`aria-label`])]),_:1},8,[`title`])])]),(0,d.createElementVNode)(`div`,me,[h.showClearButton?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:0,title:`清空合同`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,danger:``,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`清空合同`,onClick:Sa},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.DeleteOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})):(0,d.createCommentVNode)(``,!0),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`校验`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":`校验`,onClick:za},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.AuditOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`预览`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,type:`primary`,class:`gd-contract-template-designer__icon-button`,"aria-label":`预览`,onClick:ga},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.EyeOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),h.showSubmitDataViewer?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:1,title:`数据查看`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":`数据查看`,onClick:ya},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.DatabaseOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,d.createCommentVNode)(``,!0)])])]),(0,d.createElementVNode)(`header`,he,[(0,d.createElementVNode)(`div`,{ref_key:`toolbarMainElement`,ref:Pt,class:`gd-contract-template-designer__toolbar-section gd-contract-template-designer__toolbar-section--main`},[(0,d.createElementVNode)(`div`,ge,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`撤销`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value||!U.value.canUndo,"aria-label":`撤销`,onClick:n[2]||=e=>q({type:`undo`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`重做`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value||!U.value.canRedo,"aria-label":`重做`,onClick:n[3]||=e=>q({type:`redo`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),(0,d.createElementVNode)(`div`,_e,[(0,d.createVNode)((0,d.unref)(f.Select),{value:mn.value,"onUpdate:value":n[4]||=e=>mn.value=e,class:`gd-contract-template-designer__toolbar-select`,options:Zn.value,placeholder:`合同样式`,disabled:z.value,onChange:oo},null,8,[`value`,`options`,`disabled`]),(0,d.createVNode)((0,d.unref)(f.Select),{class:`gd-contract-template-designer__toolbar-select`,value:pr.value,options:$n,disabled:z.value,onChange:Za},null,8,[`value`,`disabled`])]),(0,d.createElementVNode)(`div`,ve,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`加粗`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:U.value.isBold?`primary`:`default`,disabled:z.value,"aria-label":`加粗`,onClick:n[5]||=e=>q({type:`toggle-bold`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`斜体`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:U.value.isItalic?`primary`:`default`,disabled:z.value,"aria-label":`斜体`,onClick:n[6]||=e=>q({type:`toggle-italic`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`下划线`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:U.value.isUnderline?`primary`:`default`,disabled:z.value,"aria-label":`下划线`,onClick:n[7]||=e=>q({type:`toggle-underline`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`编号列表`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:U.value.isOrderedList?`primary`:`default`,disabled:z.value,"aria-label":`编号列表`,onClick:n[8]||=e=>q({type:`toggle-ordered-list`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`项目列表`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,type:U.value.isBulletList?`primary`:`default`,disabled:z.value,"aria-label":`项目列表`,onClick:n[9]||=e=>q({type:`toggle-bullet-list`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`type`,`disabled`])]),_:1})]),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{disabled:!ra(`insert`)||!It.value,to:It.value||`body`},[(0,d.createElementVNode)(`div`,ye,[(0,d.createVNode)((0,d.unref)(f.Popover),{open:gn.value,"onUpdate:open":n[10]||=e=>gn.value=e,trigger:`click`,placement:`bottom`},{content:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,be,[n[62]||=(0,d.createElementVNode)(`strong`,null,`插入正文控件`,-1),(0,d.createElementVNode)(`div`,xe,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(sr.value,e=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:e.type,title:`插入${e.label}控件`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":`插入${e.label}控件`,onClick:t=>wi(e.type)},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.icon),{"aria-hidden":`true`})),(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.label),1)],8,Se)]),_:2},1032,[`title`]))),128))])])]),default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`插入正文控件`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`插入正文控件`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.PlusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,d.createVNode)((0,d.unref)(f.Popover),{open:_n.value,"onUpdate:open":n[14]||=e=>_n.value=e,trigger:`click`,placement:`bottom`},{content:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,Ce,[n[67]||=(0,d.createElementVNode)(`strong`,null,`插入正文图片`,-1),(0,d.createVNode)((0,d.unref)(f.Button),{block:``,loading:Sn.value,disabled:z.value,onClick:xi},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.PictureOutlined),{"aria-hidden":`true`}),n[63]||=(0,d.createTextVNode)(` 本地图片 `,-1)]),_:1},8,[`loading`,`disabled`]),(0,d.createVNode)((0,d.unref)(f.Input),{value:vn.value,"onUpdate:value":n[11]||=e=>vn.value=e,"allow-clear":``,disabled:z.value||Sn.value,placeholder:`https:// 或 data:image/...`,"aria-label":`图片 URL`,onPressEnter:Ci},null,8,[`value`,`disabled`]),(0,d.createElementVNode)(`div`,we,[(0,d.createElementVNode)(`label`,null,[n[64]||=(0,d.createElementVNode)(`span`,null,`宽度`,-1),(0,d.createVNode)((0,d.unref)(f.InputNumber),{value:yn.value,"onUpdate:value":n[12]||=e=>yn.value=e,min:(0,d.unref)(16),max:(0,d.unref)(o.MAX_CONTRACT_IMAGE_DIMENSION),disabled:z.value||Sn.value,placeholder:`自然`,"aria-label":`图片宽度`},null,8,[`value`,`min`,`max`,`disabled`])]),(0,d.createElementVNode)(`label`,null,[n[65]||=(0,d.createElementVNode)(`span`,null,`高度`,-1),(0,d.createVNode)((0,d.unref)(f.InputNumber),{value:bn.value,"onUpdate:value":n[13]||=e=>bn.value=e,min:(0,d.unref)(16),max:(0,d.unref)(o.MAX_CONTRACT_IMAGE_DIMENSION),disabled:z.value||Sn.value,placeholder:`自然`,"aria-label":`图片高度`},null,8,[`value`,`min`,`max`,`disabled`])])]),(0,d.createVNode)((0,d.unref)(f.Button),{type:`primary`,block:``,disabled:z.value||Sn.value||!vn.value.trim(),onClick:Ci},{default:(0,d.withCtx)(()=>[...n[66]||=[(0,d.createTextVNode)(` 插入 URL `,-1)]]),_:1},8,[`disabled`]),xn.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Alert),{key:0,type:`error`,"show-icon":``,message:xn.value},null,8,[`message`])):(0,d.createCommentVNode)(``,!0)])]),default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`插入图片`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`插入图片`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.PictureOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`插入分隔线`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`插入分隔线`,onClick:n[15]||=e=>q({type:`insert-horizontal-rule`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.MinusOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:lr.value?`已达 ${cr.value} 页上限`:`新增页面`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value||lr.value,"aria-label":`新增页面`,onClick:oi},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.FileAddOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1},8,[`title`])])],8,[`disabled`,`to`])),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{disabled:!ra(`typography`)||!Lt.value,to:Lt.value||`body`},[(0,d.createElementVNode)(`div`,Te,[(0,d.createVNode)((0,d.unref)(f.Select),{class:`gd-contract-template-designer__toolbar-select is-wide`,value:mr.value,options:Xn.value,disabled:z.value,onChange:$a},null,8,[`value`,`options`,`disabled`]),(0,d.createVNode)((0,d.unref)(f.Select),{class:`gd-contract-template-designer__toolbar-select`,value:hr.value,options:vr.value,"show-search":``,"filter-option":!1,"search-value":hn.value,disabled:z.value,onBlur:ro,onChange:Qa,onDropdownVisibleChange:ao,onInputKeyDown:io,onSearch:no},null,8,[`value`,`options`,`search-value`,`disabled`]),(0,d.createElementVNode)(`input`,{class:`gd-contract-template-designer__color`,type:`color`,value:gr.value,disabled:z.value,onInput:eo},null,40,Ee),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`左对齐`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":U.value.textAlign===`left`}]),type:U.value.textAlign===`left`?`primary`:`default`,disabled:z.value,"aria-label":`左对齐`,onClick:n[16]||=e=>Xa(`left`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.AlignLeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`居中对齐`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":U.value.textAlign===`center`}]),type:U.value.textAlign===`center`?`primary`:`default`,disabled:z.value,"aria-label":`居中对齐`,onClick:n[17]||=e=>Xa(`center`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.AlignCenterOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`右对齐`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":U.value.textAlign===`right`}]),type:U.value.textAlign===`right`?`primary`:`default`,disabled:z.value,"aria-label":`右对齐`,onClick:n[18]||=e=>Xa(`right`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.AlignRightOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`type`,`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{disabled:!ra(`cleanup`)||!Rt.value,to:Rt.value||`body`},[(0,d.createElementVNode)(`div`,De,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`清文字`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`清文字`,onClick:n[19]||=e=>q({type:`clear-text-format`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ClearOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`清段落`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`清段落`,onClick:n[20]||=e=>q({type:`clear-block-format`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.FormatPainterOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})])],8,[`disabled`,`to`])),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{disabled:!ra(`table`)||!zt.value,to:zt.value||`body`},[(0,d.createElementVNode)(`div`,Oe,[(0,d.createVNode)((0,d.unref)(f.Popover),{open:j.value,"onUpdate:open":n[24]||=e=>j.value=e,trigger:`click`,placement:`bottom`},{content:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,ke,[n[69]||=(0,d.createElementVNode)(`strong`,null,`插入表格`,-1),(0,d.createVNode)(ne.default,{disabled:z.value,onSelect:n[21]||=e=>bo(e.rows,e.cols),onClose:n[22]||=e=>j.value=!1},null,8,[`disabled`]),(0,d.createElementVNode)(`label`,Ae,[n[68]||=(0,d.createElementVNode)(`span`,null,`表头行`,-1),(0,d.createVNode)((0,d.unref)(f.Switch),{checked:An.value.withHeaderRow,"onUpdate:checked":n[23]||=e=>An.value.withHeaderRow=e,disabled:z.value},null,8,[`checked`,`disabled`])])])]),default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`插入表格`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value,"aria-label":`插入表格`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`]),(0,d.createVNode)((0,d.unref)(f.Popover),{open:M.value,"onUpdate:open":n[34]||=e=>M.value=e,trigger:`click`,placement:`bottom`},{content:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,je,[n[79]||=(0,d.createElementVNode)(`strong`,null,`表格操作`,-1),(0,d.createElementVNode)(`div`,Me,[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[25]||=e=>Eo(`add-table-row-before`)},{default:(0,d.withCtx)(()=>[...n[70]||=[(0,d.createTextVNode)(` 上方插行 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[26]||=e=>Eo(`add-table-row-after`)},{default:(0,d.withCtx)(()=>[...n[71]||=[(0,d.createTextVNode)(` 下方插行 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[27]||=e=>Eo(`add-table-column-before`)},{default:(0,d.withCtx)(()=>[...n[72]||=[(0,d.createTextVNode)(` 左侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[28]||=e=>Eo(`add-table-column-after`)},{default:(0,d.withCtx)(()=>[...n[73]||=[(0,d.createTextVNode)(` 右侧插列 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[29]||=e=>Eo(`delete-table-row`)},{default:(0,d.withCtx)(()=>[...n[74]||=[(0,d.createTextVNode)(` 删除当前行 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[30]||=e=>Eo(`delete-table-column`)},{default:(0,d.withCtx)(()=>[...n[75]||=[(0,d.createTextVNode)(` 删除当前列 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[31]||=e=>Eo(`toggle-table-header-row`)},{default:(0,d.withCtx)(()=>[...n[76]||=[(0,d.createTextVNode)(` 切换表头行 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:z.value,onClick:n[32]||=e=>Eo(`toggle-table-header-column`)},{default:(0,d.withCtx)(()=>[...n[77]||=[(0,d.createTextVNode)(` 切换表头列 `,-1)]]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{danger:``,size:`small`,disabled:z.value,onClick:n[33]||=e=>Eo(`delete-table`)},{default:(0,d.withCtx)(()=>[...n[78]||=[(0,d.createTextVNode)(` 删除表格 `,-1)]]),_:1},8,[`disabled`])])])]),default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`表格操作`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,disabled:z.value||!U.value.isTableActive,"aria-label":`表格操作`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.TableOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`open`])])],8,[`disabled`,`to`])),(0,d.withDirectives)((0,d.createElementVNode)(`div`,{ref_key:`toolbarMoreElement`,ref:Ft,class:`gd-contract-template-designer__toolbar-more`},[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`更多工具`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__icon-button`,{"is-selected":fn.value}]),"aria-label":`更多工具`,"aria-haspopup":`true`,"aria-expanded":fn.value,onClick:n[35]||=(0,d.withModifiers)(e=>fn.value=!fn.value,[`stop`])},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.EllipsisOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-expanded`])]),_:1}),(0,d.withDirectives)((0,d.createElementVNode)(`div`,Ne,[(0,d.withDirectives)((0,d.createElementVNode)(`div`,Pe,[n[80]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`插入`,-1),(0,d.createElementVNode)(`div`,{ref_key:`toolbarInsertSlotElement`,ref:It,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[d.vShow,ra(`insert`)]]),(0,d.withDirectives)((0,d.createElementVNode)(`div`,Fe,[n[81]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`文字排版`,-1),(0,d.createElementVNode)(`div`,{ref_key:`toolbarTypographySlotElement`,ref:Lt,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[d.vShow,ra(`typography`)]]),(0,d.withDirectives)((0,d.createElementVNode)(`div`,Ie,[n[82]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`清除格式`,-1),(0,d.createElementVNode)(`div`,{ref_key:`toolbarCleanupSlotElement`,ref:Rt,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[d.vShow,ra(`cleanup`)]]),(0,d.withDirectives)((0,d.createElementVNode)(`div`,Le,[n[83]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__toolbar-more-title`},`表格`,-1),(0,d.createElementVNode)(`div`,{ref_key:`toolbarTableSlotElement`,ref:zt,class:`gd-contract-template-designer__toolbar-more-slot`},null,512)],512),[[d.vShow,ra(`table`)]])],512),[[d.vShow,fn.value]])],512),[[d.vShow,na.value]])],512)]),D.value?((0,d.openBlock)(),(0,d.createElementBlock)(`section`,Re,[(0,d.createVNode)((0,d.unref)(f.Alert),{type:Un.value?`success`:`error`,message:Wn.value,"show-icon":``},null,8,[`type`,`message`]),O.value.length?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,ze,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(O.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)(e.type===`signing-placement`?`签署位置`:e.type===`variable`?`变量`:`字段`),1)],8,Be))),128))])):(0,d.createCommentVNode)(``,!0)])):(0,d.createCommentVNode)(``,!0),(0,d.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:Mt,class:`gd-contract-template-designer__canvas`},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(C.value.pages,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)(c.default,{key:`${b.value}:${e.id}`,ref_for:!0,ref:t=>Ir(e.id,t),page:e,"page-index":t,"page-size":Y(e),variables:C.value.variables,"selected-variable-key":w.value,"signing-placements":g.showSigningPlacementTools?Br(e.id):[],"selected-signing-placement-id":T.value,active:E.value===e.id,readonly:h.readonly,disabled:h.disabled,zoom:A.value,"process-image-file":yi,onPageUpdate:zr,onVariableDrop:Ei,onVariableSelect:Di,onSigningPlacementDrop:qr,onSigningPlacementSelect:Hr,onSigningPlacementMove:Xr,onSigningPlacementRemove:$r,onEditorFocus:n[36]||=e=>Da(e,!1),onEditorStateChange:yo,onEditorContextMenu:ho,onVariableMoveBlocked:n[37]||=e=>I.value=`变量只能在当前页内移动,跨页移动尚未支持。`},null,8,[`page`,`page-index`,`page-size`,`variables`,`selected-variable-key`,`signing-placements`,`selected-signing-placement-id`,`active`,`readonly`,`disabled`,`zoom`]))),128))],512)],512),(0,d.createVNode)(oe.default,{collapsed:dn.value,readonly:h.readonly,disabled:h.disabled,"show-signing-placement-tools":g.showSigningPlacementTools,"body-control-tool-items":sr.value,"signing-placement-tools":ar.value,"signing-placements":V.value,"selected-signing-placement":zn.value,"selected-signing-placement-page-size":Vn.value,"selected-variable":B.value,"current-variable-font-family":_r.value,"font-family-select-options":Xn.value,"text-align-options":(0,d.unref)(Qn),"border-style-options":er,"object-fit-options":tr,"selected-variable-width-max":dr.value,"selected-variable-height-max":fr.value,"min-font-size":yt,"max-font-size":bt,"default-multiline-rows":(0,d.unref)(3),"resolve-signing-placement-type-icon":(0,d.unref)(re.resolveSigningPlacementTypeIcon),"signing-placement-type-labels":(0,d.unref)(t.SIGNING_PLACEMENT_TYPE_LABELS),onToggle:n[38]||=e=>dn.value=!dn.value,onVariableDragStart:Ji,onInsertVariable:Hi,onSigningPlacementDragStart:Yr,onInsertSigningPlacement:Jr,onPatchSigningPlacement:Zr,onDuplicateSigningPlacement:n[39]||=e=>Qr(),onRemoveSigningPlacement:n[40]||=e=>$r(),onDuplicateVariable:Bi,onRemoveVariable:Ri,onPatchVariable:ki,onPatchStyle:Ni,onPatchMultiline:Ii,onPatchRows:Li,onPatchFontFamily:Pi,onPatchFontSize:Fi,onPatchTextAlign:Ai,onPatchBorderStyle:ji,onPatchObjectFit:Mi},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`,`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`])],2),((0,d.openBlock)(),(0,d.createBlock)(d.Teleport,{to:`body`},[P.value?((0,d.openBlock)(),(0,d.createBlock)(te.default,{key:0,ref_key:`tableContextMenuElement`,ref:En,capabilities:P.value.capabilities,"active-alignment":P.value.activeAlignment,style:(0,d.normalizeStyle)({left:`${P.value.x}px`,top:`${P.value.y}px`}),onExecute:So,onKeydown:Co},null,8,[`capabilities`,`active-alignment`,`style`])):(0,d.createCommentVNode)(``,!0),F.value?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:1,ref_key:`imageContextMenuElement`,ref:Dn,class:`gd-contract-template-designer__context-menu gd-contract-template-designer__image-context-menu`,style:(0,d.normalizeStyle)({left:`${F.value.x}px`,top:`${F.value.y}px`}),role:`dialog`,"aria-label":`图片尺寸`,onKeydown:To},[n[88]||=(0,d.createElementVNode)(`div`,{class:`gd-contract-template-designer__image-context-title`},[(0,d.createElementVNode)(`strong`,null,`图片尺寸`),(0,d.createElementVNode)(`span`,null,`单位:px;留空可恢复自然尺寸`)],-1),(0,d.createElementVNode)(`div`,Ve,[(0,d.createElementVNode)(`label`,null,[n[84]||=(0,d.createElementVNode)(`span`,null,`宽度`,-1),(0,d.createVNode)((0,d.unref)(f.InputNumber),{value:On.value,"onUpdate:value":n[41]||=e=>On.value=e,min:(0,d.unref)(16),max:(0,d.unref)(o.MAX_CONTRACT_IMAGE_DIMENSION),disabled:z.value,placeholder:`自然`,"aria-label":`图片宽度`},null,8,[`value`,`min`,`max`,`disabled`])]),(0,d.createElementVNode)(`label`,null,[n[85]||=(0,d.createElementVNode)(`span`,null,`高度`,-1),(0,d.createVNode)((0,d.unref)(f.InputNumber),{value:kn.value,"onUpdate:value":n[42]||=e=>kn.value=e,min:(0,d.unref)(16),max:(0,d.unref)(o.MAX_CONTRACT_IMAGE_DIMENSION),disabled:z.value,placeholder:`自然`,"aria-label":`图片高度`},null,8,[`value`,`min`,`max`,`disabled`])])]),(0,d.createElementVNode)(`div`,He,[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,onClick:mo},{default:(0,d.withCtx)(()=>[...n[86]||=[(0,d.createTextVNode)(`恢复自然尺寸`,-1)]]),_:1}),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,type:`primary`,onClick:po},{default:(0,d.withCtx)(()=>[...n[87]||=[(0,d.createTextVNode)(`应用`,-1)]]),_:1})])],36)):(0,d.createCommentVNode)(``,!0),N.value?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:2,ref_key:`textContextMenuElement`,ref:Cn,class:`gd-contract-template-designer__context-menu gd-contract-template-designer__text-context-menu`,style:(0,d.normalizeStyle)({left:`${N.value.x}px`,top:`${N.value.y}px`}),role:`toolbar`,"aria-label":`正文快捷操作`,onKeydown:wo},[(0,d.createElementVNode)(`div`,Ue,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`撤销`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,disabled:!U.value.canUndo,"aria-label":`撤销`,onClick:n[43]||=e=>J({type:`undo`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UndoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`重做`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,disabled:!U.value.canRedo,"aria-label":`重做`,onClick:n[44]||=e=>J({type:`redo`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.RedoOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),n[89]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-1),N.value.hasSelection?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:0,title:`复制`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`复制`,onClick:n[45]||=e=>Lr(`copy`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,d.createCommentVNode)(``,!0),N.value.hasSelection?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:1,title:`剪切`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`剪切`,onClick:n[46]||=e=>Lr(`cut`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ScissorOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,d.createCommentVNode)(``,!0),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`粘贴`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-icon-button`,"aria-label":`粘贴`,onClick:n[47]||=e=>Lr(`paste`)},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.CopyOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})]),N.value.hasSelection?(0,d.createCommentVNode)(``,!0):((0,d.openBlock)(),(0,d.createElementBlock)(`div`,We,[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,onClick:xi},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.PictureOutlined),{"aria-hidden":`true`}),n[90]||=(0,d.createElementVNode)(`span`,null,`图片`,-1)]),_:1}),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,onClick:n[48]||=e=>J({type:`insert-table`,options:An.value})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.TableOutlined),{"aria-hidden":`true`}),n[91]||=(0,d.createElementVNode)(`span`,null,`表格`,-1)]),_:1}),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,onClick:n[49]||=e=>J({type:`insert-horizontal-rule`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.MinusOutlined),{"aria-hidden":`true`}),n[92]||=(0,d.createElementVNode)(`span`,null,`分隔线`,-1)]),_:1}),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,disabled:lr.value,onClick:Ti},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.FileAddOutlined),{"aria-hidden":`true`}),n[93]||=(0,d.createElementVNode)(`span`,null,`新页面`,-1)]),_:1},8,[`disabled`]),(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,onClick:n[50]||=e=>J({type:`select-all`})},{default:(0,d.withCtx)(()=>[...n[94]||=[(0,d.createElementVNode)(`span`,null,`全选正文`,-1)]]),_:1})])),(0,d.createElementVNode)(`div`,Ge,[(0,d.createVNode)((0,d.unref)(f.Select),{class:`gd-contract-template-designer__context-menu-field gd-contract-template-designer__text-menu-font-size`,value:hr.value,options:vr.value,"show-search":``,"filter-option":!1,"search-value":hn.value,onBlur:ro,onChange:Qa,onDropdownVisibleChange:ao,onInputKeyDown:io,onSearch:no},null,8,[`value`,`options`,`search-value`]),(0,d.createVNode)((0,d.unref)(f.Select),{class:`gd-contract-template-designer__context-menu-field gd-contract-template-designer__text-menu-alignment`,value:U.value.textAlign,options:(0,d.unref)(Qn),onChange:Xa},null,8,[`value`,`options`]),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`文字颜色`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`input`,{class:`gd-contract-template-designer__context-menu-color`,type:`color`,"aria-label":`文字颜色`,value:gr.value,onInput:n[51]||=e=>to(e.target.value)},null,40,Ke)]),_:1})]),(0,d.createElementVNode)(`div`,{class:`gd-contract-template-designer__text-menu-control-group`,role:`group`,"aria-label":N.value.hasSelection?`转换为正文控件`:`插入正文控件`},[(0,d.createElementVNode)(`div`,Je,[(0,d.createElementVNode)(`strong`,null,(0,d.toDisplayString)(N.value.hasSelection?`转换为正文控件`:`插入正文控件`),1),(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(N.value.hasSelection?`替换选中内容`:`在光标处插入`),1)]),(0,d.createElementVNode)(`div`,Ye,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(sr.value,e=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.Tooltip),{key:e.type,title:N.value.hasSelection?`转换为${e.label}控件`:`插入${e.label}控件`},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-designer__text-menu-control-option`,"aria-label":N.value.hasSelection?`转换为${e.label}控件`:`插入${e.label}控件`,onClick:t=>Ui(e.type)},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.icon),{"aria-hidden":`true`})),(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.label),1)],8,Xe)]),_:2},1032,[`title`]))),128))]),wn.value?((0,d.openBlock)(),(0,d.createElementBlock)(d.Fragment,{key:1},[(0,d.createVNode)((0,d.unref)(f.Input),{value:Tn.value,"onUpdate:value":n[52]||=e=>Tn.value=e,class:`gd-contract-template-designer__text-menu-bind-search`,size:`small`,"allow-clear":``,placeholder:`搜索已有控件`,"aria-label":`搜索已有控件`},null,8,[`value`]),(0,d.createElementVNode)(`div`,Qe,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(ur.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:e.id,type:`button`,class:`gd-contract-template-designer__text-menu-bind-item`,role:`option`,onClick:t=>Gi(e)},[(0,d.createElementVNode)(`span`,et,(0,d.toDisplayString)(e.label),1),(0,d.createElementVNode)(`span`,tt,(0,d.toDisplayString)(Ki(e))+` · `+(0,d.toDisplayString)(e.key),1)],8,$e))),128)),ur.value.length?(0,d.createCommentVNode)(``,!0):((0,d.openBlock)(),(0,d.createElementBlock)(`p`,nt,` 暂无已有控件 `))])],64)):((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:0,type:`button`,class:`gd-contract-template-designer__text-menu-bind-toggle`,disabled:!C.value.variables.length,"aria-expanded":!1,"aria-label":`绑定已有控件`,onClick:qi},[n[95]||=(0,d.createElementVNode)(`span`,null,`绑定已有`,-1),(0,d.createVNode)((0,d.unref)(p.DownOutlined),{"aria-hidden":`true`})],8,Ze))],8,qe),(0,d.createElementVNode)(`div`,rt,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`加粗`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":U.value.isBold}]),"aria-pressed":U.value.isBold,"aria-label":`加粗`,onClick:n[53]||=e=>J({type:`toggle-bold`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.BoldOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`斜体`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":U.value.isItalic}]),"aria-pressed":U.value.isItalic,"aria-label":`斜体`,onClick:n[54]||=e=>J({type:`toggle-italic`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ItalicOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`下划线`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":U.value.isUnderline}]),"aria-pressed":U.value.isUnderline,"aria-label":`下划线`,onClick:n[55]||=e=>J({type:`toggle-underline`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UnderlineOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),n[96]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__text-menu-divider`,"aria-hidden":`true`},null,-1),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`有序列表`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":U.value.isOrderedList}]),"aria-pressed":U.value.isOrderedList,"aria-label":`有序列表`,onClick:n[56]||=e=>J({type:`toggle-ordered-list`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.OrderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`无序列表`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:(0,d.normalizeClass)([`gd-contract-template-designer__text-menu-icon-button`,{"is-selected":U.value.isBulletList}]),"aria-pressed":U.value.isBulletList,"aria-label":`无序列表`,onClick:n[57]||=e=>J({type:`toggle-bullet-list`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.UnorderedListOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1})]),(0,d.createElementVNode)(`div`,it,[(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`清除文字格式`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-clear-action`,"aria-label":`清除文字格式`,onClick:n[58]||=e=>J({type:`clear-text-format`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.ClearOutlined),{"aria-hidden":`true`}),n[97]||=(0,d.createElementVNode)(`span`,null,`清文字`,-1)]),_:1})]),_:1}),(0,d.createVNode)((0,d.unref)(f.Tooltip),{title:`清除段落格式`},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.Button),{size:`small`,class:`gd-contract-template-designer__text-menu-clear-action`,"aria-label":`清除段落格式`,onClick:n[59]||=e=>J({type:`clear-block-format`})},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(p.FormatPainterOutlined),{"aria-hidden":`true`}),n[98]||=(0,d.createElementVNode)(`span`,null,`清段落`,-1)]),_:1})]),_:1})])],36)):(0,d.createCommentVNode)(``,!0)])),(0,d.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:Bt,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:Si},null,544),(0,d.createElementVNode)(`span`,at,(0,d.toDisplayString)(I.value),1),(0,d.createVNode)((0,d.unref)(f.Modal),{open:nn.value,"onUpdate:open":n[60]||=e=>nn.value=e,title:`模板预览`,width:`min(1440px, calc(100vw - 32px))`,centered:``,footer:null,"wrap-class-name":`gd-contract-template-designer__preview-modal`,onCancel:_a},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,{class:(0,d.normalizeClass)([`gd-contract-template-designer__preview`,{"is-multi-file":Ln.value.length>0}])},[Ln.value.length?((0,d.openBlock)(),(0,d.createElementBlock)(`div`,ot,[(0,d.createElementVNode)(`nav`,st,[n[99]||=(0,d.createElementVNode)(`span`,{class:`gd-contract-template-designer__preview-file-nav-title`},`合同文件`,-1),((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(Ln.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`button`,{key:e.file.id,type:`button`,class:(0,d.normalizeClass)([`gd-contract-template-designer__preview-file-tab`,{"is-active":e.file.id===Rn.value?.file.id}]),"aria-current":e.file.id===Rn.value?.file.id?`page`:void 0,onClick:t=>on.value=e.file.id},[(0,d.createVNode)((0,d.unref)(p.FileAddOutlined),{"aria-hidden":`true`}),(0,d.createElementVNode)(`span`,null,(0,d.toDisplayString)(e.file.name),1),(0,d.createElementVNode)(`small`,null,(0,d.toDisplayString)(e.pages.length)+` 页`,1)],10,ct))),128))]),Rn.value?((0,d.openBlock)(),(0,d.createElementBlock)(`section`,lt,[(0,d.createElementVNode)(`h3`,ut,(0,d.toDisplayString)(Rn.value.file.name),1),((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(Rn.value.pages,e=>((0,d.openBlock)(),(0,d.createBlock)(ee.default,{key:`${Rn.value.file.id}:${e.page.id}`,page:e.page,"fallback-page-size":Rn.value.file.template.pageSize,"content-html":e.contentHtml,"signing-placements":e.signingPlacements},null,8,[`page`,`fallback-page-size`,`content-html`,`signing-placements`]))),128))])):(0,d.createCommentVNode)(``,!0)])):((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,{key:1},(0,d.renderList)(In.value,e=>((0,d.openBlock)(),(0,d.createBlock)(ee.default,{key:e.page.id,page:e.page,"fallback-page-size":rn.value?.pageSize??(0,d.unref)(r.DEFAULT_PAGE_SIZE),"content-html":e.contentHtml,"signing-placements":e.signingPlacements},null,8,[`page`,`fallback-page-size`,`content-html`,`signing-placements`]))),128))],2)]),_:1},8,[`open`]),(0,d.createVNode)((0,d.unref)(f.Modal),{open:sn.value,"onUpdate:open":n[61]||=e=>sn.value=e,title:`提交数据查看`,width:`min(960px, calc(100vw - 48px))`,centered:``,footer:null,"wrap-class-name":`gd-contract-template-designer__submit-data-modal`,onCancel:ba},{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`pre`,dt,(0,d.toDisplayString)(cn.value),1)]),_:1},8,[`open`])],6))}});exports.default=h;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./types.cjs`),t=require(`./utils/signing-placement.cjs`),n=require(`./constants.cjs`),r=require(`./utils/page-decorations.cjs`),i=require(`./composables/use-template-designer.cjs`),a=require(`./utils/image-url.cjs`),o=require(`./composables/use-fit-width-zoom.cjs`),s=require(`./utils/content-image.cjs`),c=require(`./utils/context-variable.cjs`),ee=require(`./DesignerPage.cjs`),te=require(`./TableContextMenu.cjs`),ne=require(`./ContractTemplateDesignerWorkspaceHeader.cjs`),re=require(`./ContractTemplateDesignerToolbar.cjs`),ie=require(`./ContractTemplateTextContextMenu.cjs`),ae=require(`./ContractTemplateTextBubbleMenu.cjs`),oe=require(`./ContractTemplateImageContextMenu.cjs`),se=require(`./ContractTemplatePreviewModal.cjs`),ce=require(`./ContractTemplateSubmitDataModal.cjs`),le=require(`./composables/use-template-draft-cache.cjs`),ue=require(`./composables/use-auto-pagination.cjs`),de=require(`./composables/use-designer-files.cjs`),l=require(`./composables/use-template-files.cjs`),fe=require(`./composables/use-draft-cache-session.cjs`),u=require(`./composables/use-signing-placement-editor.cjs`),pe=require(`./utils/template-tool-icons.cjs`),me=require(`./ContractTemplateFileBar.cjs`),he=require(`./ContractTemplateDesignerSidebar.cjs`),ge=require(`./ContractTemplateDesignerInspector.cjs`),_e=require(`./ContractTemplatePageDecorationsStudio.cjs`),d=require(`./utils/serialize-fingerprint.cjs`),ve=require(`./utils/editor-state.cjs`),ye=require(`./utils/context-menu-viewport.cjs`);let f=require(`vue`),be=require(`ant-design-vue`),xe=require(`@vueuse/core`),Se=require(`@ant-design/icons-vue`);var Ce={key:2,class:`gd-contract-template-designer__validation`},we={key:0,class:`gd-contract-template-designer__validation-list`},Te=[`onClick`],Ee={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},De=.5,Oe=1.5,ke=.1,Ae=120,je=128,Me=108,Ne=48,Pe=24,Fe=10,Ie=48,Le=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},defaultVariableStyle:{default:()=>i.DEFAULT_FIELD_STYLE},fontFamilies:{default:void 0},fontFamilyMode:{default:`append`},showSubmitDataViewer:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showSigningPlacementTools:{type:Boolean,default:!1},enableDraftCache:{type:Boolean,default:!0},draftCacheKey:{default:le.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:le.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:le.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:Re,emit:ze}){let m=p,h=ze,Be=(0,f.computed)(()=>({height:typeof m.height==`number`?`${m.height}px`:m.height})),Ve=(0,f.ref)(),He=(0,f.ref)(),Ue=(0,f.ref)(),We=(0,f.ref)(),Ge=(0,f.ref)(),Ke=`gd-contract-template-page-decorations-studio-${(0,f.useId)()}`,qe=`gd-contract-template-workspace-chrome-${(0,f.useId)()}`,Je=(0,f.ref)(),Ye=(0,f.ref)();function Xe(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 Ze(e,t){return Object.fromEntries(e.map((e,n)=>[e.id,Xe(t?.[n]?.template??e.template)]))}let Qe=``,$e=``,et=(0,f.ref)(!1),g=(0,f.computed)(()=>et.value||Array.isArray(m.files)),tt=l.normalizeContractTemplateFiles(m.files,m.modelValue,m.pageSize),nt=l.constrainContractTemplateFiles(tt,m.pageSizeOptions),rt=g.value?nt.files:tt,it=l.resolveContractTemplateActiveFileId(rt,m.activeFileId),_=(0,f.ref)(rt),v=(0,f.ref)(it),at=rt.find(e=>e.id===it)??rt[0],y=(0,f.ref)(Ze(rt,Array.isArray(m.files)?m.files:m.modelValue?[{template:m.modelValue}]:void 0)),b=(0,f.ref)(y.value[it]??Xe(at?.template)),ot=i.normalizeTemplateValue(at?.template??m.modelValue,m.pageSize),st=i.constrainTemplatePageSizes(ot,m.pageSizeOptions),x=(0,f.ref)(st.value);if(g.value){if(_.value=l.replaceContractTemplateFile(_.value,v.value,st.value),d.serializeFingerprint(_.value)!==d.serializeFingerprint(tt)){let e=l.cloneContractTemplateFiles(_.value);Qe=d.serializeFingerprint(e),h(`update:files`,e),h(`files-change`,l.cloneContractTemplateFiles(e))}}else m.modelValue&&d.serializeFingerprint(st.value)!==d.serializeFingerprint(ot)&&($e=d.serializeFingerprint(st.value),h(`update:modelValue`,i.cloneTemplateValue(st.value)),h(`change`,i.cloneTemplateValue(st.value)),Cr(st.resizedSigningPlacementIds,st.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,ct=(0,f.ref)(!1),lt=(0,f.ref)(``),ut=(0,f.ref)(!1),dt=(0,f.ref)(),ft=(0,f.ref)(),pt=(0,f.ref)(``),mt=(0,f.ref)(!1),ht=(0,f.ref)(``),O=(0,f.ref)(1),k=(0,f.ref)(!1),gt=(0,f.ref)(!1),_t=(0,f.ref)(!1),vt=(0,f.ref)(!1),yt=(0,f.ref)(!1),bt=(0,f.ref)(),A=(0,f.ref)(!1),xt=(0,f.ref)(`header`),St=(0,f.ref)(!1),Ct=(0,f.ref)({}),j=(0,f.ref)(``),M=(0,f.ref)(!1),N=(0,f.ref)(!1),wt=(0,f.ref)(!1),Tt=(0,f.ref)(!1),Et=(0,f.ref)(``),Dt=(0,f.ref)(),Ot=(0,f.ref)(),kt=(0,f.ref)(``),At=(0,f.ref)(!1),P=(0,f.ref)(),jt=(0,f.ref)(),F=(0,f.ref)(),Mt=(0,f.ref)(),Nt=(0,f.ref)(!1),Pt,Ft=(0,f.ref)(!1),It,Lt=(0,f.ref)(!1),Rt=(0,f.ref)(``),I=(0,f.ref)(),zt=(0,f.ref)(),L=(0,f.ref)(),Bt=(0,f.ref)(),Vt=(0,f.ref)(),Ht=(0,f.ref)(),R=(0,f.ref)(``),z=(0,f.ref)(le.createDraftCacheStatus(`idle`,`暂无本地草稿`)),Ut=(0,f.ref)({rows:3,cols:3,withHeaderRow:!0}),Wt=new WeakSet,Gt=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),Kt,qt,Jt=!1,Yt=!1,Xt,B=(0,f.computed)(()=>m.readonly||m.disabled),Zt=(0,f.computed)(()=>!!(P.value||I.value||L.value||M.value||N.value||St.value||wt.value||Tt.value)),Qt=(0,f.computed)(()=>!!m.enableDraftCache&&!B.value),$t=(0,f.computed)(()=>_.value.find(e=>e.id===v.value)??_.value[0]),en=(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??[]),tn=(0,f.computed)(()=>dt.value?i.buildTemplatePreviewPages(dt.value):[]),nn=(0,f.computed)(()=>(ft.value??[]).map(e=>({file:e,pages:i.buildTemplatePreviewPages(e.template)}))),rn=(0,f.computed)(()=>nn.value.find(e=>e.file.id===pt.value)??nn.value[0]),an=(0,f.computed)(()=>H.value.find(e=>e.id===C.value)),on=(0,f.computed)(()=>H.value.map(e=>{let n=x.value.pages.findIndex(t=>t.id===e.pageId);return{placement:e,label:t.SIGNING_PLACEMENT_TYPE_LABELS[e.type],detail:`${t.SIGNING_PLACEMENT_TYPE_LABELS[e.type]} · 第 ${Math.max(0,n)+1} 页`}})),sn=(0,f.computed)(()=>{let e=an.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]),cn=(0,f.computed)(()=>i.resolvePageSize(U.value?.pageSize,x.value.pageSize)),ln=(0,f.computed)(()=>T.value&&E.value.length===0),un=(0,f.computed)(()=>T.value?ln.value?`校验通过,正文变量与变量配置一致`:`发现 ${E.value.length} 个校验问题`:``),dn=(0,f.computed)(()=>{let e=U.value?.title||`合同正文`;return`${g.value&&$t.value?`${$t.value.name} · `:``}${e} · ${cn.value.label} · 共 ${x.value.pages.length} 页`}),fn=(0,f.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[r.resolvePageDecorationPreset(x.value.pageDecorations)]),pn=(0,f.computed)(()=>{let e=r.normalizePageDecorations(x.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),mn=(0,f.computed)(()=>Object.values(pn.value).filter(Boolean).length),hn=(0,f.computed)(()=>{switch(z.value.type){case`saved`:return`草稿已缓存 ${le.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``}}),gn=(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`})),_n=(0,f.computed)(()=>`${Math.round(O.value*100)}%`),vn=(0,f.computed)(()=>n.resolveFontFamilyOptions(m.fontFamilies,m.fontFamilyMode)),yn=(0,f.computed)(()=>vn.value.map(e=>({label:e.label,value:e.value}))),bn=n.DEFAULT_TEXT_ALIGN_OPTIONS,xn=[...n.CONTRACT_BLOCK_STYLES.map(e=>({label:e.label,value:e.format}))],Sn=[{label:`实线`,value:`solid`},{label:`虚线`,value:`dashed`}],Cn=[{label:`完整显示`,value:`contain`},{label:`铺满裁剪`,value:`cover`},{label:`拉伸填充`,value:`fill`}],wn=(0,f.computed)(()=>i.normalizePageSizeOptions(m.pageSizeOptions)),Tn=(0,f.computed)(()=>wn.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:i.getPageSizeKey(e)}))),En=(0,f.computed)(()=>i.getPageSizeKey(cn.value)),Dn=(0,f.computed)(()=>t.resolveSigningPlacementToolItems({showSigningPlacementTools:m.showSigningPlacementTools})),On=(0,f.computed)(()=>m.variableTypes.filter(t=>e.isContractTemplateFieldType(t?.type))),kn=(0,f.computed)(()=>On.value.map(e=>({...e,icon:pe.resolveFieldTypeIcon(e.type)}))),An=(0,f.computed)(()=>i.normalizeContractTemplateMaxPages(m.maxPages)),jn=(0,f.computed)(()=>x.value.pages.length>=An.value),Mn=(0,f.computed)(()=>{let e=i.collectTemplateValueVariableKeys(x.value);return Array.from(r.collectPageDecorationVariableKeys(x.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:W}=ue.useAutoPagination({templateValue:x,readonlyState:B,isAutoPaginating:ct,pendingPaginationPageId:lt,activePageId:w,normalizedMaxPages:An,pageRefs:D,syncPageEditors:K,commitBodyChange:br,getPageSize:Z,notifyPageLimit:kr}),{insertSigningPlacement:Nn,handleSigningPlacementDrop:Pn,insertSigningPlacementTool:Fn,handleSigningPlacementDragStart:In,updateSigningPlacement:Ln,patchSelectedSigningPlacement:Rn,duplicateSigningPlacement:zn,removeSigningPlacement:Bn}=u.useSigningPlacementEditor({templateValue:x,signingPlacements:H,selectedSigningPlacement:an,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:Dr,selectSigningPlacement:Q,emitAdd:e=>h(`signing-placement-add`,e),emitChange:e=>h(`signing-placement-change`,e),emitRemove:e=>h(`signing-placement-remove`,e)}),{saveDraftCache:Vn,loadDraftCache:Hn,clearDraftCache:Un,restoreDraftCacheIfNeeded:Wn,stopDraftCacheTimer:Gn,restartDraftCacheTimer:Kn,resetDraftFingerprint:qn}=fe.useDraftCacheSession({draftCacheWritable:Qt,multipleFilesMode:g,filesValue:_,activeFileIdValue:v,templateValue:x,draftCacheKey:en,draftCacheInterval:()=>m.draftCacheInterval,draftCacheMaxBytes:()=>m.draftCacheMaxBytes,pageSize:()=>m.pageSize,pageSizeOptions:()=>m.pageSizeOptions,syncActiveFileSnapshot:q,syncPageEditors:K,setActiveFileId:mr,emitFilesChange:J,commit:Y,setSigningPlacementInputErrorsByFile:e=>{y.value=e},buildSigningPlacementInputErrorsByFile:Ze,updateDraftCacheStatus:hr,scheduleAutoPaginate:W,activePageId:w,selectedVariableKey:S}),Jn=(0,f.computed)(()=>{let e=Rt.value.trim().toLowerCase(),t=x.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),Yn=(0,f.computed)(()=>Math.max(Ne,cn.value.width-je)),Xn=(0,f.computed)(()=>Math.max(Pe,cn.value.height-Me)),G=(0,f.computed)(()=>Ct.value[w.value]??ir()),Zn=(0,f.computed)(()=>G.value.hasMixedBlockFormats?void 0:G.value.currentHeadingLevel??`paragraph`),Qn=(0,f.computed)(()=>G.value.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),$n=(0,f.computed)(()=>G.value.fontSize??i.DEFAULT_FIELD_STYLE.fontSize??14),er=(0,f.computed)(()=>G.value.textColor||i.DEFAULT_FIELD_STYLE.color||`#1f2937`),tr=(0,f.computed)(()=>V.value?.style?.fontFamily||i.DEFAULT_FIELD_STYLE.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),nr=(0,f.computed)(()=>{let e=n.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),t=cr($n.value),r=cr(j.value),i=new Map;return r&&!n.DEFAULT_FONT_SIZE_PRESETS.includes(r)&&i.set(r,{label:`使用 ${r}px`,value:r}),t&&!n.DEFAULT_FONT_SIZE_PRESETS.includes(t)&&i.set(t,{label:r===t?`使用 ${t}px`:`${t}px`,value:t}),[...Array.from(i.values()),...e]});(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===$e;s&&($e=``),(a||!s)&&(b.value=Xe(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)&&($e=o,h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r)),Cr(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===Qe;a||(y.value=Ze(n,e)),a&&(Qe=``);let o=l.resolveContractTemplateActiveFileId(n,m.activeFileId||v.value);if(r===i?o!==v.value&&mr(o,{syncCurrent:!1,shouldEmit:!1}):(_.value=n,mr(o,{syncCurrent:!1,shouldEmit:!1,forceRefresh:!0,persistCurrentErrors:!1})),r!==d.serializeFingerprint(t)){let e=l.cloneContractTemplateFiles(n);Qe=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||mr(e,{syncCurrent:!0,shouldEmit:!1})});function rr(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&&Cr(ee,c.template),s}(0,f.watch)([()=>m.pageSize,()=>m.pageSizeOptions],([e,t])=>{if(g.value){rr(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)(An,()=>{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)([Zt,A,ut],()=>{Ha()}),(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,en.value,m.draftCacheInterval,B.value],()=>{qn(),Kn()}),(0,f.watch)(k,e=>{if(!(typeof document>`u`)){if(e){Kt=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=Kt??``,Kt=void 0}}),(0,f.onMounted)(()=>{Wn(),Kn(),W(w.value),window.addEventListener(`pointerdown`,Xa,!0),window.addEventListener(`pointerup`,qa),window.addEventListener(`keydown`,$a,!0),window.addEventListener(`keydown`,eo),window.addEventListener(`resize`,Ja),window.addEventListener(`scroll`,Za,!0)}),(0,f.onBeforeUnmount)(()=>{ur(),Jt=!0,k.value&&typeof document<`u`&&(document.body.style.overflow=Kt??``),window.removeEventListener(`pointerdown`,Xa,!0),window.removeEventListener(`pointerup`,qa),window.removeEventListener(`keydown`,$a,!0),window.removeEventListener(`keydown`,eo),window.removeEventListener(`resize`,Ja),window.removeEventListener(`scroll`,Za,!0),It!==void 0&&cancelAnimationFrame(It),Gn()});function ir(){return{isFocused:!1,canUndo:!1,canRedo:!1,isBold:!1,isItalic:!1,isUnderline:!1,isBulletList:!1,isOrderedList:!1,isTableActive:!1,textAlign:`left`,fontFamily:n.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:i.DEFAULT_FIELD_STYLE.fontSize??14,textColor:i.DEFAULT_FIELD_STYLE.color??`#1f2937`,selectionText:``,hasMixedBlockFormats:!1}}function ar(e){return e===`left`||e===`center`||e===`right`}function or(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function sr(e,t=$n.value){let n=Number(e);return Number.isFinite(n)?Math.min(Ie,Math.max(Fe,Math.round(n))):t}function cr(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Ie,Math.max(Fe,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 lr(){Yt=!1,Xt&&=(clearTimeout(Xt),void 0)}function ur(){let e=Yt;lr(),e&&pr()}function dr(){Yt=!0,Xt&&clearTimeout(Xt),Xt=setTimeout(()=>{Xt=void 0,!(!Yt||Jt)&&(Yt=!1,pr())},Ae)}function fr(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 pr(){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){ur();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,Qe=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 mr(e,t={}){let{syncCurrent:n,shouldEmit:r,forceRefresh:a,persistCurrentErrors:o}=de.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):lr(),!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??``,Ct.value={},D.clear(),lt.value=``,T.value=!1,E.value=[],ut.value=!1,dt.value=void 0,ft.value=void 0,qn(),r&&c&&h(`update:activeFileId`,s),n&&c&&Qt.value&&Vn(),(0,f.nextTick)(()=>{W(w.value)}))}function Y(e){lr();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),$e=d.serializeFingerprint(r),h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r))),Cr(n.resizedSigningPlacementIds,r),r}function hr(e,t=e.type!==`unchanged`){z.value=e,t&&h(`draft-cache-change`,{...e})}function gr(){return{...z.value}}function _r(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 vr(e){X(e),$()}function yr(e){let t=P.value?.pageId;t&&(D.get(t)?.focus(),R.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function br(e){let t=Y(i.syncTemplateVariablesWithPages(e));return S.value&&!t.variables.some(e=>e.key===S.value)&&(S.value=``),t}function xr(e){fr(e),dr(),W(e.id)}function Z(e){return i.resolvePageSize(e?.pageSize,x.value.pageSize)}function Sr(e){return H.value.filter(t=>t.pageId===e)}function Cr(e,t=x.value){let n=new Set(e);n.size&&(Tr(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 wr(e){Q(e.id)}function Tr(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 Er(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 Dr(e,t=[]){return Tr(t),Y({...x.value,signingPlacements:e})}function Or(e){if(B.value||!U.value)return;let n=wn.value.find(t=>i.getPageSizeKey(t)===e);if(!n)return;let r=U.value.id,a=Z(U.value),o=i.resolvePageSize(n,x.value.pageSize),s=H.value.map(e=>e.pageId===r?t.scaleSigningPlacementToPage(e,a,o):e);Tr(s.filter(e=>e.pageId===r).map(e=>e.id)),Y({...x.value,pages:x.value.pages.map(e=>e.id===r?{...e,pageSize:o}:e),signingPlacements:s}),s.filter(e=>e.pageId===r).forEach(e=>h(`signing-placement-change`,u.cloneSigningPlacement(e))),W(r)}function kr(e){let t=An.value;R.value=`合同最多支持 ${t} 页`,h(`page-limit`,t,e)}function Ar(){if(B.value)return;if(jn.value){kr(`add`);return}let e=i.createDefaultPage(x.value.pages.length+1,cn.value);Y({...x.value,pages:[...x.value.pages,e]}),w.value=e.id}function jr(e){if(B.value)return;if(jn.value){kr(`duplicate`);return}let n=x.value.pages.findIndex(t=>t.id===e.id);if(n<0)return;let r=i.cloneTemplateValue({pages:[e],variables:[],pageSize:x.value.pageSize,signingPlacements:[]}).pages[0],a=i.createBlankPage(n+2,Z(e),r.contentHtml,r.contentJson);a.title=`${e.title||`第 ${n+1} 页`}副本`;let o=[...x.value.pages];o.splice(n+1,0,a);let s=Sr(e.id).map(e=>t.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 Mr(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=Sr(e.id);Er(e.id);let r=x.value.pages.filter(t=>t.id!==e.id),i=br({...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 Nr(e){if(B.value||x.value.pages.length<=1)return;let t=Sr(e.id).length;if(!t){Mr(e);return}be.Modal.confirm({title:`删除合同页面`,content:`此页包含 ${t} 个签署位置,删除页面会同时移除这些位置,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{Mr(e)}})}function Pr(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 Fr(e){let t=e.type??`text`;return i.createTemplateVariable({...e,type:t,key:e.key||Pr(t),label:e.label||i.getFieldOption(t,m.variableTypes).label},m.variableTypes,m.defaultVariableStyle)}function Ir(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 Lr(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 Rr(e={}){let t=s.normalizeContractImageDimension(Dt.value),n=s.normalizeContractImageDimension(Ot.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function zr(){Et.value=``,Dt.value=void 0,Ot.value=void 0,kt.value=``}function Br(e,t=U.value?.id??x.value.pages[0]?.id,n){let r=Lr({...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 Vr(e){return e instanceof Error?e:Error(`图片处理失败`)}async function Hr(e,t){t===`toolbar`&&(At.value=!0,kt.value=``);try{let n=await s.processContractImageFile(e,{source:t,compression:m.imageCompression,upload:m.imageUpload});return Jt?void 0:n.src}catch(e){let n=Vr(e);t===`toolbar`&&(kt.value=n.message),R.value=n.message,h(`image-error`,n,t);return}finally{t===`toolbar`&&(At.value=!1)}}async function Ur(e){return await Hr(e,`paste`)??null}async function Wr(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 Hr(e,`toolbar`);if(Jt)return;if(!i||!a.isSafeContractImageUrl(i)){typeof e==`string`&&(kt.value=`请输入安全的图片 URL`);return}if(n&&!D.has(n))return;let o=Br({...t,src:i},n,r);return o&&(Tt.value=!1,zr(),R.value=`已插入图片`),o}function Gr(){B.value||At.value||($(),kt.value=``,Ye.value&&(Ye.value.value=``),Ye.value?.click())}async function Kr(e){let t=e.target.files?.[0];t&&await Wr(t,Rr({alt:t.name}))}async function qr(){let e=Et.value;await Wr(e,Rr())}function Jr(e){mi(e),wt.value=!1}function Yr(){$(),Ar()}function Xr(e,t,n,r){$(),Ir(Fr({type:t}),e,{left:n,top:r})}function Zr(e){$(),S.value=e,Q()}function Qr(e){let t=x.value.variables.find(t=>t.id===e.id);if(!t)return;let n=e.key.trim();if(n!==t.key){let t=i.validateContractTemplateVariableKey(n,x.value.variables,e.id);if(t){R.value=t;return}}e={...e,key:n};let a=[...x.value.pages],o=t.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:r.rewritePageDecorationVariableTokens(x.value.pageDecorations,o,e.key)}:{}}),S.value=e.key,W(s||w.value)}function $r(e){V.value&&Qr({...V.value,...e,style:{...V.value.style,...e.style}})}function ei(e){B.value||!V.value||$r({key:e})}function ti(e){B.value||(Y({...x.value,pageDecorations:r.normalizePageDecorations(e)}),W(x.value.pages[0]?.id))}function ni(e){(e===`left`||e===`center`||e===`right`)&&$r({style:{textAlign:e}})}function ri(e){(e===`solid`||e===`dashed`)&&$r({style:{borderStyle:e}})}function ii(e){(e===`contain`||e===`cover`||e===`fill`)&&$r({style:{objectFit:e}})}function ai(e){$r({style:e})}function oi(e){ai({fontFamily:String(e||``).trim()||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`})}function si(e){ai({fontSize:sr(e,V.value?.style?.fontSize??14)})}function ci(e){V.value&&$r({multiline:e,rows:V.value.rows||3,lineHeight:V.value.lineHeight||28,style:e?{underline:!0}:void 0})}function li(e){V.value&&$r({rows:Number(e||3),lineHeight:V.value.lineHeight||28})}function ui(e){if(B.value)return;let t=[...x.value.pages];D.forEach((n,r)=>{let i=n.removeVariable(e.key);if(i){let e=t.findIndex(e=>e.id===r);e>=0&&(t[e]=i)}}),Y({...x.value,pages:t,variables:x.value.variables.filter(t=>t.id!==e.id),...x.value.pageDecorations?{pageDecorations:r.rewritePageDecorationVariableTokens(x.value.pageDecorations,e.key)}:{}}),S.value=``,C.value=``}function di(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 fi(e){B.value||Ir(i.createTemplateVariable({...e,id:void 0,key:di(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},m.variableTypes,m.defaultVariableStyle))}function pi(e){return B.value?void 0:Ir(x.value.variables.find(t=>t.key===e.key)??i.createTemplateVariable(e,m.variableTypes,m.defaultVariableStyle))}function mi(e){if(!B.value)return Ir(Fr({type:e}))}function hi(t){if(B.value||!e.isContractTemplateFieldType(t))return;let n=P.value,r=On.value.find(e=>e.type===t);if(!n||!r)return;let i=c.inferContextVariableLabel(n.leadingText)||r.label,a=c.resolveContextVariableWidth(n.selectionWidth,Ne,Yn.value),o=gi();Ir(Fr({type:t,label:i,...a?{width:a}:{},...o?{style:o}:{}}),n.pageId),R.value=n.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function gi(){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 _i(e){if(B.value)return;let t=P.value;t&&(Ir(e,t.pageId),R.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function vi(t){let n=t.type&&e.isContractTemplateFieldType(t.type)?t.type:`text`;return i.getFieldOption(n,On.value).label}function yi(){x.value.variables.length&&(Lt.value=!0,(0,f.nextTick)(()=>{Ma(),jt.value?.focusBindSearch()}))}function bi(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function xi(e){return O.value=Math.round(Math.min(Oe,Math.max(De,Number.isFinite(e)?e:1))*100)/100,O.value}let{width:Si}=(0,xe.useElementSize)(He),Ci=(0,f.computed)(()=>Math.max(...x.value.pages.map(e=>Z(e).width),i.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:wi,applyAutoFit:Ti,markUserAdjusted:Ei,userAdjusted:Di}=o.useFitWidthZoom({viewportWidth:Si,widestPageWidth:Ci,padding:48,minZoom:De,maxZoom:Oe,getZoom:()=>O.value,applyZoom:xi});function Oi(e){return Ei(),xi(e)}function ki(){return Ti()}function Ai(){return O.value}function ji(){Oi(O.value+ke)}function Mi(){Oi(O.value-ke)}function Ni(){$(),M.value=!1,N.value=!1,St.value=!1,k.value=!k.value}(0,f.watch)(Si,e=>{yt.value&&!Di.value&&e>0&&wi()});function Pi(e){vt.value?Je.value?.focus():e()}function Fi(){$(),za(),A.value=!1,qt={fullscreen:k.value,sidebar:gt.value,inspector:_t.value,chrome:vt.value,zoom:O.value,userAdjusted:Di.value},k.value=!0,gt.value=!0,_t.value=!0,vt.value=!0,yt.value=!0,(0,f.nextTick)(()=>{B.value?bt.value?.focus():D.get(w.value)?.focus()})}function Ii(){let e=qt;yt.value=!1,qt=void 0,e&&(k.value=e.fullscreen,gt.value=e.sidebar,_t.value=e.inspector,vt.value=e.chrome,e.userAdjusted?Oi(e.zoom):Ti(),(0,f.nextTick)(()=>Pi(()=>We.value?.focusImmersive())))}function Li(){yt.value?Ii():Fi()}function Ri(){$(),F.value=void 0;let e=q(!1);g.value?(ft.value=l.cloneContractTemplateFiles(_.value),dt.value=void 0,pt.value=v.value||_.value[0]?.id||``):(dt.value=i.cloneTemplateValue(e),ft.value=void 0,pt.value=``),ut.value=!0}function zi(){ut.value=!1,dt.value=void 0,ft.value=void 0,pt.value=``}function Bi(){return fa()}function Vi(){$();let e=Bi();return ht.value=JSON.stringify(e,null,2),mt.value=!0,e}function Hi(){mt.value=!1}function Ui(){$(),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=``,ut.value=!1,dt.value=void 0,ft.value=void 0,mt.value=!1,ht.value=``,Ct.value={},lt.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 Wi(){B.value||($(),be.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面、模板变量和签署位置,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{Ui()}}))}function Gi(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 Ki(e){$(),S.value=e.key,Q();let t=Gi(e);t&&(w.value=t.id,(0,f.nextTick)(()=>{D.get(t.id)?.scrollIntoVariable(e.key)}))}function qi(e){let t=x.value.variables.find(t=>t.key===e||t.id===e);t&&Ki(t)}function Ji(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 Yi(e,t=!0){$(),w.value=e,t&&(0,f.nextTick)(()=>{D.get(e)?.scrollIntoPage()})}function Xi(e){x.value.pages.some(t=>t.id===e)&&Yi(e)}function Zi(){if(A.value){Qi();return}A.value=!0}function Qi(){A.value=!1,(0,f.nextTick)(()=>Pi(()=>We.value?.focusPageDecorations()))}function $i(){return ur(),i.cloneTemplateValue(K())}function ea(e){b.value=Xe(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 ta(){let e=q(!1);return g.value?l.cloneContractTemplateFiles(_.value):l.cloneContractTemplateFiles(l.replaceContractTemplateFile(_.value,v.value,e))}function na(e,t){let n=l.normalizeContractTemplateFiles(e,void 0,m.pageSize),r=l.constrainContractTemplateFiles(n,m.pageSizeOptions),i=_.value;et.value=!0,q(!1),_.value=r.files,y.value=Ze(r.files,e),mr(l.resolveContractTemplateActiveFileId(_.value,t??v.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),d.serializeFingerprint(i)!==d.serializeFingerprint(_.value)&&J(_.value,``)}function ra(e){if(B.value)return;et.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]),mr(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.cloneContractTemplateFiles([t])[0]}function ia(e){!g.value&&!_.value.some(t=>t.id===e)||(et.value=!0,mr(e))}function aa(e,t){if(B.value)return;et.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 oa(e){if(B.value||_.value.length<=1)return;et.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&&mr(l.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),l.cloneContractTemplateFiles([t])[0]}function sa(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;be.Modal.confirm({title:`删除合同文件`,content:n?`“${t.name}”包含 ${n} 个签署位置,删除后文件内正文、变量和签署位置都会移除,是否继续?`:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{oa(e)}})}function ca(e,t){if(B.value)return;et.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 la(){q(!1);let e=_a(g.value?_.value.flatMap(e=>{let t=i.validateTemplateValue(e.template,{maxPages:An.value});return[...y.value[e.id]??[],...t].map(t=>({...t,fileId:e.id}))}):[...b.value,...i.validateTemplateValue(K(),{maxPages:An.value})]);return E.value=e,T.value=!0,h(`validate`,e),e}function ua(e){if(e.fileId&&e.fileId!==v.value){ia(e.fileId),(0,f.nextTick)(()=>ua({...e,fileId:void 0}));return}let t=r.resolvePageDecorationValidationPath(e);if(t){A.value=!0,(0,f.nextTick)(()=>Ge.value?.focusField(t));return}if(e.type===`signing-placement`){let t=H.value.find(t=>t.id===e.id);if(t){Yi(t.pageId),Q(t.id);return}}if(e.variableKey){qi(e.variableKey);return}if(e.pageId){Xi(e.pageId);return}let n=x.value.variables.find(t=>t.id===e.id||t.key===e.id);if(n){Ki(n);return}x.value.pages.some(t=>t.id===e.id)&&Yi(e.id)}function da(e){return r.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`signing-placement`?`签署位置`:e.type===`variable`?`变量`:`字段`}function fa(){return ur(),i.exportTemplateValue(K())}function pa(){let e=q(!1),t=g.value?_.value:l.replaceContractTemplateFile(_.value,v.value,e);return l.exportContractTemplateFiles(t)}function ma(e){let n=K();try{let r=i.collectTemplateLocationRuleExportErrors(n,b.value);if(r.length)throw new t.ContractTemplateLocationRuleBuildError(r);return e(n)}catch(e){throw e instanceof t.ContractTemplateLocationRuleBuildError&&(E.value=[...e.errors],T.value=!0,h(`validate`,[...e.errors])),e}}function ha(e){return ma(n=>t.buildSigningPlacementLocationRules(n,e))}function ga(e){return ma(n=>t.buildContractLocationRules(n,e))}function _a(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 va(e){E.value=[...e],T.value=!0}function ya(){E.value=[],T.value=!1}function ba(){D.get(U.value?.id??w.value)?.focus()}function xa(e){ar(e)&&X({type:`set-text-align`,value:e})}function Sa(e){(e===`paragraph`||or(e))&&X({type:`apply-block-style`,format:e})}function Ca(e){let t=cr(e);t&&(X({type:`set-font-size`,value:t}),j.value=``)}function wa(e){let t=String(e||``).trim();if(!t){X({type:`unset-font-family`});return}X({type:`set-font-family`,value:t})}function Ta(e){Ea(e.target?.value??``)}function Ea(e){let t=e.trim();t&&X({type:`set-color`,value:t})}function Da(e){j.value=e}function Oa(){j.value.trim()&&Ca(j.value)}function ka(e){e.key===`Enter`&&(e.preventDefault(),Oa())}function Aa(e){e||(Oa(),j.value=``)}function ja(e){if(B.value)return;w.value=e.pageId,M.value=!1,N.value=!1,I.value=void 0,L.value=void 0,Lt.value=!1,Rt.value=``;let t=ye.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)(()=>{Ma(),jt.value?.focusFirstButton()})}function Ma(){let e=jt.value?.getMenuElement(),t=P.value;if(!e||!t)return;let n=ye.clampContextMenuToElement(t.x,t.y,e);P.value={...t,x:n.x,y:n.y}}function Na(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=ye.clampContextMenuPosition(e.clientX,e.clientY,248,400);I.value={...e,x:t.x,y:t.y},(0,f.nextTick)(()=>{let e=zt.value?.getMenuElement(),t=I.value;if(e&&t){let n=ye.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}zt.value?.focusFirstItem()})}function Pa(e){if(B.value)return;w.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,I.value=void 0,Vt.value=e.image.width,Ht.value=e.image.height,S.value=``,C.value&&Q();let t=ye.clampContextMenuPosition(e.clientX,e.clientY,288,196);L.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,f.nextTick)(()=>{Fa(),Bt.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function Fa(){let e=Bt.value?.getMenuElement(),t=L.value;if(!e||!t)return;let n=ye.clampContextMenuToElement(t.x,t.y,e);L.value={...t,x:n.x,y:n.y}}function Ia(){let e=L.value;!e||B.value||(D.get(e.pageId)?.updateSelectedContentImage({width:s.normalizeContractImageDimension(Vt.value),height:s.normalizeContractImageDimension(Ht.value)})&&(R.value=`已更新图片尺寸`),$())}function La(){let e=L.value;!e||B.value||(D.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(R.value=`已恢复图片自然尺寸`),$())}function Ra(e){e.type===`table`?Na(e):e.type===`image`?Pa(e):ja(e)}function $(){P.value=void 0,I.value=void 0,L.value=void 0,Lt.value=!1,Rt.value=``}function za(){M.value=!1,N.value=!1,St.value=!1,wt.value=!1,Tt.value=!1}function Ba(){za(),vt.value=!vt.value,(0,f.nextTick)(()=>Pi(()=>We.value?.focusChromeToggle()))}let Va=[`.gd-contract-template-designer__context-menu`,`.gd-contract-template-designer__bubble-menu`,`.gd-contract-template-designer__bubble-menu-popup`].join(`,`);function Ha(){let e=B.value||Ft.value||Nt.value||Zt.value||A.value||ut.value,t=w.value,n=e?void 0:D.get(t)?.getSelectionViewportRect();if(!n){F.value=void 0;return}let r=n.top-40-Le,i=r>=12?r:n.bottom+Le,a=(n.left+n.right)/2-380/2,o=ye.clampContextMenuPosition(a,i,380,40);F.value={pageId:t,x:o.x,y:o.y},(0,f.nextTick)(()=>Ua(n))}function Ua(e){let t=Mt.value?.getMenuElement(),n=F.value;if(!t||!n)return;let r=t.getBoundingClientRect(),i=e.top-r.height-Le,a=i>=12?i:e.bottom+Le,o=(e.left+e.right)/2-r.width/2,s=ye.clampContextMenuToElement(o,a,t);F.value={...n,x:s.x,y:s.y}}function Wa(){let e=F.value?.pageId??w.value,t=D.get(e)?.getSelectionRange();Pt=t?{pageId:e,...t}:void 0,Nt.value=!0,F.value=void 0}function Ga(e){if(!Nt.value)return;let t=Pt,n=D.get(e)?.getSelectionRange();t&&n&&t.pageId===e&&t.from===n.from&&t.to===n.to||(Nt.value=!1,Pt=void 0)}function Ka(){!F.value||It!==void 0||(It=requestAnimationFrame(()=>{It=void 0,Ha()}))}function qa(){Ft.value&&(Ft.value=!1,Ha())}function Ja(){$(),Ka()}function Ya(e,t){D.get(F.value?.pageId??w.value)?.requestTextContextMenu(e,t)}function Xa(e){let t=e.target instanceof HTMLElement?e.target:null;t?.closest(`.ProseMirror`)&&(Ft.value=!0,F.value=void 0),!(!P.value&&!I.value&&!L.value&&!F.value)&&(t?.closest(Va)||($(),F.value&&Wa()))}function Za(e){(e.target instanceof Element?e.target:null)?.closest(Va)||($(),Ka())}function Qa(e){let t=Ve.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 $a(e){if(e.key!==`Escape`||!A.value||typeof document>`u`)return;let t=Ve.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(Gt)||r?.closest(Gt)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){Wt.add(e);return}!Zt.value&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),Qi())}function eo(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!Qt.value||!Qa(e))return;e.preventDefault(),Vn();return}if(e.key===`Escape`){if(Wt.has(e)){Wt.delete(e);return}let t=Zt.value,n=t||A.value;if(!t&&A.value&&Qi(),$(),za(),n&&e.stopPropagation(),!n){if(F.value){Wa(),e.stopPropagation();return}yt.value?Ii():k.value=!1}}}function to(e,t){e===w.value&&t.selectedContentImage&&(S.value=``,C.value&&Q()),e===w.value&&(Ga(e),Ha());let n=Ct.value[e];n&&ve.isSameEditorState(n,t)||(Ct.value={...Ct.value,[e]:t})}function no(e=Ut.value.rows,t=Ut.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:!!Ut.value.withHeaderRow}}),M.value=!1,$()}let ro={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function io(e){let t=I.value;if(!t)return;let n=()=>{X(e,t.pageId),$()},r=ro[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),be.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>D.get(t.pageId)?.focus()})}function ao(e){let t=zt.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 oo(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=P.value?.pageId;$(),D.get(t??``)?.focus()}function so(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=L.value?.pageId;$(),D.get(t??``)?.focus()}function co(e){X({type:e}),N.value=!1,$()}return Re({getValue:$i,setValue:ea,getFiles:ta,setFiles:na,addFile:ra,selectFile:ia,renameFile:aa,removeFile:oa,moveFile:ca,validate:la,exportTemplate:fa,exportFiles:pa,getSubmitData:Bi,clearTemplate:Ui,saveDraftCache:Vn,loadDraftCache:Hn,clearDraftCache:Un,getDraftCacheStatus:gr,insertVariable:pi,insertImage:Wr,focus:ba,openPreview:Ri,closePreview:zi,openSubmitDataViewer:Vi,closeSubmitDataViewer:Hi,setServerValidationErrors:va,clearValidationErrors:ya,scrollToVariable:qi,scrollToSigningPlacement:Ji,scrollToPage:Xi,setZoom:Oi,resetZoom:ki,getZoom:Ai,fitWidth:wi,insertSigningPlacement:Nn,selectSigningPlacement:Q,buildLocationRules:ha,buildContractLocationRules:ga}),(e,n)=>((0,f.openBlock)(),(0,f.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Ve,class:(0,f.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":p.disabled,"is-readonly":B.value,"is-fullscreen":k.value,"is-immersive":yt.value}]),style:(0,f.normalizeStyle)(Be.value)},[g.value?((0,f.openBlock)(),(0,f.createBlock)(me.default,{key:0,files:_.value,"active-file-id":v.value,readonly:B.value,onSelect:ia,onAdd:n[0]||=e=>ra(),onRename:aa,onRemove:sa,onMove:ca},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":gt.value,"is-inspector-collapsed":_t.value}])},[(0,f.createVNode)(he.default,{collapsed:gt.value,pages:x.value.pages,variables:x.value.variables,"decoration-variable-keys":Mn.value,"signing-placement-navigation-items":on.value,"active-page-id":w.value,"selected-variable-key":S.value,"selected-signing-placement-id":C.value,"normalized-max-pages":An.value,"page-limit-reached":jn.value,"selected-page":U.value,"selected-page-size":cn.value,"normalized-page-size-options":wn.value,"page-size-options":Tn.value,"selected-page-size-option-value":En.value,"show-signing-placement-tools":m.showSigningPlacementTools,readonly:B.value,"get-page-size":Z,"get-page-signing-placements":Sr,onToggle:n[1]||=e=>gt.value=!gt.value,onAddPage:Ar,onActivatePage:Yi,onDuplicatePage:jr,onRemovePage:Nr,onPatchPageFormat:Or,onScrollToVariable:Ki,onScrollToSigningPlacement:Ji},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:Ue,class:`gd-contract-template-designer__workspace`},[(0,f.withDirectives)((0,f.createElementVNode)(`div`,{id:qe,class:`gd-contract-template-designer__workspace-chrome`},[(0,f.createVNode)(ne.default,{ref_key:`workspaceHeaderElement`,ref:We,summary:dn.value,"draft-cache-status-text":hn.value,"draft-cache-status-class":gn.value,"show-draft-cache-status":p.showDraftCacheStatus,"show-clear-button":p.showClearButton,"show-submit-data-viewer":p.showSubmitDataViewer,readonly:B.value,"zoom-percent":_n.value,"zoom-out-disabled":O.value<=De,"zoom-in-disabled":O.value>=Oe,"is-fullscreen":k.value,immersive:yt.value,"page-decorations-open":A.value,"page-decorations-studio-id":Ke,"page-decorations-preset-label":fn.value,"page-decorations-enabled-count":mn.value,"page-decorations-enabled-states":pn.value,"chrome-controls-id":qe,onZoomOut:Mi,onZoomIn:ji,onFitWidth:(0,f.unref)(wi),onResetZoom:ki,onToggleFullscreen:Ni,onToggleImmersive:Li,onClear:Wi,onValidate:la,onPreview:Ri,onSubmitData:Vi,onTogglePageDecorations:Zi,onToggleChrome:Ba},null,8,[`summary`,`draft-cache-status-text`,`draft-cache-status-class`,`show-draft-cache-status`,`show-clear-button`,`show-submit-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)(re.default,{"variable-insert-popover-open":wt.value,"onUpdate:variableInsertPopoverOpen":n[2]||=e=>wt.value=e,"image-insert-popover-open":Tt.value,"onUpdate:imageInsertPopoverOpen":n[3]||=e=>Tt.value=e,"image-insert-url":Et.value,"onUpdate:imageInsertUrl":n[4]||=e=>Et.value=e,"image-insert-width":Dt.value,"onUpdate:imageInsertWidth":n[5]||=e=>Dt.value=e,"image-insert-height":Ot.value,"onUpdate:imageInsertHeight":n[6]||=e=>Ot.value=e,"table-insert-popover-open":M.value,"onUpdate:tableInsertPopoverOpen":n[7]||=e=>M.value=e,"table-actions-popover-open":N.value,"onUpdate:tableActionsPopoverOpen":n[8]||=e=>N.value=e,"table-insert-draft":Ut.value,"onUpdate:tableInsertDraft":n[9]||=e=>Ut.value=e,"toolbar-more-open":St.value,"onUpdate:toolbarMoreOpen":n[10]||=e=>St.value=e,readonly:B.value,"editor-state":G.value,"current-block-format":Zn.value,"block-format-options":xn,"font-family-select-options":yn.value,"current-editor-font-family":Qn.value,"font-size-preset-options":nr.value,"current-editor-font-size":$n.value,"editor-font-size-search-value":j.value,"current-editor-text-color":er.value,"body-control-tool-items":kn.value,"page-limit-reached":jn.value,"normalized-max-pages":An.value,"image-processing":At.value,"image-insert-error":kt.value,onCommand:n[11]||=e=>X(e),onPatchBlockFormat:Sa,onPatchFontFamily:wa,onPatchFontSize:Ca,onPatchColor:Ta,onPatchTextAlign:xa,onInsertVariable:Jr,onOpenImageFile:Gr,onInsertImageUrl:qr,onAddPage:Ar,onInsertTable:no,onTableAction:co,onFontSizeSearch:Da,onFontSizeCommit:Oa,onFontSizeDropdownChange:Aa,onFontSizeKeydown:ka},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,!vt.value]]),vt.value?((0,f.openBlock)(),(0,f.createBlock)((0,f.unref)(be.Tooltip),{key:0,title:`展开工具区`},{default:(0,f.withCtx)(()=>[(0,f.createElementVNode)(`button`,{ref_key:`workspaceChromeHandleElement`,ref:Je,type:`button`,class:`gd-contract-template-designer__workspace-chrome-handle`,"aria-label":`展开工具区`,"aria-expanded":!1,"aria-controls":qe,onClick:Ba},[(0,f.createVNode)((0,f.unref)(Se.DownOutlined),{"aria-hidden":`true`})],512)]),_:1})):(0,f.createCommentVNode)(``,!0),yt.value&&!A.value?((0,f.openBlock)(),(0,f.createElementBlock)(`button`,{key:1,ref_key:`immersiveExitElement`,ref:bt,type:`button`,class:`gd-contract-template-designer__immersive-exit`,"aria-label":`退出沉浸写作`,onClick:Ii},[(0,f.createVNode)((0,f.unref)(Se.CompressOutlined),{"aria-hidden":`true`}),n[25]||=(0,f.createElementVNode)(`span`,{class:`gd-contract-template-designer__immersive-exit-label`},`退出沉浸`,-1),n[26]||=(0,f.createElementVNode)(`kbd`,null,`Esc`,-1)],512)):(0,f.createCommentVNode)(``,!0),T.value?((0,f.openBlock)(),(0,f.createElementBlock)(`section`,Ce,[(0,f.createVNode)((0,f.unref)(be.Alert),{type:ln.value?`success`:`error`,message:un.value,"show-icon":``},null,8,[`type`,`message`]),E.value.length?((0,f.openBlock)(),(0,f.createElementBlock)(`div`,we,[((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=>ua(e)},[(0,f.createElementVNode)(`span`,null,(0,f.toDisplayString)(e.message),1),(0,f.createElementVNode)(`small`,null,(0,f.toDisplayString)(da(e)),1)],8,Te))),128))])):(0,f.createCommentVNode)(``,!0)])):(0,f.createCommentVNode)(``,!0),(0,f.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:He,class:`gd-contract-template-designer__canvas`},[((0,f.openBlock)(!0),(0,f.createElementBlock)(f.Fragment,null,(0,f.renderList)(x.value.pages,(e,t)=>((0,f.openBlock)(),(0,f.createBlock)(ee.default,{key:`${v.value}:${e.id}`,ref_for:!0,ref:t=>_r(e.id,t),page:e,"page-index":t,"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?Sr(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":Ur,onPageUpdate:xr,onVariableDrop:Xr,onVariableSelect:Zr,onSigningPlacementDrop:(0,f.unref)(Pn),onSigningPlacementSelect:wr,onSigningPlacementMove:(0,f.unref)(Ln),onSigningPlacementRemove:(0,f.unref)(Bn),onEditorFocus:n[12]||=e=>Yi(e,!1),onEditorStateChange:to,onEditorContextMenu:Ra,onVariableMoveBlocked:n[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)(_e.default,{ref_key:`pageDecorationsStudioElement`,ref:Ge,id:Ke,open:A.value,decorations:x.value.pageDecorations,variables:x.value.variables,"font-family-options":yn.value,readonly:p.readonly,disabled:p.disabled,"active-tab":xt.value,"onUpdate:activeTab":n[14]||=e=>xt.value=e,onChange:ti,onClose:Qi},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[f.vShow,A.value]])],512),(0,f.createVNode)(ge.default,{collapsed:_t.value,readonly:p.readonly,disabled:p.disabled,"show-signing-placement-tools":m.showSigningPlacementTools,"body-control-tool-items":kn.value,"signing-placement-tools":Dn.value,"signing-placements":H.value,"selected-signing-placement":an.value,"selected-signing-placement-page-size":sn.value,"selected-variable":V.value,variables:x.value.variables,"current-variable-font-family":tr.value,"font-family-select-options":yn.value,"text-align-options":(0,f.unref)(bn),"border-style-options":Sn,"object-fit-options":Cn,"selected-variable-width-max":Yn.value,"selected-variable-height-max":Xn.value,"min-font-size":Fe,"max-font-size":Ie,"default-multiline-rows":(0,f.unref)(3),"resolve-signing-placement-type-icon":(0,f.unref)(pe.resolveSigningPlacementTypeIcon),"signing-placement-type-labels":(0,f.unref)(t.SIGNING_PLACEMENT_TYPE_LABELS),onToggle:n[15]||=e=>_t.value=!_t.value,onVariableDragStart:bi,onInsertVariable:mi,onSigningPlacementDragStart:(0,f.unref)(In),onInsertSigningPlacement:(0,f.unref)(Fn),onPatchSigningPlacement:(0,f.unref)(Rn),onDuplicateSigningPlacement:n[16]||=e=>(0,f.unref)(zn)(),onRemoveSigningPlacement:n[17]||=e=>(0,f.unref)(Bn)(),onDuplicateVariable:fi,onRemoveVariable:ui,onPatchVariable:$r,onRenameVariable:ei,onPatchStyle:ai,onPatchMultiline:ci,onPatchRows:li,onPatchFontFamily:oi,onPatchFontSize:si,onPatchTextAlign:ni,onPatchBorderStyle:ri,onPatchObjectFit:ii},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)(te.default,{key:0,ref_key:`tableContextMenuElement`,ref:zt,capabilities:I.value.capabilities,"active-alignment":I.value.activeAlignment,style:(0,f.normalizeStyle)({left:`${I.value.x}px`,top:`${I.value.y}px`}),onExecute:io,onKeydown:ao},null,8,[`capabilities`,`active-alignment`,`style`])):(0,f.createCommentVNode)(``,!0),L.value?((0,f.openBlock)(),(0,f.createBlock)(oe.default,{key:1,ref_key:`imageContextMenuElement`,ref:Bt,width:Vt.value,"onUpdate:width":n[18]||=e=>Vt.value=e,height:Ht.value,"onUpdate:height":n[19]||=e=>Ht.value=e,x:L.value.x,y:L.value.y,readonly:B.value,onRestore:La,onApply:Ia,onKeydown:so},null,8,[`width`,`height`,`x`,`y`,`readonly`])):(0,f.createCommentVNode)(``,!0),P.value?((0,f.openBlock)(),(0,f.createBlock)(ie.default,{key:2,ref_key:`textContextMenuElement`,ref:jt,"bind-open":Lt.value,"onUpdate:bindOpen":n[20]||=e=>Lt.value=e,"bind-keyword":Rt.value,"onUpdate:bindKeyword":n[21]||=e=>Rt.value=e,x:P.value.x,y:P.value.y,"has-selection":P.value.hasSelection,"editor-state":G.value,"font-size-preset-options":nr.value,"current-editor-font-size":$n.value,"editor-font-size-search-value":j.value,"text-align-options":(0,f.unref)(bn),"current-editor-text-color":er.value,"body-control-tool-items":kn.value,"text-menu-bindable-variables":Jn.value,"page-limit-reached":jn.value,"table-insert-draft":Ut.value,"variables-count":x.value.variables.length,"resolve-bind-variable-type-label":vi,onCommand:vr,onClipboard:yr,onOpenImage:Gr,onAddPage:Yr,onInsertVariable:hi,onBindVariable:_i,onOpenBindPanel:yi,onKeydown:oo,onPatchFontSize:Ca,onPatchTextAlign:xa,onPatchColor:Ea,onFontSizeSearch:Da,onFontSizeCommit:Oa,onFontSizeDropdownChange:Aa,onFontSizeKeydown:ka},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)(ae.default,{key:3,ref_key:`textBubbleElement`,ref:Mt,x:F.value.x,y:F.value.y,"editor-state":G.value,"font-size-preset-options":nr.value,"current-editor-font-size":$n.value,"editor-font-size-search-value":j.value,"current-editor-text-color":er.value,"text-align-options":(0,f.unref)(bn),onCommand:X,onPatchFontSize:Ca,onPatchTextAlign:xa,onPatchColor:Ea,onFontSizeSearch:Da,onFontSizeCommit:Oa,onFontSizeDropdownChange:Aa,onFontSizeKeydown:ka,onMore:Ya},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:Ye,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:Kr},null,544),(0,f.createElementVNode)(`span`,Ee,(0,f.toDisplayString)(R.value),1),(0,f.createVNode)(se.default,{open:ut.value,"onUpdate:open":n[22]||=e=>ut.value=e,"preview-pages":tn.value,"preview-file-groups":nn.value,"preview-active-group":rn.value,"preview-snapshot":dt.value,onCancel:zi,onSelectFile:n[23]||=e=>pt.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`]),(0,f.createVNode)(ce.default,{open:mt.value,"onUpdate:open":n[24]||=e=>mt.value=e,json:ht.value,onCancel:Hi},null,8,[`open`,`json`])],6))}});exports.default=p;
@@ -0,0 +1 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./use-template-designer.cjs`);let t=require(`vue`);function n(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function r(e){return e.replace(/<p>\s*(<br>)?\s*<\/p>/gi,``).trim().length===0}function i(e,t,i){let a=e.contentJson?.content,o=[...t,...a?.length?a:[]],s=r(e.contentHtml||``)?``:e.contentHtml;return{...e,contentHtml:`${i}${s}`,contentJson:n(o)}}function a(r){function a(e=r.activePageId.value){if(r.readonlyState.value)return;let n=r.templateValue.value.pages.findIndex(e=>e.id===r.pendingPaginationPageId.value),i=r.templateValue.value.pages.findIndex(t=>t.id===e);(!r.pendingPaginationPageId.value||n<0||i>=0&&i<n)&&(r.pendingPaginationPageId.value=e),!r.isAutoPaginating.value&&(0,t.nextTick)(()=>o())}async function o(){if(!r.isAutoPaginating.value){r.isAutoPaginating.value=!0;try{let a=r.pendingPaginationPageId.value;r.pendingPaginationPageId.value=``;let o=0,s=Math.max(40,r.normalizedMaxPages.value+1);for(;o<s;){await(0,t.nextTick)();let s=r.syncPageEditors().pages,c=Math.max(0,s.findIndex(e=>e.id===a)),l=!1;for(let t=c;t<s.length;t+=1){let o=s[t];if(t===s.length-1&&s.length>=r.normalizedMaxPages.value&&r.pageRefs.get(o.id)?.hasOverflowContent()){r.notifyPageLimit(`auto-pagination`);break}let c=r.pageRefs.get(o.id)?.splitOverflowContent();if(!c)continue;let u=r.syncPageEditors().pages,d=u.findIndex(e=>e.id===o.id);if(d<0)break;u[d]=c.page;let f=u[d+1];f?u[d+1]=r.pageRefs.get(f.id)?.prependContent(c.overflowContent)??i(f,c.overflowContent,c.overflowHtml):u.push(e.createBlankPage(u.length+1,r.getPageSize(c.page),c.overflowHtml,n(c.overflowContent))),r.commitBodyChange({...r.templateValue.value,pages:u}),a=u[d+1]?.id??c.page.id,l=!0;break}if(!l)break;o+=1}}finally{r.isAutoPaginating.value=!1,r.pendingPaginationPageId.value&&(0,t.nextTick)(()=>o())}}}return{scheduleAutoPaginate:a,runAutoPagination:o,createDocContent:n,prependOverflowToPageData:i}}exports.useAutoPagination=a;
@@ -0,0 +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;
@@ -0,0 +1 @@
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./use-template-designer.cjs`),t=require(`./use-template-draft-cache.cjs`),n=require(`./use-template-files.cjs`);let r=require(`vue`);function i(i){let a=``,o;function s(){return i.draftCacheKey.value||`gd-antdv:pro-contract-template-designer:draft`}function c(){return Number(i.draftCacheMaxBytes())||2097152}function l(){if(!i.draftCacheWritable.value){let e=t.createDraftCacheStatus(`unavailable`,`草稿缓存未启用`);return i.updateDraftCacheStatus(e),e}let r=t.getBrowserDraftCacheStorage();i.multipleFilesMode.value&&i.syncActiveFileSnapshot(!1);let o=i.multipleFilesMode.value?t.saveTemplateFilesDraftCache({storage:r,key:s(),value:{files:n.cloneContractTemplateFiles(i.filesValue.value),activeFileId:i.activeFileIdValue.value},maxBytes:c(),previousValueSerialized:a}):t.saveTemplateDraftCache({storage:r,key:s(),value:e.cloneTemplateValue(i.syncPageEditors()),maxBytes:c(),previousValueSerialized:a});return o.valueSerialized&&(a=o.valueSerialized),o.status.type!==`unchanged`&&i.updateDraftCacheStatus(o.status),o.status}function u(){if(i.multipleFilesMode.value){let r=t.loadTemplateFilesDraftCache(t.getBrowserDraftCacheStorage(),s());r.valueSerialized&&(a=r.valueSerialized),r.status.type!==`idle`&&i.updateDraftCacheStatus(r.status);let o=n.resolveContractTemplateActiveFileId(r.value?.files??[],r.value?.activeFileId),c=r.value?.files.find(e=>e.id===o)?.template;return c?e.cloneTemplateValue(c):void 0}let r=t.loadTemplateDraftCache(t.getBrowserDraftCacheStorage(),s());return r.valueSerialized&&(a=r.valueSerialized),r.status.type!==`idle`&&i.updateDraftCacheStatus(r.status),r.value?e.cloneTemplateValue(r.value):void 0}function d(){let e=t.clearTemplateDraftCache(t.getBrowserDraftCacheStorage(),s());a=``,i.updateDraftCacheStatus(e)}function f(){if(!i.draftCacheWritable.value)return;if(i.multipleFilesMode.value){let e={files:n.cloneContractTemplateFiles(i.filesValue.value),activeFileId:i.activeFileIdValue.value};if(!t.isBlankTemplateFilesDraftValue(e))return;let r=t.loadTemplateFilesDraftCache(t.getBrowserDraftCacheStorage(),s());if(r.valueSerialized&&(a=r.valueSerialized),r.value){let e=n.normalizeContractTemplateFiles(r.value.files,void 0,i.pageSize()),t=n.constrainContractTemplateFiles(e,i.pageSizeOptions());i.filesValue.value=t.files,i.setSigningPlacementInputErrorsByFile(i.buildSigningPlacementInputErrorsByFile(t.files,r.value.files));let a=n.resolveContractTemplateActiveFileId(i.filesValue.value,r.value.activeFileId);i.setActiveFileId(a,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),i.emitFilesChange(i.filesValue.value,``),i.updateDraftCacheStatus(r.status);return}r.status.type!==`idle`&&r.status.type!==`invalid`&&i.updateDraftCacheStatus(r.status);return}if(!t.isBlankTemplateDraftValue(i.templateValue.value))return;let r=t.loadTemplateDraftCache(t.getBrowserDraftCacheStorage(),s());if(r.valueSerialized&&(a=r.valueSerialized),r.value){let t=i.commit(e.normalizeTemplateValue(r.value,i.pageSize()));i.activePageId.value=t.pages[0]?.id??``,i.selectedVariableKey.value=``,i.scheduleAutoPaginate(i.activePageId.value),i.updateDraftCacheStatus(r.status);return}r.status.type!==`idle`&&r.status.type!==`invalid`&&i.updateDraftCacheStatus(r.status)}function p(){o&&=(clearInterval(o),void 0)}function m(){if(p(),!i.draftCacheWritable.value||typeof window>`u`)return;let e=Math.max(1e3,Math.round(Number(i.draftCacheInterval())||5e3));o=window.setInterval(()=>{l()},e)}function h(){a=``}return(0,r.onBeforeUnmount)(()=>{p()}),{saveDraftCache:l,loadDraftCache:u,clearDraftCache:d,restoreDraftCacheIfNeeded:f,stopDraftCacheTimer:p,restartDraftCacheTimer:m,resetDraftFingerprint:h}}exports.useDraftCacheSession=i;