@guodun/antdv 1.7.11 → 1.7.13

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 (64) hide show
  1. package/dist/es/components/contract-signing-location/src/ContractSigningLocation.vue.mjs +370 -294
  2. package/dist/es/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.mjs +219 -202
  3. package/dist/es/components/contract-signing-location/src/ContractSigningTemplatePage.vue.mjs +18 -18
  4. package/dist/es/components/contract-signing-location/src/template-source.mjs +62 -49
  5. package/dist/es/components/index.mjs +1 -0
  6. package/dist/es/components/pro-contract-template-designer/index.mjs +1 -0
  7. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +37 -42
  8. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.mjs +69 -55
  9. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateSingleRenderer.vue.mjs +278 -270
  10. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +344 -343
  11. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1046 -1000
  12. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.mjs +120 -74
  13. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +133 -132
  14. package/dist/es/components/pro-contract-template-designer/src/constants.mjs +7 -7
  15. package/dist/es/components/pro-contract-template-designer/src/utils/contract-layout-check.mjs +239 -0
  16. package/dist/es/components/pro-contract-template-designer/src/utils/contract-print-document.mjs +99 -75
  17. package/dist/es/components/pro-contract-template-designer/src/utils/page-decorations.mjs +67 -76
  18. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +96 -83
  19. package/dist/es/components/pro-contract-template-designer/src/utils/template-variable-render.mjs +23 -15
  20. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  21. package/dist/es/contract-print-css/index.mjs +473 -0
  22. package/dist/es/contract-print.mjs +2 -0
  23. package/dist/es/index.mjs +21 -20
  24. package/dist/lib/components/contract-signing-location/src/ContractSigningLocation.vue.cjs +1 -1
  25. package/dist/lib/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.cjs +1 -1
  26. package/dist/lib/components/contract-signing-location/src/ContractSigningTemplatePage.vue.cjs +1 -1
  27. package/dist/lib/components/contract-signing-location/src/template-source.cjs +1 -1
  28. package/dist/lib/components/index.cjs +1 -1
  29. package/dist/lib/components/pro-contract-template-designer/index.cjs +1 -1
  30. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
  31. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.cjs +1 -1
  32. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateSingleRenderer.vue.cjs +1 -1
  33. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  34. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  35. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.cjs +1 -1
  36. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  37. package/dist/lib/components/pro-contract-template-designer/src/constants.cjs +1 -1
  38. package/dist/lib/components/pro-contract-template-designer/src/utils/contract-layout-check.cjs +1 -0
  39. package/dist/lib/components/pro-contract-template-designer/src/utils/contract-print-document.cjs +52 -30
  40. package/dist/lib/components/pro-contract-template-designer/src/utils/page-decorations.cjs +1 -1
  41. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +5 -5
  42. package/dist/lib/components/pro-contract-template-designer/src/utils/template-variable-render.cjs +1 -1
  43. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  44. package/dist/lib/contract-print-css/index.cjs +413 -0
  45. package/dist/lib/contract-print.cjs +1 -0
  46. package/dist/lib/index.cjs +1 -1
  47. package/dist/theme/icon.css +1 -1
  48. package/dist/theme/index.css +1 -1
  49. package/dist/types/components/contract-signing-location/src/ContractSigningLocation.vue.d.ts +9 -0
  50. package/dist/types/components/contract-signing-location/src/ContractSigningLocationCanvas.vue.d.ts +7 -0
  51. package/dist/types/components/contract-signing-location/src/template-source.d.ts +6 -0
  52. package/dist/types/components/pro-contract-template-designer/index.d.ts +1 -0
  53. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateSingleRenderer.vue.d.ts +2 -0
  54. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +5 -1
  55. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateRenderer.vue.d.ts +7 -2
  56. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +2 -2
  57. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +36 -0
  58. package/dist/types/components/pro-contract-template-designer/src/utils/contract-layout-check.d.ts +104 -0
  59. package/dist/types/components/pro-contract-template-designer/src/utils/contract-print-document.d.ts +4 -1
  60. package/dist/types/components/pro-contract-template-designer/src/utils/page-decorations.d.ts +2 -8
  61. package/dist/types/components/pro-contract-template-designer/src/utils/template-renderer.d.ts +6 -1
  62. package/dist/types/contract-print-css/index.d.ts +99 -0
  63. package/dist/types/contract-print.d.ts +2 -0
  64. package/package.json +16 -5
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`),require(`../../pro-contract-template-designer/src/utils/contract-print-document.cjs`);const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`),r=require(`./location-rules.cjs`),i=require(`./ContractSigningLocationCanvas.cjs`),a=require(`./ContractSigningLocationInspector.cjs`),o=require(`./ContractSigningLocationNavigator.cjs`),s=require(`./preview-requests.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),u=require(`@ant-design/icons-vue`);var ee={class:`gd-ant-contract-signing-location__header`},te={class:`gd-ant-contract-signing-location__title`},ne={class:`gd-ant-contract-signing-location__header-actions`},re={class:`gd-ant-contract-signing-location__placement-count`},ie={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},ae=[`aria-label`,`aria-expanded`],oe={class:`gd-ant-contract-signing-location__panel-stack`},se=[`aria-label`,`aria-expanded`],ce={class:`gd-ant-contract-signing-location__panel-stack`},le=(0,c.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},mode:{default:`placement`},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>e.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},defaultSealTypes:{default:void 0},referencePlacements:{default:()=>[]},allowedPlacementTypes:{default:()=>[`seal`,`signature`,`date`]},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:8},sealMaxSize:{default:640},height:{default:void 0},showSubmitButton:{type:Boolean,default:!0},showInspector:{type:Boolean,default:void 0},contractFontBaseUrl:{default:void 0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(e,{expose:le,emit:ue}){let d=e,f=ue,p=(0,c.computed)(()=>t.resolveContractSigningSealSizeLimit(d.sealMinSize,d.sealMaxSize)),m=r.normalizeContractSigningLocationValue(d.modelValue??r.createContractSigningLocationValue(d.contractId),{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),h=(0,c.shallowRef)(m),g=(0,c.shallowRef)(r.cloneContractSigningLocationValue(m)),_=(0,c.shallowRef)(m.files[0]?.fileId??``),v=(0,c.shallowRef)(m.files[0]?.pages[0]?.pageIndex??0),y=(0,c.shallowRef)(``),b=(0,c.shallowRef)(!1),x=(0,c.shallowRef)(``),S=(0,c.ref)([]),C=(0,c.ref)({}),w=(0,c.shallowRef)(U(d.zoom)),T=(0,c.ref)(null),E=(0,c.ref)(!1),D=(0,c.ref)(!1),O=(0,c.shallowRef)(`loading`),k=(0,c.shallowRef)(``),A=0,j=!1,M,N=[],P=0,F=new s.ContractSigningPreviewRequests,I=(0,c.computed)(()=>d.mode===`preview`),de=(0,c.computed)(()=>I.value||d.readonly||d.disabled),fe=(0,c.computed)(()=>d.showInspector??!I.value),pe=(0,c.computed)(()=>!I.value&&d.showSubmitButton),me=(0,c.computed)(()=>h.value.files.length<=1),he=(0,c.computed)(()=>Qe(d.height)),L=(0,c.computed)(()=>h.value.files.find(e=>e.fileId===_.value)??h.value.files[0]),R=(0,c.computed)(()=>n.isContractSigningTemplateFile(L.value)&&O.value!==`ready`),z=(0,c.computed)(()=>!R.value||I.value?``:O.value===`loading`?`合同排版校验中,暂不可指定签署位置`:He(k.value)),ge=(0,c.computed)(()=>O.value===`error`&&z.value?z.value:x.value||z.value),_e=(0,c.computed)(()=>!!(x.value&&d.dataProvider&&d.contractId)&&!(O.value===`error`&&z.value)),B=(0,c.computed)(()=>de.value||R.value),V=(0,c.computed)(()=>L.value?.pages.find(e=>e.pageIndex===v.value)??L.value?.pages[0]),ve=(0,c.computed)(()=>{let e=L.value;return e?h.value.placements.filter(t=>t.fileId===e.fileId):[]}),ye=(0,c.computed)(()=>{let e=L.value;return e?d.referencePlacements.filter(t=>t.fileId===e.fileId):[]}),H=(0,c.computed)(()=>h.value.placements.find(e=>e.id===y.value)),be=(0,c.computed)(()=>{let e=H.value;return e?r.findContractSigningPage(h.value,e.fileId,e.pageIndex)??V.value:V.value}),xe=(0,c.computed)(()=>S.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),Se=(0,c.computed)(()=>Object.keys(C.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),Ce=(0,c.computed)(()=>S.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),we=(0,c.computed)(()=>{let e={};return Object.entries(C.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,c.watch)(()=>d.modelValue,e=>{if(!e)return;let t=r.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});$(t)!==$(h.value)&&(Q(),h.value=t,g.value=r.cloneContractSigningLocationValue(t),X(),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)))},{deep:!0}),(0,c.watch)(p,()=>{$(r.normalizeContractSigningLocationValue(h.value,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}))!==$(h.value)&&W(h.value)}),(0,c.watch)(()=>d.zoom,e=>{w.value=U(e)}),(0,c.watch)(()=>L.value?.fileId,()=>{O.value=n.isContractSigningTemplateFile(L.value)?`loading`:`ready`,k.value=``}),(0,c.watch)(()=>[d.contractId,d.dataProvider,d.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&G()},{immediate:!0}),(0,c.onBeforeUnmount)(()=>{j=!0,A+=1,qe(),Q()});function U(e){let n=Math.min(d.minZoom,d.maxZoom),r=Math.max(d.minZoom,d.maxZoom);return t.clampContractSigningZoom(e,n,r)}function Te(e){let t=U(e);w.value=t,f(`update:zoom`,t)}function Ee(){return T.value?.fitWidth()??w.value}function W(e,t={}){h.value=r.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),t.clearError!==!1&&(x.value=``),X();let n=r.cloneContractSigningLocationValue(h.value);return f(`update:modelValue`,n),f(`change`,n),n}async function G(){let e=String(d.contractId||h.value.contractId||``).trim();if(!d.dataProvider)return Z({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return Z({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let n=++A;Q(),b.value=!0,x.value=``;try{let i=await d.dataProvider.loadContract({contractId:e});if(j||n!==A)return!1;let a=r.normalizeContractSigningProviderValue(i,t.normalizeContractSigningCoordinateScale(d.dataProvider.coordinateScale)),o=r.normalizeContractSigningLocationValue({...a,contractId:e,placements:a.placements.length?a.placements:h.value.contractId===e?h.value.placements:[]},{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});h.value=o,g.value=r.cloneContractSigningLocationValue(o),y.value=``,X();let s=r.cloneContractSigningLocationValue(o);return f(`update:modelValue`,s),f(`change`,s),f(`ready`,s),De(),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)),s}catch(e){return j||n!==A||Z(We(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!j&&n===A&&(b.value=!1)}}async function De(){d.dataProvider?.loadPagePreview&&await Promise.allSettled(h.value.files.map(e=>{if(n.isContractSigningTemplateFile(e))return Promise.resolve();let t=r.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?K(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function K(e,i,a){let o=d.dataProvider?.loadPagePreview,s=h.value.files.find(t=>t.fileId===e),c=r.findContractSigningPage(h.value,e,i),l=Ge(e,i,a);if(!o||n.isContractSigningTemplateFile(s)||!c||S.value.includes(l))return;Ke(l),S.value=[...S.value,l];let u=F.start(l);try{let n=await o({contractId:h.value.contractId||d.contractId,fileId:e,pageIndex:i,thumbnail:a,signal:u.signal});if(j||!F.isCurrent(l,u)||!r.findContractSigningPage(h.value,e,i))return;let s=r.findContractSigningPage(h.value,e,i),c=r.resolveContractSigningPreviewPageSize(s,n,t.normalizeContractSigningCoordinateScale(d.dataProvider?.coordinateScale),a),ee=h.value.files.map(t=>t.fileId===e?{...t,pages:t.pages.map(e=>e.pageIndex===i?{...e,...c||{},...a?{thumbnailUrl:n.url}:{previewUrl:n.url}}:e)}:t);W({...h.value,files:ee},{clearError:!1})}catch(t){if(!F.isCurrent(l,u)||Je(t))return;let n=We(t,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:i});f(`error`,n),C.value={...C.value,[l]:n.message}}finally{F.finish(l,u)&&(S.value=S.value.filter(e=>e!==l))}}function Oe(e){if(e===_.value)return;let t=_.value;qe(),t&&(Q(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),N=N.filter(t=>t.fileId===e)),_.value=e;let n=h.value.files.find(t=>t.fileId===e);v.value=r.getContractSigningHomePage(n?.pages)?.pageIndex??0,y.value=``,f(`file-change`,e),f(`page-change`,e,v.value),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value))}function ke(e){v.value=e}function Ae(e){v.value!==e&&(v.value=e),f(`page-change`,_.value,e)}function je(e){qe();let t=_.value;M=setTimeout(()=>{M=void 0,_.value===t&&Me(t,e)},150)}function Me(e,t){let r=h.value.files.find(t=>t.fileId===e);!r||n.isContractSigningTemplateFile(r)||e!==_.value||(t.forEach(e=>{let t=r.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||S.value.includes(Ge(r.fileId,e,!1))||N.some(t=>t.fileId===r.fileId&&t.pageIndex===e)||N.push({fileId:r.fileId,pageIndex:e})}),Ne())}async function Ne(){let e=_.value;for(N=N.filter(t=>t.fileId===e);P<3&&N.length;){let t=N.shift();if(!t||t.fileId!==e)continue;let i=r.findContractSigningPage(h.value,t.fileId,t.pageIndex),a=h.value.files.find(e=>e.fileId===t.fileId);!i||n.isContractSigningTemplateFile(a)||i.previewUrl||S.value.includes(Ge(t.fileId,t.pageIndex,!1))||(P+=1,K(t.fileId,t.pageIndex,!1).finally(()=>{P=Math.max(0,P-1),Ne()}))}}function Pe(e){let t=h.value.placements.find(t=>t.id===e);t&&(t.fileId!==_.value&&Oe(t.fileId),y.value=e,(0,c.nextTick)(()=>T.value?.scrollToPlacement(e)))}function q(e,t={}){if(B.value||!d.allowedPlacementTypes.includes(e))return;let n=t.fileId??L.value?.fileId,i=t.pageIndex??V.value?.pageIndex;if(!n||i===void 0)return;let a=r.findContractSigningPage(h.value,n,i);if(!a||!r.isContractSigningPageUsable(a)){Z({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:n,pageIndex:i});return}let o=r.resolveContractSigningDefaultSealTypes(d.defaultSealTypes,d.sealTypeOptions);if(e===`seal`&&!o.length){Z({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:n,pageIndex:i});return}let s=r.createContractSigningPlacement(e,n,a,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:d.sizeProfile,sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions,...e===`seal`?{sealType:o}:{}});return W({...h.value,placements:[...h.value.placements,s]}),_.value=n,v.value=i,y.value=s.id,Xe(s)}function Fe(e,t){B.value||W({...h.value,placements:h.value.placements.map(n=>{if(n.id!==e)return n;let i=t.pageIndex===void 0?n.pageIndex:t.pageIndex,a=r.findContractSigningPage(h.value,n.fileId,i);return r.patchContractSigningPlacement(n,t,a,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions})})})}function Ie(){let e=H.value;if(!e||B.value)return;let n=r.findContractSigningPage(h.value,e.fileId,e.pageIndex);if(!n)return;let i=t.clampContractSigningPlacement({...Xe(e),id:Ze(),signLeft:e.signLeft+16,signTop:e.signTop+16},n,{sealSizeLimit:p.value});W({...h.value,placements:[...h.value.placements,i]}),y.value=i.id}function J(e){B.value||(W({...h.value,placements:h.value.placements.filter(t=>t.id!==e)}),y.value===e&&(y.value=``))}function Le(){let e=r.validateContractSigningLocationValue(h.value,{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)});return R.value?[...e,{code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:Y()}]:e}function Re(){return r.cloneContractSigningLocationValue(h.value)}function ze(){if(R.value)throw new r.ContractSigningLocationBuildError([{code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:Y()}]);return r.buildContractSigningLocationOutput(Re(),{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)})}function Be(){if(R.value){let e=Y();return console.error(`[GD-SIGN-COORD]`,e),Z({code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:z.value||e}),!1}try{let e=ze();return x.value=``,f(`submit`,e),e}catch(e){return Z(e instanceof r.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:We(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function Ve(e,t){O.value=e,k.value=e===`error`?t||`合同排版度量校验失败`:``}function He(e){let t=e.match(/第\s*(\d+)\s*页正文超出纸张/);return t?`第 ${t[1]} 页正文超出纸张,请回模板设计器调整后重试`:e.includes(`合同排版度量不一致`)?`当前浏览器的字体宽度与签署坐标要求不一致。请把缩放调回 100%,使用 Chrome 或 Edge,并确认已安装宋体和 Times New Roman(或 Liberation Serif)后刷新。缩放和字体都正常时,请联系管理员核对本机字体度量。`:e.includes(`超时`)?`合同排版校验超时。请刷新后重试;仍失败时请关闭拦截字体的扩展,或改用 Chrome、Edge。`:e.includes(`合同打印页节点不存在`)?`合同底图没有加载完整。请刷新后重新打开这份模板。`:`合同排版校验未通过。请刷新后重试;若反复出现,请让管理员查看控制台中以 [GD-SIGN-COORD] 开头的记录。`}function Y(){return O.value===`error`?k.value||`合同排版度量校验失败,禁止生成签署坐标`:`合同排版度量校验中,请稍后再保存签署坐标`}function Ue(){if(B.value)return r.cloneContractSigningLocationValue(h.value);let e=W(r.cloneContractSigningLocationValue(g.value));return y.value=``,X(!0),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)),e}function X(e=!1){let t=(e?void 0:h.value.files.find(e=>e.fileId===_.value))??h.value.files[0];_.value=t?.fileId??``,v.value=((e?void 0:t?.pages.find(e=>e.pageIndex===v.value))??t?.pages[0])?.pageIndex??0,h.value.placements.some(e=>e.id===y.value)||(y.value=``)}function Z(e){x.value=e.message,f(`error`,e)}function We(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function Ge(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function Ke(e){if(!(e in C.value))return;let t={...C.value};delete t[e],C.value=t}function qe(){M&&=(clearTimeout(M),void 0)}function Q(e){let t=e??(()=>!0),n=new Set(F.abort(t));n.size&&(S.value=S.value.filter(e=>!n.has(e))),e||(N=[])}function Je(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function Ye(e){let t=L.value;t&&K(t.fileId,e,!1)}function Xe(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function Ze(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Qe(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return le({load:G,validate:Le,getValue:Re,getOutput:ze,submit:Be,reset:Ue,addPlacement:q,removePlacement:J,fitWidth:Ee}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":de.value,"is-disabled":e.disabled,"is-preview":I.value}]),style:(0,c.normalizeStyle)(he.value)},[(0,c.createElementVNode)(`header`,ee,[(0,c.createElementVNode)(`div`,te,[n[6]||=(0,c.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,null,[(0,c.createElementVNode)(`strong`,null,(0,c.toDisplayString)(I.value?`合同预览`:`指定合同签署位置`),1)])]),(0,c.createElementVNode)(`div`,ne,[(0,c.createElementVNode)(`span`,re,(0,c.toDisplayString)(h.value.placements.length)+` 个位置`,1),e.dataProvider?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,loading:b.value,onClick:G},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(u.ReloadOutlined),{"aria-hidden":`true`}),n[7]||=(0,c.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,c.createCommentVNode)(``,!0),I.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:1,disabled:B.value,onClick:Ue},{default:(0,c.withCtx)(()=>[...n[8]||=[(0,c.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`])),pe.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:2,type:`primary`,loading:b.value,disabled:e.disabled||R.value,onClick:Be},{default:(0,c.withCtx)(()=>[...n[9]||=[(0,c.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])):(0,c.createCommentVNode)(``,!0)])]),ge.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,ie,[(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(ge.value),1),_e.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,type:`link`,size:`small`,onClick:G},{default:(0,c.withCtx)(()=>[...n[10]||=[(0,c.createTextVNode)(`重试`,-1)]]),_:1})):(0,c.createCommentVNode)(``,!0)])):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":me.value,"is-inspector-hidden":!fe.value}])},[me.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":D.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:D.value?`展开页面栏`:`收起页面栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":D.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!D.value,onClick:n[0]||=e=>D.value=!D.value},[D.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:1,"aria-hidden":`true`}))],8,ae)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,oe,[(0,c.createVNode)(o.default,{files:h.value.files,"active-file-id":_.value,"loading-preview-keys":xe.value,"error-preview-keys":Se.value,onSelect:Oe},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,c.createVNode)(i.default,{ref_key:`canvasRef`,ref:T,file:L.value,pages:L.value?.pages??[],placements:ve.value,"reference-placements":ye.value,"selected-placement-id":y.value,readonly:B.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,zoom:w.value,"preview-loading-keys":Ce.value,"preview-error-map":we.value,"active-page-index":v.value,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,"font-base-url":e.contractFontBaseUrl,onSelect:n[1]||=e=>y.value=e,onRetry:Ye,onAdd:n[2]||=(e,t,n,r)=>q(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:n[3]||=e=>Fe(e.id,e),onRemove:J,onVisiblePages:je,onViewPage:ke,onPageChange:Ae,onZoomChange:Te,onTemplateStatus:Ve},null,8,[`file`,`pages`,`placements`,`reference-placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`,`font-base-url`]),fe.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:1,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":E.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:E.value?`展开属性栏`:`收起属性栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":E.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!E.value,onClick:n[4]||=e=>E.value=!E.value},[E.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:1,"aria-hidden":`true`}))],8,se)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,ce,[(0,c.createVNode)(a.default,{placement:H.value,page:be.value,pages:L.value?.pages??[],placements:ve.value,readonly:B.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,"allowed-placement-types":e.allowedPlacementTypes,"size-profile":e.sizeProfile,onAdd:q,onUpdate:n[5]||=e=>H.value&&Fe(H.value.id,e),onDuplicate:Ie,onRemove:J,onLocate:Pe},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`allowed-placement-types`,`size-profile`])])],2)):(0,c.createCommentVNode)(``,!0)],2)],6))}});exports.default=le;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`),require(`../../pro-contract-template-designer/src/utils/contract-print-document.cjs`);const e=require(`./constants.cjs`),t=require(`./coordinates.cjs`),n=require(`../../pro-contract-template-designer/src/utils/contract-layout-check.cjs`),r=require(`./template-source.cjs`),i=require(`./location-rules.cjs`),a=require(`./ContractSigningLocationCanvas.cjs`),o=require(`./ContractSigningLocationInspector.cjs`),s=require(`./ContractSigningLocationNavigator.cjs`),ee=require(`./preview-requests.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),u=require(`@ant-design/icons-vue`);var te={class:`gd-ant-contract-signing-location__header`},ne={class:`gd-ant-contract-signing-location__title`},re={class:`gd-ant-contract-signing-location__header-actions`},ie={class:`gd-ant-contract-signing-location__placement-count`},ae={key:0,class:`gd-ant-contract-signing-location__error`,role:`alert`},oe=[`aria-label`,`aria-expanded`],se={class:`gd-ant-contract-signing-location__panel-stack`},ce=[`aria-label`,`aria-expanded`],le={class:`gd-ant-contract-signing-location__panel-stack`},ue=`正在校验排版,请稍后再确认签署位置`,de=(0,c.defineComponent)({name:`ContractSigningLocation`,__name:`ContractSigningLocation`,props:{modelValue:{default:void 0},mode:{default:`placement`},contractId:{default:``},dataProvider:{default:void 0},sealTypeOptions:{default:()=>e.CONTRACT_SIGNING_SEAL_TYPE_OPTIONS.map(e=>({...e}))},defaultSealTypes:{default:void 0},referencePlacements:{default:()=>[]},allowedPlacementTypes:{default:()=>[`seal`,`signature`,`date`]},sizeProfile:{default:`default`},autoLoad:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},minZoom:{default:.5},maxZoom:{default:1.5},zoom:{default:1},resizable:{type:Boolean,default:!1},sealMinSize:{default:8},sealMaxSize:{default:640},height:{default:void 0},showSubmitButton:{type:Boolean,default:!0},showInspector:{type:Boolean,default:void 0},contractFontBaseUrl:{default:void 0}},emits:[`update:modelValue`,`update:zoom`,`change`,`ready`,`file-change`,`page-change`,`submit`,`error`],setup(e,{expose:de,emit:fe}){let d=e,f=fe,p=(0,c.computed)(()=>t.resolveContractSigningSealSizeLimit(d.sealMinSize,d.sealMaxSize)),m=i.normalizeContractSigningLocationValue(d.modelValue??i.createContractSigningLocationValue(d.contractId),{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),h=(0,c.shallowRef)(m),g=(0,c.shallowRef)(i.cloneContractSigningLocationValue(m)),_=(0,c.shallowRef)(m.files[0]?.fileId??``),v=(0,c.shallowRef)(m.files[0]?.pages[0]?.pageIndex??0),y=(0,c.shallowRef)(``),b=(0,c.shallowRef)(!1),x=(0,c.shallowRef)(``),S=(0,c.ref)([]),C=(0,c.ref)({}),w=(0,c.shallowRef)(Me(d.zoom)),T=(0,c.ref)(null),E=(0,c.ref)(!1),D=(0,c.ref)(!1),O=(0,c.shallowRef)(`loading`),k=(0,c.shallowRef)(``),pe=n.createContractTemplateLayoutChecker(),A=(0,c.shallowRef)({status:`ready`,issues:[],messages:[]}),j,me=0,M=0,N=!1,P,F=[],I=0,L=new ee.ContractSigningPreviewRequests,R=(0,c.computed)(()=>d.mode===`preview`),he=(0,c.computed)(()=>R.value||d.readonly||d.disabled),ge=(0,c.computed)(()=>d.showInspector??!R.value),_e=(0,c.computed)(()=>!R.value&&d.showSubmitButton),ve=(0,c.computed)(()=>h.value.files.length<=1),ye=(0,c.computed)(()=>ut(d.height)),z=(0,c.computed)(()=>h.value.files.find(e=>e.fileId===_.value)??h.value.files[0]),B=(0,c.computed)(()=>r.isContractSigningTemplateFile(z.value)&&O.value!==`ready`),V=(0,c.computed)(()=>A.value.status===`checking`),be=(0,c.computed)(()=>{let e=z.value?.fileId;return A.value.issues.filter(t=>t.fileId===e)}),H=(0,c.computed)(()=>{let e=A.value;return e.status===`ready`?[]:e.status===`checking`?[{code:`CONTRACT_LAYOUT_CHECKING`,message:ue}]:e.issues.length?e.issues.map(e=>({code:e.kind===`measure-failed`?`CONTRACT_PAGE_LAYOUT_UNVERIFIED`:`CONTRACT_PAGE_LAYOUT_OVERFLOW`,message:Je(e),...e.fileId===void 0?{}:{fileId:e.fileId},pageIndex:e.pageIndex})):[{code:`CONTRACT_PAGE_LAYOUT_UNVERIFIED`,message:`合同排版校验失败,请刷新后重试`}]}),xe=(0,c.computed)(()=>A.value.status===`error`?A.value.messages[0]??``:``),U=(0,c.computed)(()=>!B.value||R.value?``:O.value===`loading`?`合同排版校验中,暂不可指定签署位置`:et(k.value)),Se=(0,c.computed)(()=>O.value===`error`&&U.value?U.value:x.value||U.value||xe.value),Ce=(0,c.computed)(()=>!!(x.value&&d.dataProvider&&d.contractId)&&!(O.value===`error`&&U.value)),W=(0,c.computed)(()=>he.value||B.value),we=(0,c.computed)(()=>z.value?.pages.find(e=>e.pageIndex===v.value)??z.value?.pages[0]),Te=(0,c.computed)(()=>{let e=z.value;return e?h.value.placements.filter(t=>t.fileId===e.fileId):[]}),Ee=(0,c.computed)(()=>{let e=z.value;return e?d.referencePlacements.filter(t=>t.fileId===e.fileId):[]}),G=(0,c.computed)(()=>h.value.placements.find(e=>e.id===y.value)),De=(0,c.computed)(()=>{let e=G.value;return e?i.findContractSigningPage(h.value,e.fileId,e.pageIndex)??we.value:we.value}),Oe=(0,c.computed)(()=>S.value.filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),ke=(0,c.computed)(()=>Object.keys(C.value).filter(e=>e.endsWith(`:thumbnail`)).map(e=>e.slice(0,-10))),Ae=(0,c.computed)(()=>S.value.filter(e=>e.endsWith(`:preview`)).map(e=>e.slice(0,-8))),je=(0,c.computed)(()=>{let e={};return Object.entries(C.value).forEach(([t,n])=>{t.endsWith(`:preview`)&&(e[t.slice(0,-8)]=n)}),e});(0,c.watch)(()=>d.modelValue,e=>{if(!e)return;let t=i.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});$(t)!==$(h.value)&&(Q(),h.value=t,g.value=i.cloneContractSigningLocationValue(t),Y(),J(),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)))},{deep:!0}),(0,c.watch)(p,()=>{$(i.normalizeContractSigningLocationValue(h.value,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}))!==$(h.value)&&K(h.value)}),(0,c.watch)(()=>d.zoom,e=>{w.value=Me(e)}),(0,c.watch)(()=>z.value?.fileId,()=>{O.value=r.isContractSigningTemplateFile(z.value)?`loading`:`ready`,k.value=``}),J(),(0,c.watch)(()=>[d.contractId,d.dataProvider,d.autoLoad],([e,t,n],r)=>{!n||!t||!e||(!r||e!==r[0]||t!==r[1])&&q()},{immediate:!0}),(0,c.onBeforeUnmount)(()=>{N=!0,M+=1,at(),Q(),j?.abort(),pe.dispose()});function Me(e){let n=Math.min(d.minZoom,d.maxZoom),r=Math.max(d.minZoom,d.maxZoom);return t.clampContractSigningZoom(e,n,r)}function Ne(e){let t=Me(e);w.value=t,f(`update:zoom`,t)}function Pe(){return T.value?.fitWidth()??w.value}function K(e,t={}){let n=e.files!==h.value.files;h.value=i.normalizeContractSigningLocationValue(e,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions}),t.clearError!==!1&&(x.value=``),Y(),n&&J();let r=i.cloneContractSigningLocationValue(h.value);return f(`update:modelValue`,r),f(`change`,r),r}async function q(){let e=String(d.contractId||h.value.contractId||``).trim();if(!d.dataProvider)return X({code:`CONTRACT_PROVIDER_MISSING`,message:`未配置合同数据提供器,请由宿主传入文件数据`}),!1;if(!e)return X({code:`CONTRACT_ID_MISSING`,message:`缺少用于加载合同的 PaaS contractId`}),!1;let n=++M;Q(),b.value=!0,x.value=``;try{let r=await d.dataProvider.loadContract({contractId:e});if(N||n!==M)return!1;let a=i.normalizeContractSigningProviderValue(r,t.normalizeContractSigningCoordinateScale(d.dataProvider.coordinateScale)),o=i.normalizeContractSigningLocationValue({...a,contractId:e,placements:a.placements.length?a.placements:h.value.contractId===e?h.value.placements:[]},{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions});h.value=o,g.value=i.cloneContractSigningLocationValue(o),y.value=``,Y(),J();let s=i.cloneContractSigningLocationValue(o);return f(`update:modelValue`,s),f(`change`,s),f(`ready`,s),Fe(),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)),s}catch(e){return N||n!==M||X(Z(e,`CONTRACT_LOAD_FAILED`,`合同加载失败,请检查授权后重试`)),!1}finally{!N&&n===M&&(b.value=!1)}}async function Fe(){d.dataProvider?.loadPagePreview&&await Promise.allSettled(h.value.files.map(e=>{if(r.isContractSigningTemplateFile(e))return Promise.resolve();let t=i.getContractSigningHomePage(e.pages);return t&&!t.thumbnailUrl?Ie(e.fileId,t.pageIndex,!0):Promise.resolve()}))}async function Ie(e,n,a){let o=d.dataProvider?.loadPagePreview,s=h.value.files.find(t=>t.fileId===e),ee=i.findContractSigningPage(h.value,e,n),c=rt(e,n,a);if(!o||r.isContractSigningTemplateFile(s)||!ee||S.value.includes(c))return;it(c),S.value=[...S.value,c];let l=L.start(c);try{let r=await o({contractId:h.value.contractId||d.contractId,fileId:e,pageIndex:n,thumbnail:a,signal:l.signal});if(N||!L.isCurrent(c,l)||!i.findContractSigningPage(h.value,e,n))return;let s=i.findContractSigningPage(h.value,e,n),ee=i.resolveContractSigningPreviewPageSize(s,r,t.normalizeContractSigningCoordinateScale(d.dataProvider?.coordinateScale),a),u=h.value.files.map(t=>t.fileId===e?{...t,pages:t.pages.map(e=>e.pageIndex===n?{...e,...ee||{},...a?{thumbnailUrl:r.url}:{previewUrl:r.url}}:e)}:t);K({...h.value,files:u},{clearError:!1})}catch(t){if(!L.isCurrent(c,l)||ot(t))return;let r=Z(t,`CONTRACT_PREVIEW_FAILED`,`合同页面预览加载失败,可切换页面或重试`,{fileId:e,pageIndex:n});f(`error`,r),C.value={...C.value,[c]:r.message}}finally{L.finish(c,l)&&(S.value=S.value.filter(e=>e!==c))}}function Le(e){if(e===_.value)return;let t=_.value;at(),t&&(Q(e=>e.startsWith(`${t}:`)&&e.endsWith(`:preview`)),F=F.filter(t=>t.fileId===e)),_.value=e;let n=h.value.files.find(t=>t.fileId===e);v.value=i.getContractSigningHomePage(n?.pages)?.pageIndex??0,y.value=``,f(`file-change`,e),f(`page-change`,e,v.value),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value))}function Re(e){v.value=e}function ze(e){v.value!==e&&(v.value=e),f(`page-change`,_.value,e)}function Be(e){at();let t=_.value;P=setTimeout(()=>{P=void 0,_.value===t&&Ve(t,e)},150)}function Ve(e,t){let n=h.value.files.find(t=>t.fileId===e);!n||r.isContractSigningTemplateFile(n)||e!==_.value||(t.forEach(e=>{let t=n.pages.find(t=>t.pageIndex===e);!t||t.previewUrl||S.value.includes(rt(n.fileId,e,!1))||F.some(t=>t.fileId===n.fileId&&t.pageIndex===e)||F.push({fileId:n.fileId,pageIndex:e})}),He())}async function He(){let e=_.value;for(F=F.filter(t=>t.fileId===e);I<3&&F.length;){let t=F.shift();if(!t||t.fileId!==e)continue;let n=i.findContractSigningPage(h.value,t.fileId,t.pageIndex),a=h.value.files.find(e=>e.fileId===t.fileId);!n||r.isContractSigningTemplateFile(a)||n.previewUrl||S.value.includes(rt(t.fileId,t.pageIndex,!1))||(I+=1,Ie(t.fileId,t.pageIndex,!1).finally(()=>{I=Math.max(0,I-1),He()}))}}function Ue(e){let t=h.value.placements.find(t=>t.id===e);t&&(t.fileId!==_.value&&Le(t.fileId),y.value=e,(0,c.nextTick)(()=>T.value?.scrollToPlacement(e)))}function We(e,t={}){if(W.value||!d.allowedPlacementTypes.includes(e))return;let n=t.fileId??z.value?.fileId,r=t.pageIndex??we.value?.pageIndex;if(!n||r===void 0)return;let a=i.findContractSigningPage(h.value,n,r);if(!a||!i.isContractSigningPageUsable(a)){X({code:`CONTRACT_PAGE_SIZE_INVALID`,message:`当前页面缺少有效的原始宽高,暂时不能添加签署位置`,fileId:n,pageIndex:r});return}let o=i.resolveContractSigningDefaultSealTypes(d.defaultSealTypes,d.sealTypeOptions);if(e===`seal`&&!o.length){X({code:`CONTRACT_SEAL_TYPES_MISSING`,message:`当前未配置可用的印章类型,暂时不能添加印章位置`,fileId:n,pageIndex:r});return}let s=i.createContractSigningPlacement(e,n,a,{signLeft:t.signLeft,signTop:t.signTop,sizeProfile:d.sizeProfile,sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions,...e===`seal`?{sealType:o}:{}});return K({...h.value,placements:[...h.value.placements,s]}),_.value=n,v.value=r,y.value=s.id,ct(s)}function Ge(e,t){W.value||K({...h.value,placements:h.value.placements.map(n=>{if(n.id!==e)return n;let r=t.pageIndex===void 0?n.pageIndex:t.pageIndex,a=i.findContractSigningPage(h.value,n.fileId,r);return i.patchContractSigningPlacement(n,t,a,{sealSizeLimit:p.value,sealTypeOptions:d.sealTypeOptions})})})}function Ke(){let e=G.value;if(!e||W.value)return;let n=i.findContractSigningPage(h.value,e.fileId,e.pageIndex);if(!n)return;let r=t.clampContractSigningPlacement({...ct(e),id:lt(),signLeft:e.signLeft+16,signTop:e.signTop+16},n,{sealSizeLimit:p.value});K({...h.value,placements:[...h.value.placements,r]}),y.value=r.id}function qe(e){W.value||(K({...h.value,placements:h.value.placements.filter(t=>t.id!==e)}),y.value===e&&(y.value=``))}function Je(e){let t=h.value.files.find(t=>t.fileId===e.fileId)?.fileName,r=n.describeContractTemplateLayoutIssue(e,`generate`)[0]??`合同排版校验未通过`;return t?`${t}:${r}`:r}function J(){j?.abort();let e=++me,t=[];for(let e of h.value.files)r.isContractSigningTemplateSource(e.source)&&t.push({fileId:e.fileId,template:e.source.template,...e.source.values?{values:e.source.values}:{},layoutPages:r.buildContractSigningLayoutPages(e.fileId,e.source)});if(!t.length){j=void 0,A.value={status:`ready`,issues:[],messages:[]};return}let i=new AbortController;j=i,A.value={status:`checking`,issues:[],messages:[]},pe.check(t,{signal:i.signal}).then(t=>{N||e!==me||(A.value=t.length?{status:`error`,issues:t,messages:t.map(e=>Je(e))}:{status:`ready`,issues:[],messages:[]})},t=>{N||e!==me||n.isContractTemplateLayoutAbortError(t)||(A.value={status:`error`,issues:[],messages:[`合同排版校验失败,请刷新后重试`]})})}function Ye(){let e=i.validateContractSigningLocationValue(h.value,{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)});return[...B.value&&!V.value?[...e,{code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:tt()}]:e,...H.value]}function Xe(){return i.cloneContractSigningLocationValue(h.value)}function Ze(){if(V.value)throw new i.ContractSigningLocationBuildError(H.value);if(B.value)throw new i.ContractSigningLocationBuildError([{code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:tt()}]);if(H.value.length)throw new i.ContractSigningLocationBuildError(H.value);return i.buildContractSigningLocationOutput(Xe(),{allowedSealTypes:d.sealTypeOptions.map(e=>e.value)})}function Qe(){if(V.value)return X(H.value[0]),!1;if(B.value){let e=tt();return console.error(`[GD-SIGN-COORD]`,e),X({code:`CONTRACT_TEMPLATE_FONT_UNAVAILABLE`,message:U.value||e}),!1}let e=H.value;if(e.length)return e[0].code!==`CONTRACT_LAYOUT_CHECKING`&&console.error(`[GD-SIGN-COORD]`,e.map(e=>e.message).join(`;`)),X(e[0]),!1;try{let e=Ze();return x.value=``,f(`submit`,e),e}catch(e){return X(e instanceof i.ContractSigningLocationBuildError?{...e.errors[0],cause:e}:Z(e,`CONTRACT_SIGNING_LOCATION_INVALID`,`指定签署位置数据不完整`)),!1}}function $e(e,t){O.value=e,k.value=e===`error`?t||`合同排版度量校验失败`:``}function et(e){let t=e.match(/第\s*(\d+)\s*页正文超出纸张/);return t?`第 ${t[1]} 页正文超出纸张,请回模板设计器调整后重试`:e.includes(`合同排版度量不一致`)?`当前浏览器的字体宽度与签署坐标要求不一致。请把缩放调回 100%,使用 Chrome 或 Edge,并确认已安装宋体和 Times New Roman(或 Liberation Serif)后刷新。缩放和字体都正常时,请联系管理员核对本机字体度量。`:e.includes(`超时`)?`合同排版校验超时。请刷新后重试;仍失败时请关闭拦截字体的扩展,或改用 Chrome、Edge。`:e.includes(`合同打印页节点不存在`)?`合同底图没有加载完整。请刷新后重新打开这份模板。`:e.includes(`合同图片加载失败`)?`合同底图中有图片未能加载。请确认图片地址可以正常访问,刷新后重新打开这份模板。`:e.includes(`无法确认排版`)?`${e}。请刷新后重试;仍失败时请让管理员查看控制台中以 [GD-SIGN-COORD] 开头的记录。`:`合同排版校验未通过。请刷新后重试;若反复出现,请让管理员查看控制台中以 [GD-SIGN-COORD] 开头的记录。`}function tt(){return O.value===`error`?k.value||`合同排版度量校验失败,禁止生成签署坐标`:`合同排版度量校验中,请稍后再保存签署坐标`}function nt(){if(W.value)return i.cloneContractSigningLocationValue(h.value);let e=K(i.cloneContractSigningLocationValue(g.value));return y.value=``,Y(!0),(0,c.nextTick)(()=>T.value?.scrollToPage(v.value)),e}function Y(e=!1){let t=(e?void 0:h.value.files.find(e=>e.fileId===_.value))??h.value.files[0];_.value=t?.fileId??``,v.value=((e?void 0:t?.pages.find(e=>e.pageIndex===v.value))??t?.pages[0])?.pageIndex??0,h.value.placements.some(e=>e.id===y.value)||(y.value=``)}function X(e){x.value=e.message,f(`error`,e)}function Z(e,t,n,r={}){let i=typeof e==`object`&&e&&`status`in e?Number(e.status):void 0;return{code:t,message:i===401||i===403?`授权已失效,请重新获取签署凭证`:e instanceof Error&&e.message?e.message:n,...r,cause:e}}function rt(e,t,n){return`${e}:${t}:${n?`thumbnail`:`preview`}`}function it(e){if(!(e in C.value))return;let t={...C.value};delete t[e],C.value=t}function at(){P&&=(clearTimeout(P),void 0)}function Q(e){let t=e??(()=>!0),n=new Set(L.abort(t));n.size&&(S.value=S.value.filter(e=>!n.has(e))),e||(F=[])}function ot(e){return!!(e&&typeof e==`object`&&`cancelled`in e&&e.cancelled)||e instanceof DOMException&&e.name===`AbortError`}function st(e){let t=z.value;t&&Ie(t.fileId,e,!1)}function ct(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function $(e){return JSON.stringify(e)}function lt(){return typeof crypto<`u`&&`randomUUID`in crypto?`contract-signing-placement-${crypto.randomUUID()}`:`contract-signing-placement-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ut(e){if(typeof e==`number`&&Number.isFinite(e)&&e>0)return{"--gd-ant-contract-signing-location-height":`${e}px`};if(typeof e==`string`&&e.trim())return{"--gd-ant-contract-signing-location-height":e.trim()}}return de({load:q,validate:Ye,getValue:Xe,getOutput:Ze,submit:Qe,reset:nt,addPlacement:We,removePlacement:qe,fitWidth:Pe}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location`,{"is-readonly":he.value,"is-disabled":e.disabled,"is-preview":R.value}]),style:(0,c.normalizeStyle)(ye.value)},[(0,c.createElementVNode)(`header`,te,[(0,c.createElementVNode)(`div`,ne,[n[6]||=(0,c.createElementVNode)(`span`,{class:`gd-ant-contract-signing-location__title-bar`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,null,[(0,c.createElementVNode)(`strong`,null,(0,c.toDisplayString)(R.value?`合同预览`:`指定合同签署位置`),1)])]),(0,c.createElementVNode)(`div`,re,[(0,c.createElementVNode)(`span`,ie,(0,c.toDisplayString)(h.value.placements.length)+` 个位置`,1),e.dataProvider?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,loading:b.value,onClick:q},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(u.ReloadOutlined),{"aria-hidden":`true`}),n[7]||=(0,c.createTextVNode)(` 重新加载 `,-1)]),_:1},8,[`loading`])):(0,c.createCommentVNode)(``,!0),R.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:1,disabled:W.value,onClick:nt},{default:(0,c.withCtx)(()=>[...n[8]||=[(0,c.createTextVNode)(`重置`,-1)]]),_:1},8,[`disabled`])),_e.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:2,type:`primary`,loading:b.value||V.value,disabled:e.disabled||B.value||V.value,onClick:Qe},{default:(0,c.withCtx)(()=>[...n[9]||=[(0,c.createTextVNode)(`确认并生成规则`,-1)]]),_:1},8,[`loading`,`disabled`])):(0,c.createCommentVNode)(``,!0)])]),Se.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,ae,[(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(Se.value),1),Ce.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,type:`link`,size:`small`,onClick:q},{default:(0,c.withCtx)(()=>[...n[10]||=[(0,c.createTextVNode)(`重试`,-1)]]),_:1})):(0,c.createCommentVNode)(``,!0)])):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__body`,{"is-single-file":ve.value,"is-inspector-hidden":!ge.value}])},[ve.value?(0,c.createCommentVNode)(``,!0):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__navigator-wrap`,{"is-collapsed":D.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:D.value?`展开页面栏`:`收起页面栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":D.value?`展开页面栏`:`收起页面栏`,"aria-expanded":!D.value,onClick:n[0]||=e=>D.value=!D.value},[D.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:1,"aria-hidden":`true`}))],8,oe)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,se,[(0,c.createVNode)(s.default,{files:h.value.files,"active-file-id":_.value,"loading-preview-keys":Oe.value,"error-preview-keys":ke.value,onSelect:Le},null,8,[`files`,`active-file-id`,`loading-preview-keys`,`error-preview-keys`])])],2)),(0,c.createVNode)(a.default,{ref_key:`canvasRef`,ref:T,file:z.value,pages:z.value?.pages??[],placements:Te.value,"reference-placements":Ee.value,"selected-placement-id":y.value,readonly:W.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,zoom:w.value,"preview-loading-keys":Ae.value,"preview-error-map":je.value,"active-page-index":v.value,"min-zoom":e.minZoom,"max-zoom":e.maxZoom,"font-base-url":e.contractFontBaseUrl,"layout-issues":be.value,"layout-checking":V.value,onSelect:n[1]||=e=>y.value=e,onRetry:st,onAdd:n[2]||=(e,t,n,r)=>We(e,{signLeft:t,signTop:n,pageIndex:r}),onUpdate:n[3]||=e=>Ge(e.id,e),onRemove:qe,onVisiblePages:Be,onViewPage:Re,onPageChange:ze,onZoomChange:Ne,onTemplateStatus:$e},null,8,[`file`,`pages`,`placements`,`reference-placements`,`selected-placement-id`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`zoom`,`preview-loading-keys`,`preview-error-map`,`active-page-index`,`min-zoom`,`max-zoom`,`font-base-url`,`layout-issues`,`layout-checking`]),ge.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:1,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__inspector-wrap`,{"is-collapsed":E.value}])},[(0,c.createVNode)((0,c.unref)(l.Tooltip),{title:E.value?`展开属性栏`:`收起属性栏`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-ant-contract-signing-location__panel-handle`,"aria-label":E.value?`展开属性栏`:`收起属性栏`,"aria-expanded":!E.value,onClick:n[4]||=e=>E.value=!E.value},[E.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ce)]),_:1},8,[`title`]),(0,c.createElementVNode)(`div`,le,[(0,c.createVNode)(o.default,{placement:G.value,page:De.value,pages:z.value?.pages??[],placements:Te.value,readonly:W.value,resizable:e.resizable,"seal-size-limit":p.value,"seal-type-options":e.sealTypeOptions,"allowed-placement-types":e.allowedPlacementTypes,"size-profile":e.sizeProfile,onAdd:We,onUpdate:n[5]||=e=>G.value&&Ge(G.value.id,e),onDuplicate:Ke,onRemove:qe,onLocate:Ue},null,8,[`placement`,`page`,`pages`,`placements`,`readonly`,`resizable`,`seal-size-limit`,`seal-type-options`,`allowed-placement-types`,`size-profile`])])],2)):(0,c.createCommentVNode)(``,!0)],2)],6))}});exports.default=de;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`),require(`./constants.cjs`);const e=require(`./ContractSigningTemplatePage.cjs`),t=require(`./coordinates.cjs`),n=require(`./template-source.cjs`),r=require(`./location-rules.cjs`),i=require(`./page-layout.cjs`),a=require(`../../pro-contract-template-designer/src/composables/use-fit-width-zoom.cjs`),o=require(`./signing-visuals.cjs`);let s=require(`vue`),c=require(`ant-design-vue`),l=require(`@vueuse/core`),u=require(`@ant-design/icons-vue`);var d={class:`gd-ant-contract-signing-location__workspace`},f={class:`gd-ant-contract-signing-location__workspace-head`},p={key:0},m={class:`gd-ant-contract-signing-location__workspace-tools`},h={class:`gd-ant-contract-signing-location__page-jumper`,"aria-label":`页码跳转`},g=[`value`,`max`],_={class:`gd-ant-contract-signing-location__zoom-tools`,"aria-label":`页面缩放`},ee=[`aria-label`],te={key:1,class:`gd-ant-contract-signing-location__page-placeholder is-error`,role:`alert`},ne=[`src`],re={key:3,class:`gd-ant-contract-signing-location__page-placeholder`},ie=[`onClick`],ae=[`onClick`],oe={class:`gd-ant-contract-signing-location__render-region`},se={class:`gd-ant-contract-signing-location__render-region-content`},ce={class:`is-horizontal is-top`},le={class:`is-horizontal is-bottom`},ue={class:`is-vertical is-left`},de={class:`is-vertical is-right`},fe={key:1,class:`gd-ant-contract-signing-location__snap-guides`,"aria-hidden":`true`},pe=[`title`,`aria-label`,`aria-pressed`,`onClick`,`onPointerdown`,`onKeydown`],me={class:`gd-ant-contract-signing-location__placement-body`},he=[`src`,`alt`],ge={key:0,class:`gd-ant-contract-signing-location__placement-badge`},_e=[`onPointerdown`],ve=[`title`,`aria-label`],ye={class:`gd-ant-contract-signing-location__placement-body`},be=[`src`],xe={class:`gd-ant-contract-signing-location__placement-reference-badge`},v=(0,s.defineComponent)({name:`ContractSigningLocationCanvas`,__name:`ContractSigningLocationCanvas`,props:{file:{},pages:{},placements:{},referencePlacements:{default:()=>[]},selectedPlacementId:{},readonly:{type:Boolean},resizable:{type:Boolean},zoom:{},previewLoadingKeys:{},previewErrorMap:{},activePageIndex:{},minZoom:{},maxZoom:{},sealSizeLimit:{},sealTypeOptions:{},fontBaseUrl:{}},emits:[`select`,`add`,`update`,`remove`,`retry`,`visible-pages`,`view-page`,`page-change`,`zoom-change`,`scroll-to-ready`,`template-status`],setup(v,{expose:Se,emit:Ce}){let we=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],y=v,b=Ce,x=(0,s.ref)(null),S=(0,s.ref)(null),C=(0,s.shallowRef)(1),w=(0,s.shallowRef)(y.activePageIndex),T=(0,s.shallowRef)({start:0,end:-1}),{width:Te}=(0,l.useElementSize)(x),Ee=(0,s.computed)(()=>Math.max(...y.pages.map(e=>e.displayWidth||e.width||i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width),i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width)),{fitWidth:De,markUserAdjusted:Oe}=a.useFitWidthZoom({viewportWidth:Te,widestPageWidth:Ee,padding:48,minZoom:()=>y.minZoom,maxZoom:()=>y.maxZoom,getZoom:()=>y.zoom,applyZoom:e=>(b(`zoom-change`,e),e)}),E=(0,s.shallowRef)([]),D=(0,s.shallowRef)(),O=(0,s.shallowRef)(),k,A=0,j,M,N,P,F=(0,s.computed)(()=>i.buildPageLayouts(y.pages,y.zoom,16)),ke=(0,s.computed)(()=>i.getPageLayoutsContentSize(F.value)),I=(0,s.computed)(()=>n.isContractSigningTemplateFile(y.file)),Ae=(0,s.computed)(()=>n.buildContractSigningTemplateRenderPages(y.file?.source)),je=(0,s.computed)(()=>new Map(Ae.value.map(e=>[e.pageIndex,e]))),L=(0,s.computed)(()=>n.getContractSigningTemplateDisplayError(y.file)),Me=(0,s.computed)(()=>{let e=T.value;return F.value.length?e.end<e.start?F.value.slice(0,2):F.value.slice(e.start,e.end+1):[]}),R=(0,s.computed)(()=>Me.value.flatMap(e=>{let t=U(e.pageIndex);return t?[{layout:e,page:t,logical:W(t),templatePage:je.value.get(e.pageIndex)}]:[]})),z=(0,s.computed)(()=>y.pages.find(e=>e.pageIndex===w.value)??y.pages[0]),Ne=(0,s.computed)(()=>Math.min(y.minZoom,y.maxZoom)),Pe=(0,s.computed)(()=>Math.max(y.minZoom,y.maxZoom)),B=(0,s.computed)(()=>y.placements.find(e=>e.id===y.selectedPlacementId)),Fe=new Date,V=new Map,H=(0,s.shallowRef)({});function Ie(e){return JSON.stringify([e.signType,e.sealType??[],y.sealTypeOptions??[]])}function Le(e){let t=Ie(e),n=V.get(t);if(n)return n;let r=o.getContractSigningPlacementVisual(e,{sealTypeOptions:y.sealTypeOptions,date:Fe});if(V.size>=128){let e=V.keys().next().value;e!==void 0&&V.delete(e)}return V.set(t,r),r}let Re=(0,s.computed)(()=>{let e=new WeakMap;return y.placements.forEach(t=>{e.set(t,Le(t))}),y.referencePlacements.forEach(t=>{e.set(t,Le(t))}),e});(0,s.watch)(()=>y.activePageIndex,e=>{w.value=e,Qe()||Q(e)}),(0,s.watch)(()=>y.pages.map(e=>e.pageIndex).join(`,`),()=>{H.value={},b(`template-status`,I.value?`loading`:`ready`),(0,s.nextTick)(()=>{X(),Z(),b(`scroll-to-ready`)})}),(0,s.watch)(()=>R.value.map(e=>e.layout.pageIndex).join(`,`),()=>{Be()}),(0,s.watch)(()=>y.zoom,(e,t)=>{if(!x.value||t==null||e===t)return;let n=Ze(),r=i.buildPageLayouts(y.pages,t,16),a=i.findPageAtOffset(r,n.layoutScrollTop+1)??r[0];if(!a)return;N={pageIndex:a.pageIndex,offsetInPage:n.layoutScrollTop-a.top};let o=e/Math.max(.01,t);(0,s.nextTick)(()=>et(o))}),(0,s.onMounted)(()=>{X(),Z(),b(`scroll-to-ready`),!(typeof ResizeObserver>`u`||!x.value)&&(P=new ResizeObserver(()=>{X(),Z()}),P.observe(x.value))}),(0,s.onBeforeUnmount)(()=>{_t(),ct(),j&&clearTimeout(j),P?.disconnect(),P=void 0});function U(e){return y.pages.find(t=>t.pageIndex===e)}function ze(e,t,n){H.value={...H.value,[e]:{status:t,detail:n}},Be()}function Be(){if(!I.value){b(`template-status`,`ready`);return}let e=R.value.filter(e=>e.templatePage).map(e=>H.value[e.layout.pageIndex]),t=e.find(e=>e?.status===`error`);if(t){b(`template-status`,`error`,t.detail);return}b(`template-status`,e.length>0&&e.every(e=>e?.status===`ready`)?`ready`:`loading`)}function W(e){return e&&r.isContractSigningPageUsable(e)?{width:e.width,height:e.height}:{...i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE}}function G(e){if(!e||!r.isContractSigningPageUsable(e))return{...i.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE};let t=Number(e.displayWidth),n=Number(e.displayHeight);return{width:Number.isFinite(t)&&t>0?t:e.width,height:Number.isFinite(n)&&n>0?n:e.height}}function Ve(e){return`${y.file?.fileId??``}:${e}`}function He(e){return y.previewLoadingKeys.includes(Ve(e))}function Ue(e){return y.previewErrorMap[Ve(e)]||``}function We(e){return y.placements.filter(t=>t.pageIndex===e)}function Ge(e){return y.referencePlacements.filter(t=>t.pageIndex===e)}function K(e){let n=B.value;return n&&n.pageIndex===e.pageIndex?t.getContractSigningPlacementDistances(n,e):void 0}function Ke(e){let n=t.getContractSigningRuleGeometry(e),r=U(e.pageIndex),i=G(r),a=W(r);return{left:`${n.signLeft*i.width/Math.max(1,a.width)}px`,top:`${n.signTop*i.height/Math.max(1,a.height)}px`,width:`${n.signWidth*i.width/Math.max(1,a.width)}px`,height:`${n.signHeight*i.height/Math.max(1,a.height)}px`}}function qe(e){let n=t.getContractSigningRuleGeometry(e),r=U(e.pageIndex),i=G(r),a=W(r),o=i.width/Math.max(1,a.width),s=i.height/Math.max(1,a.height);return{"--gd-contract-sign-left":`${n.signLeft*o}px`,"--gd-contract-sign-top":`${n.signTop*s}px`,"--gd-contract-sign-right":`${(n.signLeft+n.signWidth)*o}px`,"--gd-contract-sign-bottom":`${(n.signTop+n.signHeight)*s}px`}}function Je(e,t){let n=G(t),r=W(t),i=e.axis===`x`?n.width/Math.max(1,r.width):n.height/Math.max(1,r.height);return e.axis===`x`?{left:`${e.position*i}px`}:{top:`${e.position*i}px`}}function q(e,n){return t.clampContractSigningPlacement(e,n,{sealSizeLimit:y.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:y.sealTypeOptions})}function J(e){return Re.value.get(e)??Le(e)}function Ye(e){return t.canResizeContractSigningPlacement(e,y.resizable,y.readonly)&&e.id===y.selectedPlacementId}function Xe(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function Ze(){let e=x.value,t=S.value;if(!e)return{layoutScrollTop:0,viewportHeight:0};let n=t?.offsetTop??0;return{layoutScrollTop:e.scrollTop-n,viewportHeight:e.clientHeight}}function Y(e,t){let n=S.value;if(n){let r=n.getBoundingClientRect();return{x:e-r.left,y:t-r.top}}let r=x.value;if(!r)return{x:e,y:t};let i=r.getBoundingClientRect(),a=Number.parseFloat(getComputedStyle(r).paddingLeft)||0,o=Number.parseFloat(getComputedStyle(r).paddingTop)||0;return{x:e-i.left+r.scrollLeft-a,y:t-i.top+r.scrollTop-o}}function Qe(){return!!(document.activeElement&&document.activeElement.tagName===`INPUT`)}function X(){let e=Ze();T.value=i.getVisibleRange(F.value,e.layoutScrollTop,e.viewportHeight,1);let t=i.findPageAtOffset(F.value,e.layoutScrollTop+1);if(t){let e=w.value!==t.pageIndex;w.value=t.pageIndex,Qe()||Q(t.pageIndex),e&&b(`view-page`,t.pageIndex)}}function Z(){let e=T.value;b(`visible-pages`,F.value.slice(Math.max(0,e.start),e.end+1).map(e=>e.pageIndex))}function $e(){X(),j&&clearTimeout(j),j=setTimeout(()=>{Z(),w.value!==M&&(M=w.value,b(`page-change`,w.value))},80)}function et(e){let t=x.value,n=S.value,r=N;if(N=void 0,!t||!n||!r)return;let i=F.value.find(e=>e.pageIndex===r.pageIndex);i&&(t.scrollTop=n.offsetTop+i.top+r.offsetInPage*e,X())}function tt(e){let t=x.value,n=S.value;t&&(w.value=e,Q(e),b(`page-change`,e),M=e,(0,s.nextTick)(()=>{let r=i.getPageLayoutScrollTop(F.value,e);t.scrollTop=(n?.offsetTop??0)+r,X(),Z()}))}function nt(e){let n=y.placements.find(t=>t.id===e),r=x.value,i=S.value;if(!n||!r)return;let a=F.value.find(e=>e.pageIndex===n.pageIndex);a&&(w.value=n.pageIndex,Q(n.pageIndex),(0,s.nextTick)(()=>{let e=Ze(),o=U(n.pageIndex),s=G(o),c=W(o),l=a.top+t.getContractSigningRuleGeometry(n).signTop*s.height/Math.max(1,c.height)*y.zoom,u=l+t.getContractSigningRuleGeometry(n).signHeight*s.height/Math.max(1,c.height)*y.zoom,d=e.layoutScrollTop,f=d+e.viewportHeight;(l<d||u>f)&&(r.scrollTop=(i?.offsetTop??0)+Math.max(0,l-24)),X(),Z(),b(`page-change`,n.pageIndex)}))}function Q(e){let t=y.pages.findIndex(t=>t.pageIndex===e);C.value=t>=0?t+1:1}function rt(e){let t=y.pages.findIndex(e=>e.pageIndex===w.value),n=Math.min(y.pages.length-1,Math.max(0,(t<0?0:t)+e)),r=y.pages[n];r&&tt(r.pageIndex)}function it(e){let t=Number(e.target.value);if(!Number.isFinite(t)){Q(w.value);return}let n=Math.min(y.pages.length,Math.max(1,Math.round(t)))-1,r=y.pages[n];r?tt(r.pageIndex):Q(w.value)}function at(e,t=`user`){t===`user`&&Oe(),b(`zoom-change`,e)}function ot(e){e.target.closest(`.gd-ant-contract-signing-location__placement`)||b(`select`,``)}function st(){window.addEventListener(`pointermove`,dt,{passive:!1}),window.addEventListener(`pointerup`,$),window.addEventListener(`pointercancel`,$)}function ct(){window.removeEventListener(`pointermove`,dt),window.removeEventListener(`pointerup`,$),window.removeEventListener(`pointercancel`,$)}function lt(e,t,n){e.stopPropagation(),b(`select`,t.id);let a=U(t.pageIndex);if(y.readonly||!a||!r.isContractSigningPageUsable(a)||e.button!==0)return;let o=Y(e.clientX,e.clientY),s=i.contentPointToPagePoint(F.value,y.pages,o.x,o.y),c=e.currentTarget;c.focus({preventScroll:!0}),O.value={pointerId:e.pointerId,mode:n?`resize`:`move`,handle:n,placementId:t.id,startX:e.clientX,startY:e.clientY,origin:Xe(t),grabOffsetX:(s?.x??t.signLeft)-t.signLeft,grabOffsetY:(s?.y??t.signTop)-t.signTop},k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},st(),gt();try{c.setPointerCapture(e.pointerId)}catch{}}function ut(e,t,n){lt(e,t,n)}function dt(e){let t=O.value;!t||t.pointerId!==e.pointerId||(e.preventDefault(),k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},ft(k))}function $(e){O.value?.pointerId===e.pointerId&&(O.value=void 0,k=void 0,E.value=[],D.value=void 0,_t(),ct())}function ft(e){let n=O.value;if(!n)return;if(n.mode===`resize`){pt(n,e);return}let a=Y(e.clientX,e.clientY),o=i.contentPointToPagePoint(F.value,y.pages,a.x,a.y);if(!o)return;let s=ht(o.pageIndex,n.origin.pageIndex);if(!s||!r.isContractSigningPageUsable(s))return;let c=q({...n.origin,pageIndex:s.pageIndex,signLeft:o.x-n.grabOffsetX,signTop:o.y-n.grabOffsetY},s),l=t.snapContractSigningPlacement(c,We(s.pageIndex),y.zoom,void 0,s),u=q(l.placement,s);E.value=l.guides,D.value=s.pageIndex,b(`update`,u)}function pt(e,n){let i=U(e.origin.pageIndex),a=e.handle;if(!i||!a||!r.isContractSigningPageUsable(i))return;let o=F.value.find(e=>e.pageIndex===i.pageIndex);if(!o)return;let s=Y(n.clientX,n.clientY),c=G(i),l=i.width/Math.max(1,c.width*y.zoom),u=i.height/Math.max(1,c.height*y.zoom),d=(s.x-o.left)*l,f=(s.y-o.top)*u;if(e.origin.signType===`seal`){mt(e,i,a,d,f);return}let p=t.getContractSigningRuleGeometry(e.origin),m=p.signLeft,h=p.signTop,g=p.signLeft+p.signWidth,_=p.signTop+p.signHeight;a.includes(`w`)&&(m=d),a.includes(`e`)&&(g=d),a.includes(`n`)&&(h=f),a.includes(`s`)&&(_=f),g-m<8&&(a.includes(`w`)?m=g-8:g=m+8),_-h<8&&(a.includes(`n`)?h=_-8:_=h+8),b(`update`,q({...e.origin,signLeft:m,signTop:h,signWidth:g-m,signHeight:_-h},i))}function mt(e,n,r,i,a){let o=t.resizeContractSigningSealGeometry(e.origin,r,i,a,n,y.sealSizeLimit);b(`update`,q({...e.origin,...o},n))}function ht(e,t){let n=U(e);return n&&r.isContractSigningPageUsable(n)?n:U(t)}function gt(){_t();let e=()=>{let t=O.value,n=x.value;if(!t||!n||!k){A=0;return}let r=n.getBoundingClientRect(),a=i.getContractSigningAutoScrollDelta(k.clientY,r);a!==0&&(n.scrollTop+=a,X(),ft(k)),A=requestAnimationFrame(e)};A=requestAnimationFrame(e)}function _t(){A&&=(cancelAnimationFrame(A),0)}function vt(e,n){let i=U(n.pageIndex);if(y.readonly||!i||!r.isContractSigningPageUsable(i))return;if(e.key===`Delete`||e.key===`Backspace`){e.preventDefault(),b(`remove`,n.id);return}let a=e.shiftKey?10:1,o=0,s=0;if(e.key===`ArrowLeft`)o=-a;else if(e.key===`ArrowRight`)o=a;else if(e.key===`ArrowUp`)s=-a;else if(e.key===`ArrowDown`)s=a;else return;e.preventDefault();let c=G(i),l=W(i);b(`update`,t.moveContractSigningPlacementByDisplayDelta(n,o*c.width/Math.max(1,l.width),s*c.height/Math.max(1,l.height),i,G(i),{sealSizeLimit:y.sealSizeLimit}))}function yt(e){let t=e.dataTransfer?.getData(`application/x-gd-contract-signing-location`)||e.dataTransfer?.getData(`text/plain`);if(t)try{let e=JSON.parse(t);return xt(e.type)?e.type:void 0}catch{return xt(t)?t:void 0}}function bt(e){if(y.readonly)return;let t=yt(e);if(!t)return;e.preventDefault();let n=Y(e.clientX,e.clientY),r=i.contentPointToPagePoint(F.value,y.pages,n.x,n.y);r&&b(`add`,t,r.x,r.y,r.pageIndex)}function xt(e){return e===`seal`||e===`signature`||e===`date`}return Se({scrollToPage:tt,scrollToPlacement:nt,fitWidth:De}),(t,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`main`,d,[(0,s.createElementVNode)(`header`,f,[(0,s.createElementVNode)(`div`,null,[(0,s.createElementVNode)(`strong`,null,(0,s.toDisplayString)(v.file?.fileName||`合同页面`),1),z.value?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,p,`第 `+(0,s.toDisplayString)(z.value.displayPageNumber)+` 页 · `+(0,s.toDisplayString)(I.value?`HTML`:`PDF`)+` `+(0,s.toDisplayString)(z.value.width)+` × `+(0,s.toDisplayString)(z.value.height),1)):(0,s.createCommentVNode)(``,!0)]),(0,s.createElementVNode)(`div`,m,[(0,s.createElementVNode)(`div`,h,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:C.value<=1,"aria-label":`上一页`,onClick:n[0]||=e=>rt(-1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.LeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`label`,null,[n[6]||=(0,s.createTextVNode)(` 第 `,-1),(0,s.createElementVNode)(`input`,{value:C.value,type:`number`,min:`1`,max:Math.max(1,v.pages.length),onChange:it,onKeydown:(0,s.withKeys)(it,[`enter`])},null,40,g),(0,s.createTextVNode)(` / `+(0,s.toDisplayString)(v.pages.length)+` 页 `,1)]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:C.value>=v.pages.length,"aria-label":`下一页`,onClick:n[1]||=e=>rt(1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.RightOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),(0,s.createElementVNode)(`div`,_,[(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:v.zoom<=Ne.value,"aria-label":`缩小页面`,onClick:n[2]||=e=>at(v.zoom-.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createElementVNode)(`button`,{type:`button`,onClick:n[3]||=e=>at(1)},(0,s.toDisplayString)(Math.round(v.zoom*100))+`%`,1),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:v.zoom>=Pe.value,"aria-label":`放大页面`,onClick:n[4]||=e=>at(v.zoom+.1)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ZoomInOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,"aria-label":`适应宽度`,title:`适应宽度`,onClick:(0,s.unref)(De)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(u.ColumnWidthOutlined),{"aria-hidden":`true`})]),_:1},8,[`onClick`])])])]),(0,s.createElementVNode)(`div`,{ref_key:`scrollRef`,ref:x,class:`gd-ant-contract-signing-location__canvas-scroll`,onScrollPassive:$e,onClick:ot,onDragover:n[5]||=(0,s.withModifiers)(()=>{},[`prevent`]),onDrop:bt},[v.pages.length?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,ref_key:`stackRef`,ref:S,class:`gd-ant-contract-signing-location__page-stack`,style:(0,s.normalizeStyle)({width:`${ke.value.width}px`,height:`${ke.value.height}px`})},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(R.value,t=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:t.layout.pageIndex,class:`gd-ant-contract-signing-location__page-shell`,style:(0,s.normalizeStyle)({top:`${t.layout.top}px`,left:`${t.layout.left}px`,width:`${t.layout.width}px`,height:`${t.layout.height}px`})},[(0,s.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__page`,style:(0,s.normalizeStyle)({width:`${G(t.page).width}px`,height:`${G(t.page).height}px`,transform:`scale(${v.zoom})`}),"aria-label":`${v.file?.fileName||`合同`}第 ${t.page.displayPageNumber} 页`},[I.value&&t.templatePage?((0,s.openBlock)(),(0,s.createBlock)(e.default,{key:0,page:t.templatePage,"font-base-url":v.fontBaseUrl,onStatus:(e,n)=>ze(t.layout.pageIndex,e,n)},null,8,[`page`,`font-base-url`,`onStatus`])):I.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,te,[n[8]||=(0,s.createElementVNode)(`strong`,null,`模板页面无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(L.value||`页面结构无效,请回到模板设计器修复后重试。`),1)])):t.page.previewUrl?((0,s.openBlock)(),(0,s.createElementBlock)(`img`,{key:2,class:`gd-ant-contract-signing-location__page-image`,src:t.page.previewUrl,alt:`合同页面预览`},null,8,ne)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,re,[He(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页加载中…`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1)],64)):Ue(t.layout.pageIndex)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[n[9]||=(0,s.createElementVNode)(`strong`,null,`合同页面预览加载失败`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(Ue(t.layout.pageIndex)),1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重试当前页`,8,ie)],64)):(0,s.unref)(r.isContractSigningPageUsable)(t.page)?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:3},[(0,s.createElementVNode)(`strong`,null,`第 `+(0,s.toDisplayString)(t.page.displayPageNumber)+` 页`,1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.page.width)+` × `+(0,s.toDisplayString)(t.page.height),1),n[12]||=(0,s.createElementVNode)(`small`,null,`等待 dataProvider 返回页面预览图`,-1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:2},[n[10]||=(0,s.createElementVNode)(`strong`,null,`页面元数据不完整`,-1),n[11]||=(0,s.createElementVNode)(`span`,null,`缺少有效的原始宽高,无法安全计算签署坐标。`,-1),(0,s.createElementVNode)(`button`,{type:`button`,onClick:(0,s.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重新加载页面`,8,ae)],64))])),(0,s.createElementVNode)(`div`,oe,[(0,s.createElementVNode)(`div`,se,[B.value&&B.value.pageIndex===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:`gd-ant-contract-signing-location__coordinate-guides`,style:(0,s.normalizeStyle)(qe(B.value)),"aria-hidden":`true`},[(0,s.createElementVNode)(`span`,ce,[(0,s.createElementVNode)(`small`,null,`上 `+(0,s.toDisplayString)(K(t.page)?.top),1)]),(0,s.createElementVNode)(`span`,le,[(0,s.createElementVNode)(`small`,null,`下 `+(0,s.toDisplayString)(K(t.page)?.bottom),1)]),(0,s.createElementVNode)(`span`,ue,[(0,s.createElementVNode)(`small`,null,`左 `+(0,s.toDisplayString)(K(t.page)?.left),1)]),(0,s.createElementVNode)(`span`,de,[(0,s.createElementVNode)(`small`,null,`右 `+(0,s.toDisplayString)(K(t.page)?.right),1)])],4)):(0,s.createCommentVNode)(``,!0),E.value.length&&D.value===t.layout.pageIndex?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,fe,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(E.value,(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`span`,{key:`${e.axis}-${n}`,class:(0,s.normalizeClass)(e.axis===`x`?`is-vertical`:`is-horizontal`),style:(0,s.normalizeStyle)(Je(e,t.page))},null,6))),128))])):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(We(t.layout.pageIndex),e=>((0,s.openBlock)(),(0,s.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__placement`,[`is-${e.signType}`,{"is-selected":e.id===v.selectedPlacementId}]]),style:(0,s.normalizeStyle)(Ke(e)),title:J(e).alt,"aria-label":J(e).alt,"aria-pressed":e.id===v.selectedPlacementId,onClick:(0,s.withModifiers)(t=>b(`select`,e.id),[`stop`]),onPointerdown:t=>lt(t,e),onLostpointercapture:$,onKeydown:t=>vt(t,e)},[(0,s.createElementVNode)(`span`,me,[(0,s.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:J(e).dataUrl,alt:J(e).alt,draggable:`false`},null,8,he)]),e.mustSign?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,ge,`必签`)):(0,s.createCommentVNode)(``,!0),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(Ye(e)?we:[],t=>((0,s.openBlock)(),(0,s.createElementBlock)(`i`,{key:t,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__resize-handle`,`is-${t}`]),onPointerdown:(0,s.withModifiers)(n=>ut(n,e,t),[`stop`])},null,42,_e))),128))],46,pe))),128)),((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(Ge(t.layout.pageIndex),e=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:`${e.ownerId}:${e.id}`,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__placement is-reference`,`is-${e.signType}`]),style:(0,s.normalizeStyle)(Ke(e)),title:`${e.ownerName} · 只读 · ${J(e).alt}`,role:`img`,"aria-label":`${e.ownerName}的只读${J(e).alt}`},[(0,s.createElementVNode)(`span`,ye,[(0,s.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:J(e).dataUrl,alt:``,draggable:`false`},null,8,be)]),(0,s.createElementVNode)(`span`,xe,(0,s.toDisplayString)(e.ownerName)+` · 只读 `,1)],14,ve))),128))])])],12,ee)],4))),128))],4)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:(0,s.normalizeClass)([`gd-ant-contract-signing-location__canvas-state`,{"is-error":I.value&&L.value}]),role:`status`},[I.value&&L.value?((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:0},[n[7]||=(0,s.createElementVNode)(`strong`,null,`合同模板无法渲染`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(L.value),1)],64)):((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,{key:1},[(0,s.createTextVNode)(`请选择可用的合同页面`)],64))],2))],544)]))}});exports.default=v;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`),require(`./constants.cjs`);const e=require(`./ContractSigningTemplatePage.cjs`),t=require(`./coordinates.cjs`),n=require(`../../pro-contract-template-designer/src/utils/contract-layout-check.cjs`),r=require(`./template-source.cjs`),i=require(`./location-rules.cjs`),a=require(`./page-layout.cjs`),o=require(`../../pro-contract-template-designer/src/composables/use-fit-width-zoom.cjs`),s=require(`./signing-visuals.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),u=require(`@vueuse/core`),d=require(`@ant-design/icons-vue`);var f={class:`gd-ant-contract-signing-location__workspace`},p={class:`gd-ant-contract-signing-location__workspace-head`},m={key:0},h={class:`gd-ant-contract-signing-location__workspace-tools`},g={class:`gd-ant-contract-signing-location__page-jumper`,"aria-label":`页码跳转`},_=[`value`,`max`],ee={class:`gd-ant-contract-signing-location__zoom-tools`,"aria-label":`页面缩放`},te=[`aria-label`],ne={key:1,class:`gd-ant-contract-signing-location__page-placeholder is-error`,role:`alert`},re=[`src`],ie={key:3,class:`gd-ant-contract-signing-location__page-placeholder`},ae=[`onClick`],oe=[`onClick`],se={class:`gd-ant-contract-signing-location__render-region`},ce={class:`gd-ant-contract-signing-location__render-region-content`},le={class:`is-horizontal is-top`},ue={class:`is-horizontal is-bottom`},de={class:`is-vertical is-left`},fe={class:`is-vertical is-right`},pe={key:1,class:`gd-ant-contract-signing-location__snap-guides`,"aria-hidden":`true`},me=[`title`,`aria-label`,`aria-pressed`,`onClick`,`onPointerdown`,`onKeydown`],he={class:`gd-ant-contract-signing-location__placement-body`},ge=[`src`,`alt`],_e={key:0,class:`gd-ant-contract-signing-location__placement-badge`},ve=[`onPointerdown`],ye=[`title`,`aria-label`],be={class:`gd-ant-contract-signing-location__placement-body`},xe=[`src`],Se={class:`gd-ant-contract-signing-location__placement-reference-badge`},v=(0,c.defineComponent)({name:`ContractSigningLocationCanvas`,__name:`ContractSigningLocationCanvas`,props:{file:{},pages:{},placements:{},referencePlacements:{default:()=>[]},selectedPlacementId:{},readonly:{type:Boolean},resizable:{type:Boolean},zoom:{},previewLoadingKeys:{},previewErrorMap:{},activePageIndex:{},minZoom:{},maxZoom:{},sealSizeLimit:{},sealTypeOptions:{},fontBaseUrl:{},layoutIssues:{default:()=>[]},layoutChecking:{type:Boolean,default:!1}},emits:[`select`,`add`,`update`,`remove`,`retry`,`visible-pages`,`view-page`,`page-change`,`zoom-change`,`scroll-to-ready`,`template-status`],setup(v,{expose:Ce,emit:we}){let Te=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],y=v,b=we,x=(0,c.ref)(null),S=(0,c.ref)(null),C=(0,c.shallowRef)(1),w=(0,c.shallowRef)(y.activePageIndex),T=(0,c.shallowRef)({start:0,end:-1}),{width:Ee}=(0,u.useElementSize)(x),De=(0,c.computed)(()=>Math.max(...y.pages.map(e=>e.displayWidth||e.width||a.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width),a.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE.width)),{fitWidth:Oe,markUserAdjusted:ke}=o.useFitWidthZoom({viewportWidth:Ee,widestPageWidth:De,padding:48,minZoom:()=>y.minZoom,maxZoom:()=>y.maxZoom,getZoom:()=>y.zoom,applyZoom:e=>(b(`zoom-change`,e),e)}),E=(0,c.shallowRef)([]),D=(0,c.shallowRef)(),O=(0,c.shallowRef)(),k,A=0,j,M,N,P,F=(0,c.computed)(()=>a.buildPageLayouts(y.pages,y.zoom,16)),Ae=(0,c.computed)(()=>a.getPageLayoutsContentSize(F.value)),I=(0,c.computed)(()=>r.isContractSigningTemplateFile(y.file)),je=(0,c.computed)(()=>r.buildContractSigningTemplateRenderPages(y.file?.source)),Me=(0,c.computed)(()=>new Map(je.value.map(e=>[e.pageIndex,e]))),L=(0,c.computed)(()=>r.getContractSigningTemplateDisplayError(y.file)),Ne=(0,c.computed)(()=>{let e=T.value;return F.value.length?e.end<e.start?F.value.slice(0,2):F.value.slice(e.start,e.end+1):[]}),Pe=(0,c.computed)(()=>Ne.value.flatMap(e=>{let t=H(e.pageIndex);return t?[{layout:e,page:t,logical:W(t),templatePage:Me.value.get(e.pageIndex)}]:[]})),R=(0,c.computed)(()=>y.pages.find(e=>e.pageIndex===w.value)??y.pages[0]),Fe=(0,c.computed)(()=>Math.min(y.minZoom,y.maxZoom)),Ie=(0,c.computed)(()=>Math.max(y.minZoom,y.maxZoom)),z=(0,c.computed)(()=>y.placements.find(e=>e.id===y.selectedPlacementId)),Le=new Date,B=new Map,V=(0,c.shallowRef)({});function Re(e){return JSON.stringify([e.signType,e.sealType??[],y.sealTypeOptions??[]])}function ze(e){let t=Re(e),n=B.get(t);if(n)return n;let r=s.getContractSigningPlacementVisual(e,{sealTypeOptions:y.sealTypeOptions,date:Le});if(B.size>=128){let e=B.keys().next().value;e!==void 0&&B.delete(e)}return B.set(t,r),r}let Be=(0,c.computed)(()=>{let e=new WeakMap;return y.placements.forEach(t=>{e.set(t,ze(t))}),y.referencePlacements.forEach(t=>{e.set(t,ze(t))}),e});(0,c.watch)(()=>y.activePageIndex,e=>{w.value=e,$e()||Q(e)}),(0,c.watch)(()=>y.pages.map(e=>e.pageIndex).join(`,`),()=>{V.value={},U(),(0,c.nextTick)(()=>{X(),Z(),b(`scroll-to-ready`)})}),(0,c.watch)(()=>Pe.value.map(e=>e.layout.pageIndex).join(`,`),()=>{U()}),(0,c.watch)(()=>[y.layoutIssues,y.layoutChecking],()=>{U()}),(0,c.watch)(()=>y.zoom,(e,t)=>{if(!x.value||t==null||e===t)return;let n=Qe(),r=a.buildPageLayouts(y.pages,t,16),i=a.findPageAtOffset(r,n.layoutScrollTop+1)??r[0];if(!i)return;N={pageIndex:i.pageIndex,offsetInPage:n.layoutScrollTop-i.top};let o=e/Math.max(.01,t);(0,c.nextTick)(()=>tt(o))}),(0,c.onMounted)(()=>{X(),Z(),b(`scroll-to-ready`),!(typeof ResizeObserver>`u`||!x.value)&&(P=new ResizeObserver(()=>{X(),Z()}),P.observe(x.value))}),(0,c.onBeforeUnmount)(()=>{vt(),lt(),j&&clearTimeout(j),P?.disconnect(),P=void 0});function H(e){return y.pages.find(t=>t.pageIndex===e)}function Ve(e,t,n){V.value={...V.value,[e]:{status:t,detail:n}},U()}function U(){if(!I.value){b(`template-status`,`ready`);return}let e=y.layoutIssues[0];if(e){b(`template-status`,`error`,n.describeContractTemplateLayoutIssue(e)[0]??`合同排版校验未通过`);return}if(y.layoutChecking){b(`template-status`,`loading`);return}let t=Pe.value.filter(e=>e.templatePage).map(e=>V.value[e.layout.pageIndex]),r=t.find(e=>e?.status===`error`);if(r){b(`template-status`,`error`,r.detail);return}b(`template-status`,t.length>0&&t.every(e=>e?.status===`ready`)?`ready`:`loading`)}function W(e){return e&&i.isContractSigningPageUsable(e)?{width:e.width,height:e.height}:{...a.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE}}function G(e){if(!e||!i.isContractSigningPageUsable(e))return{...a.CONTRACT_SIGNING_FALLBACK_PAGE_SIZE};let t=Number(e.displayWidth),n=Number(e.displayHeight);return{width:Number.isFinite(t)&&t>0?t:e.width,height:Number.isFinite(n)&&n>0?n:e.height}}function He(e){return`${y.file?.fileId??``}:${e}`}function Ue(e){return y.previewLoadingKeys.includes(He(e))}function We(e){return y.previewErrorMap[He(e)]||``}function Ge(e){return y.placements.filter(t=>t.pageIndex===e)}function Ke(e){return y.referencePlacements.filter(t=>t.pageIndex===e)}function K(e){let n=z.value;return n&&n.pageIndex===e.pageIndex?t.getContractSigningPlacementDistances(n,e):void 0}function qe(e){let n=t.getContractSigningRuleGeometry(e),r=H(e.pageIndex),i=G(r),a=W(r);return{left:`${n.signLeft*i.width/Math.max(1,a.width)}px`,top:`${n.signTop*i.height/Math.max(1,a.height)}px`,width:`${n.signWidth*i.width/Math.max(1,a.width)}px`,height:`${n.signHeight*i.height/Math.max(1,a.height)}px`}}function Je(e){let n=t.getContractSigningRuleGeometry(e),r=H(e.pageIndex),i=G(r),a=W(r),o=i.width/Math.max(1,a.width),s=i.height/Math.max(1,a.height);return{"--gd-contract-sign-left":`${n.signLeft*o}px`,"--gd-contract-sign-top":`${n.signTop*s}px`,"--gd-contract-sign-right":`${(n.signLeft+n.signWidth)*o}px`,"--gd-contract-sign-bottom":`${(n.signTop+n.signHeight)*s}px`}}function Ye(e,t){let n=G(t),r=W(t),i=e.axis===`x`?n.width/Math.max(1,r.width):n.height/Math.max(1,r.height);return e.axis===`x`?{left:`${e.position*i}px`}:{top:`${e.position*i}px`}}function q(e,n){return t.clampContractSigningPlacement(e,n,{sealSizeLimit:y.sealSizeLimit,sealTypes:e.sealType,sealTypeOptions:y.sealTypeOptions})}function J(e){return Be.value.get(e)??ze(e)}function Xe(e){return t.canResizeContractSigningPlacement(e,y.resizable,y.readonly)&&e.id===y.selectedPlacementId}function Ze(e){return{...e,sealType:e.sealType?[...e.sealType]:void 0}}function Qe(){let e=x.value,t=S.value;if(!e)return{layoutScrollTop:0,viewportHeight:0};let n=t?.offsetTop??0;return{layoutScrollTop:e.scrollTop-n,viewportHeight:e.clientHeight}}function Y(e,t){let n=S.value;if(n){let r=n.getBoundingClientRect();return{x:e-r.left,y:t-r.top}}let r=x.value;if(!r)return{x:e,y:t};let i=r.getBoundingClientRect(),a=Number.parseFloat(getComputedStyle(r).paddingLeft)||0,o=Number.parseFloat(getComputedStyle(r).paddingTop)||0;return{x:e-i.left+r.scrollLeft-a,y:t-i.top+r.scrollTop-o}}function $e(){return!!(document.activeElement&&document.activeElement.tagName===`INPUT`)}function X(){let e=Qe();T.value=a.getVisibleRange(F.value,e.layoutScrollTop,e.viewportHeight,1);let t=a.findPageAtOffset(F.value,e.layoutScrollTop+1);if(t){let e=w.value!==t.pageIndex;w.value=t.pageIndex,$e()||Q(t.pageIndex),e&&b(`view-page`,t.pageIndex)}}function Z(){let e=T.value;b(`visible-pages`,F.value.slice(Math.max(0,e.start),e.end+1).map(e=>e.pageIndex))}function et(){X(),j&&clearTimeout(j),j=setTimeout(()=>{Z(),w.value!==M&&(M=w.value,b(`page-change`,w.value))},80)}function tt(e){let t=x.value,n=S.value,r=N;if(N=void 0,!t||!n||!r)return;let i=F.value.find(e=>e.pageIndex===r.pageIndex);i&&(t.scrollTop=n.offsetTop+i.top+r.offsetInPage*e,X())}function nt(e){let t=x.value,n=S.value;t&&(w.value=e,Q(e),b(`page-change`,e),M=e,(0,c.nextTick)(()=>{let r=a.getPageLayoutScrollTop(F.value,e);t.scrollTop=(n?.offsetTop??0)+r,X(),Z()}))}function rt(e){let n=y.placements.find(t=>t.id===e),r=x.value,i=S.value;if(!n||!r)return;let a=F.value.find(e=>e.pageIndex===n.pageIndex);a&&(w.value=n.pageIndex,Q(n.pageIndex),(0,c.nextTick)(()=>{let e=Qe(),o=H(n.pageIndex),s=G(o),c=W(o),l=a.top+t.getContractSigningRuleGeometry(n).signTop*s.height/Math.max(1,c.height)*y.zoom,u=l+t.getContractSigningRuleGeometry(n).signHeight*s.height/Math.max(1,c.height)*y.zoom,d=e.layoutScrollTop,f=d+e.viewportHeight;(l<d||u>f)&&(r.scrollTop=(i?.offsetTop??0)+Math.max(0,l-24)),X(),Z(),b(`page-change`,n.pageIndex)}))}function Q(e){let t=y.pages.findIndex(t=>t.pageIndex===e);C.value=t>=0?t+1:1}function it(e){let t=y.pages.findIndex(e=>e.pageIndex===w.value),n=Math.min(y.pages.length-1,Math.max(0,(t<0?0:t)+e)),r=y.pages[n];r&&nt(r.pageIndex)}function at(e){let t=Number(e.target.value);if(!Number.isFinite(t)){Q(w.value);return}let n=Math.min(y.pages.length,Math.max(1,Math.round(t)))-1,r=y.pages[n];r?nt(r.pageIndex):Q(w.value)}function ot(e,t=`user`){t===`user`&&ke(),b(`zoom-change`,e)}function st(e){e.target.closest(`.gd-ant-contract-signing-location__placement`)||b(`select`,``)}function ct(){window.addEventListener(`pointermove`,ft,{passive:!1}),window.addEventListener(`pointerup`,$),window.addEventListener(`pointercancel`,$)}function lt(){window.removeEventListener(`pointermove`,ft),window.removeEventListener(`pointerup`,$),window.removeEventListener(`pointercancel`,$)}function ut(e,t,n){e.stopPropagation(),b(`select`,t.id);let r=H(t.pageIndex);if(y.readonly||!r||!i.isContractSigningPageUsable(r)||e.button!==0)return;let o=Y(e.clientX,e.clientY),s=a.contentPointToPagePoint(F.value,y.pages,o.x,o.y),c=e.currentTarget;c.focus({preventScroll:!0}),O.value={pointerId:e.pointerId,mode:n?`resize`:`move`,handle:n,placementId:t.id,startX:e.clientX,startY:e.clientY,origin:Ze(t),grabOffsetX:(s?.x??t.signLeft)-t.signLeft,grabOffsetY:(s?.y??t.signTop)-t.signTop},k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},ct(),_t();try{c.setPointerCapture(e.pointerId)}catch{}}function dt(e,t,n){ut(e,t,n)}function ft(e){let t=O.value;!t||t.pointerId!==e.pointerId||(e.preventDefault(),k={clientX:e.clientX,clientY:e.clientY,pointerId:e.pointerId},pt(k))}function $(e){O.value?.pointerId===e.pointerId&&(O.value=void 0,k=void 0,E.value=[],D.value=void 0,vt(),lt())}function pt(e){let n=O.value;if(!n)return;if(n.mode===`resize`){mt(n,e);return}let r=Y(e.clientX,e.clientY),o=a.contentPointToPagePoint(F.value,y.pages,r.x,r.y);if(!o)return;let s=gt(o.pageIndex,n.origin.pageIndex);if(!s||!i.isContractSigningPageUsable(s))return;let c=q({...n.origin,pageIndex:s.pageIndex,signLeft:o.x-n.grabOffsetX,signTop:o.y-n.grabOffsetY},s),l=t.snapContractSigningPlacement(c,Ge(s.pageIndex),y.zoom,void 0,s),u=q(l.placement,s);E.value=l.guides,D.value=s.pageIndex,b(`update`,u)}function mt(e,n){let r=H(e.origin.pageIndex),a=e.handle;if(!r||!a||!i.isContractSigningPageUsable(r))return;let o=F.value.find(e=>e.pageIndex===r.pageIndex);if(!o)return;let s=Y(n.clientX,n.clientY),c=G(r),l=r.width/Math.max(1,c.width*y.zoom),u=r.height/Math.max(1,c.height*y.zoom),d=(s.x-o.left)*l,f=(s.y-o.top)*u;if(e.origin.signType===`seal`){ht(e,r,a,d,f);return}let p=t.getContractSigningRuleGeometry(e.origin),m=p.signLeft,h=p.signTop,g=p.signLeft+p.signWidth,_=p.signTop+p.signHeight;a.includes(`w`)&&(m=d),a.includes(`e`)&&(g=d),a.includes(`n`)&&(h=f),a.includes(`s`)&&(_=f),g-m<8&&(a.includes(`w`)?m=g-8:g=m+8),_-h<8&&(a.includes(`n`)?h=_-8:_=h+8),b(`update`,q({...e.origin,signLeft:m,signTop:h,signWidth:g-m,signHeight:_-h},r))}function ht(e,n,r,i,a){let o=t.resizeContractSigningSealGeometry(e.origin,r,i,a,n,y.sealSizeLimit);b(`update`,q({...e.origin,...o},n))}function gt(e,t){let n=H(e);return n&&i.isContractSigningPageUsable(n)?n:H(t)}function _t(){vt();let e=()=>{let t=O.value,n=x.value;if(!t||!n||!k){A=0;return}let r=n.getBoundingClientRect(),i=a.getContractSigningAutoScrollDelta(k.clientY,r);i!==0&&(n.scrollTop+=i,X(),pt(k)),A=requestAnimationFrame(e)};A=requestAnimationFrame(e)}function vt(){A&&=(cancelAnimationFrame(A),0)}function yt(e,n){let r=H(n.pageIndex);if(y.readonly||!r||!i.isContractSigningPageUsable(r))return;if(e.key===`Delete`||e.key===`Backspace`){e.preventDefault(),b(`remove`,n.id);return}let a=e.shiftKey?10:1,o=0,s=0;if(e.key===`ArrowLeft`)o=-a;else if(e.key===`ArrowRight`)o=a;else if(e.key===`ArrowUp`)s=-a;else if(e.key===`ArrowDown`)s=a;else return;e.preventDefault();let c=G(r),l=W(r);b(`update`,t.moveContractSigningPlacementByDisplayDelta(n,o*c.width/Math.max(1,l.width),s*c.height/Math.max(1,l.height),r,G(r),{sealSizeLimit:y.sealSizeLimit}))}function bt(e){let t=e.dataTransfer?.getData(`application/x-gd-contract-signing-location`)||e.dataTransfer?.getData(`text/plain`);if(t)try{let e=JSON.parse(t);return St(e.type)?e.type:void 0}catch{return St(t)?t:void 0}}function xt(e){if(y.readonly)return;let t=bt(e);if(!t)return;e.preventDefault();let n=Y(e.clientX,e.clientY),r=a.contentPointToPagePoint(F.value,y.pages,n.x,n.y);r&&b(`add`,t,r.x,r.y,r.pageIndex)}function St(e){return e===`seal`||e===`signature`||e===`date`}return Ce({scrollToPage:nt,scrollToPlacement:rt,fitWidth:Oe}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`main`,f,[(0,c.createElementVNode)(`header`,p,[(0,c.createElementVNode)(`div`,null,[(0,c.createElementVNode)(`strong`,null,(0,c.toDisplayString)(v.file?.fileName||`合同页面`),1),R.value?((0,c.openBlock)(),(0,c.createElementBlock)(`span`,m,`第 `+(0,c.toDisplayString)(R.value.displayPageNumber)+` 页 · `+(0,c.toDisplayString)(I.value?`HTML`:`PDF`)+` `+(0,c.toDisplayString)(R.value.width)+` × `+(0,c.toDisplayString)(R.value.height),1)):(0,c.createCommentVNode)(``,!0)]),(0,c.createElementVNode)(`div`,h,[(0,c.createElementVNode)(`div`,g,[(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,disabled:C.value<=1,"aria-label":`上一页`,onClick:n[0]||=e=>it(-1)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(d.LeftOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,c.createElementVNode)(`label`,null,[n[6]||=(0,c.createTextVNode)(` 第 `,-1),(0,c.createElementVNode)(`input`,{value:C.value,type:`number`,min:`1`,max:Math.max(1,v.pages.length),onChange:at,onKeydown:(0,c.withKeys)(at,[`enter`])},null,40,_),(0,c.createTextVNode)(` / `+(0,c.toDisplayString)(v.pages.length)+` 页 `,1)]),(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,disabled:C.value>=v.pages.length,"aria-label":`下一页`,onClick:n[1]||=e=>it(1)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(d.RightOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`])]),(0,c.createElementVNode)(`div`,ee,[(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,disabled:v.zoom<=Fe.value,"aria-label":`缩小页面`,onClick:n[2]||=e=>ot(v.zoom-.1)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(d.ZoomOutOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,c.createElementVNode)(`button`,{type:`button`,onClick:n[3]||=e=>ot(1)},(0,c.toDisplayString)(Math.round(v.zoom*100))+`%`,1),(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,disabled:v.zoom>=Ie.value,"aria-label":`放大页面`,onClick:n[4]||=e=>ot(v.zoom+.1)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(d.ZoomInOutlined),{"aria-hidden":`true`})]),_:1},8,[`disabled`]),(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,"aria-label":`适应宽度`,title:`适应宽度`,onClick:(0,c.unref)(Oe)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(d.ColumnWidthOutlined),{"aria-hidden":`true`})]),_:1},8,[`onClick`])])])]),(0,c.createElementVNode)(`div`,{ref_key:`scrollRef`,ref:x,class:`gd-ant-contract-signing-location__canvas-scroll`,onScrollPassive:et,onClick:st,onDragover:n[5]||=(0,c.withModifiers)(()=>{},[`prevent`]),onDrop:xt},[v.pages.length?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:1,ref_key:`stackRef`,ref:S,class:`gd-ant-contract-signing-location__page-stack`,style:(0,c.normalizeStyle)({width:`${Ae.value.width}px`,height:`${Ae.value.height}px`})},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(Pe.value,t=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:t.layout.pageIndex,class:`gd-ant-contract-signing-location__page-shell`,style:(0,c.normalizeStyle)({top:`${t.layout.top}px`,left:`${t.layout.left}px`,width:`${t.layout.width}px`,height:`${t.layout.height}px`})},[(0,c.createElementVNode)(`div`,{class:`gd-ant-contract-signing-location__page`,style:(0,c.normalizeStyle)({width:`${G(t.page).width}px`,height:`${G(t.page).height}px`,transform:`scale(${v.zoom})`}),"aria-label":`${v.file?.fileName||`合同`}第 ${t.page.displayPageNumber} 页`},[I.value&&t.templatePage?((0,c.openBlock)(),(0,c.createBlock)(e.default,{key:0,page:t.templatePage,"font-base-url":v.fontBaseUrl,onStatus:(e,n)=>Ve(t.layout.pageIndex,e,n)},null,8,[`page`,`font-base-url`,`onStatus`])):I.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,ne,[n[8]||=(0,c.createElementVNode)(`strong`,null,`模板页面无法渲染`,-1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(L.value||`页面结构无效,请回到模板设计器修复后重试。`),1)])):t.page.previewUrl?((0,c.openBlock)(),(0,c.createElementBlock)(`img`,{key:2,class:`gd-ant-contract-signing-location__page-image`,src:t.page.previewUrl,alt:`合同页面预览`},null,8,re)):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,ie,[Ue(t.layout.pageIndex)?((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:0},[(0,c.createElementVNode)(`strong`,null,`第 `+(0,c.toDisplayString)(t.page.displayPageNumber)+` 页加载中…`,1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(t.page.width)+` × `+(0,c.toDisplayString)(t.page.height),1)],64)):We(t.layout.pageIndex)?((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:1},[n[9]||=(0,c.createElementVNode)(`strong`,null,`合同页面预览加载失败`,-1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(We(t.layout.pageIndex)),1),(0,c.createElementVNode)(`button`,{type:`button`,onClick:(0,c.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重试当前页`,8,ae)],64)):(0,c.unref)(i.isContractSigningPageUsable)(t.page)?((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:3},[(0,c.createElementVNode)(`strong`,null,`第 `+(0,c.toDisplayString)(t.page.displayPageNumber)+` 页`,1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(t.page.width)+` × `+(0,c.toDisplayString)(t.page.height),1),n[12]||=(0,c.createElementVNode)(`small`,null,`等待 dataProvider 返回页面预览图`,-1)],64)):((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:2},[n[10]||=(0,c.createElementVNode)(`strong`,null,`页面元数据不完整`,-1),n[11]||=(0,c.createElementVNode)(`span`,null,`缺少有效的原始宽高,无法安全计算签署坐标。`,-1),(0,c.createElementVNode)(`button`,{type:`button`,onClick:(0,c.withModifiers)(e=>b(`retry`,t.layout.pageIndex),[`stop`])},`重新加载页面`,8,oe)],64))])),(0,c.createElementVNode)(`div`,se,[(0,c.createElementVNode)(`div`,ce,[z.value&&z.value.pageIndex===t.layout.pageIndex?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:`gd-ant-contract-signing-location__coordinate-guides`,style:(0,c.normalizeStyle)(Je(z.value)),"aria-hidden":`true`},[(0,c.createElementVNode)(`span`,le,[(0,c.createElementVNode)(`small`,null,`上 `+(0,c.toDisplayString)(K(t.page)?.top),1)]),(0,c.createElementVNode)(`span`,ue,[(0,c.createElementVNode)(`small`,null,`下 `+(0,c.toDisplayString)(K(t.page)?.bottom),1)]),(0,c.createElementVNode)(`span`,de,[(0,c.createElementVNode)(`small`,null,`左 `+(0,c.toDisplayString)(K(t.page)?.left),1)]),(0,c.createElementVNode)(`span`,fe,[(0,c.createElementVNode)(`small`,null,`右 `+(0,c.toDisplayString)(K(t.page)?.right),1)])],4)):(0,c.createCommentVNode)(``,!0),E.value.length&&D.value===t.layout.pageIndex?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,pe,[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(E.value,(e,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`span`,{key:`${e.axis}-${n}`,class:(0,c.normalizeClass)(e.axis===`x`?`is-vertical`:`is-horizontal`),style:(0,c.normalizeStyle)(Ye(e,t.page))},null,6))),128))])):(0,c.createCommentVNode)(``,!0),((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(Ge(t.layout.pageIndex),e=>((0,c.openBlock)(),(0,c.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__placement`,[`is-${e.signType}`,{"is-selected":e.id===v.selectedPlacementId}]]),style:(0,c.normalizeStyle)(qe(e)),title:J(e).alt,"aria-label":J(e).alt,"aria-pressed":e.id===v.selectedPlacementId,onClick:(0,c.withModifiers)(t=>b(`select`,e.id),[`stop`]),onPointerdown:t=>ut(t,e),onLostpointercapture:$,onKeydown:t=>yt(t,e)},[(0,c.createElementVNode)(`span`,he,[(0,c.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:J(e).dataUrl,alt:J(e).alt,draggable:`false`},null,8,ge)]),e.mustSign?((0,c.openBlock)(),(0,c.createElementBlock)(`span`,_e,`必签`)):(0,c.createCommentVNode)(``,!0),((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(Xe(e)?Te:[],t=>((0,c.openBlock)(),(0,c.createElementBlock)(`i`,{key:t,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__resize-handle`,`is-${t}`]),onPointerdown:(0,c.withModifiers)(n=>dt(n,e,t),[`stop`])},null,42,ve))),128))],46,me))),128)),((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(Ke(t.layout.pageIndex),e=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:`${e.ownerId}:${e.id}`,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__placement is-reference`,`is-${e.signType}`]),style:(0,c.normalizeStyle)(qe(e)),title:`${e.ownerName} · 只读 · ${J(e).alt}`,role:`img`,"aria-label":`${e.ownerName}的只读${J(e).alt}`},[(0,c.createElementVNode)(`span`,be,[(0,c.createElementVNode)(`img`,{class:`gd-ant-contract-signing-location__placement-visual`,src:J(e).dataUrl,alt:``,draggable:`false`},null,8,xe)]),(0,c.createElementVNode)(`span`,Se,(0,c.toDisplayString)(e.ownerName)+` · 只读 `,1)],14,ye))),128))])])],12,te)],4))),128))],4)):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:(0,c.normalizeClass)([`gd-ant-contract-signing-location__canvas-state`,{"is-error":I.value&&L.value}]),role:`status`},[I.value&&L.value?((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:0},[n[7]||=(0,c.createElementVNode)(`strong`,null,`合同模板无法渲染`,-1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(L.value),1)],64)):((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:1},[(0,c.createTextVNode)(`请选择可用的合同页面`)],64))],2))],544)]))}});exports.default=v;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../pro-contract-template-designer/src/ContractPrintIframe.cjs`),t=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`);let n=require(`vue`);var r=[`data-page-id`,`data-template-page-index`,`data-page-width`,`data-page-height`],i={key:0,class:`gd-ant-contract-signing-location__template-warning`,role:`alert`},a=(0,n.defineComponent)({name:`ContractSigningTemplatePage`,__name:`ContractSigningTemplatePage`,props:{page:{},fontBaseUrl:{}},emits:[`status`,`metrics`],setup(a,{emit:o}){let s=a,c=o,l=(0,n.shallowRef)(0),u=(0,n.shallowRef)(0),d=(0,n.shallowRef)(`loading`),f=(0,n.computed)(()=>({width:`${s.page.displayWidth}px`,minHeight:`${s.page.displayHeight}px`,height:`${Math.max(s.page.displayHeight,l.value)}px`})),p=(0,n.computed)(()=>t.buildPageDecorationClassNames(s.page.pageDecorations,s.page.pageNumber)),m=(0,n.computed)(()=>t.buildPageDecorationsHtml(s.page.pageDecorations,s.page.pageNumber,s.page.totalPages,s.page.decorationVariables,s.page.decorationValues)),h=(0,n.computed)(()=>u.value>1?`第 ${s.page.pageNumber} 页正文超出纸张 ${Math.round(u.value)}px,生成 PDF 时会分页,请回模板设计器调整后再指定位置。`:``),g=(0,n.computed)(()=>s.page.errors[0]||h.value),_=(0,n.computed)(()=>s.page.errors.length?`模板已安全降级展示`:`该页签署位置不可信`);function v(e){l.value=e.contentHeight,u.value=e.overflowHeight,c(`metrics`,e),b()}function y(e,t){if(d.value=e,e===`error`){c(`status`,e,t);return}b()}function b(){if(d.value!==`ready`){c(`status`,d.value);return}if(u.value>1){c(`status`,`error`,h.value);return}c(`status`,`ready`)}return(t,o)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{class:`gd-ant-contract-signing-location__template-page`,"data-page-id":a.page.pageId,"data-template-page-index":a.page.pageIndex,"data-page-width":a.page.displayWidth,"data-page-height":a.page.displayHeight,style:(0,n.normalizeStyle)(f.value)},[(0,n.createVNode)(e.default,{"page-id":a.page.pageId,width:a.page.displayWidth,height:a.page.displayHeight,"padding-top":a.page.paddingTop,"padding-bottom":a.page.paddingBottom,"class-names":p.value,"decorations-html":m.value,"content-html":a.page.contentHtml,"font-base-url":a.fontBaseUrl,title:`第 ${a.page.pageNumber} 页合同签署底图`,onMetrics:v,onStatus:y},null,8,[`page-id`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),g.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`strong`,null,(0,n.toDisplayString)(_.value),1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(g.value),1)])):(0,n.createCommentVNode)(``,!0)],12,r))}});exports.default=a;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../pro-contract-template-designer/src/ContractPrintIframe.cjs`),t=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`);let n=require(`vue`);var r=[`data-page-id`,`data-template-page-index`,`data-page-width`,`data-page-height`],i={key:0,class:`gd-ant-contract-signing-location__template-warning`,role:`alert`},a=(0,n.defineComponent)({name:`ContractSigningTemplatePage`,__name:`ContractSigningTemplatePage`,props:{page:{},fontBaseUrl:{}},emits:[`status`,`metrics`],setup(a,{emit:o}){let s=a,c=o,l=(0,n.shallowRef)(0),u=(0,n.shallowRef)(0),d=(0,n.shallowRef)(0),f=(0,n.shallowRef)(`loading`),p=(0,n.computed)(()=>({width:`${s.page.displayWidth}px`,minHeight:`${s.page.displayHeight}px`,height:`${Math.max(s.page.displayHeight,l.value)}px`})),m=(0,n.computed)(()=>t.buildPageDecorationClassNames(s.page.pageDecorations,s.page.pageNumber)),h=(0,n.computed)(()=>t.buildPageDecorationsHtml(s.page.pageDecorations,s.page.pageNumber,s.page.totalPages,s.page.decorationVariables,s.page.decorationValues)),g=(0,n.computed)(()=>u.value>1?`第 ${s.page.pageNumber} 页正文超出纸张 ${Math.round(u.value)}px,请回模板设计器调整后再指定位置。`:d.value>1?`第 ${s.page.pageNumber} 页正文超出纸张宽度 ${Math.round(d.value)}px,请回模板设计器调整后再指定位置。`:``),_=(0,n.computed)(()=>s.page.errors[0]||g.value),v=(0,n.computed)(()=>s.page.errors.length?`模板已安全降级展示`:`该页签署位置不可信`);function y(e){l.value=e.contentHeight,u.value=e.overflowHeight,d.value=e.overflowWidth,c(`metrics`,e),x()}function b(e,t){if(f.value=e,e===`error`){c(`status`,e,t);return}x()}function x(){if(f.value!==`ready`){c(`status`,f.value);return}if(u.value>1||d.value>1){c(`status`,`error`,g.value);return}c(`status`,`ready`)}return(t,o)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{class:`gd-ant-contract-signing-location__template-page`,"data-page-id":a.page.pageId,"data-template-page-index":a.page.pageIndex,"data-page-width":a.page.displayWidth,"data-page-height":a.page.displayHeight,style:(0,n.normalizeStyle)(p.value)},[(0,n.createVNode)(e.default,{"page-id":a.page.pageId,width:a.page.displayWidth,height:a.page.displayHeight,"padding-top":a.page.paddingTop,"padding-bottom":a.page.paddingBottom,"class-names":m.value,"decorations-html":h.value,"content-html":a.page.contentHtml,"font-base-url":a.fontBaseUrl,title:`第 ${a.page.pageNumber} 页合同签署底图`,onMetrics:y,onStatus:b},null,8,[`page-id`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),_.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createElementVNode)(`strong`,null,(0,n.toDisplayString)(v.value),1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(_.value),1)])):(0,n.createCommentVNode)(``,!0)],12,r))}});exports.default=a;
@@ -1 +1 @@
1
- const e=require(`./constants.cjs`),t=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`),n=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`);function r(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function i(e){return r(e?.source)}function a(t){if(!r(t)||!u(t.template))return[];try{let r=t.template,i=Array.isArray(r.pages)?r.pages:[],a=n.normalizeRenderValues(r,t.values),s=l(r),c=i.length;return i.flatMap((t,i)=>{let l=n.buildTemplateRenderPages({...r,pages:[t]},a,{readonly:!0,disabled:!0,mode:`display`})[0];if(!l)return[];let u=d(t?.pageSize,r.pageSize,l),f=e.toContractSigningRulePageSize(u),p=i+1,m=o(l.pageDecorations,p);return[{pageIndex:i,pageId:l.id,title:l.title,width:f.width||u.width,height:f.height||u.height,displayWidth:u.width,displayHeight:u.height,contentHtml:l.contentHtml,...l.pageDecorations?{pageDecorations:l.pageDecorations}:{},decorationVariables:l.decorationVariables,decorationValues:l.decorationValues,pageNumber:p,totalPages:c,paddingTop:m.top,paddingBottom:m.bottom,errors:s.filter(e=>!e.pageId||e.pageId===l.id).map(e=>e.message)}]})}catch{return[]}}function o(e,n){let r=t.normalizePageDecorations(e);return{top:t.hasEnabledPageHeader(r,n)?t.getPageDecorationSafePadding(r.header):t.CONTRACT_PAGE_BASE_PADDING.top,bottom:t.hasEnabledPageFooter(r,n)?t.getPageDecorationSafePadding(r.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom}}function s(e){if(!r(e.source))return[];if(!u(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 l(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 c(e){return!e||!r(e.source)?``:s(e)[0]?.message??``}function l(e){return n.validateTemplateRenderStructure(e)}function u(e){return!!(e&&typeof e==`object`)}function d(e,t,n){return p(e)||p(t)||{width:m(e?.width,m(t?.width,n.width)),height:m(e?.height,m(t?.height,n.height))}}var f=[{pointWidth:595.5,pointHeight:842.25,cssWidth:794,cssHeight:1123},{pointWidth:842.25,pointHeight:595.5,cssWidth:1123,cssHeight:794},{pointWidth:419.25,pointHeight:595.5,cssWidth:559,cssHeight:794},{pointWidth:595.5,pointHeight:419.25,cssWidth:794,cssHeight:559},{pointWidth:842.25,pointHeight:1190.25,cssWidth:1123,cssHeight:1587},{pointWidth:1190.25,pointHeight:842.25,cssWidth:1587,cssHeight:1123},{pointWidth:612,pointHeight:792,cssWidth:816,cssHeight:1056},{pointWidth:612,pointHeight:1008,cssWidth:816,cssHeight:1344}];function p(e){let t=Number(e?.width),n=Number(e?.height);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0)return;let r=f.find(e=>Math.abs(t-e.pointWidth)<=1.1&&Math.abs(n-e.pointHeight)<=1.1);return r?{width:r.cssWidth,height:r.cssHeight}:void 0}function m(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningTemplateRenderPages=a,exports.getContractSigningTemplateDisplayError=c,exports.isContractSigningTemplateFile=i,exports.isContractSigningTemplateSource=r,exports.validateContractSigningTemplateFile=s;
1
+ const e=require(`../../../contract-print-css/index.cjs`),t=require(`./constants.cjs`),n=require(`../../pro-contract-template-designer/src/utils/page-decorations.cjs`),r=require(`../../pro-contract-template-designer/src/utils/template-renderer.cjs`),i=require(`../../pro-contract-template-designer/src/utils/contract-layout-check.cjs`);function a(e){return!!(e&&typeof e==`object`&&e.type===`template`)}function o(e){return a(e?.source)}function s(i){if(!a(i)||!f(i.template))return[];try{let a=i.template,o=Array.isArray(a.pages)?a.pages:[],s=r.normalizeRenderValues(a,i.values),c=d(a),l=o.length;return o.flatMap((i,o)=>{let u=r.buildTemplateRenderPages({...a,pages:[i]},s,{readonly:!0,disabled:!0,mode:`display`})[0];if(!u)return[];let d=p(i?.pageSize,a.pageSize,u),f=t.toContractSigningRulePageSize(d),m=o+1,h=e.resolveContractPagePadding(n.normalizePageDecorations(u.pageDecorations),m);return[{pageIndex:o,pageId:u.id,title:u.title,width:f.width||d.width,height:f.height||d.height,displayWidth:d.width,displayHeight:d.height,contentHtml:u.contentHtml,...u.pageDecorations?{pageDecorations:u.pageDecorations}:{},decorationVariables:u.decorationVariables,decorationValues:u.decorationValues,pageNumber:m,totalPages:l,paddingTop:h.top,paddingBottom:h.bottom,errors:c.filter(e=>!e.pageId||e.pageId===u.id).map(e=>e.message)}]})}catch{return[]}}function c(e,t){return s(t).map(t=>i.createContractTemplateLayoutPage({id:t.pageId,title:t.title,format:`Custom`,width:t.displayWidth,height:t.displayHeight,contentHtml:t.contentHtml,...t.pageDecorations?{pageDecorations:t.pageDecorations}:{},decorationVariables:t.decorationVariables,decorationValues:t.decorationValues},{fileId:e,pageIndex:t.pageIndex,pageNumber:t.pageNumber,totalPages:t.totalPages}))}function l(e){if(!a(e.source))return[];if(!f(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 d(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 u(e){return!e||!a(e.source)?``:l(e)[0]?.message??``}function d(e){return r.validateTemplateRenderStructure(e)}function f(e){return!!(e&&typeof e==`object`)}function p(e,t,n){return h(e)||h(t)||{width:g(e?.width,g(t?.width,n.width)),height:g(e?.height,g(t?.height,n.height))}}var m=[{pointWidth:595.5,pointHeight:842.25,cssWidth:794,cssHeight:1123},{pointWidth:842.25,pointHeight:595.5,cssWidth:1123,cssHeight:794},{pointWidth:419.25,pointHeight:595.5,cssWidth:559,cssHeight:794},{pointWidth:595.5,pointHeight:419.25,cssWidth:794,cssHeight:559},{pointWidth:842.25,pointHeight:1190.25,cssWidth:1123,cssHeight:1587},{pointWidth:1190.25,pointHeight:842.25,cssWidth:1587,cssHeight:1123},{pointWidth:612,pointHeight:792,cssWidth:816,cssHeight:1056},{pointWidth:612,pointHeight:1008,cssWidth:816,cssHeight:1344}];function h(e){let t=Number(e?.width),n=Number(e?.height);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0)return;let r=m.find(e=>Math.abs(t-e.pointWidth)<=1.1&&Math.abs(n-e.pointHeight)<=1.1);return r?{width:r.cssWidth,height:r.cssHeight}:void 0}function g(e,t){let n=Number(e);return Number.isFinite(n)&&n>0?n:t}exports.buildContractSigningLayoutPages=c,exports.buildContractSigningTemplateRenderPages=s,exports.getContractSigningTemplateDisplayError=u,exports.isContractSigningTemplateFile=o,exports.isContractSigningTemplateSource=a,exports.validateContractSigningTemplateFile=l;
@@ -1 +1 @@
1
- require(`../hooks/setup-theme.cjs`),require(`./collapse-transtion/src/types.cjs`),require(`./collapse-transtion/index.cjs`),require(`./pro-modal/src/types.cjs`),require(`./pro-modal/hooks/useProModal.cjs`),require(`./pro-modal/index.cjs`),require(`./pro-title/src/types.cjs`),require(`./pro-title/index.cjs`),require(`./scroll-bar/src/types.cjs`),require(`./scroll-bar/index.cjs`),require(`./cover-scroll-bar/src/types.cjs`),require(`./cover-scroll-bar/index.cjs`),require(`./scale-virtual-list/index.cjs`),require(`./pro-tag/src/types.cjs`),require(`./pro-tag/index.cjs`),require(`./pro-picker/src/types.cjs`),require(`./pro-picker/index.cjs`),require(`./pro-area/src/types.cjs`),require(`./pro-area/hooks/use-pro-area.cjs`),require(`./pro-area/index.cjs`),require(`./pro-signature/src/types.cjs`),require(`./pro-signature/index.cjs`),require(`./pro-table/hooks/use-pro-table.cjs`),require(`./pro-table/index.cjs`),require(`./icon/index.cjs`),require(`./pro-upload/src/types.cjs`),require(`./pro-upload/src/hooks/useUpload.cjs`),require(`./pro-upload/index.cjs`),require(`./pro-loading/src/pro-loading.cjs`),require(`./plus-upload/index.cjs`),require(`./pro-overlay/index.cjs`),require(`./pro-selector/src/types.cjs`),require(`./pro-selector/src/ProUserSelector.cjs`),require(`./pro-selector/src/ProUserSelectorDrilldown.cjs`),require(`./pro-selector/src/components/user.cjs`),require(`./pro-selector/src/hooks/useUserSelector.cjs`),require(`./pro-selector/index.cjs`),require(`./pro-user-avatar/index.cjs`),require(`./role-selector/src/types.cjs`),require(`./role-selector/index.cjs`),require(`./dept-selector/src/types.cjs`),require(`./dept-selector/index.cjs`),require(`./pro-menu-tree/src/types.cjs`),require(`./pro-menu-tree/index.cjs`),require(`./pro-tag-group/src/types.cjs`),require(`./pro-tag-group/index.cjs`),require(`./pro-form-render/src/types.cjs`),require(`./pro-form-render/index.cjs`),require(`./pro-cell-group/src/types.cjs`),require(`./pro-cell/index.cjs`),require(`./pro-cell-group/index.cjs`),require(`./pro-selector-group/src/types.cjs`),require(`./pro-selector-group/index.cjs`),require(`./pro-dynamic-tags/index.cjs`),require(`./pro-drawer/src/types.cjs`),require(`./pro-drawer/index.cjs`),require(`./pro-contract-template-designer/src/utils/contract-print-document.cjs`),require(`./contract-signing-location/src/constants.cjs`),require(`./pro-contract-template-designer/src/utils/signing-mark.cjs`),require(`./pro-contract-template-designer/src/constants.cjs`),require(`./contract-signing-location/src/coordinates.cjs`),require(`./pro-contract-template-designer/src/types.cjs`),require(`./pro-contract-template-designer/src/utils/advanced-controls.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-designer.cjs`),require(`./pro-contract-template-designer/src/utils/image-url.cjs`),require(`./pro-contract-template-designer/src/utils/template-renderer.cjs`),require(`./contract-signing-location/src/template-source.cjs`),require(`./contract-signing-location/src/location-rules.cjs`),require(`./contract-signing-location/src/page-layout.cjs`),require(`./contract-signing-location/src/signing-visuals.cjs`),require(`./contract-signing-location/index.cjs`),require(`./pro-contract-template-designer/src/utils/content-image.cjs`),require(`./pro-contract-template-designer/src/utils/signing-layout-presets.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-draft-cache.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-files.cjs`),require(`./pro-contract-template-designer/index.cjs`),require(`./pro-contract-signing-flow/src/constants.cjs`),require(`./pro-contract-signing-flow/src/composables/use-contract-signing-flow.cjs`),require(`./pro-contract-signing-flow/index.cjs`),require(`./pro-contract-template-agent/src/composables/use-contract-template-agent.cjs`),require(`./pro-contract-template-agent/src/utils/contract-template-agent-adapter.cjs`),require(`./pro-contract-template-agent/index.cjs`),require(`./hooks/use-basic-app-config.cjs`);
1
+ require(`../hooks/setup-theme.cjs`),require(`./collapse-transtion/src/types.cjs`),require(`./collapse-transtion/index.cjs`),require(`./pro-modal/src/types.cjs`),require(`./pro-modal/hooks/useProModal.cjs`),require(`./pro-modal/index.cjs`),require(`./pro-title/src/types.cjs`),require(`./pro-title/index.cjs`),require(`./scroll-bar/src/types.cjs`),require(`./scroll-bar/index.cjs`),require(`./cover-scroll-bar/src/types.cjs`),require(`./cover-scroll-bar/index.cjs`),require(`./scale-virtual-list/index.cjs`),require(`./pro-tag/src/types.cjs`),require(`./pro-tag/index.cjs`),require(`./pro-picker/src/types.cjs`),require(`./pro-picker/index.cjs`),require(`./pro-area/src/types.cjs`),require(`./pro-area/hooks/use-pro-area.cjs`),require(`./pro-area/index.cjs`),require(`./pro-signature/src/types.cjs`),require(`./pro-signature/index.cjs`),require(`./pro-table/hooks/use-pro-table.cjs`),require(`./pro-table/index.cjs`),require(`./icon/index.cjs`),require(`./pro-upload/src/types.cjs`),require(`./pro-upload/src/hooks/useUpload.cjs`),require(`./pro-upload/index.cjs`),require(`./pro-loading/src/pro-loading.cjs`),require(`./plus-upload/index.cjs`),require(`./pro-overlay/index.cjs`),require(`./pro-selector/src/types.cjs`),require(`./pro-selector/src/ProUserSelector.cjs`),require(`./pro-selector/src/ProUserSelectorDrilldown.cjs`),require(`./pro-selector/src/components/user.cjs`),require(`./pro-selector/src/hooks/useUserSelector.cjs`),require(`./pro-selector/index.cjs`),require(`./pro-user-avatar/index.cjs`),require(`./role-selector/src/types.cjs`),require(`./role-selector/index.cjs`),require(`./dept-selector/src/types.cjs`),require(`./dept-selector/index.cjs`),require(`./pro-menu-tree/src/types.cjs`),require(`./pro-menu-tree/index.cjs`),require(`./pro-tag-group/src/types.cjs`),require(`./pro-tag-group/index.cjs`),require(`./pro-form-render/src/types.cjs`),require(`./pro-form-render/index.cjs`),require(`./pro-cell-group/src/types.cjs`),require(`./pro-cell/index.cjs`),require(`./pro-cell-group/index.cjs`),require(`./pro-selector-group/src/types.cjs`),require(`./pro-selector-group/index.cjs`),require(`./pro-dynamic-tags/index.cjs`),require(`./pro-drawer/src/types.cjs`),require(`./pro-drawer/index.cjs`),require(`./pro-contract-template-designer/src/utils/contract-print-document.cjs`),require(`./contract-signing-location/src/constants.cjs`),require(`./pro-contract-template-designer/src/utils/signing-mark.cjs`),require(`./pro-contract-template-designer/src/constants.cjs`),require(`./contract-signing-location/src/coordinates.cjs`),require(`./pro-contract-template-designer/src/types.cjs`),require(`./pro-contract-template-designer/src/utils/advanced-controls.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-designer.cjs`),require(`./pro-contract-template-designer/src/utils/image-url.cjs`),require(`./pro-contract-template-designer/src/utils/template-renderer.cjs`),require(`./pro-contract-template-designer/src/utils/contract-layout-check.cjs`),require(`./contract-signing-location/src/template-source.cjs`),require(`./contract-signing-location/src/location-rules.cjs`),require(`./contract-signing-location/src/page-layout.cjs`),require(`./contract-signing-location/src/signing-visuals.cjs`),require(`./contract-signing-location/index.cjs`),require(`./pro-contract-template-designer/src/utils/content-image.cjs`),require(`./pro-contract-template-designer/src/utils/signing-layout-presets.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-draft-cache.cjs`),require(`./pro-contract-template-designer/src/composables/use-template-files.cjs`),require(`./pro-contract-template-designer/index.cjs`),require(`./pro-contract-signing-flow/src/constants.cjs`),require(`./pro-contract-signing-flow/src/composables/use-contract-signing-flow.cjs`),require(`./pro-contract-signing-flow/index.cjs`),require(`./pro-contract-template-agent/src/composables/use-contract-template-agent.cjs`),require(`./pro-contract-template-agent/src/utils/contract-template-agent-adapter.cjs`),require(`./pro-contract-template-agent/index.cjs`),require(`./hooks/use-basic-app-config.cjs`);
@@ -1 +1 @@
1
- const e=require(`../utils/install.cjs`);require(`./src/utils/contract-print-document.cjs`),require(`./src/utils/signing-mark.cjs`),require(`./src/constants.cjs`),require(`./src/types.cjs`),require(`./src/utils/advanced-controls.cjs`),require(`./src/composables/use-template-designer.cjs`),require(`./src/utils/image-url.cjs`),require(`./src/utils/template-renderer.cjs`),require(`./src/utils/content-image.cjs`),require(`./src/utils/signing-layout-presets.cjs`),require(`./src/composables/use-template-draft-cache.cjs`),require(`./src/composables/use-template-files.cjs`);const t=require(`./src/ProContractTemplateDesigner.cjs`),n=require(`./src/ProContractTemplateRenderer.cjs`);require(`./style/index.cjs`);var r=e.withInstall(t.default),i=e.withInstall(n.default);exports.GdAntProContractTemplateRenderer=i,exports.default=r;
1
+ const e=require(`../utils/install.cjs`);require(`./src/utils/contract-print-document.cjs`),require(`./src/utils/signing-mark.cjs`),require(`./src/constants.cjs`),require(`./src/types.cjs`),require(`./src/utils/advanced-controls.cjs`),require(`./src/composables/use-template-designer.cjs`),require(`./src/utils/image-url.cjs`),require(`./src/utils/template-renderer.cjs`),require(`./src/utils/contract-layout-check.cjs`),require(`./src/utils/content-image.cjs`),require(`./src/utils/signing-layout-presets.cjs`),require(`./src/composables/use-template-draft-cache.cjs`),require(`./src/composables/use-template-files.cjs`);const t=require(`./src/ProContractTemplateDesigner.cjs`),n=require(`./src/ProContractTemplateRenderer.cjs`);require(`./style/index.cjs`);var r=e.withInstall(t.default),i=e.withInstall(n.default);exports.GdAntProContractTemplateRenderer=i,exports.default=r;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractPrintIframe.cjs`),t=require(`./utils/page-decorations.cjs`),n=require(`./composables/use-template-designer.cjs`);let r=require(`vue`);var i={class:`gd-contract-template-designer__preview-page-shell`},a=[`data-page-id`,`data-page-format`,`data-page-label`,`data-page-width`,`data-page-height`],o={key:0,class:`gd-contract-template-designer__preview-font-error`,role:`alert`},s=(0,r.defineComponent)({name:`ContractTemplatePreviewPage`,__name:`ContractTemplatePreviewPage`,props:{page:{},fallbackPageSize:{},contentHtml:{},pageDecorations:{},pageNumber:{},totalPages:{},variables:{},fontBaseUrl:{}},setup(s){let c=s,l=(0,r.computed)(()=>n.resolvePageSize(c.page.pageSize,c.fallbackPageSize)),u=(0,r.computed)(()=>{let e=t.normalizePageDecorations(c.pageDecorations);return{top:t.hasEnabledPageHeader(e,c.pageNumber)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,bottom:t.hasEnabledPageFooter(e,c.pageNumber)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom}}),d=(0,r.computed)(()=>({width:`${l.value.width}px`,height:`${l.value.height}px`})),f=(0,r.computed)(()=>t.buildPageDecorationClassNames(c.pageDecorations,c.pageNumber)),p=(0,r.computed)(()=>t.buildPageDecorationsHtml(c.pageDecorations,c.pageNumber,c.totalPages,c.variables)),m=(0,r.shallowRef)(``);function h(e,t){m.value=e===`error`?t||`合同排版度量校验失败`:``}return(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`article`,i,[(0,r.createElementVNode)(`section`,{class:`gd-contract-template-designer__preview-page`,"data-page-id":s.page.id,"data-page-format":l.value.format??`Custom`,"data-page-label":l.value.label??l.value.format??`自定义`,"data-page-width":l.value.width,"data-page-height":l.value.height,style:(0,r.normalizeStyle)(d.value)},[(0,r.createVNode)(e.default,{"page-id":s.page.id,"page-format":l.value.format,width:l.value.width,height:l.value.height,"padding-top":u.value.top,"padding-bottom":u.value.bottom,"class-names":f.value,"decorations-html":p.value,"content-html":s.contentHtml,"font-base-url":s.fontBaseUrl,title:`第 ${s.pageNumber} 页合同预览`,onStatus:h},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),m.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,o,(0,r.toDisplayString)(m.value),1)):(0,r.createCommentVNode)(``,!0)],12,a)]))}});exports.default=s;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../contract-print-css/index.cjs`),t=require(`./ContractPrintIframe.cjs`),n=require(`./utils/page-decorations.cjs`),r=require(`./composables/use-template-designer.cjs`);let i=require(`vue`);var a={class:`gd-contract-template-designer__preview-page-shell`},o=[`data-page-id`,`data-page-format`,`data-page-label`,`data-page-width`,`data-page-height`],s={key:0,class:`gd-contract-template-designer__preview-font-error`,role:`alert`},c=(0,i.defineComponent)({name:`ContractTemplatePreviewPage`,__name:`ContractTemplatePreviewPage`,props:{page:{},fallbackPageSize:{},contentHtml:{},pageDecorations:{},pageNumber:{},totalPages:{},variables:{},fontBaseUrl:{}},setup(c){let l=c,u=(0,i.computed)(()=>r.resolvePageSize(l.page.pageSize,l.fallbackPageSize)),d=(0,i.computed)(()=>e.resolveContractPagePadding(n.normalizePageDecorations(l.pageDecorations),l.pageNumber)),f=(0,i.computed)(()=>({width:`${u.value.width}px`,height:`${u.value.height}px`})),p=(0,i.computed)(()=>n.buildPageDecorationClassNames(l.pageDecorations,l.pageNumber)),m=(0,i.computed)(()=>n.buildPageDecorationsHtml(l.pageDecorations,l.pageNumber,l.totalPages,l.variables)),h=(0,i.shallowRef)(``);function g(e,t){h.value=e===`error`?t||`合同排版度量校验失败`:``}return(e,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`article`,a,[(0,i.createElementVNode)(`section`,{class:`gd-contract-template-designer__preview-page`,"data-page-id":c.page.id,"data-page-format":u.value.format??`Custom`,"data-page-label":u.value.label??u.value.format??`自定义`,"data-page-width":u.value.width,"data-page-height":u.value.height,style:(0,i.normalizeStyle)(f.value)},[(0,i.createVNode)(t.default,{"page-id":c.page.id,"page-format":u.value.format,width:u.value.width,height:u.value.height,"padding-top":d.value.top,"padding-bottom":d.value.bottom,"class-names":p.value,"decorations-html":m.value,"content-html":c.contentHtml,"font-base-url":c.fontBaseUrl,title:`第 ${c.pageNumber} 页合同预览`,onStatus:g},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`title`]),h.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,s,(0,i.toDisplayString)(h.value),1)):(0,i.createCommentVNode)(``,!0)],12,o)]))}});exports.default=c;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./ContractPrintIframe.cjs`),t=require(`./utils/page-decorations.cjs`);let n=require(`vue`);var r=[`data-render-page-id`],i={key:0,class:`gd-contract-template-renderer__page-meta`},a=[`data-page-id`,`data-page-format`,`data-page-width`,`data-page-height`],o={key:0,class:`gd-contract-template-renderer__font-error`,role:`alert`},s=(0,n.defineComponent)({name:`ContractTemplateRendererPage`,__name:`ContractTemplateRendererPage`,props:{page:{},index:{},total:{},zoom:{},showMeta:{type:Boolean},fontBaseUrl:{},activeKey:{},scrollRequest:{}},emits:[`status`,`metrics`,`interaction`],setup(s,{emit:c}){let l=s,u=c,d=(0,n.computed)(()=>({width:`${l.page.width*l.zoom}px`,height:`${l.page.height*l.zoom}px`})),f=(0,n.computed)(()=>{let e=t.normalizePageDecorations(l.page.pageDecorations);return{top:t.hasEnabledPageHeader(e,l.index+1)?t.getPageDecorationSafePadding(e.header):t.CONTRACT_PAGE_BASE_PADDING.top,bottom:t.hasEnabledPageFooter(e,l.index+1)?t.getPageDecorationSafePadding(e.footer):t.CONTRACT_PAGE_BASE_PADDING.bottom}}),p=(0,n.computed)(()=>({width:`${l.page.width}px`,height:`${l.page.height}px`,transform:`scale(${l.zoom})`})),m=(0,n.computed)(()=>t.buildPageDecorationClassNames(l.page.pageDecorations,l.index+1)),h=(0,n.computed)(()=>t.buildPageDecorationsHtml(l.page.pageDecorations,l.index+1,l.total,l.page.decorationVariables,l.page.decorationValues)),g=(0,n.shallowRef)(``);function _(e,t){g.value=e===`error`?t||`合同排版度量校验失败`:``,u(`status`,e,t)}return(t,c)=>((0,n.openBlock)(),(0,n.createElementBlock)(`article`,{class:`gd-contract-template-renderer__page-shell`,"data-render-page-id":s.page.id},[s.showMeta?((0,n.openBlock)(),(0,n.createElementBlock)(`header`,i,[(0,n.createElementVNode)(`strong`,null,`第 `+(0,n.toDisplayString)(s.index+1)+` / `+(0,n.toDisplayString)(s.total)+` 页`,1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(s.page.title),1),(0,n.createElementVNode)(`small`,null,(0,n.toDisplayString)(s.page.format)+` · `+(0,n.toDisplayString)(s.page.width)+` × `+(0,n.toDisplayString)(s.page.height)+` px`,1)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,{class:`gd-contract-template-renderer__page-frame`,style:(0,n.normalizeStyle)(d.value)},[(0,n.createElementVNode)(`div`,{class:`gd-contract-template-renderer__print-page`,"data-page-id":s.page.id,"data-page-format":s.page.format,"data-page-width":s.page.width,"data-page-height":s.page.height,style:(0,n.normalizeStyle)(p.value)},[(0,n.createVNode)(e.default,{"page-id":s.page.id,"page-format":s.page.format,width:s.page.width,height:s.page.height,"padding-top":f.value.top,"padding-bottom":f.value.bottom,"class-names":m.value,"decorations-html":h.value,"content-html":s.page.contentHtml,"font-base-url":s.fontBaseUrl,"active-key":s.activeKey,"scroll-request":s.scrollRequest,title:`第 ${s.index+1} 页合同填写内容`,onInteraction:c[0]||=e=>u(`interaction`,e),onMetrics:c[1]||=e=>u(`metrics`,e),onStatus:_},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`active-key`,`scroll-request`,`title`]),g.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,(0,n.toDisplayString)(g.value),1)):(0,n.createCommentVNode)(``,!0)],12,a)],4)],8,r))}});exports.default=s;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../contract-print-css/index.cjs`),t=require(`./ContractPrintIframe.cjs`),n=require(`./utils/page-decorations.cjs`),r=require(`./utils/contract-layout-check.cjs`);let i=require(`vue`);var a=[`data-render-page-id`],o={key:0,class:`gd-contract-template-renderer__page-meta`},s=[`data-page-id`,`data-page-format`,`data-page-width`,`data-page-height`],c={key:0,class:`gd-contract-template-renderer__font-error`,role:`alert`},l=(0,i.defineComponent)({name:`ContractTemplateRendererPage`,__name:`ContractTemplateRendererPage`,props:{page:{},index:{},total:{},zoom:{},showMeta:{type:Boolean},fontBaseUrl:{},activeKey:{},scrollRequest:{}},emits:[`status`,`metrics`,`interaction`],setup(l,{emit:u}){let d=l,f=u,p=(0,i.computed)(()=>({width:`${d.page.width*d.zoom}px`,height:`${d.page.height*d.zoom}px`})),m=(0,i.computed)(()=>e.resolveContractPagePadding(n.normalizePageDecorations(d.page.pageDecorations),d.index+1)),h=(0,i.computed)(()=>({width:`${d.page.width}px`,height:`${d.page.height}px`,transform:`scale(${d.zoom})`})),g=(0,i.computed)(()=>n.buildPageDecorationClassNames(d.page.pageDecorations,d.index+1)),_=(0,i.computed)(()=>n.buildPageDecorationsHtml(d.page.pageDecorations,d.index+1,d.total,d.page.decorationVariables,d.page.decorationValues)),v=(0,i.shallowRef)(``),y=(0,i.shallowRef)(),b=(0,i.computed)(()=>v.value?v.value:y.value?r.describeContractTemplateLayoutIssue({pageIndex:d.index,pageNumber:d.index+1,pageId:d.page.id,kind:`overflow`,overflowHeight:y.value.overflowHeight,overflowWidth:y.value.overflowWidth})[0]??``:``);function x(e,t){e===`loading`&&(y.value=void 0),v.value=e===`error`?r.describeContractTemplateLayoutIssue({pageIndex:d.index,pageNumber:d.index+1,pageId:d.page.id,kind:`measure-failed`,overflowHeight:0,overflowWidth:0,error:t})[0]??`无法确认排版,请稍后重试`:``,f(`status`,e,t)}function S(e){y.value=e,f(`metrics`,e)}return(e,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`article`,{class:`gd-contract-template-renderer__page-shell`,"data-render-page-id":l.page.id},[l.showMeta?((0,i.openBlock)(),(0,i.createElementBlock)(`header`,o,[(0,i.createElementVNode)(`strong`,null,`第 `+(0,i.toDisplayString)(l.index+1)+` / `+(0,i.toDisplayString)(l.total)+` 页`,1),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(l.page.title),1),(0,i.createElementVNode)(`small`,null,(0,i.toDisplayString)(l.page.format)+` · `+(0,i.toDisplayString)(l.page.width)+` × `+(0,i.toDisplayString)(l.page.height)+` px`,1)])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`div`,{class:`gd-contract-template-renderer__page-frame`,style:(0,i.normalizeStyle)(p.value)},[(0,i.createElementVNode)(`div`,{class:`gd-contract-template-renderer__print-page`,"data-page-id":l.page.id,"data-page-format":l.page.format,"data-page-width":l.page.width,"data-page-height":l.page.height,style:(0,i.normalizeStyle)(h.value)},[(0,i.createVNode)(t.default,{"page-id":l.page.id,"page-format":l.page.format,width:l.page.width,height:l.page.height,"padding-top":m.value.top,"padding-bottom":m.value.bottom,"class-names":g.value,"decorations-html":_.value,"content-html":l.page.contentHtml,"font-base-url":l.fontBaseUrl,"active-key":l.activeKey,"scroll-request":l.scrollRequest,title:`第 ${l.index+1} 页合同填写内容`,onInteraction:n[0]||=e=>f(`interaction`,e),onMetrics:S,onStatus:x},null,8,[`page-id`,`page-format`,`width`,`height`,`padding-top`,`padding-bottom`,`class-names`,`decorations-html`,`content-html`,`font-base-url`,`active-key`,`scroll-request`,`title`]),b.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,c,(0,i.toDisplayString)(b.value),1)):(0,i.createCommentVNode)(``,!0)],12,s)],4)],8,a))}});exports.default=l;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./types.cjs`),t=require(`./utils/advanced-controls.cjs`),n=require(`./utils/template-renderer.cjs`),r=require(`./ContractTemplateRendererField.cjs`),i=require(`./ContractTemplateRendererHeader.cjs`),a=require(`./ContractTemplateRendererPage.cjs`),o=require(`./ContractTemplateRendererValidation.cjs`);let s=require(`vue`),c=require(`ant-design-vue`),l=require(`@vueuse/core`),ee=require(`@ant-design/icons-vue`);var te={key:2,class:`gd-contract-template-renderer__empty`},ne=[`data-highlighted-variable-key`],re={class:`gd-contract-template-renderer__pages`},ie=[`aria-label`,`aria-expanded`],ae={class:`gd-contract-template-renderer__panel-clip`},oe={class:`gd-contract-template-renderer__panel`},se={class:`gd-contract-template-renderer__panel-head`},ce={class:`gd-contract-template-renderer__panel-head-row`},le={class:`gd-contract-template-renderer__panel-head-actions`},ue={class:`gd-contract-template-renderer__field-group-head`},de={class:`gd-contract-template-renderer__field-group-items`},fe=[`data-field-key`],pe=.5,me=1.5,u=.1,he=3e3,d=(0,s.defineComponent)({name:`ContractTemplateSingleRenderer`,__name:`ContractTemplateSingleRenderer`,props:{files:{},activeFileId:{},valuesByFile:{},template:{default:void 0},values:{default:void 0},interactionMode:{default:`panel`},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{default:`合同填写`},showSubmitButton:{type:Boolean,default:!0},validateOnSubmit:{type:Boolean,default:!0},showValidateButton:{type:Boolean,default:!0},showResetButton:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},showPageMeta:{type:Boolean,default:!0},collapsiblePanel:{type:Boolean,default:!0},zoom:{default:1},controlRegistry:{default:()=>({})},optionResolver:{type:Function,default:void 0},requester:{type:Function,default:void 0},allowedRemoteOrigins:{default:()=>[]},remoteRequestTimeoutMs:{default:1e4},remoteOptionsCacheTtlMs:{default:3e4},selectorHttp:{default:void 0},selectorUrlPrefix:{default:``},contractFontBaseUrl:{default:void 0}},emits:[`update:activeFileId`,`update:valuesByFile`,`update:values`,`change`,`validate`,`submit`,`update:zoom`,`control-warning`],setup(d,{expose:ge,emit:_e}){let f=d,p=_e,ve=[{label:`全部`,value:`all`},{label:`未填写`,value:`unfilled`},{label:`有错误`,value:`error`}],ye=(0,s.ref)(),m=(0,s.ref)(),h=(0,s.ref)(),g=(0,s.ref)(n.normalizeRenderValues(f.template,f.values)),be=(0,s.ref)({...g.value}),_=(0,s.ref)(!1),v=(0,s.ref)([]),y=(0,s.ref)([]),b=(0,s.ref)(!1),x=(0,s.ref)(!1),S=(0,s.ref)(``),C=(0,s.ref)(``),w=(0,s.ref)(``),xe=(0,s.ref)(0),T=(0,s.ref)(gt(f.zoom)),E=(0,s.ref)(``),D=(0,s.ref)(`all`),O=(0,s.ref)(!1),Se=(0,s.ref)(new Map),k=new Map,A=new Map,j=new Map,M=new Set,{width:Ce}=(0,l.useElementSize)(m),N=(0,s.computed)(()=>f.readonly||f.disabled),we=(0,s.computed)(()=>f.interactionMode===`inline`&&!N.value),Te=(0,s.computed)(()=>n.validateTemplateRenderStructure(f.template)),P=(0,s.computed)(()=>_.value?v.value:[...Te.value,...y.value]),F=(0,s.computed)(()=>(Array.isArray(f.template?.variables)?f.template.variables:[]).filter(t=>!!t?.key&&e.isContractTemplateFieldType(t.type??`text`))),Ee=(0,s.computed)(()=>{let e={...g.value};return F.value.forEach(n=>{let r=Ze(n);if(r?.toDisplayText)try{e[n.key]=r.toDisplayText(e[n.key],{variable:n,config:t.normalizeContractTemplateJsonObject(n.componentConfig)})}catch{}}),e}),De=(0,s.computed)(()=>F.value.filter(e=>n.isEmptyRenderValue(g.value[e.key])).length),Oe=(0,s.computed)(()=>{let e=new Map;return P.value.forEach(t=>{t.variableKey&&e.set(t.variableKey,[...e.get(t.variableKey)??[],t])}),e}),I=(0,s.computed)(()=>n.buildTemplateRenderPages(f.template,we.value?be.value:Ee.value,{readonly:f.readonly,disabled:f.disabled,mode:we.value?`control`:`display`})),ke=(0,s.computed)(()=>{let e=new Map,t=new Set(F.value.map(e=>e.key));return I.value.forEach(n=>{dt(n.contentHtml).forEach(r=>{t.has(r)&&!e.has(r)&&e.set(r,n.id)})}),e}),Ae=(0,s.computed)(()=>F.value.filter(ot)),je=(0,s.computed)(()=>{let e=I.value.map((e,t)=>({id:`page:${e.id}`,pageId:e.id,title:`第 ${t+1} 页${e.title?` · ${e.title}`:``}`,allVariables:[],variables:[]})),t=new Map(e.map(e=>[e.pageId,e])),n={id:`unlocated`,title:`未定位字段`,allVariables:[],variables:[]};return F.value.forEach(e=>{let r=t.get(ke.value.get(e.key)??``)??n;r.allVariables.push(e),ot(e)&&r.variables.push(e)}),[...e,n].filter(e=>e.variables.length>0).map(e=>({id:e.id,title:e.title,totalCount:e.allVariables.length,variables:e.variables}))}),Me=(0,s.computed)(()=>I.value.length>0),L=(0,s.computed)(()=>F.value.filter(e=>!n.isEmptyRenderValue(g.value[e.key])).length),R=(0,s.computed)(()=>F.value.filter(e=>e.required&&n.isEmptyRenderValue(g.value[e.key])).length),Ne=(0,s.computed)(()=>F.value.length?Math.round(L.value/F.value.length*100):0),Pe=(0,s.computed)(()=>_.value&&v.value.length===0),Fe=(0,s.computed)(()=>_.value?Pe.value?`校验通过,模板与填写值均符合规则`:`发现 ${v.value.length} 个模板或填写问题`:y.value.length?`发现 ${P.value.length} 个模板或填写问题`:Te.value.length?`模板存在 ${Te.value.length} 个问题,已安全降级展示`:``),Ie=(0,s.computed)(()=>_.value?P.value.length>0||x.value:P.value.length>0);(0,s.watch)(()=>f.template,e=>{z(n.normalizeRenderValues(e,f.values),!1),U();let t=Array.isArray(e?.pages)?e.pages.map(e=>e?.id):[];t.includes(w.value)||(w.value=t.find(Boolean)??``),C.value&&!F.value.some(e=>e.key===C.value)&&qe()},{deep:!0}),(0,s.watch)(()=>[f.template?.variables,f.optionResolver,f.requester,f.allowedRemoteOrigins,f.remoteRequestTimeoutMs,f.remoteOptionsCacheTtlMs],()=>{$e()},{deep:!0,immediate:!0}),(0,s.watch)(()=>f.values,e=>{let t=n.normalizeRenderValues(f.template,e);_t(t,g.value)||(z(t,!1,{refreshInlineHtml:f.interactionMode!==`inline`}),U())},{deep:!0}),(0,s.watch)(we,e=>{e&&(be.value={...g.value})}),(0,s.watch)(()=>f.collapsiblePanel,e=>{e||(O.value=!1)}),(0,s.watch)(()=>f.zoom,e=>T.value=gt(e)),(0,s.watch)(I,e=>{!w.value&&e.length&&(w.value=e[0].id)},{immediate:!0});function z(e,t=!0,n={}){g.value={...e},n.refreshInlineHtml!==!1&&(be.value={...e}),t&&(p(`update:values`,{...g.value}),p(`change`,{...g.value}))}function B(e,t){if(!e||N.value)return;if(z({...g.value,[e]:t},!0,{refreshInlineHtml:f.interactionMode!==`inline`}),_.value){H();return}let r=F.value.find(t=>t.key===e);r&&(r.type??`text`)===`text`&&(y.value=[...y.value.filter(t=>t.variableKey!==e),...n.validateTemplateTextOverflow(r,t)],p(`validate`,P.value))}function Le(e){if(f.interactionMode!==`inline`)return;let t=e.target;if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement))return;let n=t.dataset.key||``;n&&(t instanceof HTMLInputElement&&t.type===`checkbox`?B(n,t.checked):t instanceof HTMLInputElement&&t.type===`number`?B(n,t.value===``?void 0:t.valueAsNumber):B(n,t.value))}function Re(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-render-page-id]`);n?.dataset.renderPageId&&(w.value=n.dataset.renderPageId);let r=t.closest(`[data-contract-render-wrapper], [data-contract-render-control]`)?.dataset.key||``;r&&J(r)}function ze(e){let t=I.value.find(t=>t.id===e.pageId),n=F.value.some(t=>t.key===e.key);if(!(!t||!n||!dt(t.contentHtml).has(e.key))&&!(e.kind===`input`&&f.interactionMode!==`inline`)){if(w.value=e.pageId,e.kind===`input`){B(e.key,e.value);return}J(e.key)}}function Be(e){if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target;!(t instanceof HTMLElement)||!t.dataset.key||(e.preventDefault(),J(t.dataset.key))}function V(){return{...g.value}}function Ve(e){z(n.normalizeRenderValues(f.template,e))}function H(){let e=n.validateTemplateRenderValues(f.template,g.value);return W(e),p(`validate`,e),e}function He(){let e=n.resolveTemplateRenderSubmitErrors(f.template,g.value,f.validateOnSubmit);if((f.validateOnSubmit||e.length)&&(W(e),p(`validate`,e)),e.length)return Ye(e[0]),!1;let t=V();return p(`submit`,t),t}function Ue(){return z(n.buildInitialRenderValues(f.template)),U(),V()}function We(){N.value||c.Modal.confirm({title:`重置填写内容?`,content:`将恢复模板中的默认值,当前未提交的填写内容会被覆盖。`,okText:`确认重置`,cancelText:`取消`,onOk:()=>Ue()})}function U(){y.value=[],_.value=!1,v.value=[],b.value=!1,x.value=!1,K()}function W(e){if(y.value=[],v.value=e,_.value=!0,b.value=!1,e.length){x.value=!1,K();return}Ge()}let G;function K(){G&&=(clearTimeout(G),void 0)}function Ge(){K(),x.value=!0,G=setTimeout(()=>{x.value=!1,G=void 0},he)}function q(e){J(e,!0)}function Ke(e){f.interactionMode===`panel`&&(O.value&&=!1,F.value.some(t=>t.key===e)&&!Ae.value.some(t=>t.key===e)&&st())}function J(e,t=!1){if(!e)return;Ke(e),C.value=e,S.value=e;let n=ke.value.get(e);n&&(w.value=n),t&&(xe.value+=1),(0,s.nextTick)(()=>{Je(e);let r=n?m.value?.querySelector(`[data-render-page-id="${$(n)}"]`):void 0;t&&r?.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),f.interactionMode===`panel`&&h.value?.querySelector(`[data-field-key="${$(e)}"]`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})})}function qe(){C.value=``,S.value=``,Je(``)}function Je(e){m.value?.querySelectorAll(`[data-contract-render-wrapper], [data-contract-render-control]`).forEach(t=>t.classList.toggle(`is-active`,!!e&&t.dataset.key===e))}function Ye(e){e.variableKey?(q(e.variableKey),f.interactionMode===`panel`&&(0,s.nextTick)(()=>lt(e.variableKey))):e.pageId&&Q(e.pageId)}function Xe(e){return Oe.value.get(e)??[]}function Y(e){return Se.value.get(e.key)??{options:e.options??[],loading:!1}}function Ze(e){let t=e.componentKey||e.type||``;return t?f.controlRegistry?.[t]:void 0}function X(e,t){let n=new Map(Se.value);n.set(e,t),Se.value=n}function Qe(e){p(`control-warning`,e)}async function $e(){k.forEach(e=>e.abort()),k.clear(),A.clear(),M.clear();let e=Array.isArray(f.template?.variables)?f.template.variables:[];await Promise.all(e.map(async e=>{if(!e?.key)return;let t=Array.isArray(e.options)?e.options.map(e=>({...e})):[];if(e.dataSource?await et(e,t):X(e.key,{options:t,loading:!1}),e.type===`custom`&&!Ze(e)){let t=e.componentKey||``,n=`${e.key}:${t}`;M.has(n)||(M.add(n),Qe({code:`CONTROL_COMPONENT_MISSING`,variableKey:e.key,componentKey:t,message:`${e.label||e.key} 未注册自定义控件 ${t||`(空)`}`}))}}))}async function et(e,n){let r=e.dataSource;if(!r)return;let i=new AbortController;k.set(e.key,i),X(e.key,{options:n,loading:!0});let a=tt(e),o=Date.now(),s=A.get(a);if(s&&s.expiresAt>o){X(e.key,{options:s.options,loading:!1}),k.delete(e.key);return}let c=`CONTROL_OPTIONS_LOAD_FAILED`;try{r.kind===`url`&&!t.isAllowedContractTemplateRemoteUrl(r.url,f.allowedRemoteOrigins)&&(c=`CONTROL_REMOTE_URL_BLOCKED`);let o=j.get(a);o||(o=nt(e,r,c,i),j.set(a,o),o.finally(()=>{j.get(a)===o&&j.delete(a)}).catch(()=>void 0));let s=await o;if(i.signal.aborted)return;let l=Math.max(0,Number(f.remoteOptionsCacheTtlMs)||0);l>0&&A.set(a,{options:s,expiresAt:Date.now()+l}),X(e.key,{options:s.length?s:n,loading:!1})}catch(t){let r=t instanceof Error&&t.message.startsWith(`高级控件请求超时`);if(i.signal.aborted&&!r)return;let a=t instanceof Error?t.message:`高级控件选项加载失败`;X(e.key,{options:n,loading:!1,error:a}),Qe({code:c,variableKey:e.key,message:`${e.label||e.key}:${a}`,cause:t})}finally{k.get(e.key)===i&&k.delete(e.key)}}function tt(e){try{return JSON.stringify([e.type,e.dataSource])}catch{return`${e.key}:${e.type}`}}async function nt(e,n,r,i){let a;if(n.kind===`resolver`){if(!f.optionResolver)throw Error(`缺少 resolver ${n.resolverKey} 的宿主实现`);a=await f.optionResolver({resolverKey:n.resolverKey,params:n.params,variable:e,signal:i.signal})}else{if(!t.isAllowedContractTemplateRemoteUrl(n.url,f.allowedRemoteOrigins))throw Error(`远程地址未在 allowlist 中:${n.url}`);if(!f.requester)throw Error(`缺少宿主 requester,组件库不会直接发起网络请求`);let r=t.normalizeContractTemplateRequestTimeout(n.timeoutMs,f.remoteRequestTimeoutMs);a=await rt(f.requester({url:n.url,method:n.method||`GET`,params:n.params,headers:n.headers,timeoutMs:r,signal:i.signal,variable:e}),i,r)}return t.normalizeContractTemplateControlOptions(a,n.kind===`url`?n:void 0,e.type||`select`)}function rt(e,t,n){return new Promise((r,i)=>{let a=()=>{clearTimeout(c),t.signal.removeEventListener(`abort`,s)},o=e=>{a(),e()},s=()=>o(()=>i(Error(`高级控件请求已取消`))),c=setTimeout(()=>{o(()=>i(Error(`高级控件请求超时(${n}ms)`))),t.abort()},n);t.signal.addEventListener(`abort`,s,{once:!0}),e.then(e=>o(()=>r(e)),e=>o(()=>i(e)))})}function it(e){let t=Y(e);return{variable:e,value:g.value[e.key],errors:Xe(e.key),active:C.value===e.key,readonly:f.readonly,disabled:f.disabled,options:t.options,loading:t.loading,loadError:t.error,updateValue:t=>B(e.key,t),focusVariable:()=>q(e.key)}}function at(){let e=F.value;if(!e.length)return;let t=e.findIndex(e=>e.key===C.value),r=t<0?0:t+1;for(let t=0;t<e.length;t+=1){let i=e[(r+t)%e.length];if(n.isEmptyRenderValue(g.value[i.key])){q(i.key);return}}}function ot(e){let t=E.value.trim().toLocaleLowerCase();return!t||e.key.toLocaleLowerCase().includes(t)||(e.label??``).toLocaleLowerCase().includes(t)?D.value===`unfilled`?n.isEmptyRenderValue(g.value[e.key]):D.value===`error`?Xe(e.key).length>0:!0:!1}function st(){E.value=``,D.value=`all`}function ct(e,t){let n=Ae.value;if(!n.length)return;let r=n.findIndex(t=>t.key===e),i=n[r<0?0:(r+t+n.length)%n.length]?.key;i&&(q(i),(0,s.nextTick)(()=>lt(i)))}function lt(e){(h.value?.querySelector(`[data-field-key="${$(e)}"]`))?.querySelector(`input:not([disabled]), textarea:not([disabled]), button:not([disabled])`)?.focus()}function ut(e){if(e.key!==`Enter`||e.target instanceof HTMLTextAreaElement)return;let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-field-key]`)?.dataset.fieldKey;n&&(e.preventDefault(),ct(n,e.shiftKey?-1:1))}function dt(e){let t=new Set;if(typeof DOMParser<`u`)return new DOMParser().parseFromString(e,`text/html`).querySelectorAll(`[data-key]`).forEach(e=>{let n=e.getAttribute(`data-key`)?.trim();n&&t.add(n)}),t;let n=/\bdata-key\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+))/gi,r;for(;r=n.exec(e);){let e=(r[1]??r[2]??r[3]??``).trim();e&&t.add(e)}return t}function ft(){!f.collapsiblePanel||f.interactionMode!==`panel`||(O.value=!O.value)}function Z(e){let t=gt(e);return T.value=t,p(`update:zoom`,t),t}function pt(){return Z(1)}function mt(){return T.value}function ht(){let e=Math.max(...I.value.map(e=>e.width),1);return Z(Math.max(0,Ce.value-48)/e)}function Q(e){e&&(w.value=e,(0,s.nextTick)(()=>{m.value?.querySelector(`[data-render-page-id="${$(e)}"]`)?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}))}function gt(e){let t=Number(e);return Number.isFinite(t)?Math.min(me,Math.max(pe,Math.round(t*100)/100)):1}function $(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`)}function _t(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);return Array.from(n).every(n=>e[n]===t[n])}function vt(e){!(e.ctrlKey||e.metaKey)||!Me.value||(e.preventDefault(),Z(e.deltaY>0?T.value-u:T.value+u))}let yt;function bt(){yt?.removeEventListener(`wheel`,vt),yt=void 0}function xt(e){bt(),e&&(e.addEventListener(`wheel`,vt,{passive:!1}),yt=e)}return(0,s.watch)(m,e=>{xt(e)},{immediate:!0}),(0,s.onBeforeUnmount)(()=>{bt(),K(),k.forEach(e=>e.abort()),k.clear()}),ge({showValidation:W,focusError:e=>{Ye(e),e.variableKey&&(0,s.nextTick)(()=>lt(e.variableKey))},getValues:V,setValues:Ve,validate:H,submit:He,resetValues:Ue,scrollToVariable:q,setZoom:Z,resetZoom:pt,getZoom:mt,fitWidth:ht,scrollToPage:Q}),(e,t)=>((0,s.openBlock)(),(0,s.createElementBlock)(`section`,{ref_key:`rendererElement`,ref:ye,class:(0,s.normalizeClass)([`gd-contract-template-renderer`,{"is-disabled":d.disabled,"is-readonly":d.readonly,"is-panel":d.interactionMode===`panel`,"is-inline":d.interactionMode===`inline`}]),onClick:Re,onKeydown:Be,onInput:Le,onChange:Le},[(0,s.renderSlot)(e.$slots,`fileBar`),Me.value?((0,s.openBlock)(),(0,s.createBlock)(i.default,{key:0,title:d.title,"filled-count":L.value,"total-count":F.value.length,"progress-percent":Ne.value,"required-missing-count":R.value,zoom:T.value,pages:I.value,"active-page-id":w.value,"min-zoom":pe,"max-zoom":me,"show-toolbar":d.showToolbar,"show-validate-button":d.showValidateButton,"show-reset-button":d.showResetButton,"show-submit-button":d.showSubmitButton,"show-panel-toggle":d.interactionMode===`panel`&&d.collapsiblePanel,"panel-collapsed":O.value,readonly:d.readonly,disabled:d.disabled,onZoomIn:t[0]||=e=>Z(T.value+u),onZoomOut:t[1]||=e=>Z(T.value-u),onResetZoom:pt,onFitWidth:ht,onSelectPage:Q,onValidate:H,onReset:We,onSubmit:He,onTogglePanel:ft},{extra:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`headerExtra`)]),_:3},8,[`title`,`filled-count`,`total-count`,`progress-percent`,`required-missing-count`,`zoom`,`pages`,`active-page-id`,`show-toolbar`,`show-validate-button`,`show-reset-button`,`show-submit-button`,`show-panel-toggle`,`panel-collapsed`,`readonly`,`disabled`])):(0,s.createCommentVNode)(``,!0),Ie.value?((0,s.openBlock)(),(0,s.createBlock)(o.default,{key:1,passed:Pe.value,summary:Fe.value,errors:P.value,expanded:b.value,onToggle:t[2]||=e=>b.value=!b.value,onFocusError:Ye},null,8,[`passed`,`summary`,`errors`,`expanded`])):(0,s.createCommentVNode)(``,!0),Me.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:3,class:(0,s.normalizeClass)([`gd-contract-template-renderer__workspace`,{"is-inline":d.interactionMode===`inline`}])},[(0,s.createElementVNode)(`div`,{ref_key:`pagesViewportElement`,ref:m,class:`gd-contract-template-renderer__pages-viewport`,"data-highlighted-variable-key":S.value},[(0,s.createElementVNode)(`div`,re,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(I.value,(e,t)=>((0,s.openBlock)(),(0,s.createBlock)(a.default,{key:e.id,page:e,index:t,total:I.value.length,zoom:T.value,"show-meta":d.showPageMeta,"font-base-url":d.contractFontBaseUrl,"active-key":S.value,"scroll-request":xe.value,onInteraction:ze},null,8,[`page`,`index`,`total`,`zoom`,`show-meta`,`font-base-url`,`active-key`,`scroll-request`]))),128))])],8,ne),d.interactionMode===`panel`?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,class:(0,s.normalizeClass)([`gd-contract-template-renderer__panel-wrap`,{"is-collapsed":O.value&&d.collapsiblePanel}])},[d.collapsiblePanel?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Tooltip),{key:0,title:O.value?`展开填写面板`:`收起填写面板`},{default:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-renderer__panel-handle`,"aria-label":O.value?`展开填写面板`:`收起填写面板`,"aria-expanded":!O.value,onClick:t[3]||=e=>O.value=!O.value},[O.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(ee.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(ee.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ie)]),_:1},8,[`title`])):(0,s.createCommentVNode)(``,!0),(0,s.createElementVNode)(`div`,ae,[(0,s.createElementVNode)(`aside`,oe,[(0,s.createElementVNode)(`div`,se,[(0,s.createElementVNode)(`div`,ce,[(0,s.createElementVNode)(`div`,null,[t[6]||=(0,s.createElementVNode)(`strong`,null,`填写项`,-1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(L.value)+` / `+(0,s.toDisplayString)(F.value.length)+` 已填写`,1)]),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(R.value?`${R.value} 项必填未完成`:`必填项已完成`),1)]),(0,s.createVNode)((0,s.unref)(c.Input),{value:E.value,"onUpdate:value":t[4]||=e=>E.value=e,"allow-clear":``,size:`small`,class:`gd-contract-template-renderer__field-search`,placeholder:`搜索字段名称或标识`},{prefix:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(ee.SearchOutlined),{"aria-hidden":`true`})]),_:1},8,[`value`]),(0,s.createElementVNode)(`div`,le,[(0,s.createVNode)((0,s.unref)(c.Segmented),{value:D.value,"onUpdate:value":t[5]||=e=>D.value=e,size:`small`,class:`gd-contract-template-renderer__field-filter`,options:ve},null,8,[`value`]),(0,s.createVNode)((0,s.unref)(c.Button),{size:`small`,disabled:!De.value,onClick:at},{default:(0,s.withCtx)(()=>[...t[7]||=[(0,s.createTextVNode)(` 下一个未填项 `,-1)]]),_:1},8,[`disabled`])]),(0,s.createVNode)((0,s.unref)(c.Progress),{percent:Ne.value,size:`small`,"show-info":!1},null,8,[`percent`])]),Ae.value.length?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,ref_key:`fieldListElement`,ref:h,class:`gd-contract-template-renderer__field-list`,onKeydownCapture:ut},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(je.value,t=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:t.id,class:`gd-contract-template-renderer__field-group`},[(0,s.createElementVNode)(`div`,ue,[(0,s.createElementVNode)(`strong`,null,(0,s.toDisplayString)(t.title),1),(0,s.createElementVNode)(`span`,null,(0,s.toDisplayString)(t.variables.length)+` / `+(0,s.toDisplayString)(t.totalCount)+` 项`,1)]),(0,s.createElementVNode)(`div`,de,[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(t.variables,t=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:t.id||t.key,"data-field-key":t.key},[(0,s.renderSlot)(e.$slots,`field`,(0,s.mergeProps)({ref_for:!0},it(t)),()=>[(0,s.createVNode)(r.default,{variable:t,value:g.value[t.key],errors:Xe(t.key),active:C.value===t.key,readonly:d.readonly,disabled:d.disabled,options:Y(t).options,loading:Y(t).loading,"load-error":Y(t).error,registration:Ze(t),"selector-http":d.selectorHttp,"selector-url-prefix":d.selectorUrlPrefix,onUpdateValue:e=>B(t.key,e),onFocusVariable:e=>q(t.key)},null,8,[`variable`,`value`,`errors`,`active`,`readonly`,`disabled`,`options`,`loading`,`load-error`,`registration`,`selector-http`,`selector-url-prefix`,`onUpdateValue`,`onFocusVariable`])])],8,fe))),128))])]))),128))],544)):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Empty),{key:0,class:`gd-contract-template-renderer__field-empty`,description:F.value.length?`没有符合条件的填写项`:`暂无填写项`,image:(0,s.unref)(c.Empty).PRESENTED_IMAGE_SIMPLE},(0,s.createSlots)({default:(0,s.withCtx)(()=>[E.value||D.value!==`all`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.Button),{key:0,type:`link`,size:`small`,onClick:st},{default:(0,s.withCtx)(()=>[...t[9]||=[(0,s.createTextVNode)(`清除筛选`,-1)]]),_:1})):(0,s.createCommentVNode)(``,!0)]),_:2},[E.value||D.value!==`all`?{name:`description`,fn:(0,s.withCtx)(()=>[t[8]||=(0,s.createElementVNode)(`span`,null,`没有符合条件的填写项`,-1)]),key:`0`}:void 0]),1032,[`description`,`image`]))])])],2)):(0,s.createCommentVNode)(``,!0)],2)):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,te,[(0,s.createVNode)((0,s.unref)(c.Empty),{description:`暂无可渲染的合同页面`,image:(0,s.unref)(c.Empty).PRESENTED_IMAGE_SIMPLE},null,8,[`image`])]))],34))}});exports.default=d;
1
+ require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./types.cjs`),t=require(`./utils/advanced-controls.cjs`),n=require(`./utils/template-renderer.cjs`),r=require(`./utils/contract-layout-check.cjs`),i=require(`./ContractTemplateRendererField.cjs`),a=require(`./ContractTemplateRendererHeader.cjs`),o=require(`./ContractTemplateRendererPage.cjs`),s=require(`./ContractTemplateRendererValidation.cjs`);let c=require(`vue`),l=require(`ant-design-vue`),ee=require(`@vueuse/core`),u=require(`@ant-design/icons-vue`);var te={key:2,class:`gd-contract-template-renderer__empty`},ne=[`data-highlighted-variable-key`],re={class:`gd-contract-template-renderer__pages`},ie=[`aria-label`,`aria-expanded`],ae={class:`gd-contract-template-renderer__panel-clip`},oe={class:`gd-contract-template-renderer__panel`},se={class:`gd-contract-template-renderer__panel-head`},ce={class:`gd-contract-template-renderer__panel-head-row`},le={class:`gd-contract-template-renderer__panel-head-actions`},ue={class:`gd-contract-template-renderer__field-group-head`},de={class:`gd-contract-template-renderer__field-group-items`},fe=[`data-field-key`],pe=.5,me=1.5,d=.1,he=3e3,ge=128,f=(0,c.defineComponent)({name:`ContractTemplateSingleRenderer`,__name:`ContractTemplateSingleRenderer`,props:{files:{},activeFileId:{},valuesByFile:{},template:{default:void 0},values:{default:void 0},interactionMode:{default:`panel`},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},title:{default:`合同填写`},showSubmitButton:{type:Boolean,default:!0},validateOnSubmit:{type:Boolean,default:!0},showValidateButton:{type:Boolean,default:!0},showResetButton:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},showPageMeta:{type:Boolean,default:!0},collapsiblePanel:{type:Boolean,default:!0},zoom:{default:1},controlRegistry:{default:()=>({})},optionResolver:{type:Function,default:void 0},requester:{type:Function,default:void 0},allowedRemoteOrigins:{default:()=>[]},remoteRequestTimeoutMs:{default:1e4},remoteOptionsCacheTtlMs:{default:3e4},selectorHttp:{default:void 0},selectorUrlPrefix:{default:``},contractFontBaseUrl:{default:void 0}},emits:[`update:activeFileId`,`update:valuesByFile`,`update:values`,`change`,`validate`,`submit`,`update:zoom`,`control-warning`],setup(f,{expose:_e,emit:ve}){let p=f,m=ve,ye=[{label:`全部`,value:`all`},{label:`未填写`,value:`unfilled`},{label:`有错误`,value:`error`}],be=(0,c.ref)(),h=(0,c.ref)(),xe=(0,c.ref)(),g=(0,c.ref)(n.normalizeRenderValues(p.template,p.values)),Se=(0,c.ref)({...g.value}),_=(0,c.ref)(!1),v=(0,c.ref)([]),y=(0,c.ref)([]),b=(0,c.ref)(!1),x=(0,c.ref)(!1),S=(0,c.ref)(``),C=(0,c.ref)(``),w=(0,c.ref)(``),Ce=(0,c.ref)(0),T=(0,c.ref)(St(p.zoom)),E=(0,c.ref)(``),D=(0,c.ref)(`all`),O=(0,c.ref)(!1),k=(0,c.ref)(new Map),A=new Map,j=new Map,M=new Map,N=new Set,P=new Map,{width:we}=(0,ee.useElementSize)(h),F=(0,c.computed)(()=>p.readonly||p.disabled),I=(0,c.computed)(()=>p.interactionMode===`inline`&&!F.value),L=(0,c.computed)(()=>n.validateTemplateRenderStructure(p.template)),R=(0,c.computed)(()=>_.value?v.value:[...L.value,...y.value]),z=(0,c.computed)(()=>(Array.isArray(p.template?.variables)?p.template.variables:[]).filter(t=>!!t?.key&&e.isContractTemplateFieldType(t.type??`text`))),Te=(0,c.computed)(()=>n.resolveTemplateDisplayValues(p.template,g.value,p.controlRegistry)),Ee=(0,c.computed)(()=>z.value.filter(e=>n.isEmptyRenderValue(g.value[e.key])).length),De=(0,c.computed)(()=>{let e=new Map;return R.value.forEach(t=>{t.variableKey&&e.set(t.variableKey,[...e.get(t.variableKey)??[],t])}),e}),B=(0,c.computed)(()=>n.buildTemplateRenderPages(p.template,I.value?Se.value:Te.value,{readonly:p.readonly,disabled:p.disabled,mode:I.value?`control`:`display`})),Oe=(0,c.computed)(()=>{let e=new Map,t=new Set(z.value.map(e=>e.key));return B.value.forEach(n=>{gt(n.contentHtml).forEach(r=>{t.has(r)&&!e.has(r)&&e.set(r,n.id)})}),e}),V=(0,c.computed)(()=>z.value.filter(dt)),ke=(0,c.computed)(()=>{let e=B.value.map((e,t)=>({id:`page:${e.id}`,pageId:e.id,title:`第 ${t+1} 页${e.title?` · ${e.title}`:``}`,allVariables:[],variables:[]})),t=new Map(e.map(e=>[e.pageId,e])),n={id:`unlocated`,title:`未定位字段`,allVariables:[],variables:[]};return z.value.forEach(e=>{let r=t.get(Oe.value.get(e.key)??``)??n;r.allVariables.push(e),dt(e)&&r.variables.push(e)}),[...e,n].filter(e=>e.variables.length>0).map(e=>({id:e.id,title:e.title,totalCount:e.allVariables.length,variables:e.variables}))}),H=(0,c.computed)(()=>B.value.length>0),Ae=(0,c.computed)(()=>z.value.filter(e=>!n.isEmptyRenderValue(g.value[e.key])).length),je=(0,c.computed)(()=>z.value.filter(e=>e.required&&n.isEmptyRenderValue(g.value[e.key])).length),Me=(0,c.computed)(()=>z.value.length?Math.round(Ae.value/z.value.length*100):0),Ne=(0,c.computed)(()=>_.value&&v.value.length===0),Pe=(0,c.computed)(()=>_.value?Ne.value?`校验通过,模板与填写值均符合规则`:`发现 ${v.value.length} 个模板或填写问题`:y.value.length?`发现 ${R.value.length} 个模板或填写问题`:L.value.length?`模板存在 ${L.value.length} 个问题,已安全降级展示`:``),Fe=(0,c.computed)(()=>_.value?R.value.length>0||x.value:R.value.length>0);(0,c.watch)(()=>p.template,e=>{U(n.normalizeRenderValues(e,p.values),!1),Je();let t=Array.isArray(e?.pages)?e.pages.map(e=>e?.id):[];t.includes(w.value)||(w.value=t.find(Boolean)??``),C.value&&!z.value.some(e=>e.key===C.value)&&Qe()},{deep:!0}),(0,c.watch)(()=>[p.template?.variables,p.optionResolver,p.requester,p.allowedRemoteOrigins,p.remoteRequestTimeoutMs,p.remoteOptionsCacheTtlMs],()=>{it()},{deep:!0,immediate:!0}),(0,c.watch)(()=>p.values,e=>{let t=n.normalizeRenderValues(p.template,e);Ct(t,g.value)||(U(t,!1,{refreshInlineHtml:p.interactionMode!==`inline`}),Je())},{deep:!0}),(0,c.watch)(I,e=>{e&&(Se.value={...g.value})}),(0,c.watch)(()=>p.collapsiblePanel,e=>{e||(O.value=!1)}),(0,c.watch)(()=>p.zoom,e=>T.value=St(e)),(0,c.watch)(B,e=>{!w.value&&e.length&&(w.value=e[0].id)},{immediate:!0});function U(e,t=!0,n={}){g.value={...e},n.refreshInlineHtml!==!1&&(Se.value={...e}),t&&(m(`update:values`,{...g.value}),m(`change`,{...g.value}))}function W(e,t){if(!e||F.value)return;if(U({...g.value,[e]:t},!0,{refreshInlineHtml:p.interactionMode!==`inline`}),_.value){We();return}let r=z.value.find(t=>t.key===e);r&&(r.type??`text`)===`text`&&(y.value=[...y.value.filter(t=>t.variableKey!==e),...n.validateTemplateTextOverflow(r,t)],m(`validate`,R.value))}function Ie(e){if(p.interactionMode!==`inline`)return;let t=e.target;if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement))return;let n=t.dataset.key||``;n&&(t instanceof HTMLInputElement&&t.type===`checkbox`?W(n,t.checked):t instanceof HTMLInputElement&&t.type===`number`?W(n,t.value===``?void 0:t.valueAsNumber):W(n,t.value))}function Le(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-render-page-id]`);n?.dataset.renderPageId&&(w.value=n.dataset.renderPageId);let r=t.closest(`[data-contract-render-wrapper], [data-contract-render-control]`)?.dataset.key||``;r&&J(r)}function Re(e,t,n){let i=r.createContractTemplateLayoutPage(e,{pageIndex:t,pageNumber:t+1,totalPages:B.value.length}).key;for(P.delete(i),P.set(i,n);P.size>ge;){let e=P.keys().next().value;if(e===void 0)break;P.delete(e)}}function ze(e){return P.get(e)}function Be(e){let t=B.value.find(t=>t.id===e.pageId),n=z.value.some(t=>t.key===e.key);if(!(!t||!n||!gt(t.contentHtml).has(e.key))&&!(e.kind===`input`&&p.interactionMode!==`inline`)){if(w.value=e.pageId,e.kind===`input`){W(e.key,e.value);return}J(e.key)}}function Ve(e){if(e.key!==`Enter`&&e.key!==` `)return;let t=e.target;!(t instanceof HTMLElement)||!t.dataset.key||(e.preventDefault(),J(t.dataset.key))}function He(){return{...g.value}}function Ue(e){U(n.normalizeRenderValues(p.template,e))}function We(){let e=n.validateTemplateRenderValues(p.template,g.value);return Ye(e),m(`validate`,e),e}function Ge(){let e=n.resolveTemplateRenderSubmitErrors(p.template,g.value,p.validateOnSubmit);if((p.validateOnSubmit||e.length)&&(Ye(e),m(`validate`,e)),e.length)return et(e[0]),!1;let t=He();return m(`submit`,t),t}function Ke(){return U(n.buildInitialRenderValues(p.template)),Je(),He()}function qe(){F.value||l.Modal.confirm({title:`重置填写内容?`,content:`将恢复模板中的默认值,当前未提交的填写内容会被覆盖。`,okText:`确认重置`,cancelText:`取消`,onOk:()=>Ke()})}function Je(){y.value=[],_.value=!1,v.value=[],b.value=!1,x.value=!1,K()}function Ye(e){if(y.value=[],v.value=e,_.value=!0,b.value=!1,e.length){x.value=!1,K();return}Xe()}let G;function K(){G&&=(clearTimeout(G),void 0)}function Xe(){K(),x.value=!0,G=setTimeout(()=>{x.value=!1,G=void 0},he)}function q(e){J(e,!0)}function Ze(e){p.interactionMode===`panel`&&(O.value&&=!1,z.value.some(t=>t.key===e)&&!V.value.some(t=>t.key===e)&&ft())}function J(e,t=!1){if(!e)return;Ze(e),C.value=e,S.value=e;let n=Oe.value.get(e);n&&(w.value=n),t&&(Ce.value+=1),(0,c.nextTick)(()=>{$e(e);let r=n?h.value?.querySelector(`[data-render-page-id="${Q(n)}"]`):void 0;t&&r?.scrollIntoView({behavior:`smooth`,block:`center`,inline:`center`}),p.interactionMode===`panel`&&xe.value?.querySelector(`[data-field-key="${Q(e)}"]`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})})}function Qe(){C.value=``,S.value=``,$e(``)}function $e(e){h.value?.querySelectorAll(`[data-contract-render-wrapper], [data-contract-render-control]`).forEach(t=>t.classList.toggle(`is-active`,!!e&&t.dataset.key===e))}function et(e){e.variableKey?(q(e.variableKey),p.interactionMode===`panel`&&(0,c.nextTick)(()=>mt(e.variableKey))):e.pageId&&xt(e.pageId)}function tt(e){return De.value.get(e)??[]}function Y(e){return k.value.get(e.key)??{options:e.options??[],loading:!1}}function nt(e){let t=e.componentKey||e.type||``;return t?p.controlRegistry?.[t]:void 0}function X(e,t){let n=new Map(k.value);n.set(e,t),k.value=n}function rt(e){m(`control-warning`,e)}async function it(){A.forEach(e=>e.abort()),A.clear(),j.clear(),N.clear();let e=Array.isArray(p.template?.variables)?p.template.variables:[];await Promise.all(e.map(async e=>{if(!e?.key)return;let t=Array.isArray(e.options)?e.options.map(e=>({...e})):[];if(e.dataSource?await at(e,t):X(e.key,{options:t,loading:!1}),e.type===`custom`&&!nt(e)){let t=e.componentKey||``,n=`${e.key}:${t}`;N.has(n)||(N.add(n),rt({code:`CONTROL_COMPONENT_MISSING`,variableKey:e.key,componentKey:t,message:`${e.label||e.key} 未注册自定义控件 ${t||`(空)`}`}))}}))}async function at(e,n){let r=e.dataSource;if(!r)return;let i=new AbortController;A.set(e.key,i),X(e.key,{options:n,loading:!0});let a=ot(e),o=Date.now(),s=j.get(a);if(s&&s.expiresAt>o){X(e.key,{options:s.options,loading:!1}),A.delete(e.key);return}let c=`CONTROL_OPTIONS_LOAD_FAILED`;try{r.kind===`url`&&!t.isAllowedContractTemplateRemoteUrl(r.url,p.allowedRemoteOrigins)&&(c=`CONTROL_REMOTE_URL_BLOCKED`);let o=M.get(a);o||(o=st(e,r,c,i),M.set(a,o),o.finally(()=>{M.get(a)===o&&M.delete(a)}).catch(()=>void 0));let s=await o;if(i.signal.aborted)return;let l=Math.max(0,Number(p.remoteOptionsCacheTtlMs)||0);l>0&&j.set(a,{options:s,expiresAt:Date.now()+l}),X(e.key,{options:s.length?s:n,loading:!1})}catch(t){let r=t instanceof Error&&t.message.startsWith(`高级控件请求超时`);if(i.signal.aborted&&!r)return;let a=t instanceof Error?t.message:`高级控件选项加载失败`;X(e.key,{options:n,loading:!1,error:a}),rt({code:c,variableKey:e.key,message:`${e.label||e.key}:${a}`,cause:t})}finally{A.get(e.key)===i&&A.delete(e.key)}}function ot(e){try{return JSON.stringify([e.type,e.dataSource])}catch{return`${e.key}:${e.type}`}}async function st(e,n,r,i){let a;if(n.kind===`resolver`){if(!p.optionResolver)throw Error(`缺少 resolver ${n.resolverKey} 的宿主实现`);a=await p.optionResolver({resolverKey:n.resolverKey,params:n.params,variable:e,signal:i.signal})}else{if(!t.isAllowedContractTemplateRemoteUrl(n.url,p.allowedRemoteOrigins))throw Error(`远程地址未在 allowlist 中:${n.url}`);if(!p.requester)throw Error(`缺少宿主 requester,组件库不会直接发起网络请求`);let r=t.normalizeContractTemplateRequestTimeout(n.timeoutMs,p.remoteRequestTimeoutMs);a=await ct(p.requester({url:n.url,method:n.method||`GET`,params:n.params,headers:n.headers,timeoutMs:r,signal:i.signal,variable:e}),i,r)}return t.normalizeContractTemplateControlOptions(a,n.kind===`url`?n:void 0,e.type||`select`)}function ct(e,t,n){return new Promise((r,i)=>{let a=()=>{clearTimeout(c),t.signal.removeEventListener(`abort`,s)},o=e=>{a(),e()},s=()=>o(()=>i(Error(`高级控件请求已取消`))),c=setTimeout(()=>{o(()=>i(Error(`高级控件请求超时(${n}ms)`))),t.abort()},n);t.signal.addEventListener(`abort`,s,{once:!0}),e.then(e=>o(()=>r(e)),e=>o(()=>i(e)))})}function lt(e){let t=Y(e);return{variable:e,value:g.value[e.key],errors:tt(e.key),active:C.value===e.key,readonly:p.readonly,disabled:p.disabled,options:t.options,loading:t.loading,loadError:t.error,updateValue:t=>W(e.key,t),focusVariable:()=>q(e.key)}}function ut(){let e=z.value;if(!e.length)return;let t=e.findIndex(e=>e.key===C.value),r=t<0?0:t+1;for(let t=0;t<e.length;t+=1){let i=e[(r+t)%e.length];if(n.isEmptyRenderValue(g.value[i.key])){q(i.key);return}}}function dt(e){let t=E.value.trim().toLocaleLowerCase();return!t||e.key.toLocaleLowerCase().includes(t)||(e.label??``).toLocaleLowerCase().includes(t)?D.value===`unfilled`?n.isEmptyRenderValue(g.value[e.key]):D.value===`error`?tt(e.key).length>0:!0:!1}function ft(){E.value=``,D.value=`all`}function pt(e,t){let n=V.value;if(!n.length)return;let r=n.findIndex(t=>t.key===e),i=n[r<0?0:(r+t+n.length)%n.length]?.key;i&&(q(i),(0,c.nextTick)(()=>mt(i)))}function mt(e){(xe.value?.querySelector(`[data-field-key="${Q(e)}"]`))?.querySelector(`input:not([disabled]), textarea:not([disabled]), button:not([disabled])`)?.focus()}function ht(e){if(e.key!==`Enter`||e.target instanceof HTMLTextAreaElement)return;let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-field-key]`)?.dataset.fieldKey;n&&(e.preventDefault(),pt(n,e.shiftKey?-1:1))}function gt(e){let t=new Set;if(typeof DOMParser<`u`)return new DOMParser().parseFromString(e,`text/html`).querySelectorAll(`[data-key]`).forEach(e=>{let n=e.getAttribute(`data-key`)?.trim();n&&t.add(n)}),t;let n=/\bdata-key\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s>]+))/gi,r;for(;r=n.exec(e);){let e=(r[1]??r[2]??r[3]??``).trim();e&&t.add(e)}return t}function _t(){!p.collapsiblePanel||p.interactionMode!==`panel`||(O.value=!O.value)}function Z(e){let t=St(e);return T.value=t,m(`update:zoom`,t),t}function vt(){return Z(1)}function yt(){return T.value}function bt(){let e=Math.max(...B.value.map(e=>e.width),1);return Z(Math.max(0,we.value-48)/e)}function xt(e){e&&(w.value=e,(0,c.nextTick)(()=>{h.value?.querySelector(`[data-render-page-id="${Q(e)}"]`)?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`center`})}))}function St(e){let t=Number(e);return Number.isFinite(t)?Math.min(me,Math.max(pe,Math.round(t*100)/100)):1}function Q(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`)}function Ct(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);return Array.from(n).every(n=>e[n]===t[n])}function wt(e){!(e.ctrlKey||e.metaKey)||!H.value||(e.preventDefault(),Z(e.deltaY>0?T.value-d:T.value+d))}let $;function Tt(){$?.removeEventListener(`wheel`,wt),$=void 0}function Et(e){Tt(),e&&(e.addEventListener(`wheel`,wt,{passive:!1}),$=e)}return(0,c.watch)(h,e=>{Et(e)},{immediate:!0}),(0,c.onBeforeUnmount)(()=>{Tt(),K(),A.forEach(e=>e.abort()),A.clear()}),_e({showValidation:Ye,getMountedLayoutMetrics:ze,focusError:e=>{et(e),e.variableKey&&(0,c.nextTick)(()=>mt(e.variableKey))},getValues:He,setValues:Ue,validate:We,submit:Ge,resetValues:Ke,scrollToVariable:q,setZoom:Z,resetZoom:vt,getZoom:yt,fitWidth:bt,scrollToPage:xt}),(e,t)=>((0,c.openBlock)(),(0,c.createElementBlock)(`section`,{ref_key:`rendererElement`,ref:be,class:(0,c.normalizeClass)([`gd-contract-template-renderer`,{"is-disabled":f.disabled,"is-readonly":f.readonly,"is-panel":f.interactionMode===`panel`,"is-inline":f.interactionMode===`inline`}]),onClick:Le,onKeydown:Ve,onInput:Ie,onChange:Ie},[(0,c.renderSlot)(e.$slots,`fileBar`),H.value?((0,c.openBlock)(),(0,c.createBlock)(a.default,{key:0,title:f.title,"filled-count":Ae.value,"total-count":z.value.length,"progress-percent":Me.value,"required-missing-count":je.value,zoom:T.value,pages:B.value,"active-page-id":w.value,"min-zoom":pe,"max-zoom":me,"show-toolbar":f.showToolbar,"show-validate-button":f.showValidateButton,"show-reset-button":f.showResetButton,"show-submit-button":f.showSubmitButton,"show-panel-toggle":f.interactionMode===`panel`&&f.collapsiblePanel,"panel-collapsed":O.value,readonly:f.readonly,disabled:f.disabled,onZoomIn:t[0]||=e=>Z(T.value+d),onZoomOut:t[1]||=e=>Z(T.value-d),onResetZoom:vt,onFitWidth:bt,onSelectPage:xt,onValidate:We,onReset:qe,onSubmit:Ge,onTogglePanel:_t},{extra:(0,c.withCtx)(()=>[(0,c.renderSlot)(e.$slots,`headerExtra`)]),_:3},8,[`title`,`filled-count`,`total-count`,`progress-percent`,`required-missing-count`,`zoom`,`pages`,`active-page-id`,`show-toolbar`,`show-validate-button`,`show-reset-button`,`show-submit-button`,`show-panel-toggle`,`panel-collapsed`,`readonly`,`disabled`])):(0,c.createCommentVNode)(``,!0),Fe.value?((0,c.openBlock)(),(0,c.createBlock)(s.default,{key:1,passed:Ne.value,summary:Pe.value,errors:R.value,expanded:b.value,onToggle:t[2]||=e=>b.value=!b.value,onFocusError:et},null,8,[`passed`,`summary`,`errors`,`expanded`])):(0,c.createCommentVNode)(``,!0),H.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:3,class:(0,c.normalizeClass)([`gd-contract-template-renderer__workspace`,{"is-inline":f.interactionMode===`inline`}])},[(0,c.createElementVNode)(`div`,{ref_key:`pagesViewportElement`,ref:h,class:`gd-contract-template-renderer__pages-viewport`,"data-highlighted-variable-key":S.value},[(0,c.createElementVNode)(`div`,re,[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(B.value,(e,t)=>((0,c.openBlock)(),(0,c.createBlock)(o.default,{key:e.id,page:e,index:t,total:B.value.length,zoom:T.value,"show-meta":f.showPageMeta,"font-base-url":f.contractFontBaseUrl,"active-key":S.value,"scroll-request":Ce.value,onInteraction:Be,onMetrics:n=>Re(e,t,n)},null,8,[`page`,`index`,`total`,`zoom`,`show-meta`,`font-base-url`,`active-key`,`scroll-request`,`onMetrics`]))),128))])],8,ne),f.interactionMode===`panel`?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:0,class:(0,c.normalizeClass)([`gd-contract-template-renderer__panel-wrap`,{"is-collapsed":O.value&&f.collapsiblePanel}])},[f.collapsiblePanel?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Tooltip),{key:0,title:O.value?`展开填写面板`:`收起填写面板`},{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`button`,{type:`button`,class:`gd-contract-template-renderer__panel-handle`,"aria-label":O.value?`展开填写面板`:`收起填写面板`,"aria-expanded":!O.value,onClick:t[3]||=e=>O.value=!O.value},[O.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.LeftOutlined),{key:0,"aria-hidden":`true`})):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(u.RightOutlined),{key:1,"aria-hidden":`true`}))],8,ie)]),_:1},8,[`title`])):(0,c.createCommentVNode)(``,!0),(0,c.createElementVNode)(`div`,ae,[(0,c.createElementVNode)(`aside`,oe,[(0,c.createElementVNode)(`div`,se,[(0,c.createElementVNode)(`div`,ce,[(0,c.createElementVNode)(`div`,null,[t[6]||=(0,c.createElementVNode)(`strong`,null,`填写项`,-1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(Ae.value)+` / `+(0,c.toDisplayString)(z.value.length)+` 已填写`,1)]),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(je.value?`${je.value} 项必填未完成`:`必填项已完成`),1)]),(0,c.createVNode)((0,c.unref)(l.Input),{value:E.value,"onUpdate:value":t[4]||=e=>E.value=e,"allow-clear":``,size:`small`,class:`gd-contract-template-renderer__field-search`,placeholder:`搜索字段名称或标识`},{prefix:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(u.SearchOutlined),{"aria-hidden":`true`})]),_:1},8,[`value`]),(0,c.createElementVNode)(`div`,le,[(0,c.createVNode)((0,c.unref)(l.Segmented),{value:D.value,"onUpdate:value":t[5]||=e=>D.value=e,size:`small`,class:`gd-contract-template-renderer__field-filter`,options:ye},null,8,[`value`]),(0,c.createVNode)((0,c.unref)(l.Button),{size:`small`,disabled:!Ee.value,onClick:ut},{default:(0,c.withCtx)(()=>[...t[7]||=[(0,c.createTextVNode)(` 下一个未填项 `,-1)]]),_:1},8,[`disabled`])]),(0,c.createVNode)((0,c.unref)(l.Progress),{percent:Me.value,size:`small`,"show-info":!1},null,8,[`percent`])]),V.value.length?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:1,ref_key:`fieldListElement`,ref:xe,class:`gd-contract-template-renderer__field-list`,onKeydownCapture:ht},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(ke.value,t=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:t.id,class:`gd-contract-template-renderer__field-group`},[(0,c.createElementVNode)(`div`,ue,[(0,c.createElementVNode)(`strong`,null,(0,c.toDisplayString)(t.title),1),(0,c.createElementVNode)(`span`,null,(0,c.toDisplayString)(t.variables.length)+` / `+(0,c.toDisplayString)(t.totalCount)+` 项`,1)]),(0,c.createElementVNode)(`div`,de,[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(t.variables,t=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:t.id||t.key,"data-field-key":t.key},[(0,c.renderSlot)(e.$slots,`field`,(0,c.mergeProps)({ref_for:!0},lt(t)),()=>[(0,c.createVNode)(i.default,{variable:t,value:g.value[t.key],errors:tt(t.key),active:C.value===t.key,readonly:f.readonly,disabled:f.disabled,options:Y(t).options,loading:Y(t).loading,"load-error":Y(t).error,registration:nt(t),"selector-http":f.selectorHttp,"selector-url-prefix":f.selectorUrlPrefix,onUpdateValue:e=>W(t.key,e),onFocusVariable:e=>q(t.key)},null,8,[`variable`,`value`,`errors`,`active`,`readonly`,`disabled`,`options`,`loading`,`load-error`,`registration`,`selector-http`,`selector-url-prefix`,`onUpdateValue`,`onFocusVariable`])])],8,fe))),128))])]))),128))],544)):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Empty),{key:0,class:`gd-contract-template-renderer__field-empty`,description:z.value.length?`没有符合条件的填写项`:`暂无填写项`,image:(0,c.unref)(l.Empty).PRESENTED_IMAGE_SIMPLE},(0,c.createSlots)({default:(0,c.withCtx)(()=>[E.value||D.value!==`all`?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.Button),{key:0,type:`link`,size:`small`,onClick:ft},{default:(0,c.withCtx)(()=>[...t[9]||=[(0,c.createTextVNode)(`清除筛选`,-1)]]),_:1})):(0,c.createCommentVNode)(``,!0)]),_:2},[E.value||D.value!==`all`?{name:`description`,fn:(0,c.withCtx)(()=>[t[8]||=(0,c.createElementVNode)(`span`,null,`没有符合条件的填写项`,-1)]),key:`0`}:void 0]),1032,[`description`,`image`]))])])],2)):(0,c.createCommentVNode)(``,!0)],2)):((0,c.openBlock)(),(0,c.createElementBlock)(`div`,te,[(0,c.createVNode)((0,c.unref)(l.Empty),{description:`暂无可渲染的合同页面`,image:(0,c.unref)(l.Empty).PRESENTED_IMAGE_SIMPLE},null,8,[`image`])]))],34))}});exports.default=f;