@guodun/antdv 1.4.2 → 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 (34) 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/ContractTemplateDesignerWorkspaceHeader.vue.mjs +186 -148
  7. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.mjs +5 -0
  8. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.mjs +179 -0
  9. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +104 -81
  10. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1205 -1035
  11. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  12. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  13. package/dist/lib/components/contract-signing-location/src/coordinates.cjs +1 -1
  14. package/dist/lib/components/contract-signing-location/src/location-rules.cjs +1 -1
  15. package/dist/lib/components/contract-signing-location/src/page-layout.cjs +1 -1
  16. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  17. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -1
  18. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.cjs +1 -0
  19. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.cjs +1 -0
  20. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  21. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  22. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  23. package/dist/theme/icon.css +1 -1
  24. package/dist/theme/index.css +1 -1
  25. package/dist/types/components/contract-signing-location/src/coordinates.d.ts +2 -2
  26. package/dist/types/components/contract-signing-location/src/page-layout.d.ts +2 -2
  27. package/dist/types/components/contract-signing-location/src/template-source.d.ts +2 -0
  28. package/dist/types/components/contract-signing-location/src/types.d.ts +3 -0
  29. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +10 -0
  30. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextBubbleMenu.vue.d.ts +43 -0
  31. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +22 -0
  32. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +90 -0
  33. package/dist/types/components/pro-contract-template-designer/src/utils/context-menu-viewport.d.ts +3 -0
  34. package/package.json +3 -3
@@ -1 +1 @@
1
- const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`);var r=0;function i(e=``){return{contractId:e,files:[],placements:[]}}function a(e,n){let r=v(e?.files),i=T(r);return{contractId:String(e?.contractId??``).trim(),files:r,placements:Array.isArray(e?.placements)?e.placements.map(C).map(e=>{let r=i.get(E(e.fileId,e.pageIndex));return r?t.clampContractSigningPlacement(e,r,{sealSizeLimit:n?.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:n?.sealTypeOptions}):e}):[]}}function o(e){return{contractId:e.contractId,files:e.files.map(e=>({...e,pages:e.pages.map(e=>({...e})),...e.source?.type===`template`?{source:{type:`template`,template:S(e.source.template),...e.source.values?{values:{...e.source.values}}:{}}}:e.source?{source:{type:`preview`}}:{}})),placements:e.placements.map(e=>({...e,sealType:e.sealType?[...e.sealType]:void 0}))}}function s(e,r=1){let i=a(e),o=t.normalizeContractSigningCoordinateScale(r);if(o===1)return i;let s=e=>t.normalizeContractSigningCoordinateDimension(e,o);return{...i,files:i.files.map(e=>n.isContractSigningTemplateFile(e)?e:{...e,pages:e.pages.map(e=>({...e,width:s(e.width),height:s(e.height)}))}),placements:i.placements.map(e=>{let t=i.files.find(t=>t.fileId===e.fileId);return n.isContractSigningTemplateFile(t)?e:{...e,signLeft:s(e.signLeft),signTop:s(e.signTop),signWidth:s(e.signWidth),signHeight:s(e.signHeight)}})}}function c(e,t,n){return e.files.find(e=>e.fileId===t)?.pages.find(e=>e.pageIndex===n)}function l(e){if(e?.length)return e.reduce((e,t)=>t.pageIndex<e.pageIndex?t:e)}function u(n,r,i,a){let o={...n,...r,id:n.id,fileId:n.fileId,pageIndex:r.pageIndex===void 0?n.pageIndex:r.pageIndex};if(n.signType===`seal`){if(o.signType=`seal`,r.sealType!==void 0&&Array.isArray(r.sealType)){let t=e.resolveContractSigningSealSizeInPixels(r.sealType,a?.sealTypeOptions);o.signWidth=t.width,o.signHeight=t.height}if(r.sealType===void 0){let e=Number(r.signWidth),t=Number(r.signHeight);if(Number.isFinite(e)&&e>0&&Number.isFinite(t)&&t>0)o.signWidth=e,o.signHeight=t;else{let r=Number.isFinite(e)&&e>0?e:Number.isFinite(t)&&t>0?t:n.signWidth;o.signWidth=r,o.signHeight=r}}}return i?t.clampContractSigningPlacement(o,i,{sealSizeLimit:a?.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:a?.sealTypeOptions}):o}function d(e){return!!(e&&j(e.width)&&j(e.height))}function f(e,n,r=1,i=!1){if(i||d(e)||!n.width||!n.height)return;let a=t.normalizeContractSigningCoordinateDimension(n.width,r),o=t.normalizeContractSigningCoordinateDimension(n.height,r);return a>0&&o>0?{width:a,height:o}:void 0}function p(n,i,a,o={}){let s=n===`seal`?e.resolveContractSigningSealSizeInPixels(o.sealType??[`04`],o.sealTypeOptions):t.getContractSigningPlacementSize(n,o.sizeProfile);return r+=1,t.clampContractSigningPlacement({id:`contract-signing-placement-${Date.now().toString(36)}-${r.toString(36)}`,fileId:i,pageIndex:a.pageIndex,signType:n,signLeft:o.signLeft??(a.width-s.width)/2,signTop:o.signTop??(a.height-s.height)/2,signWidth:s.width,signHeight:s.height,mustSign:!0,...n===`seal`?{sealType:o.sealType===void 0?[`04`]:w(o.sealType)}:{}},a,{sealSizeLimit:o.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:o.sealTypeOptions})}function m(t,r={}){let i=[],a=r.allowedSealTypes?new Set(Array.from(r.allowedSealTypes,e=>String(e).trim()).filter(Boolean)):void 0;t.files.length||i.push({code:`CONTRACT_FILES_MISSING`,message:`合同没有可用文件`}),t.placements.length||i.push({code:`SIGNING_PLACEMENTS_MISSING`,message:`请至少添加一个签署位置`});let o=new Set,s=new Set;return t.files.forEach(e=>{e.fileId?o.has(e.fileId)&&i.push({code:`CONTRACT_FILE_ID_DUPLICATE`,message:`合同文件 ID ${e.fileId} 重复`,fileId:e.fileId}):i.push({code:`CONTRACT_FILE_ID_MISSING`,message:`合同文件缺少真实 fileId`}),o.add(e.fileId),e.pages.length||i.push({code:`CONTRACT_PAGES_MISSING`,message:`文件 ${e.fileName||e.fileId} 没有页面元数据`,fileId:e.fileId}),i.push(...n.validateContractSigningTemplateFile(e));let t=new Set;e.pages.forEach(n=>{!Number.isInteger(n.pageIndex)||n.pageIndex<0?i.push({code:`CONTRACT_PAGE_INDEX_INVALID`,message:`页面索引必须是非负整数`,fileId:e.fileId,pageIndex:n.pageIndex}):t.has(n.pageIndex)&&i.push({code:`CONTRACT_PAGE_INDEX_DUPLICATE`,message:`文件 ${e.fileName||e.fileId} 的页面索引 ${n.pageIndex} 重复`,fileId:e.fileId,pageIndex:n.pageIndex}),t.add(n.pageIndex),d(n)||i.push({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`页面缺少有效的原始宽高`,fileId:e.fileId,pageIndex:n.pageIndex})})}),t.placements.forEach(n=>{let r=e.CONTRACT_SIGNING_PLACEMENT_LABELS[n.signType]??`签署位置`;n.id?s.has(n.id)&&i.push({code:`SIGNING_PLACEMENT_ID_DUPLICATE`,message:`签署位置 ID ${n.id} 重复`,placementId:n.id}):i.push({code:`SIGNING_PLACEMENT_ID_MISSING`,message:`${r}缺少唯一 ID`}),s.add(n.id);let o=c(t,n.fileId,n.pageIndex);if(!o){i.push({code:`SIGNING_PLACEMENT_PAGE_MISSING`,message:`${r}引用了不存在的文件或页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex});return}[n.signLeft,n.signTop,n.signWidth,n.signHeight].some(e=>!Number.isFinite(e))?i.push({code:`SIGNING_PLACEMENT_GEOMETRY_INVALID`,message:`${r}坐标和尺寸必须是有限数字`,placementId:n.id}):n.signWidth<=0||n.signHeight<=0?i.push({code:`SIGNING_PLACEMENT_SIZE_INVALID`,message:`${r}宽高必须大于 0`,placementId:n.id}):(n.signLeft<0||n.signTop<0||n.signLeft+n.signWidth>o.width||n.signTop+n.signHeight>o.height)&&i.push({code:`SIGNING_PLACEMENT_OUT_OF_BOUNDS`,message:`${r}不能超出所属页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex}),n.signType!==`seal`&&n.sealType!==void 0&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`只有印章位置可以配置印章类型`,placementId:n.id}),n.signType===`seal`&&(!Array.isArray(n.sealType)||!n.sealType.length||n.sealType.some(e=>!String(e).trim()))?i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`印章位置必须至少选择一种有效印章类型`,placementId:n.id}):n.signType===`seal`&&a&&n.sealType?.some(e=>!a.has(String(e).trim()))&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_UNSUPPORTED`,message:`印章位置包含未配置的印章类型`,placementId:n.id})}),i}function h(e,n={}){let r=m(e,n);if(r.length)throw new _(r);return e.placements.map(e=>{let n=t.getContractSigningRuleGeometry(e);return{mustSign:e.mustSign,location:{signType:e.signType,signTop:n.signTop,signLeft:n.signLeft,signWidth:n.signWidth,signHeight:n.signHeight,pageList:{[e.fileId]:[e.pageIndex]},...e.signType===`seal`&&e.sealType?.length?{sealType:[...e.sealType]}:{}}}})}function g(e,t={}){let n=o(e);return{...n,locationRules:h(n,t)}}var _=class extends Error{constructor(e){super(e[0]?.message||`指定签署位置数据不完整`),this.code=`CONTRACT_SIGNING_LOCATION_INVALID`,this.name=`ContractSigningLocationBuildError`,this.errors=e}};function v(e){return Array.isArray(e)?e.map((e,t)=>{let n=e&&typeof e==`object`?e:{},r=String(n.fileId??``).trim(),i=y(n.source),a=i?.type===`template`?b(i.template,i.values):Array.isArray(n.pages)?n.pages.map((e,t)=>x(e,t)):[];return{fileId:r,fileName:String(n.fileName??`合同文件 ${t+1}`),pages:a,...i?{source:i}:{}}}):[]}function y(e){if(!e||typeof e!=`object`)return;let t=e;return t.type===`template`?{type:`template`,template:S(t.template),...t.values&&typeof t.values==`object`&&!Array.isArray(t.values)?{values:{...t.values}}:{}}:t.type===`preview`?{type:`preview`}:void 0}function b(e,t){return n.buildContractSigningTemplateRenderPages({type:`template`,template:e,...t?{values:t}:{}}).map(e=>({pageIndex:e.pageIndex,displayPageNumber:e.pageIndex+1,pageId:e.pageId,width:O(e.width,0),height:O(e.height,0)}))}function x(e,t){let n=e&&typeof e==`object`?e:{},r=k(n.pageIndex,t);return{pageIndex:r,displayPageNumber:A(n.displayPageNumber,r+1),width:O(n.width,0),height:O(n.height,0),...n.pageId?{pageId:String(n.pageId)}:{},...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}}function S(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function C(e){let t=e?.signType===`seal`||e?.signType===`signature`||e?.signType===`date`?e.signType:`signature`;return{id:String(e?.id??``),fileId:String(e?.fileId??``).trim(),pageIndex:k(e?.pageIndex,0),signType:t,signLeft:D(e?.signLeft,0),signTop:D(e?.signTop,0),signWidth:D(e?.signWidth,0),signHeight:D(e?.signHeight,0),mustSign:e?.mustSign!==!1,...t===`seal`&&Array.isArray(e?.sealType)?{sealType:e.sealType.map(String)}:{}}}function w(e){return Array.isArray(e)?Array.from(new Set(e.map(String).map(e=>e.trim()).filter(Boolean))):[]}function T(e){return new Map(e.flatMap(e=>e.pages.map(t=>[E(e.fileId,t.pageIndex),t])))}function E(e,t){return`${e}\u0000${t}`}function D(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function O(e,t){return Math.max(0,D(e,t))}function k(e,t){return Math.max(0,Math.round(D(e,t)))}function A(e,t){return Math.max(1,Math.round(D(e,t)))}function j(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}exports.ContractSigningLocationBuildError=_,exports.buildContractSigningLocationOutput=g,exports.buildContractSigningLocationRules=h,exports.cloneContractSigningLocationValue=o,exports.createContractSigningLocationValue=i,exports.createContractSigningPlacement=p,exports.findContractSigningPage=c,exports.getContractSigningHomePage=l,exports.isContractSigningPageUsable=d,exports.normalizeContractSigningLocationValue=a,exports.normalizeContractSigningProviderValue=s,exports.patchContractSigningPlacement=u,exports.resolveContractSigningPreviewPageSize=f,exports.validateContractSigningLocationValue=m;
1
+ const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`);var r=0;function i(e=``){return{contractId:e,files:[],placements:[]}}function a(e,n){let r=v(e?.files),i=T(r);return{contractId:String(e?.contractId??``).trim(),files:r,placements:Array.isArray(e?.placements)?e.placements.map(C).map(e=>{let r=i.get(E(e.fileId,e.pageIndex));return r?t.clampContractSigningPlacement(e,r,{sealSizeLimit:n?.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:n?.sealTypeOptions}):e}):[]}}function o(e){return{contractId:e.contractId,files:e.files.map(e=>({...e,pages:e.pages.map(e=>({...e})),...e.source?.type===`template`?{source:{type:`template`,template:S(e.source.template),...e.source.values?{values:{...e.source.values}}:{}}}:e.source?{source:{type:`preview`}}:{}})),placements:e.placements.map(e=>({...e,sealType:e.sealType?[...e.sealType]:void 0}))}}function s(e,r=1){let i=a(e),o=t.normalizeContractSigningCoordinateScale(r);if(o===1)return i;let s=e=>t.normalizeContractSigningCoordinateDimension(e,o);return{...i,files:i.files.map(e=>n.isContractSigningTemplateFile(e)?e:{...e,pages:e.pages.map(e=>({...e,width:s(e.width),height:s(e.height)}))}),placements:i.placements.map(e=>{let t=i.files.find(t=>t.fileId===e.fileId);return n.isContractSigningTemplateFile(t)?e:{...e,signLeft:s(e.signLeft),signTop:s(e.signTop),signWidth:s(e.signWidth),signHeight:s(e.signHeight)}})}}function c(e,t,n){return e.files.find(e=>e.fileId===t)?.pages.find(e=>e.pageIndex===n)}function l(e){if(e?.length)return e.reduce((e,t)=>t.pageIndex<e.pageIndex?t:e)}function u(n,r,i,a){let o={...n,...r,id:n.id,fileId:n.fileId,pageIndex:r.pageIndex===void 0?n.pageIndex:r.pageIndex};if(n.signType===`seal`){if(o.signType=`seal`,r.sealType!==void 0&&Array.isArray(r.sealType)){let t=e.resolveContractSigningSealSizeInPixels(r.sealType,a?.sealTypeOptions);o.signWidth=t.width,o.signHeight=t.height}if(r.sealType===void 0){let e=Number(r.signWidth),t=Number(r.signHeight);if(Number.isFinite(e)&&e>0&&Number.isFinite(t)&&t>0)o.signWidth=e,o.signHeight=t;else{let r=Number.isFinite(e)&&e>0?e:Number.isFinite(t)&&t>0?t:n.signWidth;o.signWidth=r,o.signHeight=r}}}return i?t.clampContractSigningPlacement(o,i,{sealSizeLimit:a?.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:a?.sealTypeOptions}):o}function d(e){return!!(e&&j(e.width)&&j(e.height))}function f(e,n,r=1,i=!1){if(i||d(e)||!n.width||!n.height)return;let a=t.normalizeContractSigningCoordinateDimension(n.width,r),o=t.normalizeContractSigningCoordinateDimension(n.height,r);return a>0&&o>0?{width:a,height:o}:void 0}function p(n,i,a,o={}){let s=n===`seal`?e.resolveContractSigningSealSizeInPixels(o.sealType??[`04`],o.sealTypeOptions):t.getContractSigningPlacementSize(n,o.sizeProfile);return r+=1,t.clampContractSigningPlacement({id:`contract-signing-placement-${Date.now().toString(36)}-${r.toString(36)}`,fileId:i,pageIndex:a.pageIndex,signType:n,signLeft:o.signLeft??(a.width-s.width)/2,signTop:o.signTop??(a.height-s.height)/2,signWidth:s.width,signHeight:s.height,mustSign:!0,...n===`seal`?{sealType:o.sealType===void 0?[`04`]:w(o.sealType)}:{}},a,{sealSizeLimit:o.sealSizeLimit,sealTypes:o.sealType,sealTypeOptions:o.sealTypeOptions})}function m(t,r={}){let i=[],a=r.allowedSealTypes?new Set(Array.from(r.allowedSealTypes,e=>String(e).trim()).filter(Boolean)):void 0;t.files.length||i.push({code:`CONTRACT_FILES_MISSING`,message:`合同没有可用文件`}),t.placements.length||i.push({code:`SIGNING_PLACEMENTS_MISSING`,message:`请至少添加一个签署位置`});let o=new Set,s=new Set;return t.files.forEach(e=>{e.fileId?o.has(e.fileId)&&i.push({code:`CONTRACT_FILE_ID_DUPLICATE`,message:`合同文件 ID ${e.fileId} 重复`,fileId:e.fileId}):i.push({code:`CONTRACT_FILE_ID_MISSING`,message:`合同文件缺少真实 fileId`}),o.add(e.fileId),e.pages.length||i.push({code:`CONTRACT_PAGES_MISSING`,message:`文件 ${e.fileName||e.fileId} 没有页面元数据`,fileId:e.fileId}),i.push(...n.validateContractSigningTemplateFile(e));let t=new Set;e.pages.forEach(n=>{!Number.isInteger(n.pageIndex)||n.pageIndex<0?i.push({code:`CONTRACT_PAGE_INDEX_INVALID`,message:`页面索引必须是非负整数`,fileId:e.fileId,pageIndex:n.pageIndex}):t.has(n.pageIndex)&&i.push({code:`CONTRACT_PAGE_INDEX_DUPLICATE`,message:`文件 ${e.fileName||e.fileId} 的页面索引 ${n.pageIndex} 重复`,fileId:e.fileId,pageIndex:n.pageIndex}),t.add(n.pageIndex),d(n)||i.push({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`页面缺少有效的原始宽高`,fileId:e.fileId,pageIndex:n.pageIndex})})}),t.placements.forEach(n=>{let r=e.CONTRACT_SIGNING_PLACEMENT_LABELS[n.signType]??`签署位置`;n.id?s.has(n.id)&&i.push({code:`SIGNING_PLACEMENT_ID_DUPLICATE`,message:`签署位置 ID ${n.id} 重复`,placementId:n.id}):i.push({code:`SIGNING_PLACEMENT_ID_MISSING`,message:`${r}缺少唯一 ID`}),s.add(n.id);let o=c(t,n.fileId,n.pageIndex);if(!o){i.push({code:`SIGNING_PLACEMENT_PAGE_MISSING`,message:`${r}引用了不存在的文件或页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex});return}[n.signLeft,n.signTop,n.signWidth,n.signHeight].some(e=>!Number.isFinite(e))?i.push({code:`SIGNING_PLACEMENT_GEOMETRY_INVALID`,message:`${r}坐标和尺寸必须是有限数字`,placementId:n.id}):n.signWidth<=0||n.signHeight<=0?i.push({code:`SIGNING_PLACEMENT_SIZE_INVALID`,message:`${r}宽高必须大于 0`,placementId:n.id}):(n.signLeft<0||n.signTop<0||n.signLeft+n.signWidth>o.width||n.signTop+n.signHeight>o.height)&&i.push({code:`SIGNING_PLACEMENT_OUT_OF_BOUNDS`,message:`${r}不能超出所属页面`,placementId:n.id,fileId:n.fileId,pageIndex:n.pageIndex}),n.signType!==`seal`&&n.sealType!==void 0&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`只有印章位置可以配置印章类型`,placementId:n.id}),n.signType===`seal`&&(!Array.isArray(n.sealType)||!n.sealType.length||n.sealType.some(e=>!String(e).trim()))?i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_INVALID`,message:`印章位置必须至少选择一种有效印章类型`,placementId:n.id}):n.signType===`seal`&&a&&n.sealType?.some(e=>!a.has(String(e).trim()))&&i.push({code:`SIGNING_PLACEMENT_SEAL_TYPE_UNSUPPORTED`,message:`印章位置包含未配置的印章类型`,placementId:n.id})}),i}function h(e,n={}){let r=m(e,n);if(r.length)throw new _(r);return e.placements.map(e=>{let n=t.getContractSigningRuleGeometry(e);return{mustSign:e.mustSign,location:{signType:e.signType,signTop:n.signTop,signLeft:n.signLeft,signWidth:n.signWidth,signHeight:n.signHeight,pageList:{[e.fileId]:[e.pageIndex]},...e.signType===`seal`&&e.sealType?.length?{sealType:[...e.sealType]}:{}}}})}function g(e,t={}){let n=o(e);return{...n,locationRules:h(n,t)}}var _=class extends Error{constructor(e){super(e[0]?.message||`指定签署位置数据不完整`),this.code=`CONTRACT_SIGNING_LOCATION_INVALID`,this.name=`ContractSigningLocationBuildError`,this.errors=e}};function v(e){return Array.isArray(e)?e.map((e,t)=>{let n=e&&typeof e==`object`?e:{},r=String(n.fileId??``).trim(),i=y(n.source),a=i?.type===`template`?b(i.template,i.values,n.pages):Array.isArray(n.pages)?n.pages.map((e,t)=>x(e,t)):[];return{fileId:r,fileName:String(n.fileName??`合同文件 ${t+1}`),pages:a,...i?{source:i}:{}}}):[]}function y(e){if(!e||typeof e!=`object`)return;let t=e;return t.type===`template`?{type:`template`,template:S(t.template),...t.values&&typeof t.values==`object`&&!Array.isArray(t.values)?{values:{...t.values}}:{}}:t.type===`preview`?{type:`preview`}:void 0}function b(e,t,r){let i=n.buildContractSigningTemplateRenderPages({type:`template`,template:e,...t?{values:t}:{}}),a=Array.isArray(r)?r:[];return i.map(e=>{let t=a.find(t=>k((t&&typeof t==`object`?t:{}).pageIndex,-1)===e.pageIndex),n=t&&typeof t==`object`?t:{},r=O(e.displayWidth||e.width,0),i=O(e.displayHeight||e.height,0);return{pageIndex:e.pageIndex,displayPageNumber:e.pageIndex+1,pageId:e.pageId,width:O(n.width,r),height:O(n.height,i),displayWidth:r,displayHeight:i,...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}})}function x(e,t){let n=e&&typeof e==`object`?e:{},r=k(n.pageIndex,t);return{pageIndex:r,displayPageNumber:A(n.displayPageNumber,r+1),width:O(n.width,0),height:O(n.height,0),...O(n.displayWidth,0)>0?{displayWidth:O(n.displayWidth,0)}:{},...O(n.displayHeight,0)>0?{displayHeight:O(n.displayHeight,0)}:{},...n.pageId?{pageId:String(n.pageId)}:{},...n.previewUrl?{previewUrl:String(n.previewUrl)}:{},...n.thumbnailUrl?{thumbnailUrl:String(n.thumbnailUrl)}:{}}}function S(e){if(e==null)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}function C(e){let t=e?.signType===`seal`||e?.signType===`signature`||e?.signType===`date`?e.signType:`signature`;return{id:String(e?.id??``),fileId:String(e?.fileId??``).trim(),pageIndex:k(e?.pageIndex,0),signType:t,signLeft:D(e?.signLeft,0),signTop:D(e?.signTop,0),signWidth:D(e?.signWidth,0),signHeight:D(e?.signHeight,0),mustSign:e?.mustSign!==!1,...t===`seal`&&Array.isArray(e?.sealType)?{sealType:e.sealType.map(String)}:{}}}function w(e){return Array.isArray(e)?Array.from(new Set(e.map(String).map(e=>e.trim()).filter(Boolean))):[]}function T(e){return new Map(e.flatMap(e=>e.pages.map(t=>[E(e.fileId,t.pageIndex),t])))}function E(e,t){return`${e}\u0000${t}`}function D(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function O(e,t){return Math.max(0,D(e,t))}function k(e,t){return Math.max(0,Math.round(D(e,t)))}function A(e,t){return Math.max(1,Math.round(D(e,t)))}function j(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}exports.ContractSigningLocationBuildError=_,exports.buildContractSigningLocationOutput=g,exports.buildContractSigningLocationRules=h,exports.cloneContractSigningLocationValue=o,exports.createContractSigningLocationValue=i,exports.createContractSigningPlacement=p,exports.findContractSigningPage=c,exports.getContractSigningHomePage=l,exports.isContractSigningPageUsable=d,exports.normalizeContractSigningLocationValue=a,exports.normalizeContractSigningProviderValue=s,exports.patchContractSigningPlacement=u,exports.resolveContractSigningPreviewPageSize=f,exports.validateContractSigningLocationValue=m;
@@ -1 +1 @@
1
- require(`./constants.cjs`);const e=require(`./location-rules.cjs`);var t=16,n={width:595,height:842},r=1;function i(e,t,n=16){let r=p(t,1),i=e.map(e=>{let t=d(e);return{pageIndex:e.pageIndex,width:t.width*r,height:t.height*r}}),a=i.reduce((e,t)=>Math.max(e,t.width),0),o=0;return i.map(e=>{let t={pageIndex:e.pageIndex,top:o,height:e.height,width:e.width,left:(a-e.width)/2};return o+=e.height+Math.max(0,n),t})}function a(e){if(!e.length)return{width:0,height:0};let t=e[e.length-1];return{width:e.reduce((e,t)=>Math.max(e,t.left+t.width),0),height:t.top+t.height}}function o(e,t,n=48){let r=Math.max(1,p(n,48)),i=e-t.top,a=t.bottom-e;return i<r?-(2+(1-Math.max(0,i)/r)*22):a<r?2+(1-Math.max(0,a)/r)*22:0}function s(e,t){if(!e.length)return;let n=0,r=e.length-1;for(;n<=r;){let i=n+r>>1,a=e[i];if(t<a.top)r=i-1;else if(t>=a.top+a.height)n=i+1;else return a}if(r<0)return e[0];if(n>=e.length)return e[e.length-1];let i=e[r],a=e[n],o=t-(i.top+i.height);return a.top-t<o?a:i}function c(e,t,n,r=1){if(!e.length)return{start:0,end:-1};let i=t,a=t+Math.max(0,n),o=0,s=e.length-1;for(let t=0;t<e.length;t+=1){if(e[t].top+e[t].height>i){o=t;break}o=e.length-1}for(let t=e.length-1;t>=0;--t){if(e[t].top<a){s=t;break}s=0}s<o&&([o,s]=[s,o]);let c=Math.max(0,Math.round(r));return{start:Math.max(0,o-c),end:Math.min(e.length-1,s+c)}}function l(e,t,n,r,i=0){let a=s(e,r);if(!a)return;let o=d(t.find(e=>e.pageIndex===a.pageIndex)),c=f(i,0);return{pageIndex:a.pageIndex,x:m((n-a.left)*o.width/Math.max(1,a.width)-c),y:m((r-a.top)*o.height/Math.max(1,a.height)-c)}}function u(e,t){return e.find(e=>e.pageIndex===t)?.top??0}function d(t){return e.isContractSigningPageUsable(t)&&t?{width:t.width,height:t.height}:{...n}}function f(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function p(e,t){let n=f(e,t);return n>0?n:t}function m(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE=n,exports.CONTRACT_SIGNING_PAGE_GAP=t,exports.CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES=r,exports.buildPageLayouts=i,exports.contentPointToPagePoint=l,exports.findPageAtOffset=s,exports.getContractSigningAutoScrollDelta=o,exports.getPageLayoutScrollTop=u,exports.getPageLayoutsContentSize=a,exports.getVisibleRange=c;
1
+ require(`./constants.cjs`);const e=require(`./location-rules.cjs`);var t=16,n={width:595,height:842},r=1;function i(e,t,n=16){let r=p(t,1),i=e.map(e=>{let t=d(e);return{pageIndex:e.pageIndex,width:t.width*r,height:t.height*r}}),a=i.reduce((e,t)=>Math.max(e,t.width),0),o=0;return i.map(e=>{let t={pageIndex:e.pageIndex,top:o,height:e.height,width:e.width,left:(a-e.width)/2};return o+=e.height+Math.max(0,n),t})}function a(e){if(!e.length)return{width:0,height:0};let t=e[e.length-1];return{width:e.reduce((e,t)=>Math.max(e,t.left+t.width),0),height:t.top+t.height}}function o(e,t,n=48){let r=Math.max(1,p(n,48)),i=e-t.top,a=t.bottom-e;return i<r?-(2+(1-Math.max(0,i)/r)*22):a<r?2+(1-Math.max(0,a)/r)*22:0}function s(e,t){if(!e.length)return;let n=0,r=e.length-1;for(;n<=r;){let i=n+r>>1,a=e[i];if(t<a.top)r=i-1;else if(t>=a.top+a.height)n=i+1;else return a}if(r<0)return e[0];if(n>=e.length)return e[e.length-1];let i=e[r],a=e[n],o=t-(i.top+i.height);return a.top-t<o?a:i}function c(e,t,n,r=1){if(!e.length)return{start:0,end:-1};let i=t,a=t+Math.max(0,n),o=0,s=e.length-1;for(let t=0;t<e.length;t+=1){if(e[t].top+e[t].height>i){o=t;break}o=e.length-1}for(let t=e.length-1;t>=0;--t){if(e[t].top<a){s=t;break}s=0}s<o&&([o,s]=[s,o]);let c=Math.max(0,Math.round(r));return{start:Math.max(0,o-c),end:Math.min(e.length-1,s+c)}}function l(t,r,i,a,o=0){let c=s(t,a);if(!c)return;let l=r.find(e=>e.pageIndex===c.pageIndex),u=e.isContractSigningPageUsable(l)&&l?{width:l.width,height:l.height}:{...n},d=f(o,0);return{pageIndex:c.pageIndex,x:m((i-c.left)*u.width/Math.max(1,c.width)-d),y:m((a-c.top)*u.height/Math.max(1,c.height)-d)}}function u(e,t){return e.find(e=>e.pageIndex===t)?.top??0}function d(t){return e.isContractSigningPageUsable(t)&&t?{width:p(t.displayWidth,t.width),height:p(t.displayHeight,t.height)}:{...n}}function f(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function p(e,t){let n=f(e,t);return n>0?n:t}function m(e){return Math.round(e*100)/100}exports.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE=n,exports.CONTRACT_SIGNING_PAGE_GAP=t,exports.CONTRACT_SIGNING_VIRTUAL_BUFFER_PAGES=r,exports.buildPageLayouts=i,exports.contentPointToPagePoint=l,exports.findPageAtOffset=s,exports.getContractSigningAutoScrollDelta=o,exports.getPageLayoutScrollTop=u,exports.getPageLayoutsContentSize=a,exports.getVisibleRange=c;
@@ -1 +1 @@
1
- const e=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`);function t(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function n(e){return t(e?.source)}function r(n){if(!t(n)||!s(n.template))return[];try{let t=n.template,r=Array.isArray(t.pages)?t.pages:[],i=e.normalizeRenderValues(t,n.values),a=o(t);return r.flatMap((n,r)=>{let o=e.buildTemplateRenderPages({...t,pages:[n]},i,{readonly:!0,disabled:!0,mode:`display`})[0];if(!o)return[];let s=c(n?.pageSize,t.pageSize,o);return[{pageIndex:r,pageId:o.id,title:o.title,width:s.width,height:s.height,contentHtml:o.contentHtml,errors:a.filter(e=>!e.pageId||e.pageId===o.id).map(e=>e.message)}]})}catch{return[]}}function i(e){if(!t(e.source))return[];if(!s(e.source.template))return[{code:`CONTRACT_TEMPLATE_MISSING`,message:`文件 ${e.fileName||e.fileId} 缺少可渲染的合同模板`,fileId:e.fileId}];try{let t=Array.isArray(e.source.template.pages)?e.source.template.pages:[];return o(e.source.template).map(n=>{let r=n.pageId?t.findIndex(e=>e?.id===n.pageId):-1;return{code:`CONTRACT_${n.code||`TEMPLATE_INVALID`}`,message:`${e.fileName||e.fileId}:${n.message}`,fileId:e.fileId,...r>=0?{pageIndex:r}:{}}})}catch(t){return[{code:`CONTRACT_TEMPLATE_RENDER_FAILED`,message:`文件 ${e.fileName||e.fileId} 的模板数据无法安全渲染`,fileId:e.fileId,cause:t}]}}function a(e){return!e||!t(e.source)?``:i(e)[0]?.message??``}function o(t){return e.validateTemplateRenderStructure(t)}function s(e){return!!(e&&typeof e==`object`)}function c(e,t,n){return{width:l(e?.width,l(t?.width,n.width)),height:l(e?.height,l(t?.height,n.height))}}function l(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningTemplateRenderPages=r,exports.getContractSigningTemplateDisplayError=a,exports.isContractSigningTemplateFile=n,exports.isContractSigningTemplateSource=t,exports.validateContractSigningTemplateFile=i;
1
+ const e=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`);function t(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function n(e){return t(e?.source)}function r(n){if(!t(n)||!s(n.template))return[];try{let t=n.template,r=Array.isArray(t.pages)?t.pages:[],i=e.normalizeRenderValues(t,n.values),a=o(t);return r.flatMap((n,r)=>{let o=e.buildTemplateRenderPages({...t,pages:[n]},i,{readonly:!0,disabled:!0,mode:`display`})[0];if(!o)return[];let s=c(n?.pageSize,t.pageSize,o);return[{pageIndex:r,pageId:o.id,title:o.title,width:s.width,height:s.height,displayWidth:s.width,displayHeight:s.height,contentHtml:o.contentHtml,errors:a.filter(e=>!e.pageId||e.pageId===o.id).map(e=>e.message)}]})}catch{return[]}}function i(e){if(!t(e.source))return[];if(!s(e.source.template))return[{code:`CONTRACT_TEMPLATE_MISSING`,message:`文件 ${e.fileName||e.fileId} 缺少可渲染的合同模板`,fileId:e.fileId}];try{let t=Array.isArray(e.source.template.pages)?e.source.template.pages:[];return o(e.source.template).map(n=>{let r=n.pageId?t.findIndex(e=>e?.id===n.pageId):-1;return{code:`CONTRACT_${n.code||`TEMPLATE_INVALID`}`,message:`${e.fileName||e.fileId}:${n.message}`,fileId:e.fileId,...r>=0?{pageIndex:r}:{}}})}catch(t){return[{code:`CONTRACT_TEMPLATE_RENDER_FAILED`,message:`文件 ${e.fileName||e.fileId} 的模板数据无法安全渲染`,fileId:e.fileId,cause:t}]}}function a(e){return!e||!t(e.source)?``:i(e)[0]?.message??``}function o(t){return e.validateTemplateRenderStructure(t)}function s(e){return!!(e&&typeof e==`object`)}function c(e,t,n){return{width:l(e?.width,l(t?.width,n.width)),height:l(e?.height,l(t?.height,n.height))}}function l(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningTemplateRenderPages=r,exports.getContractSigningTemplateDisplayError=a,exports.isContractSigningTemplateFile=n,exports.isContractSigningTemplateSource=t,exports.validateContractSigningTemplateFile=i;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`ant-design-vue`),n=require(`@ant-design/icons-vue`);var r={class:`gd-contract-template-designer__workspace-meta`},i={class:`gd-contract-template-designer__workspace-actions`},a={class:`gd-contract-template-designer__workspace-controls`},o={class:`gd-contract-template-designer__zoom`},s={class:`gd-contract-template-designer__workspace-buttons`},c={class:`gd-contract-template-designer__page-decorations-trigger-copy`},l=(0,e.defineComponent)({__name:`ContractTemplateDesignerWorkspaceHeader`,props:{summary:{},draftCacheStatusText:{},draftCacheStatusClass:{},showDraftCacheStatus:{type:Boolean},showClearButton:{type:Boolean},showSubmitDataViewer:{type:Boolean},readonly:{type:Boolean},zoomPercent:{},zoomOutDisabled:{type:Boolean},zoomInDisabled:{type:Boolean},isFullscreen:{type:Boolean},pageDecorationsOpen:{type:Boolean},pageDecorationsStudioId:{},pageDecorationsPresetLabel:{},pageDecorationsEnabledCount:{},pageDecorationsEnabledStates:{}},emits:[`zoomOut`,`zoomIn`,`fitWidth`,`resetZoom`,`toggleFullscreen`,`clear`,`validate`,`preview`,`submitData`,`togglePageDecorations`],setup(l,{expose:u,emit:d}){let f=l,p=d,m=(0,e.ref)(),h=(0,e.computed)(()=>[{key:`header`,label:`页眉`,enabled:f.pageDecorationsEnabledStates.header},{key:`footer`,label:`页脚`,enabled:f.pageDecorationsEnabledStates.footer},{key:`watermark`,label:`水印`,enabled:f.pageDecorationsEnabledStates.watermark}]),g=(0,e.computed)(()=>`页面装饰 · ${f.pageDecorationsPresetLabel} · 启用 ${f.pageDecorationsEnabledCount}/3`),_=(0,e.computed)(()=>`页面装饰,${f.pageDecorationsPresetLabel},已启用 ${f.pageDecorationsEnabledCount}/3;${h.value.map(e=>`${e.label}${e.enabled?`已启用`:`未启用`}`).join(`,`)}`);return u({focusPageDecorations:()=>m.value?.querySelector(`.gd-contract-template-designer__page-decorations-trigger`)?.focus()}),(u,d)=>((0,e.openBlock)(),(0,e.createElementBlock)(`header`,{ref_key:`workspaceHeader`,ref:m,class:`gd-contract-template-designer__workspace-header`},[(0,e.createElementVNode)(`div`,r,[(0,e.createElementVNode)(`strong`,null,(0,e.toDisplayString)(l.summary),1),l.showDraftCacheStatus&&l.draftCacheStatusText?((0,e.openBlock)(),(0,e.createElementBlock)(`small`,{key:0,class:(0,e.normalizeClass)([`gd-contract-template-designer__draft-cache-status`,l.draftCacheStatusClass])},(0,e.toDisplayString)(l.draftCacheStatusText),3)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,i,[(0,e.createElementVNode)(`div`,a,[(0,e.createElementVNode)(`div`,o,[(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`,disabled:l.zoomOutDisabled,"aria-label":`缩小`,onClick:d[0]||=e=>p(`zoomOut`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(l.zoomPercent),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`,disabled:l.zoomInDisabled,"aria-label":`放大`,onClick:d[1]||=e=>p(`zoomIn`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ZoomInOutlined),{"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__icon-button`,"aria-label":`适应宽度`,onClick:d[2]||=e=>p(`fitWidth`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ColumnWidthOutlined),{"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:d[3]||=e=>p(`resetZoom`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ReloadOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:l.isFullscreen?`退出全屏`:`全屏显示`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":l.isFullscreen?`退出全屏`:`全屏显示`,onClick:d[4]||=e=>p(`toggleFullscreen`)},{default:(0,e.withCtx)(()=>[l.isFullscreen?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.FullscreenExitOutlined),{key:0,"aria-hidden":`true`})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.FullscreenOutlined),{key:1,"aria-hidden":`true`}))]),_:1},8,[`aria-label`])]),_:1},8,[`title`])])]),(0,e.createElementVNode)(`div`,s,[l.showClearButton?((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`,danger:``,class:`gd-contract-template-designer__icon-button`,disabled:l.readonly,"aria-label":`清空合同`,onClick:d[5]||=e=>p(`clear`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.DeleteOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:g.value},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:(0,e.normalizeClass)([`gd-contract-template-designer__page-decorations-trigger`,{"is-selected":l.pageDecorationsOpen}]),"aria-pressed":l.pageDecorationsOpen,"aria-expanded":l.pageDecorationsOpen,"aria-controls":l.pageDecorationsStudioId,"aria-label":_.value,onClick:d[6]||=e=>p(`togglePageDecorations`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.BgColorsOutlined),{"aria-hidden":`true`}),(0,e.createElementVNode)(`span`,c,[d[10]||=(0,e.createElementVNode)(`span`,null,`页面装饰`,-1),(0,e.createElementVNode)(`small`,null,(0,e.toDisplayString)(l.pageDecorationsPresetLabel)+` · 启用 `+(0,e.toDisplayString)(l.pageDecorationsEnabledCount)+`/3`,1)])]),_:1},8,[`class`,`aria-pressed`,`aria-expanded`,`aria-controls`,`aria-label`])]),_:1},8,[`title`]),(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:d[7]||=e=>p(`validate`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.AuditOutlined),{"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`,type:`primary`,class:`gd-contract-template-designer__icon-button`,"aria-label":`预览`,onClick:d[8]||=e=>p(`preview`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.EyeOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),l.showSubmitDataViewer?((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__icon-button`,"aria-label":`数据查看`,onClick:d[9]||=e=>p(`submitData`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.DatabaseOutlined),{"aria-hidden":`true`})]),_:1})]),_:1})):(0,e.createCommentVNode)(``,!0)])])],512))}});exports.default=l;
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__workspace-meta`},i={class:`gd-contract-template-designer__workspace-actions`},a={class:`gd-contract-template-designer__workspace-controls`},o={class:`gd-contract-template-designer__zoom`},s={class:`gd-contract-template-designer__workspace-buttons`},c={class:`gd-contract-template-designer__page-decorations-trigger-copy`},l=(0,e.defineComponent)({__name:`ContractTemplateDesignerWorkspaceHeader`,props:{summary:{},draftCacheStatusText:{},draftCacheStatusClass:{},showDraftCacheStatus:{type:Boolean},showClearButton:{type:Boolean},showSubmitDataViewer:{type:Boolean},readonly:{type:Boolean},zoomPercent:{},zoomOutDisabled:{type:Boolean},zoomInDisabled:{type:Boolean},isFullscreen:{type:Boolean},immersive:{type:Boolean},pageDecorationsOpen:{type:Boolean},pageDecorationsStudioId:{},pageDecorationsPresetLabel:{},pageDecorationsEnabledCount:{},pageDecorationsEnabledStates:{},chromeControlsId:{}},emits:[`zoomOut`,`zoomIn`,`fitWidth`,`resetZoom`,`toggleFullscreen`,`toggleImmersive`,`clear`,`validate`,`preview`,`submitData`,`togglePageDecorations`,`toggleChrome`],setup(l,{expose:u,emit:d}){let f=l,p=d,m=(0,e.ref)(),h=(0,e.computed)(()=>[{key:`header`,label:`页眉`,enabled:f.pageDecorationsEnabledStates.header},{key:`footer`,label:`页脚`,enabled:f.pageDecorationsEnabledStates.footer},{key:`watermark`,label:`水印`,enabled:f.pageDecorationsEnabledStates.watermark}]),g=(0,e.computed)(()=>`页面装饰 · ${f.pageDecorationsPresetLabel} · 启用 ${f.pageDecorationsEnabledCount}/3`),_=(0,e.computed)(()=>`页面装饰,${f.pageDecorationsPresetLabel},已启用 ${f.pageDecorationsEnabledCount}/3;${h.value.map(e=>`${e.label}${e.enabled?`已启用`:`未启用`}`).join(`,`)}`);return u({focusPageDecorations:()=>m.value?.querySelector(`.gd-contract-template-designer__page-decorations-trigger`)?.focus(),focusImmersive:()=>m.value?.querySelector(`.gd-contract-template-designer__immersive-trigger`)?.focus(),focusChromeToggle:()=>m.value?.querySelector(`.gd-contract-template-designer__workspace-chrome-toggle`)?.focus()}),(u,d)=>((0,e.openBlock)(),(0,e.createElementBlock)(`header`,{ref_key:`workspaceHeader`,ref:m,class:`gd-contract-template-designer__workspace-header`},[(0,e.createElementVNode)(`div`,r,[(0,e.createElementVNode)(`strong`,null,(0,e.toDisplayString)(l.summary),1),l.showDraftCacheStatus&&l.draftCacheStatusText?((0,e.openBlock)(),(0,e.createElementBlock)(`small`,{key:0,class:(0,e.normalizeClass)([`gd-contract-template-designer__draft-cache-status`,l.draftCacheStatusClass])},(0,e.toDisplayString)(l.draftCacheStatusText),3)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,i,[(0,e.createElementVNode)(`div`,a,[(0,e.createElementVNode)(`div`,o,[(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`,disabled:l.zoomOutDisabled,"aria-label":`缩小`,onClick:d[0]||=e=>p(`zoomOut`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1}),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(l.zoomPercent),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`,disabled:l.zoomInDisabled,"aria-label":`放大`,onClick:d[1]||=e=>p(`zoomIn`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ZoomInOutlined),{"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__icon-button`,"aria-label":`适应宽度`,onClick:d[2]||=e=>p(`fitWidth`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ColumnWidthOutlined),{"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:d[3]||=e=>p(`resetZoom`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.ReloadOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:l.isFullscreen?`退出全屏`:`全屏显示`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:`gd-contract-template-designer__icon-button`,"aria-label":l.isFullscreen?`退出全屏`:`全屏显示`,onClick:d[4]||=e=>p(`toggleFullscreen`)},{default:(0,e.withCtx)(()=>[l.isFullscreen?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.FullscreenExitOutlined),{key:0,"aria-hidden":`true`})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(n.FullscreenOutlined),{key:1,"aria-hidden":`true`}))]),_:1},8,[`aria-label`])]),_:1},8,[`title`]),(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 gd-contract-template-designer__immersive-trigger`,{"is-selected":l.immersive}]),"aria-pressed":l.immersive,"aria-label":`沉浸写作`,onClick:d[5]||=e=>p(`toggleImmersive`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.FormOutlined),{"aria-hidden":`true`})]),_:1},8,[`class`,`aria-pressed`])]),_:1})])]),(0,e.createElementVNode)(`div`,s,[l.showClearButton?((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`,danger:``,class:`gd-contract-template-designer__icon-button`,disabled:l.readonly,"aria-label":`清空合同`,onClick:d[6]||=e=>p(`clear`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.DeleteOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),_:1})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)((0,e.unref)(t.Tooltip),{title:g.value},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(t.Button),{size:`small`,class:(0,e.normalizeClass)([`gd-contract-template-designer__page-decorations-trigger`,{"is-selected":l.pageDecorationsOpen}]),"aria-pressed":l.pageDecorationsOpen,"aria-expanded":l.pageDecorationsOpen,"aria-controls":l.pageDecorationsStudioId,"aria-label":_.value,onClick:d[7]||=e=>p(`togglePageDecorations`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.BgColorsOutlined),{"aria-hidden":`true`}),(0,e.createElementVNode)(`span`,c,[d[12]||=(0,e.createElementVNode)(`span`,null,`页面装饰`,-1),(0,e.createElementVNode)(`small`,null,(0,e.toDisplayString)(l.pageDecorationsPresetLabel)+` · 启用 `+(0,e.toDisplayString)(l.pageDecorationsEnabledCount)+`/3`,1)])]),_:1},8,[`class`,`aria-pressed`,`aria-expanded`,`aria-controls`,`aria-label`])]),_:1},8,[`title`]),(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:d[8]||=e=>p(`validate`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.AuditOutlined),{"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`,type:`primary`,class:`gd-contract-template-designer__icon-button`,"aria-label":`预览`,onClick:d[9]||=e=>p(`preview`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.EyeOutlined),{"aria-hidden":`true`})]),_:1})]),_:1}),l.showSubmitDataViewer?((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__icon-button`,"aria-label":`数据查看`,onClick:d[10]||=e=>p(`submitData`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.DatabaseOutlined),{"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__icon-button gd-contract-template-designer__workspace-chrome-toggle`,"aria-label":`收起工具区`,"aria-expanded":!0,"aria-controls":l.chromeControlsId,onClick:d[11]||=e=>p(`toggleChrome`)},{default:(0,e.withCtx)(()=>[(0,e.createVNode)((0,e.unref)(n.UpOutlined),{"aria-hidden":`true`})]),_:1},8,[`aria-controls`])]),_:1})])],512))}});exports.default=l;
@@ -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;
@@ -1,2 +1,2 @@
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`,re=8,h=(0,u.defineComponent)({name:`ProContractTemplateDesignerPage`,__name:`DesignerPage`,props:{page:{},pageIndex:{},pageSize:{},pageDecorations:{default:void 0},totalPages:{default:1},variables:{},selectedVariableKey:{default:``},active:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},zoom:{default:1},signingPlacements:{default:()=>[]},selectedSigningPlacementId:{default:``},processImageFile:{type:Function,default:void 0}},emits:[`page-update`,`variable-drop`,`signing-placement-drop`,`signing-placement-select`,`signing-placement-move`,`signing-placement-remove`,`variable-select`,`variable-move-blocked`,`editor-focus`,`editor-state-change`,`editor-context-menu`],setup(h,{expose:ie,emit:ae}){let g=h,_=ae,v=(0,u.computed)(()=>g.readonly||g.disabled),y=(0,u.ref)(),b=o.createEditorExtensions(`请输入合同正文,或从 WPS / Word 粘贴合同内容`,{processImageFile:g.processImageFile,getZoom:()=>Math.max(.1,g.zoom||1)}),x=(0,d.useEditor)({content:g.page.contentHtml,editable:!v.value,extensions:b,editorProps:{attributes:{class:`gd-contract-template-designer__editor-prose`},handleClick:(e,t,n)=>{let r=(n.target instanceof HTMLElement?n.target.closest(`[data-template-variable]`):void 0)?.dataset.key;if(!r)return!1;let i=g.variables.find(e=>e.key===r);return i&&_(`variable-select`,i.key),!1},handleDOMEvents:{contextmenu:(e,t)=>{if(v.value)return!1;let n=P(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 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||T(t.clientX,t.clientY,t.target))?(F({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(m,g.page.id),t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`),y.value?.classList.add(`is-variable-dragging`),!1):!1,dragend:()=>(y.value?.classList.remove(`is-variable-dragging`),!1),drop:(e,t)=>{if(v.value)return t.preventDefault(),t.stopPropagation(),!0;let n=t.dataTransfer?.getData(m);return!n||n===g.page.id?!1:(t.preventDefault(),_(`variable-move-blocked`,g.page.id),!0)}},handleKeyDown:(e,t)=>{if(v.value||!C(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 f.CellSelection;if(s.resolveEditorContextMenuKind({isCellSelection:a,selectionEmpty:r.empty,inTable:n.isActive(`table`)})===`table`){if(!a){let e=ue();typeof e==`number`&&n.view.dispatch(n.state.tr.setSelection(f.CellSelection.create(n.state.doc,e)))}let e=n.view.coordsAtPos(n.state.selection.from);return F({pageId:g.page.id,clientX:e.left,clientY:e.bottom}),!0}let o=n.view.coordsAtPos(n.state.selection.from);return A({pageId:g.page.id,clientX:o.left,clientY:o.bottom}),!0}},onUpdate:({editor:e})=>{_(`page-update`,{...g.page,contentHtml:e.getHTML(),contentJson:e.getJSON()}),H()},onFocus:()=>{_(`editor-focus`,g.page.id),H()},onBlur:H,onSelectionUpdate:H,onCreate:H});function oe(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 se(){if(!x.value)return``;let{from:e,to:t}=x.value.state.selection;return x.value.state.doc.textBetween(e,t,`
2
- `)}function ce(){let e=x.value,t=e?.state.selection;if(!(!e||!t||t.empty))try{let n=e.view.coordsAtPos(t.from),r=e.view.coordsAtPos(t.to,-1);if(Math.abs(r.top-n.top)>re)return;let i=Math.abs(r.left-n.left)/W.value;return Number.isFinite(i)&&i>0?i:void 0}catch{return}}function S(){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 C(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 le(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 ue(){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 f.CellSelection&&i.closest(`td.selectedCell,th.selectedCell`))return!0;let a=le(e,t);return typeof a==`number`?(r.view.dispatch(r.state.tr.setSelection(f.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 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 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,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 A(e){let t=x.value?.state.selection,n=!!(t&&!t.empty);_(`editor-context-menu`,{type:`text`,...e,hasSelection:n,selectionWidth:n?ce():void 0,leadingText:S()})}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:a.normalizeContractImageDimension(e.attrs.width),height:a.normalizeContractImageDimension(e.attrs.height)}}function N(){let e=x.value?.state.selection;if(e instanceof p.NodeSelection)return M(e.node,e.from)}function P(e,t){let n=t instanceof HTMLElement?t.closest(`[data-template-variable], img[src]`):null;if(n)try{let t=e.posAtDOM(n,0),r=e.state.doc.nodeAt(t);return!r||r.type.name!==`templateVariable`&&r.type.name!==`image`?void 0:(r.type.name===`templateVariable`&&typeof r.attrs.key==`string`&&_(`variable-select`,r.attrs.key),(!(e.state.selection instanceof p.NodeSelection)||e.state.selection.from!==t)&&e.dispatch(e.state.tr.setSelection(p.NodeSelection.create(e.state.doc,t))),M(r,t))}catch{return}}function F(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 I(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function L(){let e=x.value;if(!e)return[];let{doc:t,selection:n}=e.state,r=[],i=e=>{e.type.name===`paragraph`?r.push(`paragraph`):e.type.name===`heading`&&I(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 R(){let e=L();return e.length===1&&e[0]!==`paragraph`?e[0]:void 0}function z(){return L().length>1}function B(){return[`center`,`right`].find(e=>x.value?.isActive(`heading`,{textAlign:e})||x.value?.isActive(`paragraph`,{textAlign:e}))??`left`}function V(){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:R(),hasMixedBlockFormats:z(),textAlign:B(),fontFamily:typeof n.fontFamily==`string`?n.fontFamily:void 0,fontSize:oe(n.fontSize),textColor:typeof n.color==`string`?n.color:void 0,selectionText:se(),selectedContentImage:N()}}function H(){_(`editor-state-change`,g.page.id,V())}(0,u.watch)(v,e=>{x.value?.setEditable(!e),H()}),(0,u.watch)(()=>g.page.contentHtml,e=>{!x.value||e===x.value.getHTML()||(x.value.commands.setContent(e||`<p></p>`,{emitUpdate:!1}),H())});let U=(0,u.computed)(()=>{let e=n.normalizePageDecorations(g.pageDecorations),t=g.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:`${g.pageSize.width}px`,height:`${g.pageSize.height}px`,paddingTop:`${r}px`,paddingBottom:`${i}px`,"--gd-contract-page-content-height":`${Math.max(120,g.pageSize.height-r-i)}px`}}),W=(0,u.computed)(()=>Math.max(.1,g.zoom||1)),G=(0,u.computed)(()=>({width:`${Math.ceil((g.pageSize.width+10)*W.value)}px`,height:`${Math.ceil((g.pageSize.height+40)*W.value)}px`})),de=(0,u.computed)(()=>({"--gd-contract-page-zoom":String(W.value)})),fe=(0,u.computed)(()=>r.resolvePageSize(g.pageSize));function K(e,t){let n=y.value?.getBoundingClientRect();return n?{x:Math.min(g.pageSize.width,Math.max(0,(e-n.left)/W.value)),y:Math.min(g.pageSize.height,Math.max(0,(t-n.top)/W.value))}:{x:g.pageSize.width/2,y:g.pageSize.height/2}}function pe(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=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 me(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=K(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(m);i&&i!==g.page.id&&(t.preventDefault(),t.stopPropagation(),_(`variable-move-blocked`,g.page.id))}function he(e,t){let n=x.value;if(!n)return;let r=t?n.view.posAtCoords(t)?.pos:void 0;return i.insertTemplateVariableNode(n,e,r),$(),q()}function ge(e,t){let n=x.value;if(n)return o.runContractTemplateEditorCommand(n,{type:`insert-content-image`,image:e,position:t}),q()}function _e(e){let t=x.value,n=t?.state.selection;if(!t||!(n instanceof p.NodeSelection)||n.node.type.name!==`image`)return;let r={...n.node.attrs},i=!1;if([`width`,`height`].forEach(t=>{if(!Object.prototype.hasOwnProperty.call(e,t))return;let n=e[t]===void 0?null:a.normalizeContractImageDimension(e[t])??null;r[t]!==n&&(r[t]=n,i=!0)}),!i)return;let o=t.state.tr.setNodeMarkup(n.from,void 0,r);return o.setSelection(p.NodeSelection.create(o.doc,n.from)),t.view.dispatch(o),q()}function ve(){let e=x.value?.state.selection;return e?{from:e.from,to:e.to}:void 0}function q(){return{...g.page,pageSize:fe.value,contentHtml:x.value?.getHTML()??g.page.contentHtml,contentJson:x.value?.getJSON()??g.page.contentJson}}function J(e){return{type:`doc`,content:e.length?e:[{type:`paragraph`}]}}function ye(e){return e?.length?e.length===1&&e[0].type===`paragraph`&&!e[0].content?.length:!0}function be(e){return(0,te.generateHTML)(J(e),b)}function xe(){if(g.pageDecorations){let e=n.normalizePageDecorations(g.pageDecorations),t=g.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,g.pageSize.height-r-i)}let e=y.value;if(!e)return g.pageSize.height-108;let t=window.getComputedStyle(e),r=Number.parseFloat(t.paddingTop)||0,i=Number.parseFloat(t.paddingBottom)||0;return Math.max(120,g.pageSize.height-r-i)}function Se(){let e=y.value?.querySelector(`.gd-contract-template-designer__editor-prose`);if(!e)return[];let t=e.getBoundingClientRect(),n=W.value;return Array.from(e.children).map(e=>{let r=e.getBoundingClientRect();return{top:(r.top-t.top)/n,height:r.height/n}})}function Y(){if(!x.value)return;let e=x.value.getJSON();return r.splitPageContentByMeasurements(e.content,Se(),xe())}function Ce(){return!!Y()}function we(){if(!x.value)return;let e=Y();if(e)return x.value.commands.setContent(J(e.currentContent),{emitUpdate:!1}),{page:q(),overflowContent:e.overflowContent,overflowHtml:be(e.overflowContent)}}function Te(e){if(!x.value||!e.length)return;let t=x.value.getJSON().content,n=[...e,...ye(t)?[]:t??[]];return x.value.commands.setContent(J(n),{emitUpdate:!1}),q()}function X(e,t){let n=[];return e.descendants((e,r)=>{e.type.name===`templateVariable`&&e.attrs.key===t&&n.push({node:e,pos:r})}),n}function Ee(e,t=e.key){if(!x.value)return;let n=i.buildTemplateVariableAttrs(e),r=!1;return x.value.commands.command(({tr:e,state:i,dispatch:a})=>(X(i.doc,t).forEach(({node:t,pos:i})=>{e.setNodeMarkup(i,void 0,{...t.attrs,...n}),r=!0}),r&&a?.(e),r)),$(),r?q():void 0}function De(e){if(!x.value)return;let t=0;return x.value.commands.command(({tr:n,state:r,dispatch:i})=>{let a=X(r.doc,e).map(({node:e,pos:t})=>({from:t,to:t+e.nodeSize})).sort((e,t)=>t.from-e.from);return a.forEach(e=>n.delete(e.from,e.to)),t=a.length,t&&i?.(n),t>0}),t?q():void 0}function Z(){y.value?.querySelectorAll(`.gd-contract-template-variable.is-active`).forEach(e=>e.classList.remove(`is-active`))}function Q(e){if(e)return Array.from(y.value?.querySelectorAll(`[data-template-variable]`)??[]).find(t=>t.dataset.key===e)}function Oe(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 ke(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 Ae(e){let n=t.CONTRACT_TEXT_STYLE_PRESETS.find(t=>t.key===e),i=x.value;if(!n||!i)return;let a=i.chain().focus().clearNodes();n.headingLevel?a.setHeading({level:n.headingLevel}):a.setParagraph(),a.unsetAllMarks().unsetTextAlign().unsetFontSize().unsetFontFamily().unsetColor().setTextAlign(n.textAlign).setFontSize(`${n.fontSize}px`).setFontFamily(n.fontFamily||`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)([()=>g.selectedVariableKey,()=>g.variables],()=>{(0,u.nextTick)($)},{deep:!0,flush:`post`});function je(e){e.type===`apply-block-style`?x.value&&c.applyContractTemplateBlockStyle(x.value,e.format):e.type===`apply-text-style-preset`?Ae(e.preset):o.runContractTemplateEditorCommand(x.value,e),H()}function Me(){x.value?.commands.focus()}function Ne(){return x.value?.getJSON()}function Pe(){return x.value?.getHTML()??g.page.contentHtml}function Fe(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 Ie(){y.value?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}return(0,u.onBeforeUnmount)(()=>{x.value?.destroy()}),ie({focus:Me,getHTML:Pe,getJSON:Ne,getEditorState:V,getTableCommandCapabilities:E,getAffectedVariableCount:k,getVisibleSigningPlacementPosition:pe,insertVariable:he,insertContentImage:ge,updateSelectedContentImage:_e,getSelectionRange:ve,hasOverflowContent:Ce,updateVariable:Ee,removeVariable:De,splitOverflowContent:we,prependContent:Te,runCommand:je,scrollIntoField:Fe,scrollIntoVariable:Oe,scrollIntoSigningPlacement:ke,scrollIntoPage:Ie}),(e,t)=>((0,u.openBlock)(),(0,u.createElementBlock)(`section`,{class:`gd-contract-template-designer__page-shell`,style:(0,u.normalizeStyle)(G.value)},[(0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`gd-contract-template-designer__page-zoom`,{"is-active":h.active}]),style:(0,u.normalizeStyle)(de.value)},[(0,u.createElementVNode)(`header`,ne,[(0,u.createElementVNode)(`span`,null,(0,u.toDisplayString)(h.page.title||`第 ${h.pageIndex+1} 页`),1),(0,u.createElementVNode)(`span`,null,`第 `+(0,u.toDisplayString)(h.pageIndex+1)+` 页 · `+(0,u.toDisplayString)(h.pageSize.label||`A4`)+` · `+(0,u.toDisplayString)(h.pageSize.width)+` × `+(0,u.toDisplayString)(h.pageSize.height),1)]),(0,u.createElementVNode)(`div`,{ref_key:`pageElement`,ref:y,class:`gd-contract-template-designer__page`,style:(0,u.normalizeStyle)(U.value),onDragover:t[3]||=(0,u.withModifiers)(()=>{},[`prevent`]),onDrop:me,onClick:t[4]||=e=>_(`editor-focus`,h.page.id)},[(0,u.createVNode)(ee.default,{decorations:h.pageDecorations,"page-number":h.pageIndex+1,"total-pages":h.totalPages,variables:h.variables},null,8,[`decorations`,`page-number`,`total-pages`,`variables`]),(0,u.unref)(x)?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(d.EditorContent),{key:0,class:`gd-contract-template-page__content`,editor:(0,u.unref)(x)},null,8,[`editor`])):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(l.default,{"page-size":h.pageSize,placements:h.signingPlacements,"selected-id":h.selectedSigningPlacementId,zoom:W.value,readonly:h.readonly,disabled:h.disabled,onSelect:t[0]||=e=>_(`signing-placement-select`,e),onMove:t[1]||=e=>_(`signing-placement-move`,e),onRemove:t[2]||=e=>_(`signing-placement-remove`,e)},null,8,[`page-size`,`placements`,`selected-id`,`zoom`,`readonly`,`disabled`])],36)],6)],4))}});exports.default=h;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./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(`./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(`./ContractTemplateImageContextMenu.cjs`),oe=require(`./ContractTemplatePreviewModal.cjs`),se=require(`./ContractTemplateSubmitDataModal.cjs`),ce=require(`./composables/use-template-draft-cache.cjs`),le=require(`./composables/use-auto-pagination.cjs`),ue=require(`./composables/use-designer-files.cjs`),l=require(`./composables/use-template-files.cjs`),de=require(`./composables/use-draft-cache-session.cjs`),u=require(`./composables/use-signing-placement-editor.cjs`),fe=require(`./utils/template-tool-icons.cjs`),pe=require(`./ContractTemplateFileBar.cjs`),me=require(`./ContractTemplateDesignerSidebar.cjs`),he=require(`./ContractTemplateDesignerInspector.cjs`),ge=require(`./ContractTemplatePageDecorationsStudio.cjs`),d=require(`./utils/serialize-fingerprint.cjs`),_e=require(`./utils/editor-state.cjs`),ve=require(`./utils/context-menu-viewport.cjs`);let f=require(`vue`),ye=require(`ant-design-vue`),be=require(`@vueuse/core`);var xe={key:0,class:`gd-contract-template-designer__validation`},Se={key:0,class:`gd-contract-template-designer__validation-list`},Ce=[`onClick`],we={class:`gd-contract-template-designer__sr-status`,"aria-live":`polite`},Te=.5,Ee=1.5,De=.1,Oe=120,ke=128,Ae=108,je=48,Me=24,Ne=10,Pe=48,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:ce.DEFAULT_DRAFT_CACHE_KEY},draftCacheInterval:{default:ce.DEFAULT_DRAFT_CACHE_INTERVAL},draftCacheMaxBytes:{default:ce.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:Fe,emit:Ie}){let m=p,h=Ie,Le=(0,f.computed)(()=>({height:typeof m.height==`number`?`${m.height}px`:m.height})),Re=(0,f.ref)(),ze=(0,f.ref)(),Be=(0,f.ref)(),Ve=(0,f.ref)(),He=(0,f.ref)(),Ue=`gd-contract-template-page-decorations-studio-${(0,f.useId)()}`,We=(0,f.ref)();function Ge(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 Ke(e,t){return Object.fromEntries(e.map((e,n)=>[e.id,Ge(t?.[n]?.template??e.template)]))}let qe=``,Je=``,Ye=(0,f.ref)(!1),g=(0,f.computed)(()=>Ye.value||Array.isArray(m.files)),Xe=l.normalizeContractTemplateFiles(m.files,m.modelValue,m.pageSize),Ze=l.constrainContractTemplateFiles(Xe,m.pageSizeOptions),Qe=g.value?Ze.files:Xe,$e=l.resolveContractTemplateActiveFileId(Qe,m.activeFileId),_=(0,f.ref)(Qe),v=(0,f.ref)($e),et=Qe.find(e=>e.id===$e)??Qe[0],y=(0,f.ref)(Ke(Qe,Array.isArray(m.files)?m.files:m.modelValue?[{template:m.modelValue}]:void 0)),b=(0,f.ref)(y.value[$e]??Ge(et?.template)),tt=i.normalizeTemplateValue(et?.template??m.modelValue,m.pageSize),x=i.constrainTemplatePageSizes(tt,m.pageSizeOptions),S=(0,f.ref)(x.value);if(g.value){if(_.value=l.replaceContractTemplateFile(_.value,v.value,x.value),d.serializeFingerprint(_.value)!==d.serializeFingerprint(Xe)){let e=l.cloneContractTemplateFiles(_.value);qe=d.serializeFingerprint(e),h(`update:files`,e),h(`files-change`,l.cloneContractTemplateFiles(e))}}else m.modelValue&&d.serializeFingerprint(x.value)!==d.serializeFingerprint(tt)&&(Je=d.serializeFingerprint(x.value),h(`update:modelValue`,i.cloneTemplateValue(x.value)),h(`change`,i.cloneTemplateValue(x.value)),sr(x.resizedSigningPlacementIds,x.value));let C=(0,f.ref)(``),w=(0,f.ref)(``),T=(0,f.ref)(S.value.pages[0]?.id??``),E=(0,f.ref)(!1),D=(0,f.ref)([]),O=new Map,nt=(0,f.ref)(!1),rt=(0,f.ref)(``),it=(0,f.ref)(!1),k=(0,f.ref)(),at=(0,f.ref)(),ot=(0,f.ref)(``),st=(0,f.ref)(!1),ct=(0,f.ref)(``),A=(0,f.ref)(1),lt=(0,f.ref)(!1),ut=(0,f.ref)(!1),dt=(0,f.ref)(!1),j=(0,f.ref)(!1),ft=(0,f.ref)(`header`),pt=(0,f.ref)(!1),mt=(0,f.ref)({}),ht=(0,f.ref)(``),M=(0,f.ref)(!1),N=(0,f.ref)(!1),gt=(0,f.ref)(!1),_t=(0,f.ref)(!1),vt=(0,f.ref)(``),yt=(0,f.ref)(),bt=(0,f.ref)(),xt=(0,f.ref)(``),St=(0,f.ref)(!1),P=(0,f.ref)(),Ct=(0,f.ref)(),wt=(0,f.ref)(!1),Tt=(0,f.ref)(``),F=(0,f.ref)(),Et=(0,f.ref)(),I=(0,f.ref)(),Dt=(0,f.ref)(),Ot=(0,f.ref)(),kt=(0,f.ref)(),L=(0,f.ref)(``),R=(0,f.ref)(ce.createDraftCacheStatus(`idle`,`暂无本地草稿`)),At=(0,f.ref)({rows:3,cols:3,withHeaderRow:!0}),jt=new WeakSet,Mt=[`.gd-contract-template-designer__page-decorations-select-popup`,`.gd-contract-template-designer__page-decorations-dropdown-popup`].join(`,`),Nt,Pt=!1,Ft=!1,It,z=(0,f.computed)(()=>m.readonly||m.disabled),Lt=(0,f.computed)(()=>!!m.enableDraftCache&&!z.value),Rt=(0,f.computed)(()=>_.value.find(e=>e.id===v.value)??_.value[0]),zt=(0,f.computed)(()=>m.draftCacheKey),B=(0,f.computed)(()=>S.value.variables.find(e=>e.key===C.value)),V=(0,f.computed)(()=>S.value.signingPlacements??[]),Bt=(0,f.computed)(()=>k.value?i.buildTemplatePreviewPages(k.value):[]),Vt=(0,f.computed)(()=>(at.value??[]).map(e=>({file:e,pages:i.buildTemplatePreviewPages(e.template)}))),Ht=(0,f.computed)(()=>Vt.value.find(e=>e.file.id===ot.value)??Vt.value[0]),Ut=(0,f.computed)(()=>V.value.find(e=>e.id===w.value)),Wt=(0,f.computed)(()=>V.value.map(e=>{let n=S.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} 页`}})),Gt=(0,f.computed)(()=>{let e=Ut.value?.pageId;return Z(S.value.pages.find(t=>t.id===e))}),H=(0,f.computed)(()=>S.value.pages.find(e=>e.id===T.value)??S.value.pages[0]),Kt=(0,f.computed)(()=>i.resolvePageSize(H.value?.pageSize,S.value.pageSize)),qt=(0,f.computed)(()=>E.value&&D.value.length===0),Jt=(0,f.computed)(()=>E.value?qt.value?`校验通过,正文变量与变量配置一致`:`发现 ${D.value.length} 个校验问题`:``),Yt=(0,f.computed)(()=>{let e=H.value?.title||`合同正文`;return`${g.value&&Rt.value?`${Rt.value.name} · `:``}${e} · ${Kt.value.label} · 共 ${S.value.pages.length} 页`}),Xt=(0,f.computed)(()=>({none:`无装饰`,"page-number":`标准页码`,"internal-review":`内部审阅`,draft:`草稿`,custom:`自定义`})[r.resolvePageDecorationPreset(S.value.pageDecorations)]),Zt=(0,f.computed)(()=>{let e=r.normalizePageDecorations(S.value.pageDecorations);return{header:e.header.enabled,footer:e.footer.enabled,watermark:e.watermark.enabled}}),Qt=(0,f.computed)(()=>Object.values(Zt.value).filter(Boolean).length),$t=(0,f.computed)(()=>{switch(R.value.type){case`saved`:return`草稿已缓存 ${ce.formatDraftCacheSavedAt(R.value.savedAt)}`;case`restored`:return`已恢复本地草稿`;case`too-large`:return`草稿过大,未缓存`;case`unavailable`:case`read-failed`:case`write-failed`:return`草稿缓存失败`;case`cleared`:return`草稿缓存已清理`;default:return``}}),en=(0,f.computed)(()=>({"is-success":R.value.type===`saved`||R.value.type===`restored`,"is-warning":R.value.type===`too-large`,"is-error":R.value.type===`unavailable`||R.value.type===`read-failed`||R.value.type===`write-failed`})),tn=(0,f.computed)(()=>`${Math.round(A.value*100)}%`),nn=(0,f.computed)(()=>n.resolveFontFamilyOptions(m.fontFamilies,m.fontFamilyMode)),rn=(0,f.computed)(()=>nn.value.map(e=>({label:e.label,value:e.value}))),an=n.DEFAULT_TEXT_ALIGN_OPTIONS,on=[...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`}],ln=(0,f.computed)(()=>i.normalizePageSizeOptions(m.pageSizeOptions)),un=(0,f.computed)(()=>ln.value.map(e=>({label:`${e.label} · ${e.width} × ${e.height}`,value:i.getPageSizeKey(e)}))),dn=(0,f.computed)(()=>i.getPageSizeKey(Kt.value)),fn=(0,f.computed)(()=>t.resolveSigningPlacementToolItems({showSigningPlacementTools:m.showSigningPlacementTools})),pn=(0,f.computed)(()=>m.variableTypes.filter(t=>e.isContractTemplateFieldType(t?.type))),mn=(0,f.computed)(()=>pn.value.map(e=>({...e,icon:fe.resolveFieldTypeIcon(e.type)}))),U=(0,f.computed)(()=>i.normalizeContractTemplateMaxPages(m.maxPages)),hn=(0,f.computed)(()=>S.value.pages.length>=U.value),gn=(0,f.computed)(()=>{let e=i.collectTemplateValueVariableKeys(S.value);return Array.from(r.collectPageDecorationVariableKeys(S.value.pageDecorations)).filter(t=>!e.has(t))}),{scheduleAutoPaginate:W}=le.useAutoPagination({templateValue:S,readonlyState:z,isAutoPaginating:nt,pendingPaginationPageId:rt,activePageId:T,normalizedMaxPages:U,pageRefs:O,syncPageEditors:G,commitBodyChange:ir,getPageSize:Z,notifyPageLimit:pr}),{insertSigningPlacement:_n,handleSigningPlacementDrop:vn,insertSigningPlacementTool:yn,handleSigningPlacementDragStart:bn,updateSigningPlacement:xn,patchSelectedSigningPlacement:Sn,duplicateSigningPlacement:Cn,removeSigningPlacement:wn}=u.useSigningPlacementEditor({templateValue:S,signingPlacements:V,selectedSigningPlacement:Ut,selectedSigningPlacementId:w,selectedPage:H,activePageId:T,readonly:()=>m.readonly,disabled:()=>m.disabled,showSigningPlacementTools:()=>!!m.showSigningPlacementTools,getPageSize:Z,getVisiblePosition:(e,t)=>O.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:Tn,loadDraftCache:En,clearDraftCache:Dn,restoreDraftCacheIfNeeded:On,stopDraftCacheTimer:kn,restartDraftCacheTimer:An,resetDraftFingerprint:jn}=de.useDraftCacheSession({draftCacheWritable:Lt,multipleFilesMode:g,filesValue:_,activeFileIdValue:v,templateValue:S,draftCacheKey:zt,draftCacheInterval:()=>m.draftCacheInterval,draftCacheMaxBytes:()=>m.draftCacheMaxBytes,pageSize:()=>m.pageSize,pageSizeOptions:()=>m.pageSizeOptions,syncActiveFileSnapshot:K,syncPageEditors:G,setActiveFileId:J,emitFilesChange:q,commit:Y,setSigningPlacementInputErrorsByFile:e=>{y.value=e},buildSigningPlacementInputErrorsByFile:Ke,updateDraftCacheStatus:$n,scheduleAutoPaginate:W,activePageId:T,selectedVariableKey:C}),Mn=(0,f.computed)(()=>{let e=Tt.value.trim().toLowerCase(),t=S.value.variables;return e?t.filter(t=>t.label.toLowerCase().includes(e)||t.key.toLowerCase().includes(e)):t}),Nn=(0,f.computed)(()=>Math.max(je,Kt.value.width-ke)),Pn=(0,f.computed)(()=>Math.max(Me,Kt.value.height-Ae)),Fn=(0,f.computed)(()=>mt.value[T.value]??Un()),In=(0,f.computed)(()=>Fn.value.hasMixedBlockFormats?void 0:Fn.value.currentHeadingLevel??`paragraph`),Ln=(0,f.computed)(()=>Fn.value.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),Rn=(0,f.computed)(()=>Fn.value.fontSize??i.DEFAULT_FIELD_STYLE.fontSize??14),zn=(0,f.computed)(()=>Fn.value.textColor||i.DEFAULT_FIELD_STYLE.color||`#1f2937`),Bn=(0,f.computed)(()=>B.value?.style?.fontFamily||i.DEFAULT_FIELD_STYLE.fontFamily||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`),Vn=(0,f.computed)(()=>{let e=n.DEFAULT_FONT_SIZE_PRESETS.map(e=>({label:`${e}px`,value:e})),t=qn(Rn.value),r=qn(ht.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(S.value),o=d.serializeFingerprint(r),s=o===Je;s&&(Je=``),(a||!s)&&(b.value=Ge(e),y.value={...y.value,[v.value]:b.value},S.value=r,_.value=l.replaceContractTemplateFile(_.value,v.value,r),T.value=r.pages[0]?.id??``,C.value=``,w.value=``,W(T.value)),d.serializeFingerprint(r)!==d.serializeFingerprint(t)&&(Je=o,h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r)),sr(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=Ke(n,e)),a&&(qe=``);let o=l.resolveContractTemplateActiveFileId(n,m.activeFileId||v.value);if(r===i?o!==v.value&&J(o,{syncCurrent:!1,shouldEmit:!1}):(_.value=n,J(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||J(e,{syncCurrent:!0,shouldEmit:!1})});function Hn(e,t){let n=d.serializeFingerprint(_.value);K(!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(S.value)&&(S.value=i.cloneTemplateValue(c.template),b.value=[...y.value[v.value]??[]]),s&&(E.value=!1,D.value=[],q(a,``));let ee=o.get(v.value);return ee?.length&&c&&sr(ee,c.template),s}(0,f.watch)([()=>m.pageSize,()=>m.pageSizeOptions],([e,t])=>{if(g.value){Hn(e,t),W(T.value);return}let n=i.normalizeTemplateValue(S.value,e),r=i.constrainTemplatePageSizes(n,t);d.serializeFingerprint(r.value)!==d.serializeFingerprint(S.value)&&Y(r.value),W(T.value)},{deep:!0}),(0,f.watch)(U,()=>{W(S.value.pages[0]?.id)}),(0,f.watch)(z,e=>{e&&($(),M.value=!1,N.value=!1)}),(0,f.watch)(V,e=>{w.value&&!e.some(e=>e.id===w.value)&&(w.value=``,h(`signing-placement-select`,void 0))},{deep:!0}),(0,f.watch)(()=>[m.enableDraftCache,zt.value,m.draftCacheInterval,z.value],()=>{jn(),An()}),(0,f.watch)(lt,e=>{if(!(typeof document>`u`)){if(e){Nt=document.body.style.overflow,document.body.style.overflow=`hidden`;return}document.body.style.overflow=Nt??``,Nt=void 0}}),(0,f.onMounted)(()=>{On(),An(),W(T.value),window.addEventListener(`pointerdown`,va,!0),window.addEventListener(`keydown`,xa,!0),window.addEventListener(`keydown`,Sa),window.addEventListener(`resize`,$),window.addEventListener(`scroll`,ya,!0)}),(0,f.onBeforeUnmount)(()=>{Yn(),Pt=!0,lt.value&&typeof document<`u`&&(document.body.style.overflow=Nt??``),window.removeEventListener(`pointerdown`,va,!0),window.removeEventListener(`keydown`,xa,!0),window.removeEventListener(`keydown`,Sa),window.removeEventListener(`resize`,$),window.removeEventListener(`scroll`,ya,!0),kn()});function Un(){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 Wn(e){return e===`left`||e===`center`||e===`right`}function Gn(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=6}function Kn(e,t=Rn.value){let n=Number(e);return Number.isFinite(n)?Math.min(Pe,Math.max(Ne,Math.round(n))):t}function qn(e){let t=String(e||``).trim().match(/(\d+(\.\d+)?)/);if(!t)return;let n=Number(t[1]);if(Number.isFinite(n))return Math.min(Pe,Math.max(Ne,Math.round(n)))}function G(e=S.value){return{...e,pages:e.pages.map(e=>{let t=O.get(e.id);return{...e,contentHtml:t?.getHTML()??e.contentHtml,contentJson:t?.getJSON()??e.contentJson}})}}function Jn(){Ft=!1,It&&=(clearTimeout(It),void 0)}function Yn(){let e=Ft;Jn(),e&&Qn()}function Xn(){Ft=!0,It&&clearTimeout(It),It=setTimeout(()=>{It=void 0,!(!Ft||Pt)&&(Ft=!1,Qn())},Oe)}function Zn(e){let t=S.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,S.value={...S.value,pages:i}}function Qn(){let e=G(),t=i.syncTemplateVariablesWithPages(e);C.value&&!t.variables.some(e=>e.key===C.value)&&(C.value=``),Y(t)}function K(e=!1){Yn();let t=i.cloneTemplateValue(G());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&&q(a),t}function q(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 J(e,t={}){let{syncCurrent:n,shouldEmit:r,forceRefresh:a,persistCurrentErrors:o}=ue.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?K(!0):Jn(),!c&&!a)return;let ee=_.value.find(e=>e.id===s);ee&&(v.value=s,S.value=i.cloneTemplateValue(ee.template),b.value=[...y.value[s]??[]],C.value=``,w.value=``,T.value=S.value.pages[0]?.id??``,mt.value={},O.clear(),rt.value=``,E.value=!1,D.value=[],it.value=!1,k.value=void 0,at.value=void 0,jn(),r&&c&&h(`update:activeFileId`,s),n&&c&&Lt.value&&Tn(),(0,f.nextTick)(()=>{W(T.value)}))}function Y(e){Jn();let t=i.normalizeTemplateValue(e,m.pageSize),n=i.constrainTemplatePageSizes(t,m.pageSizeOptions),r=n.value;return S.value=r,E.value=!1,D.value=[],g.value?q(l.replaceContractTemplateFile(_.value,v.value,r)):(_.value=l.replaceContractTemplateFile(_.value,v.value,r),Je=d.serializeFingerprint(r),h(`update:modelValue`,i.cloneTemplateValue(r)),h(`change`,i.cloneTemplateValue(r))),sr(n.resizedSigningPlacementIds,r),r}function $n(e,t=e.type!==`unchanged`){R.value=e,t&&h(`draft-cache-change`,{...e})}function er(){return{...R.value}}function tr(e,t){t?O.set(e,t):O.delete(e)}function X(e,t=H.value?.id??T.value){z.value||O.get(t)?.runCommand(e)}function nr(e){X(e),$()}function rr(e){let t=P.value?.pageId;t&&(O.get(t)?.focus(),L.value=typeof document<`u`&&document.execCommand(e)?`${e===`copy`?`已复制`:e===`cut`?`已剪切`:`已粘贴`}`:`浏览器未授权剪贴板操作,请使用系统快捷键。`,$())}function ir(e){let t=Y(i.syncTemplateVariablesWithPages(e));return C.value&&!t.variables.some(e=>e.key===C.value)&&(C.value=``),t}function ar(e){Zn(e),Xn(),W(e.id)}function Z(e){return i.resolvePageSize(e?.pageSize,S.value.pageSize)}function or(e){return V.value.filter(t=>t.pageId===e)}function sr(e,t=S.value){let n=new Set(e);n.size&&(lr(n),(t.signingPlacements??[]).filter(e=>n.has(e.id)).forEach(e=>h(`signing-placement-change`,u.cloneSigningPlacement(e))))}function Q(e){let t=e?V.value.find(t=>t.id===e):void 0;w.value=t?.id??``,t&&(C.value=``,T.value=t.pageId),h(`signing-placement-select`,t?u.cloneSigningPlacement(t):void 0)}function cr(e){Q(e.id)}function lr(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 ur(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 lr(t),Y({...S.value,signingPlacements:e})}function fr(e){if(z.value||!H.value)return;let n=ln.value.find(t=>i.getPageSizeKey(t)===e);if(!n)return;let r=H.value.id,a=Z(H.value),o=i.resolvePageSize(n,S.value.pageSize),s=V.value.map(e=>e.pageId===r?t.scaleSigningPlacementToPage(e,a,o):e);lr(s.filter(e=>e.pageId===r).map(e=>e.id)),Y({...S.value,pages:S.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 pr(e){let t=U.value;L.value=`合同最多支持 ${t} 页`,h(`page-limit`,t,e)}function mr(){if(z.value)return;if(hn.value){pr(`add`);return}let e=i.createDefaultPage(S.value.pages.length+1,Kt.value);Y({...S.value,pages:[...S.value.pages,e]}),T.value=e.id}function hr(e){if(z.value)return;if(hn.value){pr(`duplicate`);return}let n=S.value.pages.findIndex(t=>t.id===e.id);if(n<0)return;let r=i.cloneTemplateValue({pages:[e],variables:[],pageSize:S.value.pageSize,signingPlacements:[]}).pages[0],a=i.createBlankPage(n+2,Z(e),r.contentHtml,r.contentJson);a.title=`${e.title||`第 ${n+1} 页`}副本`;let o=[...S.value.pages];o.splice(n+1,0,a);let s=or(e.id).map(e=>t.createSigningPlacement(e.type,a.id,Z(a),{...u.cloneSigningPlacement(e),id:void 0,pageId:a.id}));Y({...S.value,pages:o,signingPlacements:[...V.value,...s]}),T.value=a.id,s.forEach(e=>h(`signing-placement-add`,u.cloneSigningPlacement(e))),s[0]&&Q(s[0].id)}function gr(e){if(z.value||S.value.pages.length<=1)return;let t=S.value.pages.findIndex(t=>t.id===e.id);if(t<0)return;let n=or(e.id);ur(e.id);let r=S.value.pages.filter(t=>t.id!==e.id),i=ir({...S.value,pages:r,signingPlacements:V.value.filter(t=>t.pageId!==e.id)});T.value=i.pages[Math.min(t,i.pages.length-1)]?.id??``,n.some(e=>e.id===w.value)&&Q(),n.forEach(e=>h(`signing-placement-remove`,u.cloneSigningPlacement(e)))}function _r(e){if(z.value||S.value.pages.length<=1)return;let t=or(e.id).length;if(!t){gr(e);return}ye.Modal.confirm({title:`删除合同页面`,content:`此页包含 ${t} 个签署位置,删除页面会同时移除这些位置,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{gr(e)}})}function vr(e){let t=new Set(S.value.variables.map(e=>e.key)),n=1;for(;t.has(`${e}_${n}`);)n+=1;return`${e}_${n}`}function yr(e){let t=e.type??`text`;return i.createTemplateVariable({...e,type:t,key:e.key||vr(t),label:e.label||i.getFieldOption(t,m.variableTypes).label},m.variableTypes,m.defaultVariableStyle)}function br(e,t=H.value?.id??S.value.pages[0].id,n){if(z.value)return e;let r=O.get(t)?.insertVariable(e,n),i=!S.value.variables.some(t=>t.key===e.key);return Y({...S.value,pages:r?S.value.pages.map(e=>e.id===r.id?r:e):S.value.pages,variables:i?[...S.value.variables,e]:S.value.variables}),C.value=e.key,Q(),T.value=t,i&&h(`variable-add`,e),W(t),e}function xr(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 Sr(e={}){let t=s.normalizeContractImageDimension(yt.value),n=s.normalizeContractImageDimension(bt.value);return{...e,...t===void 0?{}:{width:t},...n===void 0?{}:{height:n}}}function Cr(){vt.value=``,yt.value=void 0,bt.value=void 0,xt.value=``}function wr(e,t=H.value?.id??S.value.pages[0]?.id,n){let r=xr({...e,src:e.src.trim()});if(!(z.value||!t||!a.isSafeContractImageUrl(r.src)||!r.src||!O.get(t)?.insertContentImage(r,n)))return T.value=t,C.value=``,Q(),r.src}function Tr(e){return e instanceof Error?e:Error(`图片处理失败`)}async function Er(e,t){t===`toolbar`&&(St.value=!0,xt.value=``);try{let n=await s.processContractImageFile(e,{source:t,compression:m.imageCompression,upload:m.imageUpload});return Pt?void 0:n.src}catch(e){let n=Tr(e);t===`toolbar`&&(xt.value=n.message),L.value=n.message,h(`image-error`,n,t);return}finally{t===`toolbar`&&(St.value=!1)}}async function Dr(e){return await Er(e,`paste`)??null}async function Or(e,t={}){if(z.value)return;let n=H.value?.id??S.value.pages[0]?.id,r=n?O.get(n)?.getSelectionRange():void 0,i=typeof e==`string`?e.trim():await Er(e,`toolbar`);if(Pt)return;if(!i||!a.isSafeContractImageUrl(i)){typeof e==`string`&&(xt.value=`请输入安全的图片 URL`);return}if(n&&!O.has(n))return;let o=wr({...t,src:i},n,r);return o&&(_t.value=!1,Cr(),L.value=`已插入图片`),o}function kr(){z.value||St.value||($(),xt.value=``,We.value&&(We.value.value=``),We.value?.click())}async function Ar(e){let t=e.target.files?.[0];t&&await Or(t,Sr({alt:t.name}))}async function jr(){let e=vt.value;await Or(e,Sr())}function Mr(e){Qr(e),gt.value=!1}function Nr(){$(),mr()}function Pr(e,t,n,r){$(),br(yr({type:t}),e,{left:n,top:r})}function Fr(e){$(),C.value=e,Q()}function Ir(e){let t=S.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,S.value.variables,e.id);if(t){L.value=t;return}}e={...e,key:n};let a=[...S.value.pages],o=t.key,s=``;O.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({...S.value,pages:a,variables:S.value.variables.map(t=>t.id===e.id?e:t),...o!==e.key&&S.value.pageDecorations?{pageDecorations:r.rewritePageDecorationVariableTokens(S.value.pageDecorations,o,e.key)}:{}}),C.value=e.key,W(s||T.value)}function Lr(e){B.value&&Ir({...B.value,...e,style:{...B.value.style,...e.style}})}function Rr(e){z.value||!B.value||Lr({key:e})}function zr(e){z.value||(Y({...S.value,pageDecorations:r.normalizePageDecorations(e)}),W(S.value.pages[0]?.id))}function Br(e){(e===`left`||e===`center`||e===`right`)&&Lr({style:{textAlign:e}})}function Vr(e){(e===`solid`||e===`dashed`)&&Lr({style:{borderStyle:e}})}function Hr(e){(e===`contain`||e===`cover`||e===`fill`)&&Lr({style:{objectFit:e}})}function Ur(e){Lr({style:e})}function Wr(e){Ur({fontFamily:String(e||``).trim()||`Noto Serif SC, Source Han Serif SC, Songti SC, STSong, SimSun, serif`})}function Gr(e){Ur({fontSize:Kn(e,B.value?.style?.fontSize??14)})}function Kr(e){B.value&&Lr({multiline:e,rows:B.value.rows||3,lineHeight:B.value.lineHeight||28,style:e?{underline:!0}:void 0})}function qr(e){B.value&&Lr({rows:Number(e||3),lineHeight:B.value.lineHeight||28})}function Jr(e){if(z.value)return;let t=[...S.value.pages];O.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({...S.value,pages:t,variables:S.value.variables.filter(t=>t.id!==e.id),...S.value.pageDecorations?{pageDecorations:r.rewritePageDecorationVariableTokens(S.value.pageDecorations,e.key)}:{}}),C.value=``,w.value=``}function Yr(e){let t=(e.trim()||`variable`).replace(/\s+/g,`_`),n=new Set(S.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 Xr(e){z.value||br(i.createTemplateVariable({...e,id:void 0,key:Yr(`${e.key||e.type}_copy`),label:`${e.label}副本`,style:{...e.style}},m.variableTypes,m.defaultVariableStyle))}function Zr(e){return z.value?void 0:br(S.value.variables.find(t=>t.key===e.key)??i.createTemplateVariable(e,m.variableTypes,m.defaultVariableStyle))}function Qr(e){if(!z.value)return br(yr({type:e}))}function $r(t){if(z.value||!e.isContractTemplateFieldType(t))return;let n=P.value,r=pn.value.find(e=>e.type===t);if(!n||!r)return;let i=c.inferContextVariableLabel(n.leadingText)||r.label,a=c.resolveContextVariableWidth(n.selectionWidth,je,Nn.value),o=ei();br(yr({type:t,label:i,...a?{width:a}:{},...o?{style:o}:{}}),n.pageId),L.value=n.hasSelection?`已将选中内容替换为${r.label}控件`:`已插入${r.label}控件`,$()}function ei(){let e=Fn.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 ti(e){if(z.value)return;let t=P.value;t&&(br(e,t.pageId),L.value=`已绑定到${e.label},沿用原控件尺寸`,$())}function ni(t){let n=t.type&&e.isContractTemplateFieldType(t.type)?t.type:`text`;return i.getFieldOption(n,pn.value).label}function ri(){S.value.variables.length&&(wt.value=!0,(0,f.nextTick)(()=>{da(),Ct.value?.focusBindSearch()}))}function ii(e,t){e.dataTransfer?.setData(`application/x-gd-contract-variable`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`copy`)}function ai(e){return A.value=Math.round(Math.min(Ee,Math.max(Te,Number.isFinite(e)?e:1))*100)/100,A.value}let{width:oi}=(0,be.useElementSize)(ze),si=(0,f.computed)(()=>Math.max(...S.value.pages.map(e=>Z(e).width),i.DEFAULT_PAGE_SIZE.width)+10),{fitWidth:ci,applyAutoFit:li,markUserAdjusted:ui}=o.useFitWidthZoom({viewportWidth:oi,widestPageWidth:si,padding:48,minZoom:Te,maxZoom:Ee,getZoom:()=>A.value,applyZoom:ai});function di(e){return ui(),ai(e)}function fi(){return li()}function pi(){return A.value}function mi(){di(A.value+De)}function hi(){di(A.value-De)}function gi(){$(),M.value=!1,N.value=!1,pt.value=!1,lt.value=!lt.value}function _i(){$();let e=K(!1);g.value?(at.value=l.cloneContractTemplateFiles(_.value),k.value=void 0,ot.value=v.value||_.value[0]?.id||``):(k.value=i.cloneTemplateValue(e),at.value=void 0,ot.value=``),it.value=!0}function vi(){it.value=!1,k.value=void 0,at.value=void 0,ot.value=``}function yi(){return Gi()}function bi(){$();let e=yi();return ct.value=JSON.stringify(e,null,2),st.value=!0,e}function xi(){st.value=!1}function Si(){$(),M.value=!1,N.value=!1;let e=V.value.map(u.cloneSigningPlacement);b.value=[],y.value={...y.value,[v.value]:[]};let t=!!w.value;C.value=``,w.value=``,T.value=``,it.value=!1,k.value=void 0,at.value=void 0,st.value=!1,ct.value=``,mt.value={},rt.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)),T.value=n.pages[0]?.id??``,i.cloneTemplateValue(n)}function Ci(){z.value||($(),ye.Modal.confirm({title:`清空合同内容`,content:`将清空全部合同正文、页面、模板变量和签署位置,仅保留一个空白 A4 合同页。此操作不可撤销。`,okText:`确认清空`,okType:`danger`,cancelText:`取消`,onOk:()=>{Si()}}))}function wi(e){let t=G().pages,n=t.find(e=>e.id===T.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 Ti(e){$(),C.value=e.key,Q();let t=wi(e);t&&(T.value=t.id,(0,f.nextTick)(()=>{O.get(t.id)?.scrollIntoVariable(e.key)}))}function Ei(e){let t=S.value.variables.find(t=>t.key===e||t.id===e);t&&Ti(t)}function Di(e){let t=V.value.find(t=>t.id===e);t&&($(),C.value=``,T.value=t.pageId,Q(t.id),(0,f.nextTick)(()=>{O.get(t.pageId)?.scrollIntoSigningPlacement(t.id)}))}function Oi(e,t=!0){$(),T.value=e,t&&(0,f.nextTick)(()=>{O.get(e)?.scrollIntoPage()})}function ki(e){S.value.pages.some(t=>t.id===e)&&Oi(e)}function Ai(){if(j.value){ji();return}j.value=!0}function ji(){j.value=!1,(0,f.nextTick)(()=>Ve.value?.focusPageDecorations())}function Mi(){return Yn(),i.cloneTemplateValue(G())}function Ni(e){b.value=Ge(e),y.value={...y.value,[v.value]:b.value};let t=Y(i.normalizeTemplateValue(e,m.pageSize));t.signingPlacements?.some(e=>e.id===w.value)||Q(),W(t.pages[0]?.id)}function Pi(){let e=K(!1);return g.value?l.cloneContractTemplateFiles(_.value):l.cloneContractTemplateFiles(l.replaceContractTemplateFile(_.value,v.value,e))}function Fi(e,t){let n=l.normalizeContractTemplateFiles(e,void 0,m.pageSize),r=l.constrainContractTemplateFiles(n,m.pageSizeOptions),i=_.value;Ye.value=!0,K(!1),_.value=r.files,y.value=Ke(r.files,e),J(l.resolveContractTemplateActiveFileId(_.value,t??v.value),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),d.serializeFingerprint(i)!==d.serializeFingerprint(_.value)&&q(_.value,``)}function Ii(e){if(z.value)return;Ye.value=!0,K(!0);let t=l.createContractTemplateFile(e||`合同文件 ${_.value.length+1}`,m.pageSize);return _.value=[..._.value,t],y.value={...y.value,[t.id]:[]},q(_.value,``),h(`file-add`,l.cloneContractTemplateFiles([t])[0]),J(t.id,{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0}),l.cloneContractTemplateFiles([t])[0]}function Li(e){!g.value&&!_.value.some(t=>t.id===e)||(Ye.value=!0,J(e))}function Ri(e,t){if(z.value)return;Ye.value=!0,K(!1);let n=l.renameContractTemplateFile(_.value,e,t),r=n.find(t=>t.id===e);if(r)return _.value=n,q(n,e),l.cloneContractTemplateFiles([r])[0]}function zi(e){if(z.value||_.value.length<=1)return;Ye.value=!0,K(!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,q(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===w.value)&&h(`signing-placement-select`,void 0),v.value===e&&J(l.resolveContractTemplateActiveFileId(n,n[0]?.id),{syncCurrent:!1,shouldEmit:!0,forceRefresh:!0,persistCurrentErrors:!1}),l.cloneContractTemplateFiles([t])[0]}function Bi(e){if(z.value||_.value.length<=1)return;let t=_.value.find(t=>t.id===e);if(!t)return;let n=t.template.signingPlacements?.length??0;ye.Modal.confirm({title:`删除合同文件`,content:n?`“${t.name}”包含 ${n} 个签署位置,删除后文件内正文、变量和签署位置都会移除,是否继续?`:`删除“${t.name}”后,其正文和变量将无法恢复,是否继续?`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>{zi(e)}})}function Vi(e,t){if(z.value)return;Ye.value=!0,K(!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,q(r,``),h(`file-move`,l.cloneContractTemplateFiles([a])[0],n,i),l.cloneContractTemplateFiles([a])[0]}function Hi(){K(!1);let e=Xi(g.value?_.value.flatMap(e=>{let t=i.validateTemplateValue(e.template,{maxPages:U.value});return[...y.value[e.id]??[],...t].map(t=>({...t,fileId:e.id}))}):[...b.value,...i.validateTemplateValue(G(),{maxPages:U.value})]);return D.value=e,E.value=!0,h(`validate`,e),e}function Ui(e){if(e.fileId&&e.fileId!==v.value){Li(e.fileId),(0,f.nextTick)(()=>Ui({...e,fileId:void 0}));return}let t=r.resolvePageDecorationValidationPath(e);if(t){j.value=!0,(0,f.nextTick)(()=>He.value?.focusField(t));return}if(e.type===`signing-placement`){let t=V.value.find(t=>t.id===e.id);if(t){Oi(t.pageId),Q(t.id);return}}if(e.variableKey){Ei(e.variableKey);return}if(e.pageId){ki(e.pageId);return}let n=S.value.variables.find(t=>t.id===e.id||t.key===e.id);if(n){Ti(n);return}S.value.pages.some(t=>t.id===e.id)&&Oi(e.id)}function Wi(e){return r.resolvePageDecorationValidationPath(e)?`页面装饰`:e.type===`signing-placement`?`签署位置`:e.type===`variable`?`变量`:`字段`}function Gi(){return Yn(),i.exportTemplateValue(G())}function Ki(){let e=K(!1),t=g.value?_.value:l.replaceContractTemplateFile(_.value,v.value,e);return l.exportContractTemplateFiles(t)}function qi(e){let n=G();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&&(D.value=[...e.errors],E.value=!0,h(`validate`,[...e.errors])),e}}function Ji(e){return qi(n=>t.buildSigningPlacementLocationRules(n,e))}function Yi(e){return qi(n=>t.buildContractLocationRules(n,e))}function Xi(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 Zi(e){D.value=[...e],E.value=!0}function Qi(){D.value=[],E.value=!1}function $i(){O.get(H.value?.id??T.value)?.focus()}function ea(e){Wn(e)&&X({type:`set-text-align`,value:e})}function ta(e){(e===`paragraph`||Gn(e))&&X({type:`apply-block-style`,format:e})}function na(e){let t=qn(e);t&&(X({type:`set-font-size`,value:t}),ht.value=``)}function ra(e){let t=String(e||``).trim();if(!t){X({type:`unset-font-family`});return}X({type:`set-font-family`,value:t})}function ia(e){aa(e.target?.value??``)}function aa(e){let t=e.trim();t&&X({type:`set-color`,value:t})}function oa(e){ht.value=e}function sa(){ht.value.trim()&&na(ht.value)}function ca(e){e.key===`Enter`&&(e.preventDefault(),sa())}function la(e){e||(sa(),ht.value=``)}function ua(e){if(z.value)return;T.value=e.pageId,M.value=!1,N.value=!1,F.value=void 0,I.value=void 0,wt.value=!1,Tt.value=``;let t=ve.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)(()=>{da(),Ct.value?.focusFirstButton()})}function da(){let e=Ct.value?.getMenuElement(),t=P.value;if(!e||!t)return;let n=ve.clampContextMenuToElement(t.x,t.y,e);P.value={...t,x:n.x,y:n.y}}function fa(e){if(z.value)return;T.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,I.value=void 0;let t=ve.clampContextMenuPosition(e.clientX,e.clientY,248,400);F.value={...e,x:t.x,y:t.y},(0,f.nextTick)(()=>{let e=Et.value?.getMenuElement(),t=F.value;if(e&&t){let n=ve.clampContextMenuToElement(t.x,t.y,e);F.value={...t,x:n.x,y:n.y}}Et.value?.focusFirstItem()})}function pa(e){if(z.value)return;T.value=e.pageId,M.value=!1,N.value=!1,P.value=void 0,F.value=void 0,Ot.value=e.image.width,kt.value=e.image.height,C.value=``,w.value&&Q();let t=ve.clampContextMenuPosition(e.clientX,e.clientY,288,196);I.value={pageId:e.pageId,image:e.image,x:t.x,y:t.y},(0,f.nextTick)(()=>{ma(),Dt.value?.getMenuElement()?.querySelector(`input, button:not(:disabled)`)?.focus()})}function ma(){let e=Dt.value?.getMenuElement(),t=I.value;if(!e||!t)return;let n=ve.clampContextMenuToElement(t.x,t.y,e);I.value={...t,x:n.x,y:n.y}}function ha(){let e=I.value;!e||z.value||(O.get(e.pageId)?.updateSelectedContentImage({width:s.normalizeContractImageDimension(Ot.value),height:s.normalizeContractImageDimension(kt.value)})&&(L.value=`已更新图片尺寸`),$())}function ga(){let e=I.value;!e||z.value||(O.get(e.pageId)?.updateSelectedContentImage({width:void 0,height:void 0})&&(L.value=`已恢复图片自然尺寸`),$())}function _a(e){e.type===`table`?fa(e):e.type===`image`?pa(e):ua(e)}function $(){P.value=void 0,F.value=void 0,I.value=void 0,wt.value=!1,Tt.value=``}function va(e){!P.value&&!F.value&&!I.value||(e.target instanceof HTMLElement?e.target:null)?.closest(`.gd-contract-template-designer__context-menu`)||$()}function ya(e){(e.target instanceof Element?e.target:null)?.closest(`.gd-contract-template-designer__context-menu`)||$()}function ba(e){let t=Re.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 xa(e){if(e.key!==`Escape`||!j.value||typeof document>`u`)return;let t=Re.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(Mt)||r?.closest(Mt)),a=!!(n&&t.contains(n)||r&&t.contains(r)),o=!!t.querySelector(`.ant-select-open, .ant-dropdown-open`);if(i||a&&o){jt.add(e);return}!(P.value||F.value||I.value||M.value||N.value||pt.value||gt.value||_t.value)&&(a||e.target===document)&&(e.preventDefault(),e.stopPropagation(),ji())}function Sa(e){if((e.ctrlKey||e.metaKey)&&!e.altKey&&e.key.toLowerCase()===`s`){if(!Lt.value||!ba(e))return;e.preventDefault(),Tn();return}if(e.key===`Escape`){if(jt.has(e)){jt.delete(e);return}let t=!!(P.value||F.value||I.value||M.value||N.value||pt.value||gt.value||_t.value),n=t||j.value;!t&&j.value&&ji(),$(),M.value=!1,N.value=!1,pt.value=!1,gt.value=!1,_t.value=!1,n&&e.stopPropagation(),n||(lt.value=!1)}}function Ca(e,t){e===T.value&&t.selectedContentImage&&(C.value=``,w.value&&Q());let n=mt.value[e];n&&_e.isSameEditorState(n,t)||(mt.value={...mt.value,[e]:t})}function wa(e=At.value.rows,t=At.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:!!At.value.withHeaderRow}}),M.value=!1,$()}let Ta={"delete-table-row":{label:`删除当前行`,countKey:`deleteRow`},"delete-table-column":{label:`删除当前列`,countKey:`deleteColumn`},"delete-table":{label:`删除表格`,countKey:`deleteTable`}};function Ea(e){let t=F.value;if(!t)return;let n=()=>{X(e,t.pageId),$()},r=Ta[e.type];if(!r){n();return}let i=t.affectedVariableCounts[r.countKey];$(),ye.Modal.confirm({title:r.label,content:i?`此操作将移除 ${i} 个正文变量节点,是否继续?`:`此操作将修改表格结构,是否继续?`,okText:`确认`,okType:`danger`,cancelText:`取消`,onOk:n,onCancel:()=>O.get(t.pageId)?.focus()})}function Da(e){let t=Et.value?.getMenuElement();if(!t)return;if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=F.value?.pageId;$(),O.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 Oa(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=P.value?.pageId;$(),O.get(t??``)?.focus()}function ka(e){if(e.key!==`Escape`)return;e.preventDefault(),e.stopPropagation();let t=I.value?.pageId;$(),O.get(t??``)?.focus()}function Aa(e){X({type:e}),N.value=!1,$()}return Fe({getValue:Mi,setValue:Ni,getFiles:Pi,setFiles:Fi,addFile:Ii,selectFile:Li,renameFile:Ri,removeFile:zi,moveFile:Vi,validate:Hi,exportTemplate:Gi,exportFiles:Ki,getSubmitData:yi,clearTemplate:Si,saveDraftCache:Tn,loadDraftCache:En,clearDraftCache:Dn,getDraftCacheStatus:er,insertVariable:Zr,insertImage:Or,focus:$i,openPreview:_i,closePreview:vi,openSubmitDataViewer:bi,closeSubmitDataViewer:xi,setServerValidationErrors:Zi,clearValidationErrors:Qi,scrollToVariable:Ei,scrollToSigningPlacement:Di,scrollToPage:ki,setZoom:di,resetZoom:fi,getZoom:pi,fitWidth:ci,insertSigningPlacement:_n,selectSigningPlacement:Q,buildLocationRules:Ji,buildContractLocationRules:Yi}),(e,n)=>((0,f.openBlock)(),(0,f.createElementBlock)(`div`,{ref_key:`designerElement`,ref:Re,class:(0,f.normalizeClass)([`gd-contract-template-designer`,{"is-disabled":p.disabled,"is-readonly":z.value,"is-fullscreen":lt.value}]),style:(0,f.normalizeStyle)(Le.value)},[g.value?((0,f.openBlock)(),(0,f.createBlock)(pe.default,{key:0,files:_.value,"active-file-id":v.value,readonly:z.value,onSelect:Li,onAdd:n[0]||=e=>Ii(),onRename:Ri,onRemove:Bi,onMove:Vi},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":ut.value,"is-inspector-collapsed":dt.value}])},[(0,f.createVNode)(me.default,{collapsed:ut.value,pages:S.value.pages,variables:S.value.variables,"decoration-variable-keys":gn.value,"signing-placement-navigation-items":Wt.value,"active-page-id":T.value,"selected-variable-key":C.value,"selected-signing-placement-id":w.value,"normalized-max-pages":U.value,"page-limit-reached":hn.value,"selected-page":H.value,"selected-page-size":Kt.value,"normalized-page-size-options":ln.value,"page-size-options":un.value,"selected-page-size-option-value":dn.value,"show-signing-placement-tools":m.showSigningPlacementTools,readonly:z.value,"get-page-size":Z,"get-page-signing-placements":or,onToggle:n[1]||=e=>ut.value=!ut.value,onAddPage:mr,onActivatePage:Oi,onDuplicatePage:hr,onRemovePage:_r,onPatchPageFormat:fr,onScrollToVariable:Ti,onScrollToSigningPlacement:Di},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:Be,class:`gd-contract-template-designer__workspace`},[(0,f.createVNode)(ne.default,{ref_key:`workspaceHeaderElement`,ref:Ve,summary:Yt.value,"draft-cache-status-text":$t.value,"draft-cache-status-class":en.value,"show-draft-cache-status":p.showDraftCacheStatus,"show-clear-button":p.showClearButton,"show-submit-data-viewer":p.showSubmitDataViewer,readonly:z.value,"zoom-percent":tn.value,"zoom-out-disabled":A.value<=Te,"zoom-in-disabled":A.value>=Ee,"is-fullscreen":lt.value,"page-decorations-open":j.value,"page-decorations-studio-id":Ue,"page-decorations-preset-label":Xt.value,"page-decorations-enabled-count":Qt.value,"page-decorations-enabled-states":Zt.value,onZoomOut:hi,onZoomIn:mi,onFitWidth:(0,f.unref)(ci),onResetZoom:fi,onToggleFullscreen:gi,onClear:Ci,onValidate:Hi,onPreview:_i,onSubmitData:bi,onTogglePageDecorations:Ai},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`,`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":gt.value,"onUpdate:variableInsertPopoverOpen":n[2]||=e=>gt.value=e,"image-insert-popover-open":_t.value,"onUpdate:imageInsertPopoverOpen":n[3]||=e=>_t.value=e,"image-insert-url":vt.value,"onUpdate:imageInsertUrl":n[4]||=e=>vt.value=e,"image-insert-width":yt.value,"onUpdate:imageInsertWidth":n[5]||=e=>yt.value=e,"image-insert-height":bt.value,"onUpdate:imageInsertHeight":n[6]||=e=>bt.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":At.value,"onUpdate:tableInsertDraft":n[9]||=e=>At.value=e,"toolbar-more-open":pt.value,"onUpdate:toolbarMoreOpen":n[10]||=e=>pt.value=e,readonly:z.value,"editor-state":Fn.value,"current-block-format":In.value,"block-format-options":on,"font-family-select-options":rn.value,"current-editor-font-family":Ln.value,"font-size-preset-options":Vn.value,"current-editor-font-size":Rn.value,"editor-font-size-search-value":ht.value,"current-editor-text-color":zn.value,"body-control-tool-items":mn.value,"page-limit-reached":hn.value,"normalized-max-pages":U.value,"image-processing":St.value,"image-insert-error":xt.value,onCommand:n[11]||=e=>X(e),onPatchBlockFormat:ta,onPatchFontFamily:ra,onPatchFontSize:na,onPatchColor:ia,onPatchTextAlign:ea,onInsertVariable:Mr,onOpenImageFile:kr,onInsertImageUrl:jr,onAddPage:mr,onInsertTable:wa,onTableAction:Aa,onFontSizeSearch:oa,onFontSizeCommit:sa,onFontSizeDropdownChange:la,onFontSizeKeydown:ca},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`]),E.value?((0,f.openBlock)(),(0,f.createElementBlock)(`section`,xe,[(0,f.createVNode)((0,f.unref)(ye.Alert),{type:qt.value?`success`:`error`,message:Jt.value,"show-icon":``},null,8,[`type`,`message`]),D.value.length?((0,f.openBlock)(),(0,f.createElementBlock)(`div`,Se,[((0,f.openBlock)(!0),(0,f.createElementBlock)(f.Fragment,null,(0,f.renderList)(D.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=>Ui(e)},[(0,f.createElementVNode)(`span`,null,(0,f.toDisplayString)(e.message),1),(0,f.createElementVNode)(`small`,null,(0,f.toDisplayString)(Wi(e)),1)],8,Ce))),128))])):(0,f.createCommentVNode)(``,!0)])):(0,f.createCommentVNode)(``,!0),(0,f.createElementVNode)(`div`,{ref_key:`canvasElement`,ref:ze,class:`gd-contract-template-designer__canvas`},[((0,f.openBlock)(!0),(0,f.createElementBlock)(f.Fragment,null,(0,f.renderList)(S.value.pages,(e,t)=>((0,f.openBlock)(),(0,f.createBlock)(ee.default,{key:`${v.value}:${e.id}`,ref_for:!0,ref:t=>tr(e.id,t),page:e,"page-index":t,"page-size":Z(e),"page-decorations":S.value.pageDecorations,"total-pages":S.value.pages.length,variables:S.value.variables,"selected-variable-key":C.value,"signing-placements":m.showSigningPlacementTools?or(e.id):[],"selected-signing-placement-id":w.value,active:T.value===e.id,readonly:p.readonly,disabled:p.disabled,zoom:A.value,"process-image-file":Dr,onPageUpdate:ar,onVariableDrop:Pr,onVariableSelect:Fr,onSigningPlacementDrop:(0,f.unref)(vn),onSigningPlacementSelect:cr,onSigningPlacementMove:(0,f.unref)(xn),onSigningPlacementRemove:(0,f.unref)(wn),onEditorFocus:n[12]||=e=>Oi(e,!1),onEditorStateChange:Ca,onEditorContextMenu:_a,onVariableMoveBlocked:n[13]||=e=>L.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)(ge.default,{ref_key:`pageDecorationsStudioElement`,ref:He,id:Ue,open:j.value,decorations:S.value.pageDecorations,variables:S.value.variables,"font-family-options":rn.value,readonly:p.readonly,disabled:p.disabled,"active-tab":ft.value,"onUpdate:activeTab":n[14]||=e=>ft.value=e,onChange:zr,onClose:ji},null,8,[`open`,`decorations`,`variables`,`font-family-options`,`readonly`,`disabled`,`active-tab`]),[[f.vShow,j.value]])],512),(0,f.createVNode)(he.default,{collapsed:dt.value,readonly:p.readonly,disabled:p.disabled,"show-signing-placement-tools":m.showSigningPlacementTools,"body-control-tool-items":mn.value,"signing-placement-tools":fn.value,"signing-placements":V.value,"selected-signing-placement":Ut.value,"selected-signing-placement-page-size":Gt.value,"selected-variable":B.value,variables:S.value.variables,"current-variable-font-family":Bn.value,"font-family-select-options":rn.value,"text-align-options":(0,f.unref)(an),"border-style-options":sn,"object-fit-options":cn,"selected-variable-width-max":Nn.value,"selected-variable-height-max":Pn.value,"min-font-size":Ne,"max-font-size":Pe,"default-multiline-rows":(0,f.unref)(3),"resolve-signing-placement-type-icon":(0,f.unref)(fe.resolveSigningPlacementTypeIcon),"signing-placement-type-labels":(0,f.unref)(t.SIGNING_PLACEMENT_TYPE_LABELS),onToggle:n[15]||=e=>dt.value=!dt.value,onVariableDragStart:ii,onInsertVariable:Qr,onSigningPlacementDragStart:(0,f.unref)(bn),onInsertSigningPlacement:(0,f.unref)(yn),onPatchSigningPlacement:(0,f.unref)(Sn),onDuplicateSigningPlacement:n[16]||=e=>(0,f.unref)(Cn)(),onRemoveSigningPlacement:n[17]||=e=>(0,f.unref)(wn)(),onDuplicateVariable:Xr,onRemoveVariable:Jr,onPatchVariable:Lr,onRenameVariable:Rr,onPatchStyle:Ur,onPatchMultiline:Kr,onPatchRows:qr,onPatchFontFamily:Wr,onPatchFontSize:Gr,onPatchTextAlign:Br,onPatchBorderStyle:Vr,onPatchObjectFit:Hr},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`},[F.value?((0,f.openBlock)(),(0,f.createBlock)(te.default,{key:0,ref_key:`tableContextMenuElement`,ref:Et,capabilities:F.value.capabilities,"active-alignment":F.value.activeAlignment,style:(0,f.normalizeStyle)({left:`${F.value.x}px`,top:`${F.value.y}px`}),onExecute:Ea,onKeydown:Da},null,8,[`capabilities`,`active-alignment`,`style`])):(0,f.createCommentVNode)(``,!0),I.value?((0,f.openBlock)(),(0,f.createBlock)(ae.default,{key:1,ref_key:`imageContextMenuElement`,ref:Dt,width:Ot.value,"onUpdate:width":n[18]||=e=>Ot.value=e,height:kt.value,"onUpdate:height":n[19]||=e=>kt.value=e,x:I.value.x,y:I.value.y,readonly:z.value,onRestore:ga,onApply:ha,onKeydown:ka},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:Ct,"bind-open":wt.value,"onUpdate:bindOpen":n[20]||=e=>wt.value=e,"bind-keyword":Tt.value,"onUpdate:bindKeyword":n[21]||=e=>Tt.value=e,x:P.value.x,y:P.value.y,"has-selection":P.value.hasSelection,"editor-state":Fn.value,"font-size-preset-options":Vn.value,"current-editor-font-size":Rn.value,"editor-font-size-search-value":ht.value,"text-align-options":(0,f.unref)(an),"current-editor-text-color":zn.value,"body-control-tool-items":mn.value,"text-menu-bindable-variables":Mn.value,"page-limit-reached":hn.value,"table-insert-draft":At.value,"variables-count":S.value.variables.length,"resolve-bind-variable-type-label":ni,onCommand:nr,onClipboard:rr,onOpenImage:kr,onAddPage:Nr,onInsertVariable:$r,onBindVariable:ti,onOpenBindPanel:ri,onKeydown:Oa,onPatchFontSize:na,onPatchTextAlign:ea,onPatchColor:aa,onFontSizeSearch:oa,onFontSizeCommit:sa,onFontSizeDropdownChange:la,onFontSizeKeydown:ca},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)])),(0,f.createElementVNode)(`input`,{ref_key:`imageFileInputElement`,ref:We,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:Ar},null,544),(0,f.createElementVNode)(`span`,we,(0,f.toDisplayString)(L.value),1),(0,f.createVNode)(oe.default,{open:it.value,"onUpdate:open":n[22]||=e=>it.value=e,"preview-pages":Bt.value,"preview-file-groups":Vt.value,"preview-active-group":Ht.value,"preview-snapshot":k.value,onCancel:vi,onSelectFile:n[23]||=e=>ot.value=e},null,8,[`open`,`preview-pages`,`preview-file-groups`,`preview-active-group`,`preview-snapshot`]),(0,f.createVNode)(se.default,{open:st.value,"onUpdate:open":n[24]||=e=>st.value=e,json:ct.value,onCancel:xi},null,8,[`open`,`json`])],6))}});exports.default=p;
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;